diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-08-16 06:29:00 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-08-17 20:21:27 -0700 |
commit | 01789349ee52e4a3faf376f1485303d9723c4f1f (patch) | |
tree | cea58b51337ffda221f67d47dd234e52f76f65cf /include | |
parent | d03462b999307ec5c186851ec9c5751bd5a675f7 (diff) | |
download | linux-3.10-01789349ee52e4a3faf376f1485303d9723c4f1f.tar.gz linux-3.10-01789349ee52e4a3faf376f1485303d9723c4f1f.tar.bz2 linux-3.10-01789349ee52e4a3faf376f1485303d9723c4f1f.zip |
net: introduce IFF_UNICAST_FLT private flag
Use IFF_UNICAST_FTL to find out if driver handles unicast address
filtering. In case it does not, promisc mode is entered.
Patch also fixes following drivers:
stmmac, niu: support uc filtering and yet it propagated
ndo_set_multicast_list
bna, benet, pxa168_eth, ks8851, ks8851_mll, ksz884x : has set
ndo_set_rx_mode but do not support uc filtering
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/if.h | 1 | ||||
-rw-r--r-- | include/linux/netdevice.h | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/if.h b/include/linux/if.h index 03489ca92de..db20bd4fd16 100644 --- a/include/linux/if.h +++ b/include/linux/if.h @@ -78,6 +78,7 @@ * datapath port */ #define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing * skbs on transmit */ +#define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */ #define IF_GET_IFACE 0x0001 /* for querying only */ #define IF_GET_PROTO 0x0002 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index ddee79bb8f1..96e4f7e0ad6 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -723,6 +723,8 @@ struct netdev_tc_txq { * * void (*ndo_set_rx_mode)(struct net_device *dev); * This function is called device changes address list filtering. + * If driver handles unicast address filtering, it should set + * IFF_UNICAST_FLT to its priv_flags. * * void (*ndo_set_multicast_list)(struct net_device *dev); * This function is called when the multicast address list changes. |