[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1417010013-31454-1-git-send-email-roopa@cumulusnetworks.com>
Date: Wed, 26 Nov 2014 05:53:33 -0800
From: roopa@...ulusnetworks.com
To: vyasevich@...il.com, stephen@...workplumber.org,
roopa@...ulusnetworks.com
Cc: netdev@...r.kernel.org, wkok@...ulusnetworks.com,
gospo@...ulusnetworks.com, jtoppins@...ulusnetworks.com,
sashok@...ulusnetworks.com
Subject: [PATCH net-next] bridge: add vlan id to mdb notifications
From: Roopa Prabhu <roopa@...ulusnetworks.com>
This patch adds vlan id to bridge mdb notifications.
I have tested it with older iproute2 and does not seem to break
compatibility.
Signed-off-by: Wilson kok <wkok@...ulusnetworks.com>
Signed-off-by: Roopa Prabhu <roopa@...ulusnetworks.com>
---
include/uapi/linux/if_bridge.h | 1 +
net/bridge/br_mdb.c | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
index da17e45..db061fd 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -185,6 +185,7 @@ struct br_mdb_entry {
struct in6_addr ip6;
} u;
__be16 proto;
+ __be16 vid;
} addr;
};
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
index 5df0526..fa28540 100644
--- a/net/bridge/br_mdb.c
+++ b/net/bridge/br_mdb.c
@@ -92,6 +92,7 @@ static int br_mdb_fill_info(struct sk_buff *skb, struct netlink_callback *cb,
e.addr.u.ip6 = p->addr.u.ip6;
#endif
e.addr.proto = p->addr.proto;
+ e.addr.vid = p->addr.vid;
if (nla_put(skb, MDBA_MDB_ENTRY_INFO, sizeof(e), &e)) {
nla_nest_cancel(skb, nest2);
err = -EMSGSIZE;
@@ -240,6 +241,7 @@ void br_mdb_notify(struct net_device *dev, struct net_bridge_port *port,
#if IS_ENABLED(CONFIG_IPV6)
entry.addr.u.ip6 = group->u.ip6;
#endif
+ entry.addr.vid = group->vid;
__br_mdb_notify(dev, &entry, type);
}
@@ -377,6 +379,7 @@ static int __br_mdb_add(struct net *net, struct net_bridge *br,
else
ip.u.ip6 = entry->addr.u.ip6;
#endif
+ ip.vid = entry->addr.vid;
spin_lock_bh(&br->multicast_lock);
ret = br_mdb_add_group(br, p, &ip, entry->state);
@@ -430,6 +433,7 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry)
ip.u.ip6 = entry->addr.u.ip6;
#endif
}
+ ip.vid = entry->addr.vid;
spin_lock_bh(&br->multicast_lock);
mdb = mlock_dereference(br->mdb, br);
--
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists