aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/devices/virtio
diff options
context:
space:
mode:
authorAloys Augustin <aloaugus@cisco.com>2020-03-16 17:29:52 +0100
committerDamjan Marion <dmarion@me.com>2020-04-28 21:10:36 +0000
commit2857e7850c2a2de02eb9f61c5d760100e382aa09 (patch)
treef39742d1ce6c41467e0a582614f36d9596b65376 /src/vnet/devices/virtio
parentbeee60d2c34f7d72afd8d795416b431929c87071 (diff)
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>
Diffstat (limited to 'src/vnet/devices/virtio')
-rw-r--r--src/vnet/devices/virtio/virtio.c5
-rw-r--r--src/vnet/devices/virtio/virtio.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/src/vnet/devices/virtio/virtio.c b/src/vnet/devices/virtio/virtio.c
index 00a588af346..858105c42b5 100644
--- a/src/vnet/devices/virtio/virtio.c
+++ b/src/vnet/devices/virtio/virtio.c
@@ -312,7 +312,10 @@ virtio_show (vlib_main_t * vm, u32 * hw_if_indices, u8 show_descr, u32 type)
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 3e8f9416483..3151c50cbb4 100644
--- a/src/vnet/devices/virtio/virtio.h
+++ b/src/vnet/devices/virtio/virtio.h
@@ -156,7 +156,7 @@ typedef struct
};
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;