From: Quentin Young Date: Tue, 29 Jan 2019 19:17:15 +0000 (+0000) Subject: vrrpd: improve show vrrp X-Git-Tag: base_7.2~330^2~115 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=5302f67b1300219479edded34e01126691a9f689;p=matthieu%2Ffrr.git vrrpd: improve show vrrp * Dump all relevant interface names for each instance * Compact IPvX address display Signed-off-by: Quentin Young --- diff --git a/vrrpd/vrrp_vty.c b/vrrpd/vrrp_vty.c index 6edde0ca02..553e3947be 100644 --- a/vrrpd/vrrp_vty.c +++ b/vrrpd/vrrp_vty.c @@ -223,8 +223,13 @@ static void vrrp_show(struct vty *vty, struct vrrp_vrouter *vr) struct ttable *tt = ttable_new(&ttable_styles[TTSTYLE_BLANK]); ttable_add_row(tt, "%s|%" PRIu32, "Virtual Router ID", vr->vrid); + ttable_add_row(tt, "%s|%s", "Interface", vr->ifp->name); prefix_mac2str(&vr->v4->vmac, ethstr4, sizeof(ethstr4)); prefix_mac2str(&vr->v6->vmac, ethstr6, sizeof(ethstr6)); + ttable_add_row(tt, "%s|%s", "VRRP interface (v4)", + vr->v4->mvl_ifp ? vr->v4->mvl_ifp->name : "None"); + ttable_add_row(tt, "%s|%s", "VRRP interface (v6)", + vr->v6->mvl_ifp ? vr->v6->mvl_ifp->name : "None"); ttable_add_row(tt, "%s|%s", "Virtual MAC (v4)", ethstr4); ttable_add_row(tt, "%s|%s", "Virtual MAC (v6)", ethstr6); ttable_add_row(tt, "%s|%s", "Status (v4)", stastr4); @@ -251,34 +256,33 @@ static void vrrp_show(struct vty *vty, struct vrrp_vrouter *vr) ttable_add_row(tt, "%s|%" PRIu16" cs", "Master Down Interval (v6)", vr->v6->master_down_interval); ttable_add_row(tt, "%s|%u", "IPv4 Addresses", vr->v4->addrs->count); - ttable_add_row(tt, "%s|%u", "IPv6 Addresses", vr->v6->addrs->count); - - char *table = ttable_dump(tt, "\n"); - vty_out(vty, "\n%s\n", table); - XFREE(MTYPE_TMP, table); - ttable_del(tt); + char fill[37]; + memset(fill, '.', sizeof(fill)); + fill[sizeof(fill) - 1] = 0x00; if (vr->v4->addrs->count) { - vty_out(vty, " IPv4 Addresses\n"); - vty_out(vty, " --------------\n"); for (ALL_LIST_ELEMENTS_RO(vr->v4->addrs, ln, ip)) { inet_ntop(vr->v4->family, &ip->ipaddr_v4, ipstr, sizeof(ipstr)); - vty_out(vty, " %s\n", ipstr); + ttable_add_row(tt, "%s|%s", fill, ipstr); } - vty_out(vty, "\n"); } + ttable_add_row(tt, "%s|%u", "IPv6 Addresses", vr->v6->addrs->count); + if (vr->v6->addrs->count) { - vty_out(vty, " IPv6 Addresses\n"); - vty_out(vty, " --------------\n"); for (ALL_LIST_ELEMENTS_RO(vr->v6->addrs, ln, ip)) { inet_ntop(vr->v6->family, &ip->ipaddr_v6, ipstr, sizeof(ipstr)); - vty_out(vty, " %s\n", ipstr); + ttable_add_row(tt, "%s|%s", fill, ipstr); } - vty_out(vty, "\n"); } + + char *table = ttable_dump(tt, "\n"); + vty_out(vty, "\n%s\n", table); + XFREE(MTYPE_TMP, table); + ttable_del(tt); + } DEFPY(vrrp_vrid_show, @@ -299,6 +303,8 @@ DEFPY(vrrp_vrid_show, for (ALL_LIST_ELEMENTS_RO(ll, ln, vr)) vrrp_show(vty, vr); + + list_delete_and_null(&ll); } return CMD_SUCCESS;