]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: fix "used" json key on link-local nexthop
authorLouis Scalbert <louis.scalbert@6wind.com>
Thu, 28 Mar 2024 14:00:37 +0000 (15:00 +0100)
committerLouis Scalbert <louis.scalbert@6wind.com>
Tue, 23 Apr 2024 09:28:36 +0000 (11:28 +0200)
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>
bgpd/bgp_route.c

index 848e8ffd8d874dace72909b6092a7ba22f217df2..185ad0e3172734d0ef08d4eb766a5da175dc7279 100644 (file)
@@ -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");