summaryrefslogtreecommitdiff
path: root/proto/bgp/bgp.c
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2023-03-19 13:21:35 +0100
committerMaria Matejka <mq@ucw.cz>2023-04-04 17:00:58 +0200
commit731ec008402a6e800ceb4c1171e44852ecc4679a (patch)
tree3a05084526dd0fdecaf7d200179e468fef99b42f /proto/bgp/bgp.c
parent765bf99b695a9525fe4dfbc3f5e0bb90f56826d0 (diff)
Allowing to restart a route refresh.
Repeated pipe refeed should not end route refresh as the prune routine may start pruning otherwise valid routes. The same applies for BGP repeated route refresh.
Diffstat (limited to 'proto/bgp/bgp.c')
-rw-r--r--proto/bgp/bgp.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c
index 851167b6..cca1283c 100644
--- a/proto/bgp/bgp.c
+++ b/proto/bgp/bgp.c
@@ -805,11 +805,9 @@ bgp_handle_graceful_restart(struct bgp_proto *p)
{
case BGP_GRS_NONE:
c->gr_active = BGP_GRS_ACTIVE;
- rt_refresh_begin(&c->c.in_req);
- break;
+ /* fall through */
case BGP_GRS_ACTIVE:
- rt_refresh_end(&c->c.in_req);
rt_refresh_begin(&c->c.in_req);
break;
@@ -988,9 +986,6 @@ bgp_refresh_begin(struct bgp_channel *c)
if (c->load_state == BFS_LOADING)
{ log(L_WARN "%s: BEGIN-OF-RR received before END-OF-RIB, ignoring", p->p.name); return; }
- if (c->load_state == BFS_REFRESHING)
- rt_refresh_end(&c->c.in_req);
-
c->load_state = BFS_REFRESHING;
rt_refresh_begin(&c->c.in_req);
}