diff options
| author | Jiri Pirko <jpirko@redhat.com> | 2011-08-16 02:29:00 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-08-17 23:21:27 -0400 |
| commit | 01789349ee52e4a3faf376f1485303d9723c4f1f (patch) | |
| tree | cea58b51337ffda221f67d47dd234e52f76f65cf /include | |
| parent | d03462b999307ec5c186851ec9c5751bd5a675f7 (diff) | |
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 03489ca92ded..db20bd4fd16b 100644 --- a/include/linux/if.h +++ b/include/linux/if.h | |||
| @@ -78,6 +78,7 @@ | |||
| 78 | * datapath port */ | 78 | * datapath port */ |
| 79 | #define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing | 79 | #define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing |
| 80 | * skbs on transmit */ | 80 | * skbs on transmit */ |
| 81 | #define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */ | ||
| 81 | 82 | ||
| 82 | #define IF_GET_IFACE 0x0001 /* for querying only */ | 83 | #define IF_GET_IFACE 0x0001 /* for querying only */ |
| 83 | #define IF_GET_PROTO 0x0002 | 84 | #define IF_GET_PROTO 0x0002 |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index ddee79bb8f15..96e4f7e0ad68 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -723,6 +723,8 @@ struct netdev_tc_txq { | |||
| 723 | * | 723 | * |
| 724 | * void (*ndo_set_rx_mode)(struct net_device *dev); | 724 | * void (*ndo_set_rx_mode)(struct net_device *dev); |
| 725 | * This function is called device changes address list filtering. | 725 | * This function is called device changes address list filtering. |
| 726 | * If driver handles unicast address filtering, it should set | ||
| 727 | * IFF_UNICAST_FLT to its priv_flags. | ||
| 726 | * | 728 | * |
| 727 | * void (*ndo_set_multicast_list)(struct net_device *dev); | 729 | * void (*ndo_set_multicast_list)(struct net_device *dev); |
| 728 | * This function is called when the multicast address list changes. | 730 | * This function is called when the multicast address list changes. |
