264986e2c8
Recently, linux support multiqueue tap which could let userspace call TUNSETIFF for a signle device many times to create multiple file descriptors as independent queues. User could also enable/disabe a specific queue through TUNSETQUEUE. The patch adds the generic infrastructure to create multiqueue taps. To achieve this a new parameter "queues" were introduced to specify how many queues were expected to be created for tap by qemu itself. Alternatively, management could also pass multiple pre-created tap file descriptors separated with ':' through a new parameter fds like -netdev tap,id=hn0,fds="X:Y:..:Z". Multiple vhost file descriptors could also be passed in this way. Each TAPState were still associated to a tap fd, which mean multiple TAPStates were created when user needs multiqueue taps. Since each TAPState contains one NetClientState, with the multiqueue nic support, an N peers of NetClientState were built up. A new parameter, mq_required were introduce in tap_open() to create multiqueue tap fds. Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> |
||
---|---|---|
.. | ||
checksum.c | ||
clients.h | ||
dump.c | ||
hub.c | ||
hub.h | ||
Makefile.objs | ||
net.c | ||
queue.c | ||
slirp.c | ||
socket.c | ||
tap_int.h | ||
tap-aix.c | ||
tap-bsd.c | ||
tap-haiku.c | ||
tap-linux.c | ||
tap-linux.h | ||
tap-solaris.c | ||
tap-win32.c | ||
tap.c | ||
util.c | ||
util.h | ||
vde.c |