diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2013-11-21 19:02:18 +0000 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2013-12-12 22:07:22 +0000 |
commit | 7665d1abea22cb44d4f0bac99e77275eba39bbf1 (patch) | |
tree | b50444ccc9597cff1871e7c0e04f890f8a85b247 /drivers/net/ethernet/sfc/efx.h | |
parent | d43050c0c7d930cdeb10fb9201d9e2d005cef02a (diff) |
sfc: Change priority and flags for automatic MAC filters
MAC filters inserted automatically by the driver, based on the device
address list (EF10) or no-match filters (Siena), should be overridable
at MANUAL or REQUIRED priority. Currently they themselves have
REQUIRED priority and this requires some odd special-casing.
We also can't reliably tell whether such a MAC filter has or has
not been overridden. We just remember that it is wanted by the
stack (RX_STACK flag).
Add another priority level, AUTO, between HINT and MANUAL, and
use this for the automatic filters while they have not been
overridden. Remove the RX_STACK flag. Add an RX_OVER_AUTO
flag which is set only when an AUTO filter has been overridden
(or was requested to be inserted while a higher-priority filter
existed).
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Diffstat (limited to 'drivers/net/ethernet/sfc/efx.h')
-rw-r--r-- | drivers/net/ethernet/sfc/efx.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/efx.h b/drivers/net/ethernet/sfc/efx.h index a653786fbbe..3a67030c73e 100644 --- a/drivers/net/ethernet/sfc/efx.h +++ b/drivers/net/ethernet/sfc/efx.h @@ -138,6 +138,9 @@ efx_filter_get_filter_safe(struct efx_nic *efx, * efx_farch_filter_clear_rx - remove RX filters by priority * @efx: NIC from which to remove the filters * @priority: Maximum priority to remove + * + * Remove all RX filters whose priority is less than or equal to the + * given @priority and is not %EFX_FILTER_PRI_AUTO. */ static inline void efx_filter_clear_rx(struct efx_nic *efx, enum efx_filter_priority priority) |