Repository : ssh://git@open-mesh.org/batctl
On branch : master
>---------------------------------------------------------------
commit 9769efa885e929c00fd4d4e62675718c939f95f3
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sat Jun 29 10:28:18 2019 +0200
batctl: mcast_flags: Add support for MCASTv2 RTR(4|6) flags
The batman-adv commit 0a7733468f95 ("batman-adv: mcast: detect, distribute
and maintain multicast router presence") added support for two new flags
BATADV_MCAST_WANT_NO_RTR4 and BATADV_MCAST_WANT_NO_RTR6. These are
announced in IV_OGM and OGMv2.
The mcast_flags debug table requires support for it to make debugging of
router-to-router multicast problems in networks easier.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
9769efa885e929c00fd4d4e62675718c939f95f3
mcast_flags.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/mcast_flags.c b/mcast_flags.c
index a1fdf31..6af544b 100644
--- a/mcast_flags.c
+++ b/mcast_flags.c
@@ -80,10 +80,12 @@ static int mcast_flags_callback(struct nl_msg *msg, void *arg)
if (attrs[BATADV_ATTR_MCAST_FLAGS]) {
flags = nla_get_u32(attrs[BATADV_ATTR_MCAST_FLAGS]);
- printf("[%c%c%c]\n",
+ printf("[%c%c%c%s%s]\n",
flags & BATADV_MCAST_WANT_ALL_UNSNOOPABLES ? 'U' : '.',
flags & BATADV_MCAST_WANT_ALL_IPV4 ? '4' : '.',
- flags & BATADV_MCAST_WANT_ALL_IPV6 ? '6' : '.');
+ flags & BATADV_MCAST_WANT_ALL_IPV6 ? '6' : '.',
+ !(flags & BATADV_MCAST_WANT_NO_RTR4) ? "R4" : ". ",
+ !(flags & BATADV_MCAST_WANT_NO_RTR6) ? "R6" : ". ");
} else {
printf("-\n");
}
@@ -124,7 +126,7 @@ static int netlink_print_mcast_flags(struct state *state, char *orig_iface,
}
ret = asprintf(&header,
- "Multicast flags (own flags: [%c%c%c])\n"
+ "Multicast flags (own flags: [%c%c%c%s%s])\n"
"* Bridged [U]\t\t\t\t%c\n"
"* No IGMP/MLD Querier [4/6]:\t\t%c/%c\n"
"* Shadowing IGMP/MLD Querier [4/6]:\t%c/%c\n"
@@ -133,6 +135,8 @@ static int netlink_print_mcast_flags(struct state *state, char *orig_iface,
(mcast_flags & BATADV_MCAST_WANT_ALL_UNSNOOPABLES) ? 'U' : '.',
(mcast_flags & BATADV_MCAST_WANT_ALL_IPV4) ? '4' : '.',
(mcast_flags & BATADV_MCAST_WANT_ALL_IPV6) ? '6' : '.',
+ !(mcast_flags & BATADV_MCAST_WANT_NO_RTR4) ? "R4" : ". ",
+ !(mcast_flags & BATADV_MCAST_WANT_NO_RTR6) ? "R6" : ". ",
bridged ? 'U' : '.',
querier4, querier6, shadowing4, shadowing6,
"Originator", "Flags");