• Piotr Gardocki's avatar
    iavf: Introduce new state machines for flow director · 3a0b5a29
    Piotr Gardocki authored
    New states introduced:
    
     IAVF_FDIR_FLTR_DIS_REQUEST
     IAVF_FDIR_FLTR_DIS_PENDING
     IAVF_FDIR_FLTR_INACTIVE
    
    Current FDIR state machines (SM) are not adequate to handle a few
    scenarios in the link DOWN/UP event, reset event and ntuple-feature.
    
    For example, when VF link goes DOWN and comes back UP administratively,
    the expectation is that previously installed filters should also be
    restored. But with current SM, filters are not restored.
    So with new SM, during link DOWN filters are marked as INACTIVE in
    the iavf list but removed from PF. After link UP, SM will transition
    from INACTIVE to ADD_REQUEST to restore the filter.
    
    Similarly, with VF reset, filters will be removed from the PF, but
    marked as INACTIVE in the iavf list. Filters will be restored after
    reset completion.
    
    Steps to reproduce:
    -------------------
    
    1. Create a VF. Here VF is enp8s0.
    
    2. Assign IP addresses to VF and link partner and ping continuously
    from remote. Here remote IP is 1.1.1.1.
    
    3. Check default RX Queue of traffic.
    
    ethtool -S enp8s0 | grep -E "rx-[[:digit:]]+\.packets"
    
    4. Add filter - change default RX Queue (to 15 here)
    
    ethtool -U ens8s0 flow-type ip4 src-ip 1.1.1.1 action 15 loc 5
    
    5. Ensure filter gets added and traffic is received on RX queue 15 now.
    
    Link event testing:
    -------------------
    6. Bring VF link down and up. If traffic flows to configured queue 15,
    test is success, otherwise it is a failure.
    
    Reset event testing:
    --------------------
    7. Reset the VF. If traffic flows to configured queue 15, test is success,
    otherwise it is a failure.
    
    Fixes: 0dbfbabb ("iavf: Add framework to enable ethtool ntuple filters")
    Signed-off-by: default avatarPiotr Gardocki <piotrx.gardocki@intel.com>
    Reviewed-by: default avatarLarysa Zaremba <larysa.zaremba@intel.com>
    Signed-off-by: default avatarRanganatha Rao <ranganatha.rao@intel.com>
    Tested-by: default avatarRafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    3a0b5a29
iavf_virtchnl.c 71.2 KB