mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 06:34:51 +00:00
BGP doesn't count a route with an unreachable nexthop in PfxRcd
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
This commit is contained in:
parent
1ff9a34058
commit
80e0ad24f9
@ -248,7 +248,7 @@ bgp_pcount_adjust (struct bgp_node *rn, struct bgp_info *ri)
|
||||
|| ri->peer == ri->peer->bgp->peer_self)
|
||||
return;
|
||||
|
||||
if (BGP_INFO_HOLDDOWN (ri)
|
||||
if (!BGP_INFO_COUNTABLE (ri)
|
||||
&& CHECK_FLAG (ri->flags, BGP_INFO_COUNTED))
|
||||
{
|
||||
|
||||
@ -265,7 +265,7 @@ bgp_pcount_adjust (struct bgp_node *rn, struct bgp_info *ri)
|
||||
zlog_warn ("%s: Please report to Quagga bugzilla", __func__);
|
||||
}
|
||||
}
|
||||
else if (!BGP_INFO_HOLDDOWN (ri)
|
||||
else if (BGP_INFO_COUNTABLE (ri)
|
||||
&& !CHECK_FLAG (ri->flags, BGP_INFO_COUNTED))
|
||||
{
|
||||
SET_FLAG (ri->flags, BGP_INFO_COUNTED);
|
||||
@ -282,8 +282,8 @@ bgp_info_set_flag (struct bgp_node *rn, struct bgp_info *ri, u_int32_t flag)
|
||||
{
|
||||
SET_FLAG (ri->flags, flag);
|
||||
|
||||
/* early bath if we know it's not a flag that changes useability state */
|
||||
if (!CHECK_FLAG (flag, BGP_INFO_VALID|BGP_INFO_UNUSEABLE))
|
||||
/* early bath if we know it's not a flag that changes countability state */
|
||||
if (!CHECK_FLAG (flag, BGP_INFO_VALID|BGP_INFO_HISTORY|BGP_INFO_REMOVED))
|
||||
return;
|
||||
|
||||
bgp_pcount_adjust (rn, ri);
|
||||
@ -294,8 +294,8 @@ bgp_info_unset_flag (struct bgp_node *rn, struct bgp_info *ri, u_int32_t flag)
|
||||
{
|
||||
UNSET_FLAG (ri->flags, flag);
|
||||
|
||||
/* early bath if we know it's not a flag that changes useability state */
|
||||
if (!CHECK_FLAG (flag, BGP_INFO_VALID|BGP_INFO_UNUSEABLE))
|
||||
/* early bath if we know it's not a flag that changes countability state */
|
||||
if (!CHECK_FLAG (flag, BGP_INFO_VALID|BGP_INFO_HISTORY|BGP_INFO_REMOVED))
|
||||
return;
|
||||
|
||||
bgp_pcount_adjust (rn, ri);
|
||||
|
@ -136,6 +136,10 @@ struct bgp_static
|
||||
u_char tag[3];
|
||||
};
|
||||
|
||||
#define BGP_INFO_COUNTABLE(BI) \
|
||||
(! CHECK_FLAG ((BI)->flags, BGP_INFO_HISTORY) \
|
||||
&& ! CHECK_FLAG ((BI)->flags, BGP_INFO_REMOVED))
|
||||
|
||||
/* Flags which indicate a route is unuseable in some form */
|
||||
#define BGP_INFO_UNUSEABLE \
|
||||
(BGP_INFO_HISTORY|BGP_INFO_DAMPED|BGP_INFO_REMOVED)
|
||||
|
Loading…
Reference in New Issue
Block a user