Commit b31376be75 for frr

commit b31376be754004a6f0b3c2d499d467f9214e7e3c
Author: Donald Sharp <sharpd@nvidia.com>
Date:   Mon Oct 5 07:52:25 2026 -0400

    bgpd: Format prefix'es in debugs slightly differently

    The usage of %pRN in debugs does not output the vrf
    being operated on.  Modify the debugs such that we
    use this formatting:

    "(%s:%u:%u)%pRN", vrf_name, vrf_id, table, rn

    This way we have consistent output in debugs.

    Signed-off-by: Donald Sharp <sharpd@nvidia.com>

diff --git a/bgpd/rfapi/rfapi_import.c b/bgpd/rfapi/rfapi_import.c
index 386d2fa3b7..477b67a63e 100644
--- a/bgpd/rfapi/rfapi_import.c
+++ b/bgpd/rfapi/rfapi_import.c
@@ -2378,8 +2378,12 @@ static void rfapiWithdrawTimerVPN(struct event *t)

 	RFAPI_CHECK_REFCOUNT(wcb->node, SAFI_MPLS_VPN, wcb->lockoffset);

-	vnc_zlog_debug_verbose("%s: removing bpi %p at prefix %pRN", __func__,
-			       bpi, wcb->node);
+	if (VNC_DEBUG(VERBOSE)) {
+		struct bgp_debug_vrf dv = bgp_debug_vrf_get(bgp);
+
+		zlog_debug("%s: removing bpi %p at prefix (%s:%u:%u)%pRN", __func__, bpi, dv.name,
+			   dv.id, dv.table_id, wcb->node);
+	}

 	/*
 	 * Remove the route (doubly-linked)
@@ -2897,7 +2901,15 @@ static void rfapiBgpInfoFilteredImportEncap(
 	struct prefix un_prefix;

 	struct bgp *bgp;
+	struct bgp_debug_vrf dv = {
+		.name = "Unknown",
+		.id = VRF_UNKNOWN,
+		.table_id = 0,
+	};
+
 	bgp = bgp_get_default(); /* assume 1 instance for now */
