aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorIdo Schimmel <idosch@mellanox.com>2018-11-21 08:02:41 +0000
committerDavid S. Miller <davem@davemloft.net>2018-11-21 17:10:31 -0800
commit085ddc87d05fdf649ccee7a7da42110e9e1c6311 (patch)
tree56d6bca9a1f8aab3e11d8f3ff5c3bcd8f5e2455a /net/bridge
parentvxlan: Allow changing ageing time (diff)
downloadlinux-dev-085ddc87d05fdf649ccee7a7da42110e9e1c6311.tar.xz
linux-dev-085ddc87d05fdf649ccee7a7da42110e9e1c6311.zip
bridge: Allow querying bridge port flags
Allow querying bridge port flags so that drivers capable of performing VxLAN learning will update the bridge driver only if learning is enabled on its bridge port corresponding to the VxLAN device. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Reviewed-by: Petr Machata <petrm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/br_if.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 9b46d2dc4c22..d4863f5679ac 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -741,3 +741,15 @@ void br_port_flags_change(struct net_bridge_port *p, unsigned long mask)
if (mask & BR_NEIGH_SUPPRESS)
br_recalculate_neigh_suppress_enabled(br);
}
+
+bool br_port_flag_is_set(const struct net_device *dev, unsigned long flag)
+{
+ struct net_bridge_port *p;
+
+ p = br_port_get_rtnl_rcu(dev);
+ if (!p)
+ return false;
+
+ return p->flags & flag;
+}
+EXPORT_SYMBOL_GPL(br_port_flag_is_set);