• Alexander Duyck's avatar
    net: Add support for subordinate device traffic classes · ffcfe25b
    Alexander Duyck authored
    This patch is meant to provide the basic tools needed to allow us to create
    subordinate device traffic classes. The general idea here is to allow
    subdividing the queues of a device into queue groups accessible through an
    upper device such as a macvlan.
    
    The idea here is to enforce the idea that an upper device has to be a
    single queue device, ideally with IFF_NO_QUQUE set. With that being the
    case we can pretty much guarantee that the tc_to_txq mappings and XPS maps
    for the upper device are unused. As such we could reuse those in order to
    support subdividing the lower device and distributing those queues between
    the subordinate devices.
    
    In order to distinguish between a regular set of traffic classes and if a
    device is carrying subordinate traffic classes I changed num_tc from a u8
    to a s16 value and use the negative values to represent the subordinate
    pool values. So starting at -1 and running to -32768 we can encode those as
    pool values, and the existing values of 0 to 15 can be maintained.
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    ffcfe25b
dev.c 238 KB