tap: use one tap fd per rx queue
This matches vhost queues to linux netdev queues and avoids random
packet shuffling across vhost queues on rx.
Change-Id: I9901689d361e440fb0b91c9fbaf8124ce525b316
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
diff --git a/src/vnet/devices/virtio/virtio.c b/src/vnet/devices/virtio/virtio.c
index 00a588a..858105c 100644
--- a/src/vnet/devices/virtio/virtio.c
+++ b/src/vnet/devices/virtio/virtio.c
@@ -312,7 +312,10 @@
str = format (str, " %d", vif->vhost_fds[i]);
vlib_cli_output (vm, " vhost-fds%v", str);
vec_free (str);
- vlib_cli_output (vm, " tap-fd %d", vif->tap_fd);
+ vec_foreach_index (i, vif->tap_fds)
+ str = format (str, " %d", vif->tap_fds[i]);
+ vlib_cli_output (vm, " tap-fds%v", str);
+ vec_free (str);
}
vlib_cli_output (vm, " gso-enabled %d", vif->gso_enabled);
vlib_cli_output (vm, " csum-enabled %d", vif->csum_offload_enabled);
diff --git a/src/vnet/devices/virtio/virtio.h b/src/vnet/devices/virtio/virtio.h
index 3e8f941..3151c50 100644
--- a/src/vnet/devices/virtio/virtio.h
+++ b/src/vnet/devices/virtio/virtio.h
@@ -156,7 +156,7 @@
};
u32 per_interface_next_index;
int *vhost_fds;
- int tap_fd;
+ int *tap_fds;
u32 msix_enabled;
u32 pci_dev_handle;
virtio_vring_t *rxq_vrings;