From 9e3b51a7f3d111e6c01424dae801501f7053bc60 Mon Sep 17 00:00:00 2001 From: bisdhdh Date: Thu, 24 Oct 2019 20:29:43 +0530 Subject: bgpd: Restarting node does not send EOR after the convergence. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *After a restarting router comes up and the bgp session is successfully established with the peer. If the restarting router doesn’t have any route to send, it send EOR to the peer immediately before receiving updates from its peers. *Instead the restarting router should send EOR, if the selection deferral timer is not running OR count of eor received and eor required are matches then send EOR. Signed-off-by: Biswajit Sadhu --- bgpd/bgp_table.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'bgpd/bgp_table.c') diff --git a/bgpd/bgp_table.c b/bgpd/bgp_table.c index 01efab8f2d..2ef272b571 100644 --- a/bgpd/bgp_table.c +++ b/bgpd/bgp_table.c @@ -141,13 +141,14 @@ void bgp_delete_listnode(struct bgp_node *node) */ if (CHECK_FLAG(node->flags, BGP_NODE_SELECT_DEFER)) { table = bgp_node_table(node); - if (table) + + if (table) { bgp = table->bgp; + afi = table->afi; + safi = table->safi; + } rn = bgp_node_to_rnode(node); - afi = table->afi; - safi = table->safi; - if (bgp && rn && rn->lock == 1) { /* Delete the route from the selection pending list */ if ((node->rt_node) && -- cgit v1.2.3