mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 07:04:10 +08:00
vlan: turn on unicast filtering on vlan device
Currently vlan device inherits unicast filtering flag from underlying device. If underlying device doesn't support unicast filter, this will put vlan device into promiscuous mode when it's stacked. Tun on IFF_UNICAST_FLT on the vlan device in any case so that it does not go into promiscuous mode needlessly. If underlying device does not support unicast filtering, that device will enter promiscuous mode. Signed-off-by: Zhang Shengju <zhangshengju@cmss.chinamobile.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
80c804bfc4
commit
e817af27e0
@ -261,7 +261,6 @@ static int register_vlan_device(struct net_device *real_dev, u16 vlan_id)
|
||||
* hope the underlying device can handle it.
|
||||
*/
|
||||
new_dev->mtu = real_dev->mtu;
|
||||
new_dev->priv_flags |= (real_dev->priv_flags & IFF_UNICAST_FLT);
|
||||
|
||||
vlan = vlan_dev_priv(new_dev);
|
||||
vlan->vlan_proto = htons(ETH_P_8021Q);
|
||||
|
@ -799,6 +799,7 @@ void vlan_setup(struct net_device *dev)
|
||||
ether_setup(dev);
|
||||
|
||||
dev->priv_flags |= IFF_802_1Q_VLAN | IFF_NO_QUEUE;
|
||||
dev->priv_flags |= IFF_UNICAST_FLT;
|
||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||
netif_keep_dst(dev);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user