• Alan Brady's avatar
    i40e: do not force filter failure in overflow promiscuous · 7363115e
    Alan Brady authored
    Broadcast filters can now cause overflow promiscuous to trigger when
    adding "too many" VLANs to all the ports of a device and the driver
    needs a way to exit overflow promiscuous once triggered.
    
    Currently the driver looks to see if there are "too many" filters and/or
    we have any failed filters to determine when it is safe to exit overflow
    promiscuous.  If we trigger overflow promiscuous with broadcast filters,
    any new filters added will be "auto-failed" until we exit overflow
    promiscuous.  Since the user can't manually remove the failed broadcast
    filters for VLANs (nor should we expect the user to do such), there is
    no way to exit overflow promiscuous without reloading the driver.
    
    The easiest way to do this is to remove the shortcut to "auto-fail"
    filters in overflow promiscuous.  If the user removes the VLANs, the
    failed filters will be removed and since we're no longer "auto-failing"
    new filters, we'll eventually get a good set of filters and exit
    overflow promiscuous.
    
    This has the side benefit of making filter state more explicit in that
    if a filter says it's failed we know for a fact it failed and not just
    assuming it will if we're in overflow promiscuous.  This is nice because
    if the user removes some filters and then adds some, even if we're in
    overflow promiscuous, the filter might succeed; we were just assuming it
    won't because the user hasn't rectified other existing failed filters.
    Signed-off-by: default avatarAlan Brady <alan.brady@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    7363115e
i40e_main.c 395 KB