aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/br_private.h
diff options
context:
space:
mode:
authorNikolay Aleksandrov <nikolay@nvidia.com>2021-08-10 18:29:30 +0300
committerDavid S. Miller <davem@davemloft.net>2021-08-11 13:34:41 +0100
commit62938182c35906c0ed4beb7845b93b8ffb937597 (patch)
treed1fd7bbacb3ad3c9c279d88fac32a01710cfafac /net/bridge/br_private.h
parentnet: bridge: mcast: querier and query state affect only current context type (diff)
downloadlinux-dev-62938182c35906c0ed4beb7845b93b8ffb937597.tar.xz
linux-dev-62938182c35906c0ed4beb7845b93b8ffb937597.zip
net: bridge: vlan: add support for mcast querier global option
Add support to change and retrieve global vlan multicast querier state. We just need to pass multicast context to br_multicast_set_querier instead of bridge device and the rest of the logic remains the same. Signed-off-by: Nikolay Aleksandrov <nikolay@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r--net/bridge/br_private.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index a1529f0bafcc..40477885fb2a 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -881,7 +881,7 @@ int br_multicast_set_router(struct net_bridge *br, unsigned long val);
int br_multicast_set_port_router(struct net_bridge_port *p, unsigned long val);
int br_multicast_toggle(struct net_bridge *br, unsigned long val,
struct netlink_ext_ack *extack);
-int br_multicast_set_querier(struct net_bridge *br, unsigned long val);
+int br_multicast_set_querier(struct net_bridge_mcast *brmctx, unsigned long val);
int br_multicast_set_hash_max(struct net_bridge *br, unsigned long val);
int br_multicast_set_igmp_version(struct net_bridge_mcast *brmctx,
unsigned long val);
@@ -1028,7 +1028,7 @@ __br_multicast_querier_exists(struct net_bridge_mcast *brmctx,
{
bool own_querier_enabled;
- if (READ_ONCE(brmctx->multicast_querier)) {
+ if (brmctx->multicast_querier) {
if (is_ipv6 && !br_opt_get(brmctx->br, BROPT_HAS_IPV6_ADDR))
own_querier_enabled = false;
else
@@ -1190,6 +1190,7 @@ br_multicast_ctx_options_equal(const struct net_bridge_mcast *brmctx1,
brmctx2->multicast_query_response_interval &&
brmctx1->multicast_startup_query_interval ==
brmctx2->multicast_startup_query_interval &&
+ brmctx1->multicast_querier == brmctx2->multicast_querier &&
#if IS_ENABLED(CONFIG_IPV6)
brmctx1->multicast_mld_version ==
brmctx2->multicast_mld_version &&