aboutsummaryrefslogtreecommitdiff
path: root/include/hw/virtio/virtio-net.h
diff options
context:
space:
mode:
authorYuri Benditovich <yuri.benditovich@daynix.com>2020-05-08 15:59:31 +0300
committerJason Wang <jasowang@redhat.com>2020-06-18 21:05:50 +0800
commite22f0603fb2fc274920a9e3a1d1306260b9a4cc4 (patch)
tree32287a99a110e01988a9fad3ba6ad31424d5ba41 /include/hw/virtio/virtio-net.h
parentfbbdbddec018723d9f863f01cdec172dda9df12b (diff)
downloadqemu-e22f0603fb2fc274920a9e3a1d1306260b9a4cc4.zip
qemu-e22f0603fb2fc274920a9e3a1d1306260b9a4cc4.tar.gz
qemu-e22f0603fb2fc274920a9e3a1d1306260b9a4cc4.tar.bz2
virtio-net: reference implementation of hash report
Suggest VIRTIO_NET_F_HASH_REPORT if specified in device parameters. If the VIRTIO_NET_F_HASH_REPORT is set, the device extends configuration space. If the feature is negotiated, the packet layout is extended to accomodate the hash information. In this case deliver packet's hash value and report type in virtio header extension. Use for configuration the same procedure as already used for RSS. We add two fields in rss_data that controls what the device does with the calculated hash if rss_data.enabled is set. If field 'populate' is set the hash is set in the packet, if field 'redirect' is set the hash is used to decide the queue to place the packet to. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'include/hw/virtio/virtio-net.h')
-rw-r--r--include/hw/virtio/virtio-net.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/hw/virtio/virtio-net.h b/include/hw/virtio/virtio-net.h
index 5081f3c..a45ef82 100644
--- a/include/hw/virtio/virtio-net.h
+++ b/include/hw/virtio/virtio-net.h
@@ -131,6 +131,8 @@ typedef struct VirtioNetRscChain {
typedef struct VirtioNetRssData {
bool enabled;
+ bool redirect;
+ bool populate_hash;
uint32_t hash_types;
uint8_t key[VIRTIO_NET_RSS_MAX_KEY_SIZE];
uint16_t indirections_len;