mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 13:58:24 +00:00
bgpd: Show "(Policy)" under PfxRcd/PfxSnt when eBGP policy is in use
It could be hard to notice when eBGP policy is missing in `show bgp summary`. This adds more sugar to the output: Normal: ``` MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt 10 0 0 0 00:02:07 6 8 ``` When rfc8212 is enabled (default since 7.4) - OUTBOUND: ``` MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt 13 0 0 0 00:04:56 6 (Policy) ``` INBOUND: ``` MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt 19 0 0 0 00:06:27 (Policy) 2 ``` Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
This commit is contained in:
parent
81ad029173
commit
d3ada36668
@ -8766,6 +8766,7 @@ static int bgp_show_summary(struct vty *vty, struct bgp *bgp, int afi, int safi,
|
|||||||
json_object *json_peer = NULL;
|
json_object *json_peer = NULL;
|
||||||
json_object *json_peers = NULL;
|
json_object *json_peers = NULL;
|
||||||
struct peer_af *paf;
|
struct peer_af *paf;
|
||||||
|
struct bgp_filter *filter;
|
||||||
|
|
||||||
/* labeled-unicast routes are installed in the unicast table so in order
|
/* labeled-unicast routes are installed in the unicast table so in order
|
||||||
* to
|
* to
|
||||||
@ -9066,6 +9067,7 @@ static int bgp_show_summary(struct vty *vty, struct bgp *bgp, int afi, int safi,
|
|||||||
}
|
}
|
||||||
|
|
||||||
paf = peer_af_find(peer, afi, pfx_rcd_safi);
|
paf = peer_af_find(peer, afi, pfx_rcd_safi);
|
||||||
|
filter = &peer->filter[afi][safi];
|
||||||
|
|
||||||
count++;
|
count++;
|
||||||
/* Works for both failed & successful cases */
|
/* Works for both failed & successful cases */
|
||||||
@ -9208,18 +9210,39 @@ static int bgp_show_summary(struct vty *vty, struct bgp *bgp, int afi, int safi,
|
|||||||
BGP_UPTIME_LEN, 0, NULL));
|
BGP_UPTIME_LEN, 0, NULL));
|
||||||
|
|
||||||
if (peer->status == Established) {
|
if (peer->status == Established) {
|
||||||
if (peer->afc_recv[afi][safi])
|
if (peer->afc_recv[afi][safi]) {
|
||||||
vty_out(vty, " %12" PRIu32,
|
if (CHECK_FLAG(
|
||||||
peer->pcount
|
bgp->flags,
|
||||||
[afi]
|
BGP_FLAG_EBGP_REQUIRES_POLICY)
|
||||||
[pfx_rcd_safi]);
|
&& !bgp_inbound_policy_exists(
|
||||||
else
|
peer, filter))
|
||||||
|
vty_out(vty, " %12s",
|
||||||
|
"(Policy)");
|
||||||
|
else
|
||||||
|
vty_out(vty,
|
||||||
|
" %12" PRIu32,
|
||||||
|
peer->pcount
|
||||||
|
[afi]
|
||||||
|
[pfx_rcd_safi]);
|
||||||
|
} else {
|
||||||
vty_out(vty, " NoNeg");
|
vty_out(vty, " NoNeg");
|
||||||
|
}
|
||||||
|
|
||||||
if (paf && PAF_SUBGRP(paf))
|
if (paf && PAF_SUBGRP(paf)) {
|
||||||
vty_out(vty, " %8" PRIu32,
|
if (CHECK_FLAG(
|
||||||
(PAF_SUBGRP(paf))
|
bgp->flags,
|
||||||
->scount);
|
BGP_FLAG_EBGP_REQUIRES_POLICY)
|
||||||
|
&& !bgp_outbound_policy_exists(
|
||||||
|
peer, filter))
|
||||||
|
vty_out(vty, " %8s",
|
||||||
|
"(Policy)");
|
||||||
|
else
|
||||||
|
vty_out(vty,
|
||||||
|
" %8" PRIu32,
|
||||||
|
(PAF_SUBGRP(
|
||||||
|
paf))
|
||||||
|
->scount);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (CHECK_FLAG(peer->flags, PEER_FLAG_SHUTDOWN))
|
if (CHECK_FLAG(peer->flags, PEER_FLAG_SHUTDOWN))
|
||||||
vty_out(vty, " Idle (Admin)");
|
vty_out(vty, " Idle (Admin)");
|
||||||
|
Loading…
Reference in New Issue
Block a user