Toshiaki Makita
2014-Jul-30 04:31 UTC
[Bridge] [PATCH net] bridge: Don't include NDA_VLAN for FDB entries with vid 0
An FDB entry with vlan_id 0 doesn't mean it is used in vlan 0, but used when vlan_filtering is disabled. There is inconsistency around NDA_VLAN whose payload is 0 - even if we add an entry by RTM_NEWNEIGH without any NDA_VLAN, and even though adding an entry with NDA_VLAN 0 is prohibited, we get an entry with NDA_VLAN 0 by RTM_GETNEIGH. Dumping an FDB entry with vlan_id 0 shouldn't include NDA_VLAN. Signed-off-by: Toshiaki Makita <makita.toshiaki at lab.ntt.co.jp> --- net/bridge/br_fdb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index b524c36..02359e8 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -631,7 +631,7 @@ static int fdb_fill_info(struct sk_buff *skb, const struct net_bridge *br, if (nla_put(skb, NDA_CACHEINFO, sizeof(ci), &ci)) goto nla_put_failure; - if (nla_put(skb, NDA_VLAN, sizeof(u16), &fdb->vlan_id)) + if (fdb->vlan_id && nla_put(skb, NDA_VLAN, sizeof(u16), &fdb->vlan_id)) goto nla_put_failure; return nlmsg_end(skb, nlh); -- 1.8.1.2
David Miller
2014-Jul-31 19:19 UTC
[Bridge] [PATCH net] bridge: Don't include NDA_VLAN for FDB entries with vid 0
From: Toshiaki Makita <makita.toshiaki at lab.ntt.co.jp> Date: Wed, 30 Jul 2014 13:31:51 +0900> An FDB entry with vlan_id 0 doesn't mean it is used in vlan 0, but used when > vlan_filtering is disabled. > > There is inconsistency around NDA_VLAN whose payload is 0 - even if we add > an entry by RTM_NEWNEIGH without any NDA_VLAN, and even though adding an > entry with NDA_VLAN 0 is prohibited, we get an entry with NDA_VLAN 0 by > RTM_GETNEIGH. > > Dumping an FDB entry with vlan_id 0 shouldn't include NDA_VLAN. > > Signed-off-by: Toshiaki Makita <makita.toshiaki at lab.ntt.co.jp>This is clearly the right thing to do, since upon FDB addition we reject NDA_VLAN attributes with value zero. Applied, thanks.