diff options
author | Nikolay Aleksandrov <nikolay@nvidia.com> | 2021-01-20 17:51:58 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-01-23 06:39:56 +0300 |
commit | 474ddb37fa3ad0454f8d07bb9fb53ceab190b667 (patch) | |
tree | 9d449130b74d9a82e14f527bfb11e0f486e49941 /net/bridge/br_private_mcast_eht.h | |
parent | dba6b0a5ca21c7c270977879f5670c78823e0da2 (diff) | |
download | linux-474ddb37fa3ad0454f8d07bb9fb53ceab190b667.tar.xz |
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.h | 6 |
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_ */ |