Bug 4488: Metadata not available for modification NodeModification 73/38273/3
authorMilos Fabian <milfabia@cisco.com>
Fri, 11 Mar 2016 12:03:09 +0000 (13:03 +0100)
committerMilos Fabian <milfabia@cisco.com>
Tue, 3 May 2016 07:37:01 +0000 (07:37 +0000)
commitedc70879b54071179c5d90349260a2e048ff5e57
tree6d757e0970aaca81055f679147add3c5678e5b38
parent67c9d0ceae8189fa85d2cd9e81cf2a5149078ec4
Bug 4488: Metadata not available for modification NodeModification

To resovle tis race condition problem, modify EffectiveRibInWriter to
work on per peer basis instead of a global per RIB instance.
The EffectiveRibInWriter is now listening on paricular peer's AdjRibIn tables.
The writer is started when a session goes up and closed when the session goes down.
Peer role is not tracked via data changes rather directly set at creation.

The possitive side effect is better error recovery in a case of failure in
EffectiveRibInWriter.
Disadvantage of this change is tighter coupling between components
(peer, eff-rib-in writer and policy tracker).

Change-Id: I07c6c1e2f864b12c50308c7be75b7faa8cc20c12
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPPeer.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/EffectiveRibInWriter.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/RIBImpl.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/RIB.java