From: Louis Scalbert Date: Thu, 28 Mar 2024 14:00:37 +0000 (+0100) Subject: bgpd: fix "used" json key on link-local nexthop X-Git-Tag: base_10.1~75^2~4 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=2de4dfc97adfec788e45e148b4204196d612c81c;p=matthieu%2Ffrr.git bgpd: fix "used" json key on link-local nexthop When a peer has no IPv6 global address to send as nexthop, it sends the IPv6 link-local instead as global. "show bgp ipv6 json" displays the same address in global and link-local scopes. > "nexthops": [ > { > "ip": "fe80::a495:38ff:fea6:6ea3", > "afi": "ipv6", > "scope": "global", > "used": true > }, > { > "ip": "fe80::a495:38ff:fea6:6ea3", > "afi": "ipv6", > "scope": "link-local" > } > ] However, "used" key is set on the global nexthop but not in link-local. It is correct but it makes difficult to test JSON to expect the usage of a link-local. The contrary is also correct. Set "used" key on the link-local nexhop instead to facilitate the tests. Signed-off-by: Louis Scalbert --- diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 848e8ffd8d..185ad0e317 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -9629,10 +9629,7 @@ void route_vty_out(struct vty *vty, const struct prefix *p, json_object_string_add(json_nexthop_ll, "scope", "link-local"); - if ((IPV6_ADDR_CMP(&attr->mp_nexthop_global, - &attr->mp_nexthop_local) != - 0) && - !CHECK_FLAG(attr->nh_flags, + if (!CHECK_FLAG(attr->nh_flags, BGP_ATTR_NH_MP_PREFER_GLOBAL)) json_object_boolean_true_add( json_nexthop_ll, "used");