All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCHv2 0/3] batctl: multicast related patches
@ 2014-03-02 22:17 Linus Lüssing
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Linus Lüssing @ 2014-03-02 22:17 UTC (permalink / raw)
  To: b.a.t.m.a.n

The first two patches are unchanged. The third one made the -u and -m
options exclusive and now uses the first bit of the first byte of
the mac address to check whether it's a multicast address
(instead of checing for IPv4/IPv6 multicast mac prefix), as Antonio
suggested (thanks!).

Cheers, Linus


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

* [B.A.T.M.A.N.] [PATCHv2 1/3] batctl: fix wrong header lines number for local translation table
  2014-03-02 22:17 [B.A.T.M.A.N.] [PATCHv2 0/3] batctl: multicast related patches Linus Lüssing
@ 2014-03-02 22:18 ` Linus Lüssing
  2014-03-11 10:43   ` Marek Lindner
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 3/3] batctl: add unicast/multicast address filter option for TT output Linus Lüssing
  2 siblings, 1 reply; 6+ messages in thread
From: Linus Lüssing @ 2014-03-02 22:18 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>
Acked-by: Antonio Quartulli <antonio@meshcoding.com>
---
 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] 6+ messages in thread

* [B.A.T.M.A.N.] [PATCHv2 2/3] batctl: add switch for setting multicast_mode
  2014-03-02 22:17 [B.A.T.M.A.N.] [PATCHv2 0/3] batctl: multicast related patches Linus Lüssing
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
@ 2014-03-02 22:18 ` Linus Lüssing
  2014-03-11 10:46   ` Marek Lindner
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 3/3] batctl: add unicast/multicast address filter option for TT output Linus Lüssing
  2 siblings, 1 reply; 6+ messages in thread
From: Linus Lüssing @ 2014-03-02 22:18 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] 6+ messages in thread

* [B.A.T.M.A.N.] [PATCHv2 3/3] batctl: add unicast/multicast address filter option for TT output
  2014-03-02 22:17 [B.A.T.M.A.N.] [PATCHv2 0/3] batctl: multicast related patches Linus Lüssing
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
@ 2014-03-02 22:18 ` Linus Lüssing
  2 siblings, 0 replies; 6+ messages in thread
From: Linus Lüssing @ 2014-03-02 22:18 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      |   32 +++++++++++++++++++++++++++++++-
 functions.c  |   22 ++++++++++++++++++++++
 functions.h  |    2 ++
 man/batctl.8 |    2 ++
 4 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/debug.c b/debug.c
index 6836857..acf452b 100644
--- a/debug.c
+++ b/debug.c
@@ -91,6 +91,10 @@ 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|-m print unicast or multicast mac addresses only\n");
+	}
 }
 
 int handle_debug_table(char *mesh_iface, int debug_table, int argc, char **argv)
@@ -102,7 +106,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 +142,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");
@@ -156,6 +180,12 @@ int handle_debug_table(char *mesh_iface, int debug_table, int argc, char **argv)
 		}
 	}
 
+	if (read_opt & UNICAST_ONLY && read_opt & MULTICAST_ONLY) {
+		fprintf(stderr, "Error - '-u' and '-m' are exclusive options\n");
+		debug_table_usage(debug_table);
+		return EXIT_FAILURE;
+	}
+
 	debugfs_mnt = debugfs_mount(NULL);
 	if (!debugfs_mnt) {
 		fprintf(stderr, "Error - can't mount or find debugfs\n");
diff --git a/functions.c b/functions.c
index 36804bd..117dcff 100644
--- a/functions.c
+++ b/functions.c
@@ -175,6 +175,14 @@ static void file_open_problem_dbg(const char *dir, const char *fname,
 	}
 }
 
+static int str_is_mcast_addr(char *addr)
+{
+	struct ether_addr *mac_addr = ether_aton(addr);
+
+	return !mac_addr ? 0 :
+		mac_addr->ether_addr_octet[0] & 0x01;
+}
+
 int read_file(const char *dir, const char *fname, int read_opt,
 	      float orig_timeout, float watch_interval, size_t header_lines)
 {
@@ -224,6 +232,20 @@ 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:") &&
+		    str_is_mcast_addr(line_ptr+3))
+			continue;
+
+		/* translation table: skip unicast */
+		if (line > header_lines &&
+		    read_opt & MULTICAST_ONLY &&
+		    strlen(line_ptr) > strlen(" * xx:xx:xx:") &&
+		    !str_is_mcast_addr(line_ptr+3))
+			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] 6+ messages in thread

* Re: [B.A.T.M.A.N.] [PATCHv2 1/3] batctl: fix wrong header lines number for local translation table
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
@ 2014-03-11 10:43   ` Marek Lindner
  0 siblings, 0 replies; 6+ messages in thread
From: Marek Lindner @ 2014-03-11 10:43 UTC (permalink / raw)
  To: b.a.t.m.a.n

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

On Sunday 02 March 2014 23:18:00 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>
> Acked-by: Antonio Quartulli <antonio@meshcoding.com>
> ---
>  debug.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied in revision 795b0ba.

Thanks,
Marek

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

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

* Re: [B.A.T.M.A.N.] [PATCHv2 2/3] batctl: add switch for setting multicast_mode
  2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
@ 2014-03-11 10:46   ` Marek Lindner
  0 siblings, 0 replies; 6+ messages in thread
From: Marek Lindner @ 2014-03-11 10:46 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

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

On Sunday 02 March 2014 23:18:01 Linus Lüssing wrote:
> 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(+)

I am unable to apply this patch. Not sure whether it is a simple merge error 
or due to the encoding of your patch. Can you apply this mail using 'git am' 
on the current master ?

Cheers,
Marek

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

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

end of thread, other threads:[~2014-03-11 10:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-02 22:17 [B.A.T.M.A.N.] [PATCHv2 0/3] batctl: multicast related patches Linus Lüssing
2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 1/3] batctl: fix wrong header lines number for local translation table Linus Lüssing
2014-03-11 10:43   ` Marek Lindner
2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 2/3] batctl: add switch for setting multicast_mode Linus Lüssing
2014-03-11 10:46   ` Marek Lindner
2014-03-02 22:18 ` [B.A.T.M.A.N.] [PATCHv2 3/3] batctl: add unicast/multicast address filter option for TT output Linus Lüssing

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.