• Jacob Keller's avatar
    i40e: disallow programming multiple filters with same criteria · 443ee71a
    Jacob Keller authored
    Our hardware does not allow situations where two filters might conflict
    when matching. Essentially hardware only programs one filter for each
    set of matching criteria. We don't support filters with overlapping
    input sets, because each flow type can only use a single input set.
    
    Additionally, different flow types will never have overlapping matches,
    because of how the hardware parses the flow type before checking
    matching criteria.
    
    For this reason, we do not need or use the location number when
    programming filters to hardware.
    
    In order to avoid confusing scenarios with filters that match the same
    criteria but program the flow to different queues, do not allow multiple
    filters that match identical criteria to be programmed.
    
    This ensures that we avoid odd scenarios when deleting filters, and when
    programming new filters that match the same criteria.
    
    Instead, users that wish to update the criteria for a filter must use
    the same location id, or must delete all the matching filters first.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    443ee71a
i40e_ethtool.c 143 KB