summaryrefslogtreecommitdiffstats
path: root/net/bridge/br_private_mcast_eht.h
diff options
context:
space:
mode:
authorNikolay Aleksandrov <nikolay@nvidia.com>2021-01-20 16:51:58 +0200
committerJakub Kicinski <kuba@kernel.org>2021-01-22 19:39:56 -0800
commit474ddb37fa3ad0454f8d07bb9fb53ceab190b667 (patch)
tree9d449130b74d9a82e14f527bfb11e0f486e49941 /net/bridge/br_private_mcast_eht.h
parentdba6b0a5ca21c7c270977879f5670c78823e0da2 (diff)
downloadlinux-474ddb37fa3ad0454f8d07bb9fb53ceab190b667.tar.bz2
net: bridge: multicast: add EHT allow/block handling
Add support for IGMPv3/MLDv2 allow/block EHT handling. Similar to how the reports are processed we have 2 cases when the group is in include or exclude mode, these are processed as follows: - group include - allow: create missing entries - block: remove existing matching entries and remove the corresponding S,G entries if there are no more set host entries, then possibly delete the whole group if there are no more S,G entries - group exclude - allow - host include: create missing entries - host exclude: remove existing matching entries and remove the corresponding S,G entries if there are no more set host entries - block - host include: remove existing matching entries and remove the corresponding S,G entries if there are no more set host entries, then possibly delete the whole group if there are no more S,G entries - host exclude: create missing entries Signed-off-by: Nikolay Aleksandrov <nikolay@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/bridge/br_private_mcast_eht.h')
-rw-r--r--net/bridge/br_private_mcast_eht.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/bridge/br_private_mcast_eht.h b/net/bridge/br_private_mcast_eht.h
index bba507c9acb0..92933822301d 100644
--- a/net/bridge/br_private_mcast_eht.h
+++ b/net/bridge/br_private_mcast_eht.h
@@ -48,5 +48,11 @@ struct net_bridge_group_eht_set {
};
void br_multicast_eht_clean_sets(struct net_bridge_port_group *pg);
+bool br_multicast_eht_handle(struct net_bridge_port_group *pg,
+ void *h_addr,
+ void *srcs,
+ u32 nsrcs,
+ size_t addr_size,
+ int grec_type);
#endif /* _BR_PRIVATE_MCAST_EHT_H_ */