+	if (VNC_DEBUG(VERBOSE))
+		dv = bgp_debug_vrf_get(bgp);

 	switch (action) {
 	case FIF_ACTION_UPDATE:
@@ -3053,22 +3065,18 @@ static void rfapiBgpInfoFilteredImportEncap(
 			/* Same route. Delete this bpi, replace with new one */

 			if (action == FIF_ACTION_WITHDRAW) {
-
-				vnc_zlog_debug_verbose(
-					"%s: withdrawing at prefix %pRN",
-					__func__, rn);
+				vnc_zlog_debug_verbose("%s: withdrawing at prefix (%s:%u:%u)%pRN",
+						       __func__, dv.name, dv.id, dv.table_id, rn);

 				rfapiBiStartWithdrawTimer(
 					import_table, rn, bpi, afi, SAFI_ENCAP,
 					rfapiWithdrawTimerEncap);

 			} else {
-				vnc_zlog_debug_verbose(
-					"%s: %s at prefix %pRN", __func__,
-					((action == FIF_ACTION_KILL)
-						 ? "killing"
-						 : "replacing"),
-					rn);
+				vnc_zlog_debug_verbose("%s: %s at prefix (%s:%u:%u)%pRN", __func__,
+						       ((action == FIF_ACTION_KILL) ? "killing"
+										    : "replacing"),
+						       dv.name, dv.id, dv.table_id, rn);

 				/*
 				 * If this route is waiting to be deleted
@@ -3136,8 +3144,8 @@ static void rfapiBgpInfoFilteredImportEncap(
 		rn = agg_node_get(rt, p);
 	}

-	vnc_zlog_debug_verbose("%s: (afi=%d, rn=%p) inserting at prefix %pRN",
-			       __func__, afi, rn, rn);
+	vnc_zlog_debug_verbose("%s: (afi=%d, rn=%p) inserting at prefix (%s:%u:%u)%pRN", __func__,
+			       afi, rn, dv.name, dv.id, dv.table_id, rn);

 	rfapiBgpInfoAttachSorted(rn, info_new, afi, SAFI_ENCAP);

@@ -3360,7 +3368,15 @@ void rfapiBgpInfoFilteredImportVPN(
 	int is_it_ce = 0;

 	struct bgp *bgp;
+	struct bgp_debug_vrf dv = {
+		.name = "Unknown",
+		.id = VRF_UNKNOWN,
+		.table_id = 0,
+	};
+
 	bgp = bgp_get_default(); /* assume 1 instance for now */
+	if (VNC_DEBUG(VERBOSE))
+		dv = bgp_debug_vrf_get(bgp);

 	switch (action) {
 	case FIF_ACTION_UPDATE:
@@ -3501,12 +3517,10 @@ void rfapiBgpInfoFilteredImportVPN(
 				int washolddown = CHECK_FLAG(bpi->flags,
 							     BGP_PATH_REMOVED);

-				vnc_zlog_debug_verbose(
-					"%s: withdrawing at prefix %pRN%s",
-					__func__, rn,
-					(washolddown
-						 ? " (already being withdrawn)"
-						 : ""));
+				vnc_zlog_debug_verbose("%s: withdrawing at prefix (%s:%u:%u)%pRN%s",
+						       __func__, dv.name, dv.id, dv.table_id, rn,
+						       (washolddown ? " (already being withdrawn)"
+								    : ""));

 				VNC_ITRCCK;
 				if (!washolddown) {
@@ -3521,12 +3535,10 @@ void rfapiBgpInfoFilteredImportVPN(
 				}
 				VNC_ITRCCK;
 			} else {
-				vnc_zlog_debug_verbose(
-					"%s: %s at prefix %pRN", __func__,
-					((action == FIF_ACTION_KILL)
-						 ? "killing"
-						 : "replacing"),
-					rn);
+				vnc_zlog_debug_verbose("%s: %s at prefix (%s:%u:%u)%pRN", __func__,
+						       ((action == FIF_ACTION_KILL) ? "killing"
+										    : "replacing"),
+						       dv.name, dv.id, dv.table_id, rn);

 				/*
 				 * If this route is waiting to be deleted
@@ -3640,8 +3652,8 @@ void rfapiBgpInfoFilteredImportVPN(
 		info_new->extra->vnc->vnc.import.aux_prefix = *aux_prefix;
 	}

-	vnc_zlog_debug_verbose("%s: inserting bpi %p at prefix %pRN #%d",
-			       __func__, info_new, rn,
+	vnc_zlog_debug_verbose("%s: inserting bpi %p at prefix (%s:%u:%u)%pRN #%d", __func__,
+			       info_new, dv.name, dv.id, dv.table_id, rn,
 			       agg_node_get_lock_count(rn));

 	rfapiBgpInfoAttachSorted(rn, info_new, afi, SAFI_MPLS_VPN);
@@ -4399,6 +4411,14 @@ static void rfapiDeleteRemotePrefixesIt(
 	struct skiplist *uniq_active_nves, struct skiplist *uniq_holddown_nves)
 {
 	afi_t afi;
+	struct bgp_debug_vrf dv = {
+		.name = "Unknown",
+		.id = VRF_UNKNOWN,
+		.table_id = 0,
+	};
+
+	if (VNC_DEBUG(VERBOSE) || VNC_DEBUG(IMPORT_DEL_REMOTE))
+		dv = bgp_debug_vrf_get(bgp);

 #ifdef DEBUG_L2_EXTRA
 	{
@@ -4439,13 +4459,14 @@ static void rfapiDeleteRemotePrefixesIt(
 			const struct prefix *rn_p = agg_node_get_prefix(rn);

 			if (p && VNC_DEBUG(IMPORT_DEL_REMOTE))
-				vnc_zlog_debug_any("%s: want %pFX, have %pRN",
-						   __func__, p, rn);
+				zlog_debug("%s: want %pFX, have (%s:%u:%u)%pRN", __func__, p,
+					   dv.name, dv.id, dv.table_id, rn);

 			if (p && prefix_cmp(p, rn_p))
 				continue;

-			vnc_zlog_debug_verbose("%s: rn pfx=%pRN", __func__, rn);
+			vnc_zlog_debug_verbose("%s: rn pfx=(%s:%u:%u)%pRN", __func__, dv.name,
+					       dv.id, dv.table_id, rn);

 			/* TBD is this valid for afi == AFI_L2VPN? */
 			RFAPI_CHECK_REFCOUNT(rn, SAFI_MPLS_VPN, 1);
diff --git a/bgpd/rfapi/rfapi_monitor.c b/bgpd/rfapi/rfapi_monitor.c
index cc187c2aa2..fe2fdf56e3 100644
--- a/bgpd/rfapi/rfapi_monitor.c
+++ b/bgpd/rfapi/rfapi_monitor.c
@@ -919,10 +919,13 @@ void rfapiMonitorItNodeChanged(
 					assert(!skiplist_insert(nves_seen,
 								m->rfd, NULL));

-					vnc_zlog_debug_verbose(
-						"%s: update rfd %p attached to pfx %pRN (targ=%pFX)",
-						__func__, m->rfd, m->node,
-						&m->p);
+					if (VNC_DEBUG(VERBOSE)) {
+						struct bgp_debug_vrf dv = bgp_debug_vrf_get(bgp);
+
+						zlog_debug("%s: update rfd %p attached to pfx (%s:%u:%u)%pRN (targ=%pFX)",
+							   __func__, m->rfd, dv.name, dv.id,
+							   dv.table_id, m->node, &m->p);
+					}

 					/*
 					 * update its RIB
diff --git a/bgpd/rfapi/rfapi_rib.c b/bgpd/rfapi/rfapi_rib.c
index 16715565ba..a2908ecf78 100644
--- a/bgpd/rfapi/rfapi_rib.c
+++ b/bgpd/rfapi/rfapi_rib.c
@@ -378,8 +378,12 @@ static void rfapiRibStartTimer(struct rfapi_descriptor *rfd,
 		UNSET_FLAG(tcb->flags, RFAPI_RIB_TCB_FLAG_DELETED);
 	}

-	vnc_zlog_debug_verbose("%s: rfd %p pfx %pRN life %u", __func__, rfd, rn,
-			       ri->lifetime);
+	if (VNC_DEBUG(VERBOSE)) {
+		struct bgp_debug_vrf dv = bgp_debug_vrf_get(rfd ? rfd->bgp : NULL);
+
+		zlog_debug("%s: rfd %p pfx (%s:%u:%u)%pRN life %u", __func__, rfd, dv.name, dv.id,
+			   dv.table_id, rn, ri->lifetime);
+	}

 	event_add_timer(bm->master, rfapiRibExpireTimer, tcb, ri->lifetime,
 			&ri->timer);
@@ -898,11 +902,19 @@ static void process_pending_node(struct bgp *bgp, struct rfapi_descriptor *rfd,
 	int rib_node_started_nonempty = 0;
 	int sendingsomeroutes = 0;
 	const struct prefix *p;
+	struct bgp_debug_vrf dv = {
+		.name = "Unknown",
+		.id = VRF_UNKNOWN,
+		.table_id = 0,
+	};

 	assert(pn);
 	p = agg_node_get_prefix(pn);
-	vnc_zlog_debug_verbose("%s: afi=%d, %pRN pn->info=%p", __func__, afi,
-			       pn, pn->info);
+	if (VNC_DEBUG(VERBOSE)) {
+		dv = bgp_debug_vrf_get(bgp);
+		zlog_debug("%s: afi=%d, (%s:%u:%u)%pRN pn->info=%p", __func__, afi, dv.name, dv.id,
+			   dv.table_id, pn, pn->info);
+	}

 	if (AFI_L2VPN != afi) {
 		rfapiQprefix2Rprefix(p, &hp);
@@ -952,10 +964,10 @@ static void process_pending_node(struct bgp *bgp, struct rfapi_descriptor *rfd,
 					XFREE(MTYPE_RFAPI_RECENT_DELETE, tcb);
 				}

-				vnc_zlog_debug_verbose(
-					"%s:   put dl pfx=%pRN vn=%pFX un=%pFX cost=%d life=%d vn_options=%p",
-					__func__, pn, &ri->rk.vn, &ri->un,
-					ri->cost, ri->lifetime, ri->vn_options);
+				vnc_zlog_debug_verbose("%s:   put dl pfx=(%s:%u:%u)%pRN vn=%pFX un=%pFX cost=%d life=%d vn_options=%p",
+						       __func__, dv.name, dv.id, dv.table_id, pn,
+						       &ri->rk.vn, &ri->un, ri->cost, ri->lifetime,
+						       ri->vn_options);

 				skiplist_delete_first(slRibPt);
 			}
@@ -1194,7 +1206,8 @@ callback:

 		vnc_zlog_debug_verbose("%s: lPendCost->count now %d", __func__,
 				       lPendCost->count);
-		vnc_zlog_debug_verbose("%s: For prefix %pRN (a)", __func__, pn);
+		vnc_zlog_debug_verbose("%s: For prefix (%s:%u:%u)%pRN (a)", __func__, dv.name,
+				       dv.id, dv.table_id, pn);
 		printedprefix = 1;

 		for (ALL_LIST_ELEMENTS(lPendCost, node, nnode, ri)) {
@@ -1274,8 +1287,8 @@ callback:
 		char buf2[BUFSIZ];

 		if (!printedprefix) {
-			vnc_zlog_debug_verbose("%s: For prefix %pRN (d)",
-					       __func__, pn);
+			vnc_zlog_debug_verbose("%s: For prefix (%s:%u:%u)%pRN (d)", __func__,
+					       dv.name, dv.id, dv.table_id, pn);
 		}
 		vnc_zlog_debug_verbose("%s: delete_list has %d elements",
 				       __func__, delete_list->count);
@@ -2100,8 +2113,12 @@ void rfapiRibPendingDeleteRoute(struct bgp *bgp, struct rfapi_import_table *it,
 	struct listnode *node;
 	const struct prefix *p = agg_node_get_prefix(it_node);

-	vnc_zlog_debug_verbose("%s: entry, it=%p, afi=%d, it_node=%p, pfx=%pRN",
-			       __func__, it, afi, it_node, it_node);
+	if (VNC_DEBUG(VERBOSE)) {
+		struct bgp_debug_vrf dv = bgp_debug_vrf_get(bgp);
+
+		zlog_debug("%s: entry, it=%p, afi=%d, it_node=%p, pfx=(%s:%u:%u)%pRN", __func__,
+			   it, afi, it_node, dv.name, dv.id, dv.table_id, it_node);
+	}

 	if (AFI_L2VPN == afi) {
 		/*
diff --git a/bgpd/rfapi/vnc_export_bgp.c b/bgpd/rfapi/vnc_export_bgp.c
index 5ced36cf23..5a53af0c2d 100644
--- a/bgpd/rfapi/vnc_export_bgp.c
+++ b/bgpd/rfapi/vnc_export_bgp.c
@@ -424,8 +424,12 @@ static void vnc_direct_bgp_vpn_enable_ce(struct bgp *bgp, afi_t afi)
 		if (!rn->info)
 			continue;

-		vnc_zlog_debug_verbose("%s: checking prefix %pRN", __func__,
-				       rn);
+		if (VNC_DEBUG(VERBOSE)) {
+			struct bgp_debug_vrf dv = bgp_debug_vrf_get(bgp);
+
+			zlog_debug("%s: checking prefix (%s:%u:%u)%pRN", __func__, dv.name, dv.id,
+				   dv.table_id, rn);
+		}

 		for (ri = rn->info; ri; ri = ri->next) {

diff --git a/bgpd/rfapi/vnc_import_bgp.c b/bgpd/rfapi/vnc_import_bgp.c
index 879a3cec79..ef24167caf 100644
--- a/bgpd/rfapi/vnc_import_bgp.c
+++ b/bgpd/rfapi/vnc_import_bgp.c
@@ -1989,8 +1989,12 @@ void vnc_import_bgp_exterior_add_route_interior(
 	}

 	/*debugging */
-	vnc_zlog_debug_verbose("%s: interior prefix=%pRN, bpi type=%d",
-			       __func__, rn_interior, bpi_interior->type);
+	if (VNC_DEBUG(VERBOSE)) {
+		struct bgp_debug_vrf dv = bgp_debug_vrf_get(bgp);
+
+		zlog_debug("%s: interior prefix=(%s:%u:%u)%pRN, bpi type=%d", __func__, dv.name,
+			   dv.id, dv.table_id, rn_interior, bpi_interior->type);
+	}

 	if (RFAPI_HAS_MONITOR_EXTERIOR(rn_interior)) {

@@ -2375,8 +2379,12 @@ void vnc_import_bgp_exterior_del_route_interior(
 	}

 	/*debugging */
-	vnc_zlog_debug_verbose("%s: interior prefix=%pRN, bpi type=%d",
-			       __func__, rn_interior, bpi_interior->type);
+	if (VNC_DEBUG(VERBOSE)) {
+		struct bgp_debug_vrf dv = bgp_debug_vrf_get(bgp);
+
+		zlog_debug("%s: interior prefix=(%s:%u:%u)%pRN, bpi type=%d", __func__, dv.name,
+			   dv.id, dv.table_id, rn_interior, bpi_interior->type);
+	}

 	/*
 	 * Remove constructed routes based on the deleted interior route