diff options
author | Trey Aspelund <taspelund@cumulusnetworks.com> | 2020-10-12 21:39:11 +0200 |
---|---|---|
committer | Trey Aspelund <taspelund@cumulusnetworks.com> | 2020-10-12 22:19:44 +0200 |
commit | 7daf25a3a833b4b0353d3c6fa445ec9a52a30512 (patch) | |
tree | 2607e4a18686c11e17f747d1ed377d4e3c3f8856 /bgpd/bgp_route.c | |
parent | Merge pull request #7251 from wesleycoakley/fix-vtysh-node-build-warn-errors (diff) | |
download | frr-7daf25a3a833b4b0353d3c6fa445ec9a52a30512.tar.xz frr-7daf25a3a833b4b0353d3c6fa445ec9a52a30512.zip |
bgpd: fix show bgp neighbor routes for labeled-unicast
bgp_show_neighbor_route() was rewriting safi from LU to uni
before checking if the peer was enabled for LU. This resulted
in the peer's address-family check looking for unicast, which
would always fail for LU peers since unicast + LU are
mutually-exclusive AFIs.
This moves this safi reassignment after the peer AFI check,
ensuring that the peer's address-family check looks for LU
while the call to bgp_show() still uses uni.
-- highlights from manual testing
config:
router bgp 2
neighbor 1.1.1.1 remote-as external
neighbor 1.1.1.1 disable-connected-check
neighbor 1.1.1.1 update-source 2.2.2.2
!
address-family ipv4 unicast
no neighbor 1.1.1.1 activate
exit-address-family
!
address-family ipv4 labeled-unicast
neighbor 1.1.1.1 activate
exit-address-family
before:
spine01# show bgp ipv4 unicast neighbors 1.1.1.1 routes
% No such neighbor or address family
spine01# show bgp ipv4 labeled-unicast neighbors 1.1.1.1 routes
% No such neighbor or address family
after:
spine01# show bgp ipv4 unicast neighbors 1.1.1.1 routes
% No such neighbor or address family
spine01# show bgp ipv4 label neighbors 1.1.1.1 routes
BGP table version is 1, local router ID is 2.2.2.2
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
*> 11.11.11.11/32 1.1.1.1 0 0 1 i
Displayed 1 routes and 1 total paths
Signed-off-by: Trey Aspelund <taspelund@cumulusnetworks.com>
Diffstat (limited to '')
-rw-r--r-- | bgpd/bgp_route.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 229e9af91..8977b1651 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -12996,10 +12996,6 @@ static int bgp_show_neighbor_route(struct vty *vty, struct peer *peer, if (use_json) SET_FLAG(show_flags, BGP_SHOW_OPT_JSON); - /* labeled-unicast routes live in the unicast table */ - if (safi == SAFI_LABELED_UNICAST) - safi = SAFI_UNICAST; - if (!peer || !peer->afc[afi][safi]) { if (use_json) { json_object *json_no = NULL; @@ -13015,6 +13011,10 @@ static int bgp_show_neighbor_route(struct vty *vty, struct peer *peer, return CMD_WARNING; } + /* labeled-unicast routes live in the unicast table */ + if (safi == SAFI_LABELED_UNICAST) + safi = SAFI_UNICAST; + return bgp_show(vty, peer->bgp, afi, safi, type, &peer->su, show_flags); } |