diff options
author | Sarita Patra <saritap@vmware.com> | 2023-02-24 16:13:30 +0100 |
---|---|---|
committer | Sarita Patra <saritap@vmware.com> | 2023-02-25 08:58:30 +0100 |
commit | cbb1e51311ca710540d752c9d6c7689f8fc65dc4 (patch) | |
tree | e32851e7b5c830e37eddb4f572f30e448846e0d0 /pimd/pim6_mld.c | |
parent | pim6d: Display primary address in "show ipv6 mld interface json" cmd (diff) | |
download | frr-cbb1e51311ca710540d752c9d6c7689f8fc65dc4.tar.xz frr-cbb1e51311ca710540d752c9d6c7689f8fc65dc4.zip |
pim6d: Fix missing parameters in "show ipv6 mld interface" command
Before fix:
==========
frr# show ipv6 mld interface
Interface State V Querier Timer Uptime
ens224 up 1 fe80::250:56ff:feb7:a7e3 query 00:00:24.219 00:00:07.031
After fix:
=========
frr(config-if)# do show ipv6 mld interface
Interface State Address V Querier QuerierIp Query Timer Uptime
ens224 up fe80::250:56ff:feb7:a7e3 1 local fe80::250:56ff:feb7:a7e3 00:01:22.263 00:08:00.237
Issue: #11241
Signed-off-by: Sarita Patra <saritap@vmware.com>
Diffstat (limited to 'pimd/pim6_mld.c')
-rw-r--r-- | pimd/pim6_mld.c | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/pimd/pim6_mld.c b/pimd/pim6_mld.c index eb897e660..fcece56c6 100644 --- a/pimd/pim6_mld.c +++ b/pimd/pim6_mld.c @@ -2380,7 +2380,7 @@ static void gm_show_if_one_detail(struct vty *vty, struct interface *ifp) } static void gm_show_if_one(struct vty *vty, struct interface *ifp, - json_object *js_if) + json_object *js_if, struct ttable *tt) { struct pim_interface *pim_ifp = (struct pim_interface *)ifp->info; struct gm_if *gm_ifp = pim_ifp->mld; @@ -2418,11 +2418,11 @@ static void gm_show_if_one(struct vty *vty, struct interface *ifp, json_object_int_add(js_if, "timerLastMemberQueryIntervalMsec", gm_ifp->cur_query_intv_trig); } else { - vty_out(vty, "%-16s %-5s %d %-25pPA %-5s %11pTH %pTVMs\n", - ifp->name, "up", gm_ifp->cur_version, &gm_ifp->querier, - querier ? "query" : "other", - querier ? gm_ifp->t_query : gm_ifp->t_other_querier, - &gm_ifp->started); + ttable_add_row(tt, "%s|%s|%pPAs|%d|%s|%pPAs|%pTH|%pTVMs", + ifp->name, "up", &pim_ifp->primary_address, + gm_ifp->cur_version, querier ? "local" : "other", + &gm_ifp->querier, gm_ifp->t_query, + &gm_ifp->started); } } @@ -2430,14 +2430,27 @@ static void gm_show_if_vrf(struct vty *vty, struct vrf *vrf, const char *ifname, bool detail, json_object *js) { struct interface *ifp; - json_object *js_vrf; + json_object *js_vrf = NULL; struct pim_interface *pim_ifp; + struct ttable *tt = NULL; + char *table = NULL; if (js) { js_vrf = json_object_new_object(); json_object_object_add(js, vrf->name, js_vrf); } + if (!js && !detail) { + /* Prepare table. */ + tt = ttable_new(&ttable_styles[TTSTYLE_BLANK]); + ttable_add_row( + tt, + "Interface|State|Address|V|Querier|QuerierIp|Query Timer|Uptime"); + tt->style.cell.rpad = 2; + tt->style.corner = '+'; + ttable_restyle(tt); + } + FOR_ALL_INTERFACES (vrf, ifp) { json_object *js_if = NULL; @@ -2448,7 +2461,7 @@ static void gm_show_if_vrf(struct vty *vty, struct vrf *vrf, const char *ifname, continue; } - pim_ifp = ifp ->info; + pim_ifp = ifp->info; if (!pim_ifp || !pim_ifp->mld) continue; @@ -2458,17 +2471,21 @@ static void gm_show_if_vrf(struct vty *vty, struct vrf *vrf, const char *ifname, json_object_object_add(js_vrf, ifp->name, js_if); } - gm_show_if_one(vty, ifp, js_if); + gm_show_if_one(vty, ifp, js_if, tt); + } + + /* Dump the generated table. */ + if (!js && !detail) { + table = ttable_dump(tt, "\n"); + vty_out(vty, "%s\n", table); + XFREE(MTYPE_TMP, table); + ttable_del(tt); } } static void gm_show_if(struct vty *vty, struct vrf *vrf, const char *ifname, bool detail, json_object *js) { - if (!js && !detail) - vty_out(vty, "%-16s %-5s V %-25s %-18s %s\n", "Interface", - "State", "Querier", "Timer", "Uptime"); - if (vrf) gm_show_if_vrf(vty, vrf, ifname, detail, js); else |