This patch adds the multicast debug level to check for own multicast flag changes for instance.
Signed-off-by: Linus Lüssing linus.luessing@web.de --- README | 1 + sys.c | 5 +++++ 2 files changed, 6 insertions(+)
diff --git a/README b/README index b5fd259..c5e3575 100644 --- a/README +++ b/README @@ -389,6 +389,7 @@ $ batctl loglevel [ ] messages related to bridge loop avoidance (bla) [ ] messages related to arp snooping and distributed arp table (dat) [ ] messages related to network coding (nc) +[ ] messages related to multicast (mcast)
batctl nc_nodes =============== diff --git a/sys.c b/sys.c index 676bef1..4fa0e24 100644 --- a/sys.c +++ b/sys.c @@ -280,6 +280,7 @@ static void log_level_usage(void) fprintf(stderr, " \t bla Messages related to bridge loop avoidance\n"); fprintf(stderr, " \t dat Messages related to arp snooping and distributed arp table\n"); fprintf(stderr, " \t nc Messages related to network coding\n"); + fprintf(stderr, " \t mcast Messages related to multicast\n"); }
int handle_loglevel(char *mesh_iface, int argc, char **argv) @@ -325,6 +326,8 @@ int handle_loglevel(char *mesh_iface, int argc, char **argv) log_level |= BIT(4); else if (strcmp(argv[i], "nc") == 0) log_level |= BIT(5); + else if (strcmp(argv[i], "mcast") == 0) + log_level |= BIT(6); else { log_level_usage(); goto out; @@ -359,6 +362,8 @@ int handle_loglevel(char *mesh_iface, int argc, char **argv) "messages related to arp snooping and distributed arp table", "dat"); printf("[%c] %s (%s)\n", (log_level & BIT(5)) ? 'x' : ' ', "messages related to network coding", "nc"); + printf("[%c] %s (%s)\n", (log_level & BIT(6)) ? 'x' : ' ', + "messages related to multicast", "mcast");
out: free(path_buff);
This patch adds an option to retrieve the per originator multicast flags table.
Signed-off-by: Linus Lüssing linus.luessing@web.de --- README | 30 ++++++++++++++++++++++++++++++ debug.c | 6 ++++++ debug.h | 1 + functions.c | 1 + man/batctl.8 | 3 +++ 5 files changed, 41 insertions(+)
diff --git a/README b/README index c5e3575..8af6fad 100644 --- a/README +++ b/README @@ -425,6 +425,36 @@ display or modify the multicast mode setting
Usage: batctl multicast_mode|mm [0|1]
+batctl mcast_flags +================= + +display the local D.A.T. cache + +Usage batctl mcast_flags|mf + +Example: + +Multicast flags (own flags: [...]) + Originator Flags +02:04:64:a4:39:c4 [...] +02:04:64:a4:39:c1 [U46] +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 dfcf3c3..e00cfa2 100644 --- a/debug.c +++ b/debug.c @@ -78,6 +78,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 = 2, + }, };
static void debug_table_usage(int debug_table) diff --git a/debug.h b/debug.h index 76d5e68..6ea32a4 100644 --- a/debug.h +++ b/debug.h @@ -38,6 +38,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 251e616..7636e85 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 110020e..ee2749b 100644 --- a/man/batctl.8 +++ b/man/batctl.8 @@ -227,6 +227,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"
On Tuesday 15 July 2014 04:23:28 Linus Lüssing wrote:
@@ -227,6 +227,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"
Please maintain alphabetical order.
Thanks, Marek
On Tuesday 15 July 2014 04:23:27 Linus Lüssing wrote:
@@ -280,6 +280,7 @@ static void log_level_usage(void) fprintf(stderr, " \t bla Messages related to bridge loop avoidance\n"); fprintf(stderr, " \t dat Messages related to arp snooping and distributed arp table\n"); fprintf(stderr, " \t nc Messages related to network coding\n"); + fprintf(stderr, " \t mcast Messages related to multicast\n"); }
int handle_loglevel(char *mesh_iface, int argc, char **argv)
We have a little section in the manpage dedicated to the loglevel which also needs an update.
Cheers, Marek
b.a.t.m.a.n@lists.open-mesh.org