bridge: mcast: add MLDv2 querier support
This patch adds basic support for MLDv2 queries, the default is MLDv1 as before. A new multicast option - multicast_mld_version, adds the ability to change it between 1 and 2 via netlink and sysfs. The MLD option is disabled if CONFIG_IPV6 is disabled. Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
5e9235853d
commit
aa2ae3e71c
@@ -659,6 +659,25 @@ static ssize_t multicast_stats_enabled_store(struct device *d,
|
||||
return store_bridge_parm(d, buf, len, set_stats_enabled);
|
||||
}
|
||||
static DEVICE_ATTR_RW(multicast_stats_enabled);
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
static ssize_t multicast_mld_version_show(struct device *d,
|
||||
struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
struct net_bridge *br = to_bridge(d);
|
||||
|
||||
return sprintf(buf, "%u\n", br->multicast_mld_version);
|
||||
}
|
||||
|
||||
static ssize_t multicast_mld_version_store(struct device *d,
|
||||
struct device_attribute *attr,
|
||||
const char *buf, size_t len)
|
||||
{
|
||||
return store_bridge_parm(d, buf, len, br_multicast_set_mld_version);
|
||||
}
|
||||
static DEVICE_ATTR_RW(multicast_mld_version);
|
||||
#endif
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
|
||||
static ssize_t nf_call_iptables_show(
|
||||
@@ -827,6 +846,9 @@ static struct attribute *bridge_attrs[] = {
|
||||
&dev_attr_multicast_startup_query_interval.attr,
|
||||
&dev_attr_multicast_stats_enabled.attr,
|
||||
&dev_attr_multicast_igmp_version.attr,
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
&dev_attr_multicast_mld_version.attr,
|
||||
#endif
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
|
||||
&dev_attr_nf_call_iptables.attr,
|
||||
|
Reference in New Issue
Block a user