diff options
author | Linus Lüssing <linus.luessing@c0d3.blue> | 2019-01-21 07:26:28 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-01-22 17:18:09 -0800 |
commit | 4b3087c7e37f9e499127201849e33960dc81da11 (patch) | |
tree | 01fb05eabe24132c0fa596c8cf7a536fffda134d /include/linux/in.h | |
parent | 4effd28c1245303dce7fd290c501ac2c11052114 (diff) |
bridge: Snoop Multicast Router Advertisements
When multiple multicast routers are present in a broadcast domain then
only one of them will be detectable via IGMP/MLD query snooping. The
multicast router with the lowest IP address will become the selected and
active querier while all other multicast routers will then refrain from
sending queries.
To detect such rather silent multicast routers, too, RFC4286
("Multicast Router Discovery") provides a standardized protocol to
detect multicast routers for multicast snooping switches.
This patch implements the necessary MRD Advertisement message parsing
and after successful processing adds such routers to the internal
multicast router list.
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/in.h')
-rw-r--r-- | include/linux/in.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/in.h b/include/linux/in.h index 31b493734763..435e7f2a513a 100644 --- a/include/linux/in.h +++ b/include/linux/in.h @@ -60,6 +60,11 @@ static inline bool ipv4_is_lbcast(__be32 addr) return addr == htonl(INADDR_BROADCAST); } +static inline bool ipv4_is_all_snoopers(__be32 addr) +{ + return addr == htonl(INADDR_ALLSNOOPERS_GROUP); +} + static inline bool ipv4_is_zeronet(__be32 addr) { return (addr & htonl(0xff000000)) == htonl(0x00000000); |