On Wed, 30 Oct 2024 09:46:23 +0100 Fabian Pfitzner <f.pfitzner@xxxxxxxxxxxxxx> wrote: > Kernel support for dumping the multicast querier state was added in this > commit [1]. As some people might be interested to get this information > from userspace, this commit implements the necessary changes to show it > via > > ip -d link show [dev] > > The querier state shows the following information for IPv4 and IPv6 > respectively: > > 1) The ip address of the current querier in the network. This could be > ourselves or an external querier. > 2) The port on which the querier was seen > 3) Querier timeout in seconds > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c7fa1d9b1fb179375e889ff076a1566ecc997bfc > > Signed-off-by: Fabian Pfitzner <f.pfitzner@xxxxxxxxxxxxxx> > --- > > v1->v2: refactor code > > ip/iplink_bridge.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c > index f01ffe15..f74436d3 100644 > --- a/ip/iplink_bridge.c > +++ b/ip/iplink_bridge.c > @@ -661,6 +661,53 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) > "mcast_querier %u ", > rta_getattr_u8(tb[IFLA_BR_MCAST_QUERIER])); > > + if (tb[IFLA_BR_MCAST_QUERIER_STATE]) { > + struct rtattr *bqtb[BRIDGE_QUERIER_MAX + 1]; > + SPRINT_BUF(other_time); > + > + parse_rtattr_nested(bqtb, BRIDGE_QUERIER_MAX, tb[IFLA_BR_MCAST_QUERIER_STATE]); > + memset(other_time, 0, sizeof(other_time)); > + > + open_json_object("mcast_querier_state_ipv4"); > + if (bqtb[BRIDGE_QUERIER_IP_ADDRESS]) > + print_string(PRINT_ANY, > + "mcast_querier_ipv4_addr", > + "mcast_querier_ipv4_addr %s ", > + format_host_rta(AF_INET, bqtb[BRIDGE_QUERIER_IP_ADDRESS])) Would be good to use print_color_string here.