[v5,2/2] batctl: adding mcast flags debugfs table

Message ID 1463157342-13195-3-git-send-email-linus.luessing@c0d3.blue (mailing list archive)
State Accepted, archived
Commit 2f6b65f1de74205a6333c664495ecd0bc8bc8af0
Delegated to: Marek Lindner
Headers

Commit Message

Linus Lüssing May 13, 2016, 4:35 p.m. UTC
  From: Linus Lüssing <linus.luessing@web.de>

This patch adds an option to retrieve the per originator multicast
flags table.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
---

Changes in v5:
* fixed README description of mcast_flags (copy & paste error from DAT)

Changes in v4:
* rebase to current master (no conflicts)

Changes in v3:
* updated mcast_flags example in README file

Changes in v2:
* header_lines for 'mcast_flags' increased from 2 to 6
* Example updated to more verbose, 6 lines debugfs header output
* (kept order for the noted manpage section as it wasn't alphabetically
   orderd in the first place - instead keeping the previous "logical"
   order - 'mcast' after 'nc')

 README       |   34 ++++++++++++++++++++++++++++++++++
 debug.c      |    6 ++++++
 debug.h      |    1 +
 functions.c  |    1 +
 man/batctl.8 |    3 +++
 5 files changed, 45 insertions(+)
  

Comments

Marek Lindner May 17, 2016, 9:14 a.m. UTC | #1
On Friday, May 13, 2016 18:35:42 Linus Lüssing wrote:
> From: Linus Lüssing <linus.luessing@web.de>
> 
> This patch adds an option to retrieve the per originator multicast
> flags table.
> 
> Signed-off-by: Linus Lüssing <linus.luessing@web.de>
> ---
> 
> Changes in v5:
> * fixed README description of mcast_flags (copy & paste error from DAT)
> 
> Changes in v4:
> * rebase to current master (no conflicts)
> 
> Changes in v3:
> * updated mcast_flags example in README file
> 
> Changes in v2:
> * header_lines for 'mcast_flags' increased from 2 to 6
> * Example updated to more verbose, 6 lines debugfs header output
> * (kept order for the noted manpage section as it wasn't alphabetically
>    orderd in the first place - instead keeping the previous "logical"
>    order - 'mcast' after 'nc')
> 
>  README       |   34 ++++++++++++++++++++++++++++++++++
>  debug.c      |    6 ++++++
>  debug.h      |    1 +
>  functions.c  |    1 +
>  man/batctl.8 |    3 +++
>  5 files changed, 45 insertions(+)

Applied in revision 2f6b65f.

Thanks,
Marek
  

Patch

diff --git a/README b/README
index b5de8a6..6df669a 100644
--- a/README
+++ b/README
@@ -426,6 +426,40 @@  display or modify the multicast mode setting
 
 Usage: batctl multicast_mode|mm [0|1]
 
+batctl mcast_flags
+=================
+
+display local and remote multicast flags
+
+Usage batctl mcast_flags|mf
+
+Example:
+
+Multicast flags (own flags: [U46])
+* Bridged [U]                           U
+* No IGMP/MLD Querier [4/6]:            ./.
+* Shadowing IGMP/MLD Querier [4/6]:     4/6
+-------------------------------------------
+       Originator Flags
+02:04:64:a4:39:c1 [U..]
+02:04:64:a4:39:c2 [U..]
+02:04:64:a4:39:c3 [...]
+
+where:
+- Originator: the MAC address of the originating (primary interface)
+		batman-adv node
+- Flags: multicast flags of the according node
+- U: wants all unsnoopable multicast traffic, meaning other nodes need to always
+	forward any multicast traffic destined to ff02::1 or 224.0.0.0/24 to it
+- 4: wants all IPv4 multicast traffic, meaning other nodes need to always
+	forward any IPv4 multicast traffic to it
+- 6: wants all IPv6 multicast traffic, meaning other nodes need to always
+	forward any IPv6 multicast traffic to it
+
+If a node does not have multicast optimizations available (e.g. old batman-adv
+version or optimizations not compiled in), therefore not announcing any
+multicast tvlv/flags, a '-' will be displayed instead of '[...]'.
+
 batctl aggregation
 ==================
 
diff --git a/debug.c b/debug.c
index 3db3ed9..5b280cb 100644
--- a/debug.c
+++ b/debug.c
@@ -84,6 +84,12 @@  const struct debug_table_data batctl_debug_tables[BATCTL_TABLE_NUM] = {
 		.debugfs_name = "nc_nodes",
 		.header_lines = 0,
 	},
+	{
+		.opt_long = "mcast_flags",
+		.opt_short = "mf",
+		.debugfs_name = "mcast_flags",
+		.header_lines = 6,
+	},
 };
 
 static void debug_table_usage(int debug_table)
diff --git a/debug.h b/debug.h
index df65f50..46e8c3c 100644
--- a/debug.h
+++ b/debug.h
@@ -40,6 +40,7 @@  enum batctl_debug_tables {
 	BATCTL_TABLE_BLA_BACKBONES,
 	BATCTL_TABLE_DAT,
 	BATCTL_TABLE_NETWORK_CODING_NODES,
+	BATCTL_TABLE_MCAST_FLAGS,
 	BATCTL_TABLE_NUM,
 };
 
diff --git a/functions.c b/functions.c
index be8f8b0..97a6dbd 100644
--- a/functions.c
+++ b/functions.c
@@ -68,6 +68,7 @@  const char *fs_compile_out_param[] = {
 	batctl_debug_tables[BATCTL_TABLE_BLA_BACKBONES].debugfs_name,
 	batctl_debug_tables[BATCTL_TABLE_DAT].debugfs_name,
 	batctl_debug_tables[BATCTL_TABLE_NETWORK_CODING_NODES].debugfs_name,
+	batctl_debug_tables[BATCTL_TABLE_MCAST_FLAGS].debugfs_name,
 	NULL,
 };
 
diff --git a/man/batctl.8 b/man/batctl.8
index f8955d0..05f68d3 100644
--- a/man/batctl.8
+++ b/man/batctl.8
@@ -236,6 +236,9 @@  List of debug tables:
 .RS 10
 \- nc_nodes|nn (compile time option)
 .RE
+.RS 10
+\- mcast_flags|mf (compile time option)
+.RE
 .RE
 .br
 .IP "\fBtranslate\fP|\fBt\fP \fBMAC_address\fP|\fBbat\-host_name\fP|\fBhost_name\fP|\fBIP_address\fP"