Bug 4864 - BMP: No RIB table is created for non-MP peer 24/32824/2
authorMilos Fabian <milfabia@cisco.com>
Mon, 4 Jan 2016 08:36:46 +0000 (09:36 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Fri, 15 Jan 2016 14:21:31 +0000 (14:21 +0000)
Initiate IPv4 Unicast RIB tables by default for all peers.
Fixes case when peer is not supporting
multiprotocol capability.

Change-Id: I8b133cfe621e5ab5c46cc41f604b68854bb4d607
Signed-off-by: Milos Fabian <milfabia@cisco.com>
(cherry picked from commit e7943ece42dfa9b983ebac41566d145cefb88fdb)

bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpRouterPeerImpl.java

index e89e0ff02f230ae5c4c12c2d5d260dee6af8ca9b..f3fcaaeadcb456d9d41664fbd6b850c4186c645c 100644 (file)
@@ -11,7 +11,7 @@ package org.opendaylight.protocol.bmp.impl.app;
 import static org.opendaylight.protocol.bmp.impl.app.TablesUtil.BMP_TABLES_QNAME;
 
 import com.google.common.base.Preconditions;
-import java.util.HashSet;
+import com.google.common.collect.Sets;
 import java.util.Set;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
@@ -102,6 +102,8 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer {
     private static final QName STAT11_QNAME = QName.create(Stats.QNAME, "updates-treated-as-withdraw").intern();
     private static final QName STAT13_QNAME = QName.create(Stats.QNAME, "duplicate-updates").intern();
 
+    private static final TablesKey DEFAULT_TABLE = new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class);
+
     private static final InstanceIdentifier<SentOpen> SENT_OPEN_IID = InstanceIdentifier.builder(BmpMonitor.class)
             .child(Monitor.class)
             .child(Router.class)
@@ -217,7 +219,7 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer {
     }
 
     private Set<TablesKey> setPeerTables(final ReceivedOpen open) {
-        final Set<TablesKey> tables = new HashSet<>();
+        final Set<TablesKey> tables = Sets.newHashSet(DEFAULT_TABLE);
         for (final BgpParameters param : open.getBgpParameters()) {
             for (final OptionalCapabilities optCapa : param.getOptionalCapabilities()) {
                 final CParameters cParam = optCapa.getCParameters();