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/uapi/linux | |
parent | 4effd28c1245303dce7fd290c501ac2c11052114 (diff) | |
download | linux-4b3087c7e37f9e499127201849e33960dc81da11.tar.gz linux-4b3087c7e37f9e499127201849e33960dc81da11.tar.bz2 linux-4b3087c7e37f9e499127201849e33960dc81da11.zip |
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/uapi/linux')
-rw-r--r-- | include/uapi/linux/icmpv6.h | 2 | ||||
-rw-r--r-- | include/uapi/linux/igmp.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/include/uapi/linux/icmpv6.h b/include/uapi/linux/icmpv6.h index caf8dc019250..325395f56bfa 100644 --- a/include/uapi/linux/icmpv6.h +++ b/include/uapi/linux/icmpv6.h @@ -108,6 +108,8 @@ struct icmp6hdr { #define ICMPV6_MOBILE_PREFIX_SOL 146 #define ICMPV6_MOBILE_PREFIX_ADV 147 +#define ICMPV6_MRDISC_ADV 151 + /* * Codes for Destination Unreachable */ diff --git a/include/uapi/linux/igmp.h b/include/uapi/linux/igmp.h index 7e44ac02ca18..90c28bc466c6 100644 --- a/include/uapi/linux/igmp.h +++ b/include/uapi/linux/igmp.h @@ -93,6 +93,7 @@ struct igmpv3_query { #define IGMP_MTRACE_RESP 0x1e #define IGMP_MTRACE 0x1f +#define IGMP_MRDISC_ADV 0x30 /* From RFC4286 */ /* * Use the BSD names for these for compatibility |