Commit 329b61d16b for frr
commit 329b61d16bd4520e2b0e94f0cfb80fc50f6541c0
Author: Philippe Guibert <philippe.guibert@6wind.com>
Date: Fri Oct 2 09:53:14 2026 +0200
bgpd: improve leak update nexthop information
Tell in log message whether the path attribute is srv6 or mpls.
> Oct 02 09:46:45 pe1-vm bgpd[2503]: [RPMVR-23GWS] leak_update_nexthop_valid: 11:11::10:155/128 nexthop srv6 is valid (in VRF vrfA)
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c
index 390e2154a3..97aadf0aac 100644
--- a/bgpd/bgp_mplsvpn.c
+++ b/bgpd/bgp_mplsvpn.c
@@ -1157,6 +1157,7 @@ static bool leak_update_nexthop_valid(struct bgp *to_bgp, struct bgp_dest *bn,
struct bgp_table *table;
struct interface *ifp;
bool nh_valid;
+ char buff[10] = {};
bpi_ultimate = bgp_get_imported_bpi_ultimate(source_bpi);
table = bgp_dest_table(bpi_ultimate->net);
@@ -1225,10 +1226,17 @@ static bool leak_update_nexthop_valid(struct bgp *to_bgp, struct bgp_dest *bn,
nh_valid)
nh_valid = is_pi_srv6_valid(bpi, bgp_nexthop, afi, safi);
- if (debug)
- zlog_debug("%s: %pFX nexthop is %svalid (in %s)", __func__, p,
+ if (debug) {
+ if (bgp_attr_get_srv6_l3service(bpi->attr) || bgp_attr_get_srv6_vpn(bpi->attr))
+ snprintfrr(buff, sizeof(buff), " srv6");
+ else if (!bgp_attr_get_srv6_l3service(bpi->attr) &&
+ BGP_PATH_INFO_NUM_LABELS(bpi) == 1 &&
+ decode_label(&bpi->extra->labels->label[0]) != MPLS_LABEL_NONE)
+ snprintfrr(buff, sizeof(buff), " mpls");
+
+ zlog_debug("%s: %pFX nexthop%s is %svalid (in %s)", __func__, p, buff,
(nh_valid ? "" : "not "), bgp_nexthop->name_pretty);
-
+ }
return nh_valid;
}