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