]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: BGP tcp session failed to apply GR configuration on the transferred
authorbisdhdh <biswajit.sadhu@gmail.com>
Thu, 24 Oct 2019 04:40:53 +0000 (10:10 +0530)
committerbisdhdh <biswajit.sadhu@gmail.com>
Thu, 23 Jan 2020 04:04:25 +0000 (09:34 +0530)
commitd7b3cda6f74dda7b127eba0347cab4730116fbbb
tree53728ce87b91dee6da718fbc0b5e81a71be4d62b
parent2bb5d39b14cf25ea118c144cfae9b5945dbace1a
bgpd: BGP tcp session failed to apply GR configuration on the transferred
bgp tcp connection.

When the BGP peer is configured between two bgp routes  both routers would create
peer structure , when they receive each other’s open message. In this event both
speakers, open duplicate TCP sessions and send OPEN messages on each socket
simultaneously, the BGP Identifier is used to resolve which socket should be closed.
If BGP GR is enabled the old tcp session is dumped and the new session is retained.
So while this transfer of connection is happening, if all the bgp gr config
is not migrated to the new connection, the new bgp gr mode will never get applied.
Fix Summary:
1.  Replicate GR configuration from the old session to the new session in bgp_accept().
2.  Replicate GR configuration from stub to full-fledged peer in bgp_establish().
3.  Disable all NSF flags, clear stale routes (if present), stop  restart & stale timers
    (if they are running) when the bgp GR mode is changed to “Disabled”.
4.  Disable R-bit in cap, if it is not set the received open message.

Signed-off-by: Biswajit Sadhu <sadhub@vmware.com>
bgpd/bgp_fsm.c
bgpd/bgp_io.c
bgpd/bgp_network.c
bgpd/bgp_open.c
bgpd/bgpd.c
bgpd/bgpd.h