• Jason Wang's avatar
    tap: multiqueue support · 264986e2
    Jason Wang authored
    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: default avatarJason Wang <jasowang@redhat.com>
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    264986e2
tap_int.h 1.93 KB