All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table
@ 2014-02-24  4:11 Linus Lüssing
  2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Linus Lüssing @ 2014-02-24  4:11 UTC (permalink / raw)
  To: b.a.t.m.a.n

A commit in batman-adv has added a second header line to the local
translation table output.

Introduced by 59cb0861498776c62bd17584c31f34477fa301a0
("batman-adv: improve local translation table output")

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
---
 debug.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debug.c b/debug.c
index d57324d..6836857 100644
--- a/debug.c
+++ b/debug.c
@@ -45,7 +45,7 @@ const struct debug_table_data batctl_debug_tables[BATCTL_TABLE_NUM] = {
 		.opt_long = "translocal",
 		.opt_short = "tl",
 		.debugfs_name = "transtable_local",
-		.header_lines = 1,
+		.header_lines = 2,
 	},
 	{
 		.opt_long = "transglobal",
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [B.A.T.M.A.N.] [PATCH 2/3] batctl: add switch for setting multicast_mode
  2014-02-24  4:11 [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
@ 2014-02-24  4:11 ` Linus Lüssing
  2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 3/3] batctl: add unicast/multicast address filter option for TT output Linus Lüssing
  2014-02-27 10:28 ` [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table Antonio Quartulli
  2 siblings, 0 replies; 5+ messages in thread
From: Linus Lüssing @ 2014-02-24  4:11 UTC (permalink / raw)
  To: b.a.t.m.a.n

This patch adds a switch for the new multicast_mode setting in
batman-adv.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
---
 README       |    7 +++++++
 man/batctl.8 |    4 ++++
 sys.c        |    6 ++++++
 sys.h        |    1 +
 4 files changed, 18 insertions(+)

diff --git a/README b/README
index 5af95c8..69c7a07 100644
--- a/README
+++ b/README
@@ -392,6 +392,13 @@ Usage: batctl network_coding|nc [0|1]
 
 Note that network coding requires a working promiscuous mode on all interfaces.
 
+batctl multicast_mode
+=====================
+
+display or modify the multicast mode setting
+
+Usage: batctl multicast_mode|mm [0|1]
+
 batctl aggregation
 ==================
 
diff --git a/man/batctl.8 b/man/batctl.8
index 2fe5941..a8e8868 100644
--- a/man/batctl.8
+++ b/man/batctl.8
@@ -88,6 +88,10 @@ disable fragmentation.
 If no parameter is given the current network coding mode setting is displayed. Otherwise the parameter is used to enable or
 disable network coding.
 .br
+.IP "\fBmulticast_mode\fP|\fBmm\fP [\fB0\fP|\fB1\fP]"
+If no parameter is given the current multicast mode setting is displayed. Otherwise the parameter is used to enable or
+disable multicast optimizations (i.e. disabling means always sending own multicast frames via classic flooding).
+.br
 .IP "\fBloglevel\fP|\fBll\fP [\fBlevel\fP[ \fBlevel\fP[ \fBlevel\fP]] \fB...\fP]"
 If no parameter is given the current log level settings are displayed otherwise the parameter(s) is/are used to set the log
 level. Level 'none' disables all verbose logging. Level 'batman' enables messages related to routing / flooding / broadcasting.
diff --git a/sys.c b/sys.c
index 5cebf52..45fb656 100644
--- a/sys.c
+++ b/sys.c
@@ -96,6 +96,12 @@ const struct settings_data batctl_settings[BATCTL_SETTINGS_NUM] = {
 		.opt_short = "nc",
 		.sysfs_name = "network_coding",
 		.params = sysfs_param_enable,
+	},
+	{
+		.opt_long = "multicast_mode",
+		.opt_short = "mm",
+		.sysfs_name = "multicast_mode",
+		.params = sysfs_param_enable,
 	}
 
 };
diff --git a/sys.h b/sys.h
index 2cbbcfb..9016501 100644
--- a/sys.h
+++ b/sys.h
@@ -46,6 +46,7 @@ enum batctl_settings_list {
 	BATCTL_SETTINGS_BONDING,
 	BATCTL_SETTINGS_FRAGMENTATION,
 	BATCTL_SETTINGS_NETWORK_CODING,
+	BATCTL_SETTINGS_MULTICAST_MODE,
 	BATCTL_SETTINGS_NUM,
 };
 
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [B.A.T.M.A.N.] [PATCH 3/3] batctl: add unicast/multicast address filter option for TT output
  2014-02-24  4:11 [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
  2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
@ 2014-02-24  4:11 ` Linus Lüssing
  2014-02-27 12:24   ` Antonio Quartulli
  2014-02-27 10:28 ` [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table Antonio Quartulli
  2 siblings, 1 reply; 5+ messages in thread
From: Linus Lüssing @ 2014-02-24  4:11 UTC (permalink / raw)
  To: b.a.t.m.a.n

This patch adds the new "-u" and "-m" options for the local and global
translation table output to only display announced unicast or multicast
mac addresses to enhance readability.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
---
 debug.c      |   27 ++++++++++++++++++++++++++-
 functions.c  |   16 ++++++++++++++++
 functions.h  |    2 ++
 man/batctl.8 |    2 ++
 4 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/debug.c b/debug.c
index 6836857..b8f9a07 100644
--- a/debug.c
+++ b/debug.c
@@ -91,6 +91,11 @@ static void debug_table_usage(int debug_table)
 
 	if (debug_table == BATCTL_TABLE_ORIGINATORS)
 		fprintf(stderr, " \t -t timeout interval - don't print originators not seen for x.y seconds \n");
+	if (debug_table == BATCTL_TABLE_TRANSLOCAL ||
+	    debug_table == BATCTL_TABLE_TRANSGLOBAL) {
+		fprintf(stderr, " \t -u print unicast mac addresses only\n");
+		fprintf(stderr, " \t -m print multicast mac addresses only\n");
+	}
 }
 
 int handle_debug_table(char *mesh_iface, int debug_table, int argc, char **argv)
@@ -102,7 +107,7 @@ int handle_debug_table(char *mesh_iface, int debug_table, int argc, char **argv)
 	float watch_interval = 1;
 	opterr = 0;
 
-	while ((optchar = getopt(argc, argv, "hnw:t:H")) != -1) {
+	while ((optchar = getopt(argc, argv, "hnw:t:Hum")) != -1) {
 		switch (optchar) {
 		case 'h':
 			debug_table_usage(debug_table);
@@ -138,6 +143,26 @@ int handle_debug_table(char *mesh_iface, int debug_table, int argc, char **argv)
 		case 'H':
 			read_opt |= SKIP_HEADER;
 			break;
+		case 'u':
+			if (debug_table != BATCTL_TABLE_TRANSLOCAL &&
+			    debug_table != BATCTL_TABLE_TRANSGLOBAL) {
+				fprintf(stderr, "Error - unrecognised option '-%c'\n", optchar);
+				debug_table_usage(debug_table);
+				return EXIT_FAILURE;
+			}
+
+			read_opt |= UNICAST_ONLY;
+			break;
+		case 'm':
+			if (debug_table != BATCTL_TABLE_TRANSLOCAL &&
+			    debug_table != BATCTL_TABLE_TRANSGLOBAL) {
+				fprintf(stderr, "Error - unrecognised option '-%c'\n", optchar);
+				debug_table_usage(debug_table);
+				return EXIT_FAILURE;
+			}
+
+			read_opt |= MULTICAST_ONLY;
+			break;
 		case '?':
 			if (optopt == 't')
 				fprintf(stderr, "Error - option '-t' needs a number as argument\n");
diff --git a/functions.c b/functions.c
index 36804bd..41eabb2 100644
--- a/functions.c
+++ b/functions.c
@@ -224,6 +224,22 @@ read:
 			    && (last_seen > orig_timeout))
 				continue;
 
+		/* translation table: skip multicast */
+		if (line > header_lines &&
+		    read_opt & UNICAST_ONLY &&
+		    strlen(line_ptr) > strlen(" * xx:xx:xx:") &&
+		    (!strncmp(line_ptr+3, "33:33:", strlen("33:33:")) ||
+		     !strncmp(line_ptr+3, "01:00:5e:", strlen("01:00:5e:"))))
+			continue;
+
+		/* translation table: skip unicast */
+		if (line > header_lines &&
+		    read_opt & MULTICAST_ONLY &&
+		    strlen(line_ptr) > strlen(" * xx:xx:xx:") &&
+		    strncmp(line_ptr+3, "33:33:", strlen("33:33:")) &&
+		    strncmp(line_ptr+3, "01:00:5e:", strlen("01:00:5e:")))
+			continue;
+
 		if (!(read_opt & USE_BAT_HOSTS)) {
 			printf("%s", line_ptr);
 			continue;
diff --git a/functions.h b/functions.h
index 14ba525..43c3d9c 100644
--- a/functions.h
+++ b/functions.h
@@ -57,6 +57,8 @@ enum {
 	NO_OLD_ORIGS = 0x40,
 	COMPAT_FILTER = 0x80,
 	SKIP_HEADER = 0x100,
+	UNICAST_ONLY = 0x200,
+	MULTICAST_ONLY = 0x400,
 };
 
 #endif
diff --git a/man/batctl.8 b/man/batctl.8
index a8e8868..6b43d5e 100644
--- a/man/batctl.8
+++ b/man/batctl.8
@@ -178,6 +178,8 @@ All of the debug tables support the following options:
 The originator table also supports the "\-t" filter option to remove all originators from the output that have not been seen
 for the specified amount of seconds (with optional decimal places).
 
+The local and global translation tables also support the "\-u" and "\-m" option to only display unicast or multicast translation table announcements respectively.
+
 List of debug tables:
 .RS 10
 \- originators|o
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table
  2014-02-24  4:11 [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
  2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
  2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 3/3] batctl: add unicast/multicast address filter option for TT output Linus Lüssing
@ 2014-02-27 10:28 ` Antonio Quartulli
  2 siblings, 0 replies; 5+ messages in thread
From: Antonio Quartulli @ 2014-02-27 10:28 UTC (permalink / raw)
  To: Linus Lüssing
  Cc: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 481 bytes --]

On 24/02/14 05:11, Linus Lüssing wrote:
> A commit in batman-adv has added a second header line to the local
> translation table output.
> 
> Introduced by 59cb0861498776c62bd17584c31f34477fa301a0
> ("batman-adv: improve local translation table output")
> 
> Signed-off-by: Linus Lüssing <linus.luessing@web.de>

Nice catch! I think we should use the "-H" option a bit more often :)

Acked-by: Antonio Quartulli <antonio@meshcoding.com>


-- 
Antonio Quartulli


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCH 3/3] batctl: add unicast/multicast address filter option for TT output
  2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 3/3] batctl: add unicast/multicast address filter option for TT output Linus Lüssing
