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 <louis.scalbert@6wind.com>
This commit is contained in:
Louis Scalbert 2024-03-28 15:00:37 +01:00
parent ee0378cdbb
commit 2de4dfc97a

View File

@ -9629,10 +9629,7 @@ void route_vty_out(struct vty *vty, const struct prefix *p,
json_object_string_add(json_nexthop_ll, "scope", json_object_string_add(json_nexthop_ll, "scope",
"link-local"); "link-local");
if ((IPV6_ADDR_CMP(&attr->mp_nexthop_global, if (!CHECK_FLAG(attr->nh_flags,
&attr->mp_nexthop_local) !=
0) &&
!CHECK_FLAG(attr->nh_flags,
BGP_ATTR_NH_MP_PREFER_GLOBAL)) BGP_ATTR_NH_MP_PREFER_GLOBAL))
json_object_boolean_true_add( json_object_boolean_true_add(
json_nexthop_ll, "used"); json_nexthop_ll, "used");