summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrusty <rusty@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652>2013-08-16 03:20:21 +0000
committerrusty <rusty@0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652>2013-08-16 03:20:21 +0000
commit6c9d2f4d76647a588cb173c1a847443b04aa8be7 (patch)
tree542b1309b975ae9f5e750be9a3632371ec8ca510
parent69fbbac976180a38519d2319c7927ec09b746119 (diff)
As submitted to virtio-comment list: https://lists.oasis-open.org/archives/virtio-comment/201308/msg00009.html
(Edited into plain text) From: Dmitry Fleytman <dfleytma@redhat.com> Virtio-net driver currently negotiates network offloads on startup via features mechanism and have no ability to disable and re-enable offloads later. This patch introduced a new control command that allows to configure device network offloads state dynamically. The patch also introduces a new feature flag VIRTIO_NET_F_CTRL_GUEST_OFFLOADS. Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com> Signed-off-by: Rusty Russell <rusty@au1.ibm.com> git-svn-id: https://tools.oasis-open.org/version-control/svn/virtio@14 0c8fb4dd-22a2-4bb5-bc14-6c75a5f43652
-rw-r--r--virtio-spec.txt35
1 files changed, 35 insertions, 0 deletions
diff --git a/virtio-spec.txt b/virtio-spec.txt
index d762461..a3ee054 100644
--- a/virtio-spec.txt
+++ b/virtio-spec.txt
@@ -1132,6 +1132,9 @@ features.
VIRTIO_NET_F_GUEST_CSUM (1) Guest handles packets with partial checksum
+ VIRTIO_NET_F_CTRL_GUEST_OFFLOADS (2) Control channel offloads
+ reconfiguration support.
+
VIRTIO_NET_F_MAC (5) Device has given MAC address.
VIRTIO_NET_F_GSO (6) (Deprecated) device handles packets with
@@ -1473,6 +1476,38 @@ Processing this notification involves:
2. Sending VIRTIO_NET_CTRL_ANNOUNCE_ACK command through control
vq.
+2.5.1.5.3.4 Offloads State Configuration
+
+If the VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature is negotiated, the driver can
+send control commands for dynamic offloads state configuration.
+
+2.5.1.5.4.3.1 Setting Offloads State
+
+ u64 offloads;
+
+ #define VIRTIO_NET_F_GUEST_CSUM 1
+ #define VIRTIO_NET_F_GUEST_TSO4 7
+ #define VIRTIO_NET_F_GUEST_TSO6 8
+ #define VIRTIO_NET_F_GUEST_ECN 9
+ #define VIRTIO_NET_F_GUEST_UFO 10
+
+ #define VIRTIO_NET_CTRL_GUEST_OFFLOADS 5
+ #define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET 0
+
+The class VIRTIO_NET_CTRL_GUEST_OFFLOADS has one command:
+VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET applies the new offloads configuration.
+
+u64 value passed as command data is a bitmask, bits set define
+offloads to be enabled, bits cleared - offloads to be disabled.
+
+There is a corresponding device feature for each offload. Upon feature
+negotiation corresponding offload gets enabled to preserve backward
+compartibility.
+
+Corresponding feature must be negotiated at startup in order to allow dynamic
+change of specific offload state.
+
+
2.5.2 Block Device
==================