@ 2014-02-27 12:24   ` Antonio Quartulli
  0 siblings, 0 replies; 5+ messages in thread
From: Antonio Quartulli @ 2014-02-27 12:24 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking,
	Linus Lüssing

[-- Attachment #1: Type: text/plain, Size: 2209 bytes --]

On 24/02/14 05:11, Linus Lüssing wrote:
> @@ -138,6 +143,26 @@ int handle_debug_table(char *mesh_iface, int debug_table, int argc, char **argv)
>  		case 'H':
>  			read_opt |= SKIP_HEADER;
>  			break;
> +		case 'u':
> +			if (debug_table != BATCTL_TABLE_TRANSLOCAL &&
> +			    debug_table != BATCTL_TABLE_TRANSGLOBAL) {
> +				fprintf(stderr, "Error - unrecognised option '-%c'\n", optchar);
> +				debug_table_usage(debug_table);
> +				return EXIT_FAILURE;
> +			}
> +
> +			read_opt |= UNICAST_ONLY;
> +			break;
> +		case 'm':
> +			if (debug_table != BATCTL_TABLE_TRANSLOCAL &&
> +			    debug_table != BATCTL_TABLE_TRANSGLOBAL) {
> +				fprintf(stderr, "Error - unrecognised option '-%c'\n", optchar);
> +				debug_table_usage(debug_table);
> +				return EXIT_FAILURE;
> +			}
> +
> +			read_opt |= MULTICAST_ONLY;
> +			break;

do we really want to allow the user to specify both flags? Or should we
throw an error in that case? I think the second option would be better, no?

>  		case '?':
>  			if (optopt == 't')
>  				fprintf(stderr, "Error - option '-t' needs a number as argument\n");
> diff --git a/functions.c b/functions.c
> index 36804bd..41eabb2 100644
> --- a/functions.c
> +++ b/functions.c
> @@ -224,6 +224,22 @@ read:
>  			    && (last_seen > orig_timeout))
>  				continue;
>  
> +		/* translation table: skip multicast */
> +		if (line > header_lines &&
> +		    read_opt & UNICAST_ONLY &&
> +		    strlen(line_ptr) > strlen(" * xx:xx:xx:") &&
> +		    (!strncmp(line_ptr+3, "33:33:", strlen("33:33:")) ||
> +		     !strncmp(line_ptr+3, "01:00:5e:", strlen("01:00:5e:"))))
> +			continue;
> +
> +		/* translation table: skip unicast */
> +		if (line > header_lines &&
> +		    read_opt & MULTICAST_ONLY &&
> +		    strlen(line_ptr) > strlen(" * xx:xx:xx:") &&
> +		    strncmp(line_ptr+3, "33:33:", strlen("33:33:")) &&
> +		    strncmp(line_ptr+3, "01:00:5e:", strlen("01:00:5e:")))
> +			continue;
> +

why not just converting to an integer the first octect of the MAC
address and checking for the multicast bit being set or not? Wouldn't
that be more elegant and generic?



Cheers,

-- 
Antonio Quartulli


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-02-27 12:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-24  4:11 [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
2014-02-24  4:11 ` [B.A.T.M.A.N.] [PATCH 3/3] batctl: add unicast/multicast address filter option for TT output Linus Lüssing
2014-02-27 12:24   ` Antonio Quartulli
2014-02-27 10:28 ` [B.A.T.M.A.N.] [PATCH 1/3] batctl: fix wrong header lines number for local translation table Antonio Quartulli

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.