Bug 4488: Metadata not available for modification NodeModification 32/36132/5
authorMilos Fabian <milfabia@cisco.com>
Fri, 11 Mar 2016 12:03:09 +0000 (13:03 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 24 Mar 2016 09:33:00 +0000 (09:33 +0000)
commit4a3e1595445dad87ab6f6990961639a0046dcd0f
tree72f041ec7a5accedce091ecab41eaccb68788dae
parentc1d773731c031a1775fbda56a5551ecdca3a8e55
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: I650bae8638a2a4818bdd925a5f4ca2274b79d5c6
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