Fix Peer Identifier used per Rib creation. 10/70710/2
authorClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Tue, 10 Apr 2018 12:05:26 +0000 (14:05 +0200)
committerClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Tue, 10 Apr 2018 12:16:49 +0000 (14:16 +0200)
Use the provided by peer when session goes up.

BGPCEP-783
Change-Id: I7cd497df649be689a25dd67eed3903b42def8d28
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPPeer.java

index c6ad91c37f6f3aaa2b397813cdcbf93cf42bae9a..464f8790c580c7ae8e6b594b24d970873757000e 100644 (file)
@@ -115,8 +115,8 @@ public class BGPPeer extends BGPPeerStateImpl implements BGPRouteEntryImportPara
     private final Map<TablesKey, AdjRibOutListener> adjRibOutListenerSet = new HashMap<>();
     private final RpcProviderRegistry rpcRegistry;
     private final PeerRole peerRole;
-    private final InstanceIdentifier<AdjRibOut> peerRibOutIId;
-    private final KeyedInstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib
+    private InstanceIdentifier<AdjRibOut> peerRibOutIId;
+    private KeyedInstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib
             .rev171207.bgp.rib.rib.Peer, PeerKey> peerIId;
     @GuardedBy("this")
     private AbstractRegistration trackerRegistration;
@@ -161,9 +161,6 @@ public class BGPPeer extends BGPPeerStateImpl implements BGPRouteEntryImportPara
         this.localAs = localAs;
         this.name = Ipv4Util.toStringIP(neighborAddress);
         this.rpcRegistry = rpcRegistry;
-        this.peerIId = getInstanceIdentifier().child(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns
-                .yang.bgp.rib.rev171207.bgp.rib.rib.Peer.class, new PeerKey(RouterIds.createPeerId(neighborAddress)));
-        this.peerRibOutIId = this.peerIId.child(AdjRibOut.class);
         this.chain = rib.createPeerDOMChain(this);
     }
 
@@ -345,6 +342,9 @@ public class BGPPeer extends BGPPeerStateImpl implements BGPRouteEntryImportPara
                 advertizedTableTypes, addPathTablesType);
         this.rawIdentifier = InetAddresses.forString(session.getBgpId().getValue()).getAddress();
         this.peerId = RouterIds.createPeerId(session.getBgpId());
+        this.peerIId = getInstanceIdentifier().child(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns
+                .yang.bgp.rib.rev171207.bgp.rib.rib.Peer.class, new PeerKey(this.peerId));
+        this.peerRibOutIId = this.peerIId.child(AdjRibOut.class);
         final Set<TablesKey> setTables = advertizedTableTypes.stream().map(t -> new TablesKey(t.getAfi(), t.getSafi()))
                 .collect(Collectors.toSet());
         this.tables = ImmutableSet.copyOf(setTables);