All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gioacchino Mazzurco <gio@eigenlab.org>
To: "'b.a.t.m.a.n@lists.open-mesh.org'" <b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [B.A.T.M.A.N.] [OpenWrt-Devel] [PATCH netifd] bridge: allow enabling or disabling the multicast querier independently of IGMP snooping
Date: Tue, 27 Jan 2015 11:48:09 +0100	[thread overview]
Message-ID: <2512638.rHeWM5fpXe@giomium> (raw)
In-Reply-To: <b4fac27152a34dd39d59ca0b83de0157a8f7805f.1422326992.git.mschiffer@universe-factory.net>

Reading this mail seems that who installa batman-adv nodes should do this 
setting manually, doesn't batman-adv know/(can estimate) who is the goode node 
were to put the querier?

What happen if we have the querier on every node?

Thanks!

On Tuesday, January 27, 2015 03:49:52 AM Matthias Schiffer wrote:
> In larger networks, especially big batman-adv meshes, it may be desirable to
> enable IGMP snooping on every bridge without enabling the multicast querier
> to specifically put the querier on a well-connected node.
> 
> This patch adds a new UCI option 'multicast_querier' for bridges which
> allows this. The default is still the value of the 'igmp_snooping' option
> to maintain backwards compatiblity.
> 
> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
> ---
>  bridge.c       | 8 +++++++-
>  system-linux.c | 2 +-
>  system.h       | 1 +
>  3 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/bridge.c b/bridge.c
> index f8478ad..f7dbf61 100644
> --- a/bridge.c
> +++ b/bridge.c
> @@ -32,6 +32,7 @@ enum {
>  	BRIDGE_ATTR_HELLO_TIME,
>  	BRIDGE_ATTR_MAX_AGE,
>  	BRIDGE_ATTR_BRIDGE_EMPTY,
> +	BRIDGE_ATTR_MULTICAST_QUERIER,
>  	__BRIDGE_ATTR_MAX
>  };
> 
> @@ -45,6 +46,7 @@ static const struct blobmsg_policy
> bridge_attrs[__BRIDGE_ATTR_MAX] = { [BRIDGE_ATTR_MAX_AGE] = { "max_age",
> BLOBMSG_TYPE_INT32 },
>  	[BRIDGE_ATTR_IGMP_SNOOP] = { "igmp_snooping", BLOBMSG_TYPE_BOOL },
>  	[BRIDGE_ATTR_BRIDGE_EMPTY] = { "bridge_empty", BLOBMSG_TYPE_BOOL },
> +	[BRIDGE_ATTR_MULTICAST_QUERIER] = { "multicast_querier", BLOBMSG_TYPE_BOOL
> }, };
> 
>  static const struct uci_blob_param_info bridge_attr_info[__BRIDGE_ATTR_MAX]
> = { @@ -547,6 +549,7 @@ bridge_apply_settings(struct bridge_state *bst,
> struct blob_attr **tb) cfg->stp = false;
>  	cfg->forward_delay = 2;
>  	cfg->igmp_snoop = true;
> +	cfg->multicast_querier = true;
>  	cfg->bridge_empty = false;
>  	cfg->priority = 0x7FFF;
> 
> @@ -560,7 +563,10 @@ bridge_apply_settings(struct bridge_state *bst, struct
> blob_attr **tb) cfg->priority = blobmsg_get_u32(cur);
> 
>  	if ((cur = tb[BRIDGE_ATTR_IGMP_SNOOP]))
> -		cfg->igmp_snoop = blobmsg_get_bool(cur);
> +		cfg->multicast_querier = cfg->igmp_snoop = blobmsg_get_bool(cur);
> +
> +	if ((cur = tb[BRIDGE_ATTR_MULTICAST_QUERIER]))
> +		cfg->multicast_querier = blobmsg_get_bool(cur);
> 
>  	if ((cur = tb[BRIDGE_ATTR_AGEING_TIME])) {
>  		cfg->ageing_time = blobmsg_get_u32(cur);
> diff --git a/system-linux.c b/system-linux.c
> index 4737fa6..ef90880 100644
> --- a/system-linux.c
> +++ b/system-linux.c
> @@ -772,7 +772,7 @@ int system_bridge_addbr(struct device *bridge, struct
> bridge_config *cfg) bridge->ifname, cfg->igmp_snoop ? "1" : "0");
> 
>  	
system_set_dev_sysctl("/sys/devices/virtual/net/%s/bridge/multicast_querie
> r", -		bridge->ifname, cfg->igmp_snoop ? "1" : "0");
> +		bridge->ifname, cfg->multicast_querier ? "1" : "0");
> 
>  	args[0] = BRCTL_SET_BRIDGE_PRIORITY;
>  	args[1] = cfg->priority;
> diff --git a/system.h b/system.h
> index 9a2326b..94e0dd9 100644
> --- a/system.h
> +++ b/system.h
> @@ -50,6 +50,7 @@ struct bridge_config {
>  	enum bridge_opt flags;
>  	bool stp;
>  	bool igmp_snoop;
> +	bool multicast_querier;
>  	unsigned short priority;
>  	int forward_delay;
>  	bool bridge_empty;


       reply	other threads:[~2015-01-27 10:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <b4fac27152a34dd39d59ca0b83de0157a8f7805f.1422326992.git.mschiffer@universe-factory.net>
2015-01-27 10:48 ` Gioacchino Mazzurco [this message]
2015-01-27 11:43   ` [B.A.T.M.A.N.] [OpenWrt-Devel] [PATCH netifd] bridge: allow enabling or disabling the multicast querier independently of IGMP snooping Matthias Schiffer
2015-01-30  8:14   ` Linus Lüssing
2015-01-30  9:30     ` Gioacchino Mazzurco

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2512638.rHeWM5fpXe@giomium \
    --to=gio@eigenlab.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.