mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 16:39:33 +00:00
Merge pull request #10942 from opensourcerouting/feature/printfrr_extension_for_peer_hostname
bgpd: Add `%pBP` printfrr() extension to print `IP(hostname)` for BGP peer
This commit is contained in:
commit
ef0b66450d
@ -677,8 +677,7 @@ static void bgp_llgr_stale_timer_expire(struct thread *thread)
|
||||
* stale routes from the neighbor that it is retaining.
|
||||
*/
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug("%s(%s) Long-lived stale timer (%s) expired",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
zlog_debug("%pBP Long-lived stale timer (%s) expired", peer,
|
||||
get_afi_safi_str(afi, safi, false));
|
||||
|
||||
UNSET_FLAG(peer->af_sflags[afi][safi], PEER_STATUS_LLGR_WAIT);
|
||||
@ -720,10 +719,8 @@ static void bgp_set_llgr_stale(struct peer *peer, afi_t afi, safi_t safi)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) Long-lived set stale community (LLGR_STALE) for: %pFX",
|
||||
peer->host,
|
||||
bgp_peer_hostname(peer),
|
||||
&dest->p);
|
||||
"%pBP Long-lived set stale community (LLGR_STALE) for: %pFX",
|
||||
peer, &dest->p);
|
||||
|
||||
attr = *pi->attr;
|
||||
bgp_attr_add_llgr_community(&attr);
|
||||
@ -750,10 +747,8 @@ static void bgp_set_llgr_stale(struct peer *peer, afi_t afi, safi_t safi)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) Long-lived set stale community (LLGR_STALE) for: %pFX",
|
||||
peer->host,
|
||||
bgp_peer_hostname(peer),
|
||||
&dest->p);
|
||||
"%pBP Long-lived set stale community (LLGR_STALE) for: %pFX",
|
||||
peer, &dest->p);
|
||||
|
||||
attr = *pi->attr;
|
||||
bgp_attr_add_llgr_community(&attr);
|
||||
@ -777,10 +772,9 @@ static void bgp_graceful_restart_timer_expire(struct thread *thread)
|
||||
peer = THREAD_ARG(thread);
|
||||
|
||||
if (bgp_debug_neighbor_events(peer)) {
|
||||
zlog_debug("%s(%s) graceful restart timer expired", peer->host,
|
||||
bgp_peer_hostname(peer));
|
||||
zlog_debug("%s(%s) graceful restart stalepath timer stopped",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
zlog_debug("%pBP graceful restart timer expired", peer);
|
||||
zlog_debug("%pBP graceful restart stalepath timer stopped",
|
||||
peer);
|
||||
}
|
||||
|
||||
FOREACH_AFI_SAFI (afi, safi) {
|
||||
@ -806,8 +800,8 @@ static void bgp_graceful_restart_timer_expire(struct thread *thread)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) Long-lived stale timer (%s) started for %d sec",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
"%pBP Long-lived stale timer (%s) started for %d sec",
|
||||
peer,
|
||||
get_afi_safi_str(afi, safi, false),
|
||||
peer->llgr[afi][safi].stale_time);
|
||||
|
||||
@ -842,8 +836,8 @@ static void bgp_graceful_stale_timer_expire(struct thread *thread)
|
||||
peer = THREAD_ARG(thread);
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug("%s(%s) graceful restart stalepath timer expired",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
zlog_debug("%pBP graceful restart stalepath timer expired",
|
||||
peer);
|
||||
|
||||
/* NSF delete stale route */
|
||||
FOREACH_AFI_SAFI_NSF (afi, safi)
|
||||
@ -1395,8 +1389,8 @@ int bgp_stop(struct peer *peer)
|
||||
struct vrf *vrf = vrf_lookup_by_id(peer->bgp->vrf_id);
|
||||
|
||||
zlog_info(
|
||||
"%%ADJCHANGE: neighbor %s(%s) in vrf %s Down %s",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
"%%ADJCHANGE: neighbor %pBP in vrf %s Down %s",
|
||||
peer,
|
||||
vrf ? ((vrf->vrf_id != VRF_DEFAULT)
|
||||
? vrf->name
|
||||
: VRF_DEFAULT_NAME)
|
||||
@ -1409,19 +1403,17 @@ int bgp_stop(struct peer *peer)
|
||||
BGP_TIMER_OFF(peer->t_gr_stale);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) graceful restart stalepath timer stopped",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
"%pBP graceful restart stalepath timer stopped",
|
||||
peer);
|
||||
}
|
||||
if (CHECK_FLAG(peer->sflags, PEER_STATUS_NSF_WAIT)) {
|
||||
if (bgp_debug_neighbor_events(peer)) {
|
||||
zlog_debug(
|
||||
"%s(%s) graceful restart timer started for %d sec",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
peer->v_gr_restart);
|
||||
"%pBP graceful restart timer started for %d sec",
|
||||
peer, peer->v_gr_restart);
|
||||
zlog_debug(
|
||||
"%s(%s) graceful restart stalepath timer started for %d sec",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
peer->bgp->stalepath_time);
|
||||
"%pBP graceful restart stalepath timer started for %d sec",
|
||||
peer, peer->bgp->stalepath_time);
|
||||
}
|
||||
BGP_TIMER_ON(peer->t_gr_restart,
|
||||
bgp_graceful_restart_timer_expire,
|
||||
@ -1442,8 +1434,8 @@ int bgp_stop(struct peer *peer)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) route-refresh restart stalepath timer stopped",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
"%pBP route-refresh restart stalepath timer stopped",
|
||||
peer);
|
||||
}
|
||||
|
||||
/* If peer reset before receiving EOR, decrement EOR count and
|
||||
@ -2099,8 +2091,7 @@ static int bgp_establish(struct peer *peer)
|
||||
/* bgp log-neighbor-changes of neighbor Up */
|
||||
if (CHECK_FLAG(peer->bgp->flags, BGP_FLAG_LOG_NEIGHBOR_CHANGES)) {
|
||||
struct vrf *vrf = vrf_lookup_by_id(peer->bgp->vrf_id);
|
||||
zlog_info("%%ADJCHANGE: neighbor %s(%s) in vrf %s Up",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
zlog_info("%%ADJCHANGE: neighbor %pBP in vrf %s Up", peer,
|
||||
vrf ? ((vrf->vrf_id != VRF_DEFAULT)
|
||||
? vrf->name
|
||||
: VRF_DEFAULT_NAME)
|
||||
@ -2113,9 +2104,9 @@ static int bgp_establish(struct peer *peer)
|
||||
UNSET_FLAG(peer->sflags, PEER_STATUS_NSF_WAIT);
|
||||
if (bgp_debug_neighbor_events(peer)) {
|
||||
if (BGP_PEER_RESTARTING_MODE(peer))
|
||||
zlog_debug("peer %s BGP_RESTARTING_MODE", peer->host);
|
||||
zlog_debug("%pBP BGP_RESTARTING_MODE", peer);
|
||||
else if (BGP_PEER_HELPER_MODE(peer))
|
||||
zlog_debug("peer %s BGP_HELPER_MODE", peer->host);
|
||||
zlog_debug("%pBP BGP_HELPER_MODE", peer);
|
||||
}
|
||||
|
||||
FOREACH_AFI_SAFI_NSF (afi, safi) {
|
||||
@ -2189,16 +2180,15 @@ static int bgp_establish(struct peer *peer)
|
||||
BGP_TIMER_OFF(peer->t_gr_stale);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) graceful restart stalepath timer stopped",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
"%pBP graceful restart stalepath timer stopped",
|
||||
peer);
|
||||
}
|
||||
}
|
||||
|
||||
if (peer->t_gr_restart) {
|
||||
BGP_TIMER_OFF(peer->t_gr_restart);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug("%s(%s) graceful restart timer stopped",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
zlog_debug("%pBP graceful restart timer stopped", peer);
|
||||
}
|
||||
|
||||
/* Reset uptime, turn on keepalives, send current table. */
|
||||
@ -2215,8 +2205,8 @@ static int bgp_establish(struct peer *peer)
|
||||
BGP_TIMER_OFF(peer->t_llgr_stale[afi][safi]);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s Long-lived stale timer stopped for afi/safi: %d/%d",
|
||||
peer->host, afi, safi);
|
||||
"%pBP Long-lived stale timer stopped for afi/safi: %d/%d",
|
||||
peer, afi, safi);
|
||||
}
|
||||
|
||||
if (CHECK_FLAG(peer->af_cap[afi][safi],
|
||||
|
@ -313,14 +313,14 @@ static int bgp_nlri_get_labels(struct peer *peer, uint8_t *pnt, uint8_t plen,
|
||||
/* If we RX multiple labels we will end up keeping only the last
|
||||
* one. We do not yet support a label stack greater than 1. */
|
||||
if (label_depth > 1)
|
||||
zlog_info("%s rcvd UPDATE with label stack %d deep", peer->host,
|
||||
zlog_info("%pBP rcvd UPDATE with label stack %d deep", peer,
|
||||
label_depth);
|
||||
|
||||
if (!(bgp_is_withdraw_label(label) || label_bos(label)))
|
||||
flog_warn(
|
||||
EC_BGP_INVALID_LABEL_STACK,
|
||||
"%s rcvd UPDATE with invalid label stack - no bottom of stack",
|
||||
peer->host);
|
||||
"%pBP rcvd UPDATE with invalid label stack - no bottom of stack",
|
||||
peer);
|
||||
|
||||
return llen;
|
||||
}
|
||||
|
@ -483,10 +483,8 @@ void bgp_generate_updgrp_packets(struct thread *thread)
|
||||
if (bgp_debug_neighbor_events(
|
||||
peer))
|
||||
zlog_debug(
|
||||
"%s(%s) sending route-refresh (EoRR) for %s/%s",
|
||||
peer->host,
|
||||
bgp_peer_hostname(
|
||||
peer),
|
||||
"%pBP sending route-refresh (EoRR) for %s/%s",
|
||||
peer,
|
||||
afi2str(afi),
|
||||
safi2str(safi));
|
||||
}
|
||||
@ -915,10 +913,8 @@ void bgp_route_refresh_send(struct peer *peer, afi_t afi, safi_t safi,
|
||||
stream_putc(s, ORF_COMMON_PART_REMOVE_ALL);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) sending REFRESH_REQ to remove ORF(%d) (%s) for afi/safi: %s/%s",
|
||||
peer->host,
|
||||
bgp_peer_hostname(peer),
|
||||
orf_type,
|
||||
"%pBP sending REFRESH_REQ to remove ORF(%d) (%s) for afi/safi: %s/%s",
|
||||
peer, orf_type,
|
||||
(when_to_refresh ==
|
||||
REFRESH_DEFER
|
||||
? "defer"
|
||||
@ -935,10 +931,8 @@ void bgp_route_refresh_send(struct peer *peer, afi_t afi, safi_t safi,
|
||||
ORF_COMMON_PART_DENY);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) sending REFRESH_REQ with pfxlist ORF(%d) (%s) for afi/safi: %s/%s",
|
||||
peer->host,
|
||||
bgp_peer_hostname(peer),
|
||||
orf_type,
|
||||
"%pBP sending REFRESH_REQ with pfxlist ORF(%d) (%s) for afi/safi: %s/%s",
|
||||
peer, orf_type,
|
||||
(when_to_refresh ==
|
||||
REFRESH_DEFER
|
||||
? "defer"
|
||||
@ -958,9 +952,9 @@ void bgp_route_refresh_send(struct peer *peer, afi_t afi, safi_t safi,
|
||||
if (bgp_debug_neighbor_events(peer)) {
|
||||
if (!orf_refresh)
|
||||
zlog_debug(
|
||||
"%s(%s) sending REFRESH_REQ for afi/safi: %s/%s",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
iana_afi2str(pkt_afi), iana_safi2str(pkt_safi));
|
||||
"%pBP sending REFRESH_REQ for afi/safi: %s/%s",
|
||||
peer, iana_afi2str(pkt_afi),
|
||||
iana_safi2str(pkt_safi));
|
||||
}
|
||||
|
||||
/* Add packet to the peer. */
|
||||
@ -1004,8 +998,8 @@ void bgp_capability_send(struct peer *peer, afi_t afi, safi_t safi,
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) sending CAPABILITY has %s MP_EXT CAP for afi/safi: %s/%s",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
"%pBP sending CAPABILITY has %s MP_EXT CAP for afi/safi: %s/%s",
|
||||
peer,
|
||||
action == CAPABILITY_ACTION_SET ? "Advertising"
|
||||
: "Removing",
|
||||
iana_afi2str(pkt_afi), iana_safi2str(pkt_safi));
|
||||
@ -1561,8 +1555,8 @@ static void bgp_refresh_stalepath_timer_expire(struct thread *thread)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) route-refresh (BoRR) timer expired for afi/safi: %d/%d",
|
||||
peer->host, bgp_peer_hostname(peer), afi, safi);
|
||||
"%pBP route-refresh (BoRR) timer expired for afi/safi: %d/%d",
|
||||
peer, afi, safi);
|
||||
|
||||
bgp_timer_set(peer);
|
||||
}
|
||||
@ -1714,12 +1708,11 @@ static int bgp_update_receive(struct peer *peer, bgp_size_t size)
|
||||
if (attr_parse_ret == BGP_ATTR_PARSE_WITHDRAW)
|
||||
flog_err(
|
||||
EC_BGP_UPDATE_RCV,
|
||||
"%s rcvd UPDATE with errors in attr(s)!! Withdrawing route.",
|
||||
peer->host);
|
||||
"%pBP rcvd UPDATE with errors in attr(s)!! Withdrawing route.",
|
||||
peer);
|
||||
|
||||
if (ret && bgp_debug_update(peer, NULL, NULL, 1)) {
|
||||
zlog_debug("%s(%s) rcvd UPDATE w/ attr: %s", peer->host,
|
||||
bgp_peer_hostname(peer),
|
||||
zlog_debug("%pBP rcvd UPDATE w/ attr: %s", peer,
|
||||
peer->rcvd_attr_str);
|
||||
peer->rcvd_attr_printed = 1;
|
||||
}
|
||||
@ -1749,9 +1742,8 @@ static int bgp_update_receive(struct peer *peer, bgp_size_t size)
|
||||
}
|
||||
|
||||
if (BGP_DEBUG(update, UPDATE_IN))
|
||||
zlog_debug("%s(%s) rcvd UPDATE wlen %d attrlen %d alen %d",
|
||||
peer->host, bgp_peer_hostname(peer), withdraw_len,
|
||||
attribute_len, update_len);
|
||||
zlog_debug("%pBP rcvd UPDATE wlen %d attrlen %d alen %d", peer,
|
||||
withdraw_len, attribute_len, update_len);
|
||||
|
||||
/* Parse any given NLRIs */
|
||||
for (int i = NLRI_UPDATE; i < NLRI_TYPE_MAX; i++) {
|
||||
@ -2104,8 +2096,8 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer)) {
|
||||
zlog_debug(
|
||||
"%s rcvd Prefixlist ORF(%d) length %d",
|
||||
peer->host, orf_type, orf_len);
|
||||
"%pBP rcvd Prefixlist ORF(%d) length %d",
|
||||
peer, orf_type, orf_len);
|
||||
}
|
||||
|
||||
/* we're going to read at least 1 byte of common
|
||||
@ -2137,8 +2129,8 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
if (bgp_debug_neighbor_events(
|
||||
peer))
|
||||
zlog_debug(
|
||||
"%s rcvd Remove-All pfxlist ORF request",
|
||||
peer->host);
|
||||
"%pBP rcvd Remove-All pfxlist ORF request",
|
||||
peer);
|
||||
prefix_bgp_orf_remove_all(afi,
|
||||
name);
|
||||
break;
|
||||
@ -2189,8 +2181,8 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
char buf[INET6_BUFSIZ];
|
||||
|
||||
zlog_debug(
|
||||
"%s rcvd %s %s seq %u %s/%d ge %d le %d%s",
|
||||
peer->host,
|
||||
"%pBP rcvd %s %s seq %u %s/%d ge %d le %d%s",
|
||||
peer,
|
||||
(common & ORF_COMMON_PART_REMOVE
|
||||
? "Remove"
|
||||
: "Add"),
|
||||
@ -2220,8 +2212,8 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
|
||||
if (!ok || (ok && ret != CMD_SUCCESS)) {
|
||||
zlog_info(
|
||||
"%s Received misformatted prefixlist ORF. Remove All pfxlist",
|
||||
peer->host);
|
||||
"%pBP Received misformatted prefixlist ORF. Remove All pfxlist",
|
||||
peer);
|
||||
prefix_bgp_orf_remove_all(afi,
|
||||
name);
|
||||
break;
|
||||
@ -2234,7 +2226,7 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
stream_forward_getp(s, orf_len);
|
||||
}
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug("%s rcvd Refresh %s ORF request", peer->host,
|
||||
zlog_debug("%pBP rcvd Refresh %s ORF request", peer,
|
||||
when_to_refresh == REFRESH_DEFER
|
||||
? "Defer"
|
||||
: "Immediate");
|
||||
@ -2285,18 +2277,16 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
PEER_STATUS_EOR_RECEIVED)) {
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) rcvd route-refresh (BoRR) for %s/%s before EoR",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi));
|
||||
"%pBP rcvd route-refresh (BoRR) for %s/%s before EoR",
|
||||
peer, afi2str(afi), safi2str(safi));
|
||||
return BGP_PACKET_NOOP;
|
||||
}
|
||||
|
||||
if (peer->t_refresh_stalepath) {
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) rcvd route-refresh (BoRR) for %s/%s, whereas BoRR already received",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi));
|
||||
"%pBP rcvd route-refresh (BoRR) for %s/%s, whereas BoRR already received",
|
||||
peer, afi2str(afi), safi2str(safi));
|
||||
return BGP_PACKET_NOOP;
|
||||
}
|
||||
|
||||
@ -2324,16 +2314,14 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) rcvd route-refresh (BoRR) for %s/%s, triggering timer for %u seconds",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi),
|
||||
"%pBP rcvd route-refresh (BoRR) for %s/%s, triggering timer for %u seconds",
|
||||
peer, afi2str(afi), safi2str(safi),
|
||||
peer->bgp->stalepath_time);
|
||||
} else if (subtype == BGP_ROUTE_REFRESH_EORR) {
|
||||
if (!peer->t_refresh_stalepath) {
|
||||
zlog_err(
|
||||
"%s(%s) rcvd route-refresh (EoRR) for %s/%s, whereas no BoRR received",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi));
|
||||
"%pBP rcvd route-refresh (EoRR) for %s/%s, whereas no BoRR received",
|
||||
peer, afi2str(afi), safi2str(safi));
|
||||
return BGP_PACKET_NOOP;
|
||||
}
|
||||
|
||||
@ -2345,18 +2333,16 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) rcvd route-refresh (EoRR) for %s/%s, stopping BoRR timer",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi));
|
||||
"%pBP rcvd route-refresh (EoRR) for %s/%s, stopping BoRR timer",
|
||||
peer, afi2str(afi), safi2str(safi));
|
||||
|
||||
if (peer->nsf[afi][safi])
|
||||
bgp_clear_stale_route(peer, afi, safi);
|
||||
} else {
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) rcvd route-refresh (REQUEST) for %s/%s",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi));
|
||||
"%pBP rcvd route-refresh (REQUEST) for %s/%s",
|
||||
peer, afi2str(afi), safi2str(safi));
|
||||
|
||||
/* In response to a "normal route refresh request" from the
|
||||
* peer, the speaker MUST send a BoRR message.
|
||||
@ -2371,10 +2357,9 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
PEER_STATUS_EOR_SEND)) {
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) rcvd route-refresh (REQUEST) for %s/%s before EoR",
|
||||
peer->host,
|
||||
bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi));
|
||||
"%pBP rcvd route-refresh (REQUEST) for %s/%s before EoR",
|
||||
peer, afi2str(afi),
|
||||
safi2str(safi));
|
||||
return BGP_PACKET_NOOP;
|
||||
}
|
||||
|
||||
@ -2383,9 +2368,8 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) sending route-refresh (BoRR) for %s/%s",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
afi2str(afi), safi2str(safi));
|
||||
"%pBP sending route-refresh (BoRR) for %s/%s",
|
||||
peer, afi2str(afi), safi2str(safi));
|
||||
|
||||
/* Set flag Ready-To-Send to know when we can send EoRR
|
||||
* message.
|
||||
|
@ -3433,9 +3433,9 @@ bool bgp_maximum_prefix_overflow(struct peer *peer, afi_t afi, safi_t safi,
|
||||
return false;
|
||||
|
||||
zlog_info(
|
||||
"%%MAXPFXEXCEED: No. of %s prefix received from %s(%s) %u exceed, limit %u",
|
||||
get_afi_safi_str(afi, safi, false), peer->host,
|
||||
bgp_peer_hostname(peer), pcount, peer->pmax[afi][safi]);
|
||||
"%%MAXPFXEXCEED: No. of %s prefix received from %pBP %u exceed, limit %u",
|
||||
get_afi_safi_str(afi, safi, false), peer, pcount,
|
||||
peer->pmax[afi][safi]);
|
||||
SET_FLAG(peer->af_sflags[afi][safi], PEER_STATUS_PREFIX_LIMIT);
|
||||
|
||||
if (CHECK_FLAG(peer->af_flags[afi][safi],
|
||||
@ -3473,9 +3473,8 @@ bool bgp_maximum_prefix_overflow(struct peer *peer, afi_t afi, safi_t safi,
|
||||
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) Maximum-prefix restart timer started for %d secs",
|
||||
peer->host, bgp_peer_hostname(peer),
|
||||
peer->v_pmax_restart);
|
||||
"%pBP Maximum-prefix restart timer started for %d secs",
|
||||
peer, peer->v_pmax_restart);
|
||||
|
||||
BGP_TIMER_ON(peer->t_pmax_restart,
|
||||
bgp_maximum_prefix_restart_timer,
|
||||
@ -3495,8 +3494,8 @@ bool bgp_maximum_prefix_overflow(struct peer *peer, afi_t afi, safi_t safi,
|
||||
return false;
|
||||
|
||||
zlog_info(
|
||||
"%%MAXPFX: No. of %s prefix received from %s reaches %u, max %u",
|
||||
get_afi_safi_str(afi, safi, false), peer->host, pcount,
|
||||
"%%MAXPFX: No. of %s prefix received from %pBP reaches %u, max %u",
|
||||
get_afi_safi_str(afi, safi, false), peer, pcount,
|
||||
peer->pmax[afi][safi]);
|
||||
SET_FLAG(peer->af_sflags[afi][safi],
|
||||
PEER_STATUS_PREFIX_THRESHOLD);
|
||||
@ -4009,7 +4008,7 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
num_labels, addpath_id ? 1 : 0,
|
||||
addpath_id, evpn, pfx_buf,
|
||||
sizeof(pfx_buf));
|
||||
zlog_debug("%s rcvd %s", peer->host,
|
||||
zlog_debug("%pBP rcvd %s", peer,
|
||||
pfx_buf);
|
||||
}
|
||||
|
||||
@ -4024,8 +4023,8 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
if (bgp_debug_update(peer, p, NULL, 1)) {
|
||||
if (!peer->rcvd_attr_printed) {
|
||||
zlog_debug(
|
||||
"%s rcvd UPDATE w/ attr: %s",
|
||||
peer->host,
|
||||
"%pBP rcvd UPDATE w/ attr: %s",
|
||||
peer,
|
||||
peer->rcvd_attr_str);
|
||||
peer->rcvd_attr_printed = 1;
|
||||
}
|
||||
@ -4036,8 +4035,8 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
addpath_id, evpn, pfx_buf,
|
||||
sizeof(pfx_buf));
|
||||
zlog_debug(
|
||||
"%s rcvd %s...duplicate ignored",
|
||||
peer->host, pfx_buf);
|
||||
"%pBP rcvd %s...duplicate ignored",
|
||||
peer, pfx_buf);
|
||||
}
|
||||
|
||||
/* graceful restart STALE flag unset. */
|
||||
@ -4063,8 +4062,8 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
addpath_id ? 1 : 0, addpath_id, evpn,
|
||||
pfx_buf, sizeof(pfx_buf));
|
||||
zlog_debug(
|
||||
"%s rcvd %s, flapped quicker than processing",
|
||||
peer->host, pfx_buf);
|
||||
"%pBP rcvd %s, flapped quicker than processing",
|
||||
peer, pfx_buf);
|
||||
}
|
||||
|
||||
bgp_path_info_restore(dest, pi);
|
||||
@ -4084,7 +4083,7 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
num_labels, addpath_id ? 1 : 0,
|
||||
addpath_id, evpn, pfx_buf,
|
||||
sizeof(pfx_buf));
|
||||
zlog_debug("%s rcvd %s", peer->host, pfx_buf);
|
||||
zlog_debug("%pBP rcvd %s", peer, pfx_buf);
|
||||
}
|
||||
|
||||
/* graceful restart STALE flag unset. */
|
||||
@ -4381,7 +4380,7 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
/* Received Logging. */
|
||||
if (bgp_debug_update(peer, p, NULL, 1)) {
|
||||
if (!peer->rcvd_attr_printed) {
|
||||
zlog_debug("%s rcvd UPDATE w/ attr: %s", peer->host,
|
||||
zlog_debug("%pBP rcvd UPDATE w/ attr: %s", peer,
|
||||
peer->rcvd_attr_str);
|
||||
peer->rcvd_attr_printed = 1;
|
||||
}
|
||||
@ -4389,7 +4388,7 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
bgp_debug_rdpfxpath2str(afi, safi, prd, p, label, num_labels,
|
||||
addpath_id ? 1 : 0, addpath_id, evpn,
|
||||
pfx_buf, sizeof(pfx_buf));
|
||||
zlog_debug("%s rcvd %s", peer->host, pfx_buf);
|
||||
zlog_debug("%pBP rcvd %s", peer, pfx_buf);
|
||||
}
|
||||
|
||||
/* Make new BGP info. */
|
||||
@ -4533,7 +4532,7 @@ filtered:
|
||||
|
||||
if (bgp_debug_update(peer, p, NULL, 1)) {
|
||||
if (!peer->rcvd_attr_printed) {
|
||||
zlog_debug("%s rcvd UPDATE w/ attr: %s", peer->host,
|
||||
zlog_debug("%pBP rcvd UPDATE w/ attr: %s", peer,
|
||||
peer->rcvd_attr_str);
|
||||
peer->rcvd_attr_printed = 1;
|
||||
}
|
||||
@ -4541,8 +4540,8 @@ filtered:
|
||||
bgp_debug_rdpfxpath2str(afi, safi, prd, p, label, num_labels,
|
||||
addpath_id ? 1 : 0, addpath_id, evpn,
|
||||
pfx_buf, sizeof(pfx_buf));
|
||||
zlog_debug("%s rcvd UPDATE about %s -- DENIED due to: %s",
|
||||
peer->host, pfx_buf, reason);
|
||||
zlog_debug("%pBP rcvd UPDATE about %s -- DENIED due to: %s",
|
||||
peer, pfx_buf, reason);
|
||||
}
|
||||
|
||||
if (pi) {
|
||||
@ -4646,7 +4645,7 @@ int bgp_withdraw(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
|
||||
bgp_debug_rdpfxpath2str(afi, safi, prd, p, label, num_labels,
|
||||
addpath_id ? 1 : 0, addpath_id, NULL,
|
||||
pfx_buf, sizeof(pfx_buf));
|
||||
zlog_debug("%s rcvd UPDATE about %s -- withdrawn", peer->host,
|
||||
zlog_debug("%pBP rcvd UPDATE about %s -- withdrawn", peer,
|
||||
pfx_buf);
|
||||
}
|
||||
|
||||
|
29
bgpd/bgpd.c
29
bgpd/bgpd.c
@ -2349,15 +2349,14 @@ void peer_nsf_stop(struct peer *peer)
|
||||
if (peer->t_gr_restart) {
|
||||
BGP_TIMER_OFF(peer->t_gr_restart);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug("%s(%s) graceful restart timer stopped",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
zlog_debug("%pBP graceful restart timer stopped", peer);
|
||||
}
|
||||
if (peer->t_gr_stale) {
|
||||
BGP_TIMER_OFF(peer->t_gr_stale);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) graceful restart stalepath timer stopped",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
"%pBP graceful restart stalepath timer stopped",
|
||||
peer);
|
||||
}
|
||||
bgp_clear_route_all(peer);
|
||||
}
|
||||
@ -4296,9 +4295,8 @@ static void peer_flag_modify_action(struct peer *peer, uint32_t flag)
|
||||
BGP_TIMER_OFF(peer->t_pmax_restart);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) Maximum-prefix restart timer canceled",
|
||||
peer->host,
|
||||
bgp_peer_hostname(peer));
|
||||
"%pBP Maximum-prefix restart timer canceled",
|
||||
peer);
|
||||
}
|
||||
|
||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->status)) {
|
||||
@ -7189,8 +7187,8 @@ static bool peer_maximum_prefix_clear_overflow(struct peer *peer)
|
||||
BGP_TIMER_OFF(peer->t_pmax_restart);
|
||||
if (bgp_debug_neighbor_events(peer))
|
||||
zlog_debug(
|
||||
"%s(%s) Maximum-prefix restart timer cancelled",
|
||||
peer->host, bgp_peer_hostname(peer));
|
||||
"%pBP Maximum-prefix restart timer cancelled",
|
||||
peer);
|
||||
}
|
||||
BGP_EVENT_ADD(peer, BGP_Start);
|
||||
return true;
|
||||
@ -8138,3 +8136,16 @@ void bgp_gr_apply_running_config(void)
|
||||
gr_router_detected = false;
|
||||
}
|
||||
}
|
||||
|
||||
printfrr_ext_autoreg_p("BP", printfrr_bp);
|
||||
static ssize_t printfrr_bp(struct fbuf *buf, struct printfrr_eargs *ea,
|
||||
const void *ptr)
|
||||
{
|
||||
const struct peer *peer = ptr;
|
||||
|
||||
if (!peer)
|
||||
return bputs(buf, "(null)");
|
||||
|
||||
return bprintfrr(buf, "%s(%s)", peer->host,
|
||||
peer->hostname ? peer->hostname : "Unknown");
|
||||
}
|
||||
|
12
bgpd/bgpd.h
12
bgpd/bgpd.h
@ -2473,11 +2473,6 @@ static inline bool bgp_in_graceful_shutdown(struct bgp *bgp)
|
||||
!!CHECK_FLAG(bm->flags, BM_FLAG_GRACEFUL_SHUTDOWN));
|
||||
}
|
||||
|
||||
static inline const char *bgp_peer_hostname(struct peer *peer)
|
||||
{
|
||||
return peer->hostname ? peer->hostname : "Unknown";
|
||||
}
|
||||
|
||||
/* For benefit of rfapi */
|
||||
extern struct peer *peer_new(struct bgp *bgp);
|
||||
|
||||
@ -2508,4 +2503,11 @@ void peer_tcp_mss_unset(struct peer *peer);
|
||||
|
||||
extern void bgp_recalculate_afi_safi_bestpaths(struct bgp *bgp, afi_t afi,
|
||||
safi_t safi);
|
||||
|
||||
#ifdef _FRR_ATTRIBUTE_PRINTFRR
|
||||
/* clang-format off */
|
||||
#pragma FRR printfrr_ext "%pBP" (struct peer *)
|
||||
/* clang-format on */
|
||||
#endif
|
||||
|
||||
#endif /* _QUAGGA_BGPD_H */
|
||||
|
@ -381,6 +381,12 @@ bgpd
|
||||
|
||||
:frrfmtout:`fe80::1234/64`
|
||||
|
||||
.. frrfmt:: %pBP (struct peer *)
|
||||
|
||||
:frrfmtout:`192.168.1.1(leaf1.frrouting.org)`
|
||||
|
||||
Print BGP peer's IP and hostname together.
|
||||
|
||||
pimd/pim6d
|
||||
""""""""""
|
||||
|
||||
|
@ -169,7 +169,7 @@ def test_bgp_community_update_path_change():
|
||||
if (
|
||||
len(
|
||||
tgen.gears["c1"].run(
|
||||
'grep "10.0.1.2 rcvd 192.168.255.254/32 IPv4 unicast...duplicate ignored" bgpd.log'
|
||||
'grep "10.0.1.2(x1) rcvd 192.168.255.254/32 IPv4 unicast...duplicate ignored" bgpd.log'
|
||||
)
|
||||
)
|
||||
> 0
|
||||
|
Loading…
Reference in New Issue
Block a user