summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoian Bonev <bbonev@ipacct.com>2013-09-09 16:41:35 +0000
committerDavid Lamparter <equinox@opensourcerouting.org>2014-05-15 19:23:36 +0200
commitb366b518401e0b0652cd70d297d3fb67b4803db0 (patch)
tree5f05079e281f0ec503ee408b1f7502cc49cad82e
parent689bb66c6a92d238bed1a8b0920438c5a2271966 (diff)
downloadquagga-b366b518401e0b0652cd70d297d3fb67b4803db0.tar.bz2
quagga-b366b518401e0b0652cd70d297d3fb67b4803db0.tar.xz
bgpd: display multipath status in "show ip bgp"
The output of "show ip bg" does not show whether and which routes are installed as multipath routes along the best route: BGP table version is 0, local router ID is 10.10.100.209 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i1.0.0.0/24 10.10.100.1 1 111 0 15169 i * i 10.10.100.2 1 111 0 15169 i * i 10.10.100.3 1 111 0 65100 15169 i This patch adds a new status code that is showing exactly which routes are used as multipath: BGP table version is 0, local router ID is 10.10.100.209 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i1.0.0.0/24 10.10.100.1 1 111 0 15169 i *=i 10.10.100.2 1 111 0 15169 i * i 10.10.100.3 1 111 0 65100 15169 i The inconsistency in the status code legend ("i - internal" vs. "i internal") inherent from old IOS was fixed. It had to be touched anyways. Signed-off-by: Boian Bonev <bbonev at ipacct.com> [DL: rewrap long line, clean whitespace in same chunk] Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
-rw-r--r--bgpd/bgp_route.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 0428531f..29533c43 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -5651,6 +5651,8 @@ route_vty_short_status_out (struct vty *vty, struct bgp_info *binfo)
vty_out (vty, "d");
else if (CHECK_FLAG (binfo->flags, BGP_INFO_SELECTED))
vty_out (vty, ">");
+ else if (CHECK_FLAG (binfo->flags, BGP_INFO_MULTIPATH))
+ vty_out (vty, "=");
else
vty_out (vty, " ");
@@ -6134,9 +6136,11 @@ route_vty_out_detail (struct vty *vty, struct bgp *bgp, struct prefix *p,
#endif /* HAVE_CLOCK_MONOTONIC */
}
vty_out (vty, "%s", VTY_NEWLINE);
-}
-
-#define BGP_SHOW_SCODE_HEADER "Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,%s r RIB-failure, S Stale, R Removed%s"
+}
+
+#define BGP_SHOW_SCODE_HEADER "Status codes: s suppressed, d damped, "\
+ "h history, * valid, > best, = multipath,%s"\
+ " i internal, r RIB-failure, S Stale, R Removed%s"
#define BGP_SHOW_OCODE_HEADER "Origin codes: i - IGP, e - EGP, ? - incomplete%s%s"
#define BGP_SHOW_HEADER " Network Next Hop Metric LocPrf Weight Path%s"
#define BGP_SHOW_DAMP_HEADER " Network From Reuse Path%s"