diff options
author | Nikolay Aleksandrov <nikolay@nvidia.com> | 2021-08-10 18:29:29 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-08-11 15:34:41 +0300 |
commit | cb486ce99576741a84c75623daeffb2f7758cbf9 (patch) | |
tree | 5f5033aa49997896d79e0aa9a484685a817c3e9f /net/bridge/br_private.h | |
parent | 4d5b4e84c72451face4d7817697684196cbee50d (diff) | |
download | linux-cb486ce99576741a84c75623daeffb2f7758cbf9.tar.xz |
net: bridge: mcast: querier and query state affect only current context type
It is a minor optimization and better behaviour to make sure querier and
query sending routines affect only the matching multicast context
depending if vlan snooping is enabled (vlan ctx vs bridge ctx).
It also avoids sending unnecessary extra query packets.
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.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index b85203e8eb26..a1529f0bafcc 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -1196,6 +1196,17 @@ br_multicast_ctx_options_equal(const struct net_bridge_mcast *brmctx1, #endif true; } + +static inline bool +br_multicast_ctx_matches_vlan_snooping(const struct net_bridge_mcast *brmctx) +{ + bool vlan_snooping_enabled; + + vlan_snooping_enabled = !!br_opt_get(brmctx->br, + BROPT_MCAST_VLAN_SNOOPING_ENABLED); + + return !!(vlan_snooping_enabled == br_multicast_ctx_is_vlan(brmctx)); +} #else static inline int br_multicast_rcv(struct net_bridge_mcast **brmctx, struct net_bridge_mcast_port **pmctx, |