diff options
| author | Donatas Abraitis <donatas.abraitis@gmail.com> | 2021-03-02 08:56:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-02 08:56:35 +0200 |
| commit | 3ca7090fdcdda8dc8ab0d96ed1a2c7a0a700aaf3 (patch) | |
| tree | ccf7bf2f13ba6d79d1e31f4e5af9fad95e6dd290 | |
| parent | 188b0db9d47212661b8697b1f83d0fc8fefd7ec9 (diff) | |
| parent | a1b773e2870531ecc5a064b16ea24370f389d05f (diff) | |
Merge pull request #8178 from donaldsharp/bgp_fib_install
bgpd: Wait for Install should not always set the flag
| -rw-r--r-- | bgpd/bgp_route.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 18a0b3fb7d..d7a4a43633 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -3597,19 +3597,6 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id, if (has_valid_label) assert(label != NULL); - /* The flag BGP_NODE_FIB_INSTALL_PENDING is for the following - * condition : - * Suppress fib is enabled - * BGP_OPT_NO_FIB is not enabled - * Route type is BGP_ROUTE_NORMAL (peer learnt routes) - * Route is being installed first time (BGP_NODE_FIB_INSTALLED not set) - */ - if (BGP_SUPPRESS_FIB_ENABLED(bgp) && - (sub_type == BGP_ROUTE_NORMAL) && - (!bgp_option_check(BGP_OPT_NO_FIB)) && - (!CHECK_FLAG(dest->flags, BGP_NODE_FIB_INSTALLED))) - SET_FLAG(dest->flags, BGP_NODE_FIB_INSTALL_PENDING); - /* When peer's soft reconfiguration enabled. Record input packet in Adj-RIBs-In. */ if (!soft_reconfig @@ -3791,6 +3778,19 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id, evpn == NULL ? NULL : &evpn->gw_ip); } + /* The flag BGP_NODE_FIB_INSTALL_PENDING is for the following + * condition : + * Suppress fib is enabled + * BGP_OPT_NO_FIB is not enabled + * Route type is BGP_ROUTE_NORMAL (peer learnt routes) + * Route is being installed first time (BGP_NODE_FIB_INSTALLED not set) + */ + if (bgp_fibupd_safi(safi) && BGP_SUPPRESS_FIB_ENABLED(bgp) + && (sub_type == BGP_ROUTE_NORMAL) + && (!bgp_option_check(BGP_OPT_NO_FIB)) + && (!CHECK_FLAG(dest->flags, BGP_NODE_FIB_INSTALLED))) + SET_FLAG(dest->flags, BGP_NODE_FIB_INSTALL_PENDING); + attr_new = bgp_attr_intern(&new_attr); /* If maximum prefix count is configured and current prefix |
