• Vinicius Costa Gomes's avatar
    igb: Add support for adding offloaded clsflower filters · e086be9a
    Vinicius Costa Gomes authored
    This allows filters added by tc-flower and specifying MAC addresses,
    Ethernet types, and the VLAN priority field, to be offloaded to the
    controller.
    
    This reuses most of the infrastructure used by ethtool, but clsflower
    filters are kept in a separated list, so they are invisible to
    ethtool.
    
    To setup clsflower offloading:
    
    $ tc qdisc replace dev eth0 handle 100: parent root mqprio \
         	   	   num_tc 3 map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \
    		   queues 1@0 1@1 2@2 hw 0
    (clsflower offloading depends on the netword driver to be configured
    with multiple traffic classes, we use mqprio's 'num_tc' parameter to
    set it to 3)
    
    $ tc qdisc add dev eth0 ingress
    
    Examples of filters:
    
    $ tc filter add dev eth0 parent ffff: flower \
         	    dst_mac aa:aa:aa:aa:aa:aa \
    	    hw_tc 2 skip_sw
    (just a simple filter filtering for the destination MAC address and
    steering that traffic to queue 2)
    
    $ tc filter add dev enp2s0 parent ffff: proto 0x22f0 flower \
         	    src_mac cc:cc:cc:cc:cc:cc \
    	    hw_tc 1 skip_sw
    (as the i210 doesn't support steering traffic based on the source
    address alone, we need to use another steering traffic, in this case
    we are using the ethernet type (0x22f0) to steer traffic to queue 1)
    Signed-off-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
    Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    e086be9a
igb_main.c 255 KB