Bug 5558 - Closing session after a large RIB is sent kills BGPCEP 35/37535/3
authorMilos Fabian <milfabia@cisco.com>
Tue, 5 Apr 2016 06:21:45 +0000 (08:21 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 27 Apr 2016 15:03:36 +0000 (15:03 +0000)
commit597845a52c60d917e03ed8ba4344093f579fb009
tree7eb7f531a019b9986e1659e9970a188bedb5f9b4
parent99367168b80a0e85c1e1533ca9b5b4b60fe8a350
Bug 5558 - Closing session after a large RIB is sent kills BGPCEP

Fixed peer session recovery, in a case of failed transaction chain.
The AdjRibInWriter need working chain when cleaning, also it needs
to be started with fresh transaction chain when session goes up again.
Hence recreate AdjRibInWriter with a new tx chain, when the current
failed.

Fixed duplicated session avoidance. The peer's session should not be
removed from registry if it was not created during this negotiation process.
Otherwise, the active peer's sesion can be removed from registry, which can
later lead to the duplicated session establishment.

Signed-off-by: Milos Fabian <milfabia@cisco.com>
Change-Id: I46ef33d49a11db8465a719af5ba4e1716da14602
(cherry picked from commit 54e12560f5b823a24da39c4f9cbe274fb88f30ca)
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPSessionNegotiator.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPPeer.java