• Avinash Dayanand's avatar
    i40e: Enable ADq and create queue channel/s on VF · c27eac48
    Avinash Dayanand authored
    This patch enables ADq and creates queue channels on a VF. An ADq
    enabled VF can have up to 4 VSIs and each one of them represents
    a traffic class and this is termed as a queue channel. Each of these
    VSIs can have up to 4 queues. This patch services the request for
    enabling ADq and adds queue channel based on the TC mqprio info
    provided by the user in the VF.
    
    Initially a check is made to see if spoof check is OFF, if not ADq
    will not be enabled. PF notifies VF for a reset in order to complete
    the creation of ADq resources i.e. creation of additional VSIs and
    allocation of queues as per TC information, all in the reset path.
    
    Steps:
    ======
    1. Turn off the spoof check
    2. Enable ADq using tc mqprio command with or without rate limit.
    3. Pass traffic.
    
    Example:
    ========
    % ip link set dev eth0 vf 0 spoofchk off
    % tc qdisc add dev $iface root mqprio num_tc 4 map\
    	0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 queues\
    	4@0 4@4 4@8 4@8 hw 1 mode channel
    
    Expected results:
    =================
    1. Total number of queues for the VF should be sum of queues of all TCs.
    2. Traffic flow should be normal without errors.
    Signed-off-by: default avatarAvinash Dayanand <avinash.dayanand@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    c27eac48
i40e_virtchnl_pf.c 97 KB