Refactor SouthboundConstants 25/97625/3
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 24 Sep 2021 16:02:39 +0000 (18:02 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 1 Nov 2021 21:34:02 +0000 (22:34 +0100)
This is not an interface, but rather a collections of various constants.
Refactor to a proper utility class and move non-shared constants to
their sole users.

Change-Id: Ibb21174ee18f92608ea2ac14f535558d609299fb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstance.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManager.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbOperGlobalListener.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundConstants.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundMapper.java
southbound/southbound-it/src/test/java/org/opendaylight/ovsdb/southbound/it/SouthboundIT.java

index ff8222c14d8f12744c9d213c7b7d5357e17b0b7b..a7fd308c3fafb29145d02707853b85c38276963f 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.ovsdb.southbound;
 import static org.opendaylight.ovsdb.lib.operations.Operations.op;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -71,6 +72,15 @@ import org.slf4j.LoggerFactory;
 
 public class OvsdbConnectionInstance {
     private static final Logger LOG = LoggerFactory.getLogger(OvsdbConnectionInstance.class);
+
+    private static final ImmutableSet<String> SKIP_OVSDB_TABLE = ImmutableSet.of(
+            "Flow_Table",
+            "Mirror",
+            "NetFlow",
+            "sFlow",
+            "IPFIX",
+            "Flow_Sample_Collector_Set");
+
     private final OvsdbClient client;
     private ConnectionInfo connectionInfo;
     private final TransactionInvoker txInvoker;
@@ -86,34 +96,34 @@ public class OvsdbConnectionInstance {
 
     OvsdbConnectionInstance(final ConnectionInfo key, final OvsdbClient client, final TransactionInvoker txInvoker,
                             final InstanceIdentifier<Node> iid) {
-        this.connectionInfo = key;
+        connectionInfo = key;
         this.client = client;
         this.txInvoker = txInvoker;
         // this.key = key;
-        this.instanceIdentifier = iid;
+        instanceIdentifier = iid;
     }
 
-    public void updatePort(UUID uuid, InstanceIdentifier<Node> iid) {
+    public void updatePort(final UUID uuid, final InstanceIdentifier<Node> iid) {
         ports.put(uuid, iid);
     }
 
-    public void removePort(UUID uuid) {
+    public void removePort(final UUID uuid) {
         ports.remove(uuid);
     }
 
-    public InstanceIdentifier<Node> getPort(UUID uuid) {
+    public InstanceIdentifier<Node> getPort(final UUID uuid) {
         return ports.get(uuid);
     }
 
-    public void updatePortInterface(String name, InstanceIdentifier<Node> iid) {
+    public void updatePortInterface(final String name, final InstanceIdentifier<Node> iid) {
         portInterfaces.put(name, iid);
     }
 
-    public void removePortInterface(String name) {
+    public void removePortInterface(final String name) {
         portInterfaces.remove(name);
     }
 
-    public InstanceIdentifier<Node> getPortInterface(String name) {
+    public InstanceIdentifier<Node> getPortInterface(final String name) {
         return portInterfaces.get(name);
     }
 
@@ -154,8 +164,8 @@ public class OvsdbConnectionInstance {
     }
 
     public void registerCallbacks(final InstanceIdentifierCodec instanceIdentifierCodec) {
-        if (this.callback == null) {
-            if (this.initialCreateData != null) {
+        if (callback == null) {
+            if (initialCreateData != null) {
                 this.updateConnectionAttributes(instanceIdentifierCodec);
             }
 
@@ -195,7 +205,7 @@ public class OvsdbConnectionInstance {
         if (tables != null) {
             List<MonitorRequest> monitorRequests = new ArrayList<>();
             for (String tableName : tables) {
-                if (!SouthboundConstants.SKIP_OVSDB_TABLE.contains(tableName)) {
+                if (!SKIP_OVSDB_TABLE.contains(tableName)) {
                     LOG.trace("Southbound monitoring OVSDB schema table {}", tableName);
                     GenericTableSchema tableSchema = dbSchema.table(tableName, GenericTableSchema.class);
                     // We copy the columns so we can clean the set up later
@@ -210,7 +220,7 @@ public class OvsdbConnectionInstance {
                             .with(new MonitorSelect(true, true, true, true)).build());
                 }
             }
-            this.callback.update(monitor(dbSchema, monitorRequests, callback), dbSchema);
+            callback.update(monitor(dbSchema, monitorRequests, callback), dbSchema);
         } else {
             LOG.warn("No tables for schema {} for database {} for key {}",dbSchema,database,connectionInfo);
         }
@@ -218,19 +228,19 @@ public class OvsdbConnectionInstance {
 
     private void updateConnectionAttributes(final InstanceIdentifierCodec instanceIdentifierCodec) {
         LOG.debug("Update attributes of ovsdb node ip: {} port: {}",
-                    this.initialCreateData.getConnectionInfo().getRemoteIp(),
-                    this.initialCreateData.getConnectionInfo().getRemotePort());
+                    initialCreateData.getConnectionInfo().getRemoteIp(),
+                    initialCreateData.getConnectionInfo().getRemotePort());
         for (Map.Entry<TypedDatabaseSchema, TransactInvoker> entry: transactInvokers.entrySet()) {
 
-            TransactionBuilder transaction = new TransactionBuilder(this.client, entry.getKey());
+            TransactionBuilder transaction = new TransactionBuilder(client, entry.getKey());
 
             // OpenVSwitchPart
             OpenVSwitch ovs = transaction.getTypedRowWrapper(OpenVSwitch.class);
 
             Map<OpenvswitchExternalIdsKey, OpenvswitchExternalIds> externalIds =
-                    this.initialCreateData.getOpenvswitchExternalIds();
+                    initialCreateData.getOpenvswitchExternalIds();
 
-            stampInstanceIdentifier(transaction, this.instanceIdentifier.firstIdentifierOf(Node.class),
+            stampInstanceIdentifier(transaction, instanceIdentifier.firstIdentifierOf(Node.class),
                     instanceIdentifierCodec);
 
             try {
@@ -249,7 +259,7 @@ public class OvsdbConnectionInstance {
 
 
             Map<OpenvswitchOtherConfigsKey, OpenvswitchOtherConfigs> otherConfigs =
-                    this.initialCreateData.getOpenvswitchOtherConfigs();
+                    initialCreateData.getOpenvswitchOtherConfigs();
             if (otherConfigs != null) {
                 try {
                     ovs.setOtherConfig(YangUtils.convertYangKeyValueListToMap(otherConfigs,
@@ -365,7 +375,7 @@ public class OvsdbConnectionInstance {
     }
 
     public void setMDConnectionInfo(final ConnectionInfo key) {
-        this.connectionInfo = key;
+        connectionInfo = key;
     }
 
     public InstanceIdentifier<Node> getInstanceIdentifier() {
@@ -381,15 +391,15 @@ public class OvsdbConnectionInstance {
     }
 
     public void setInstanceIdentifier(final InstanceIdentifier<Node> iid) {
-        this.instanceIdentifier = iid;
+        instanceIdentifier = iid;
     }
 
     public Entity getConnectedEntity() {
-        return this.connectedEntity;
+        return connectedEntity;
     }
 
     public void setConnectedEntity(final Entity entity) {
-        this.connectedEntity = entity;
+        connectedEntity = entity;
     }
 
     public Boolean hasOvsdbClient(final OvsdbClient otherClient) {
@@ -410,22 +420,22 @@ public class OvsdbConnectionInstance {
 
     public void setDeviceOwnershipCandidateRegistration(
             @NonNull final EntityOwnershipCandidateRegistration registration) {
-        this.deviceOwnershipCandidateRegistration = registration;
+        deviceOwnershipCandidateRegistration = registration;
     }
 
     public void closeDeviceOwnershipCandidateRegistration() {
         if (deviceOwnershipCandidateRegistration != null) {
-            this.deviceOwnershipCandidateRegistration.close();
+            deviceOwnershipCandidateRegistration.close();
             setHasDeviceOwnership(Boolean.FALSE);
         }
     }
 
     public OvsdbNodeAugmentation getOvsdbNodeAugmentation() {
-        return this.initialCreateData;
+        return initialCreateData;
     }
 
     public void setOvsdbNodeAugmentation(final OvsdbNodeAugmentation ovsdbNodeCreateData) {
-        this.initialCreateData = ovsdbNodeCreateData;
+        initialCreateData = ovsdbNodeCreateData;
     }
 
     public OvsdbClient getOvsdbClient() {
index 9e657acdc17d6b96c75d59b4469ea82893b7209e..1ecfd0ae2e551a4bb3be429eb07dc123d65e1cc0 100644 (file)
@@ -97,9 +97,9 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
         this.db = db;
         this.txInvoker = txInvoker;
         this.entityOwnershipService = entityOwnershipService;
-        this.ovsdbDeviceEntityOwnershipListener = new OvsdbDeviceEntityOwnershipListener(this, entityOwnershipService);
+        ovsdbDeviceEntityOwnershipListener = new OvsdbDeviceEntityOwnershipListener(this, entityOwnershipService);
         this.ovsdbConnection = ovsdbConnection;
-        this.reconciliationManager = new ReconciliationManager(db, instanceIdentifierCodec);
+        reconciliationManager = new ReconciliationManager(db, instanceIdentifierCodec);
         this.instanceIdentifierCodec = instanceIdentifierCodec;
         this.upgradeState = upgradeState;
     }
@@ -465,8 +465,8 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
         if (ownershipChange.getState().isOwner() == ovsdbConnectionInstance.getHasDeviceOwnership()) {
             LOG.info("Ovsdb handleOwnershipChanged: no change in ownership for {}. Ownership status is : {}",
                     ovsdbConnectionInstance.getConnectionInfo(), ovsdbConnectionInstance.getHasDeviceOwnership()
-                            ? SouthboundConstants.OwnershipStates.OWNER.getState()
-                            : SouthboundConstants.OwnershipStates.NONOWNER.getState());
+                            ? OwnershipStates.OWNER.getState()
+                            : OwnershipStates.NONOWNER.getState());
             return;
         }
 
@@ -645,7 +645,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
                 readNodeFuture.addCallback(new FutureCallback<Boolean>() {
                     @Override
                     public void onSuccess(final Boolean node) {
-                        if (node.booleanValue()) {
+                        if (node) {
                             LOG.info("Disconnected/Failed connection {} was controller initiated, attempting "
                                     + "reconnection", ovsdbNode.getConnectionInfo());
                             reconciliationManager.enqueue(task);
@@ -710,6 +710,26 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
         ON_DISCONNECT
     }
 
+    private enum OwnershipStates {
+        OWNER("OWNER"),
+        NONOWNER("NON-OWNER");
+
+        private final String state;
+
+        OwnershipStates(final String state) {
+            this.state = state;
+        }
+
+        @Override
+        public String toString() {
+            return state;
+        }
+
+        String getState() {
+            return state;
+        }
+    }
+
     public Map<ConnectionInfo, OvsdbConnectionInstance> getClients() {
         return clients;
     }
index c47f2bef54cbc432ac9b4a90f6e6cfb107d760bd..ae71d90010a808f71baf16f9faf763bc93661a8d 100644 (file)
@@ -40,8 +40,8 @@ public class OvsdbOperGlobalListener implements ClusteredDataTreeChangeListener<
     private final OvsdbConnectionManager ovsdbConnectionManager;
     private final TransactionInvoker txInvoker;
 
-    OvsdbOperGlobalListener(DataBroker db, OvsdbConnectionManager ovsdbConnectionManager,
-                            TransactionInvoker txInvoker) {
+    OvsdbOperGlobalListener(final DataBroker db, final OvsdbConnectionManager ovsdbConnectionManager,
+                            final TransactionInvoker txInvoker) {
         LOG.info("Registering OvsdbOperGlobalListener");
         this.db = db;
         this.ovsdbConnectionManager = ovsdbConnectionManager;
@@ -65,8 +65,8 @@ public class OvsdbOperGlobalListener implements ClusteredDataTreeChangeListener<
 
     @Override
     @SuppressWarnings("checkstyle:IllegalCatch")
-    public void onDataTreeChanged(Collection<DataTreeModification<Node>> changes) {
-        changes.forEach((change) -> {
+    public void onDataTreeChanged(final Collection<DataTreeModification<Node>> changes) {
+        changes.forEach(change -> {
             try {
                 InstanceIdentifier<Node> key = change.getRootPath().getRootIdentifier();
                 DataObjectModification<Node> mod = change.getRootNode();
@@ -103,9 +103,11 @@ public class OvsdbOperGlobalListener implements ClusteredDataTreeChangeListener<
         });
     }
 
+    private static final int EOS_TIMEOUT = Integer.getInteger("southbound.eos.timeout.delay.secs", 240);
+
     private static final Map<InstanceIdentifier<Node>, ScheduledFuture> TIMEOUT_FTS = new ConcurrentHashMap<>();
 
-    public static void runAfterTimeoutIfNodeNotCreated(InstanceIdentifier<Node> iid, Runnable job) {
+    public static void runAfterTimeoutIfNodeNotCreated(final InstanceIdentifier<Node> iid, final Runnable job) {
         ScheduledFuture<?> ft = TIMEOUT_FTS.get(iid);
         if (ft != null) {
             ft.cancel(false);
@@ -115,11 +117,11 @@ public class OvsdbOperGlobalListener implements ClusteredDataTreeChangeListener<
             if (!OPER_NODE_CACHE.containsKey(iid)) {
                 job.run();
             }
-        }, SouthboundConstants.EOS_TIMEOUT, TimeUnit.SECONDS);
+        }, EOS_TIMEOUT, TimeUnit.SECONDS);
         TIMEOUT_FTS.put(iid, ft);
     }
 
-    private static Node getCreated(DataObjectModification<Node> mod) {
+    private static Node getCreated(final DataObjectModification<Node> mod) {
         if (mod.getModificationType() == DataObjectModification.ModificationType.WRITE
                 && mod.getDataBefore() == null) {
             return mod.getDataAfter();
@@ -127,14 +129,14 @@ public class OvsdbOperGlobalListener implements ClusteredDataTreeChangeListener<
         return null;
     }
 
-    private static Node getRemoved(DataObjectModification<Node> mod) {
+    private static Node getRemoved(final DataObjectModification<Node> mod) {
         if (mod.getModificationType() == DataObjectModification.ModificationType.DELETE) {
             return mod.getDataBefore();
         }
         return null;
     }
 
-    private static Node getUpdated(DataObjectModification<Node> mod) {
+    private static Node getUpdated(final DataObjectModification<Node> mod) {
         Node node = null;
         switch (mod.getModificationType()) {
             case SUBTREE_MODIFIED:
index f0d2b520f85c90d47bd639465ec85e8765f7fdc1..864d29114c256a96108994275fa87cb834356763 100755 (executable)
@@ -8,36 +8,12 @@
 package org.opendaylight.ovsdb.southbound;
 
 import com.google.common.collect.ImmutableBiMap;
-import com.google.common.collect.ImmutableCollection;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeNetdev;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdk;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkr;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhost;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhostuser;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhostuserclient;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGeneve;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre64;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeIpsecGre;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeIpsecGre64;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeLisp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypePatch;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeStt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeSystem;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeTap;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlanGpe;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolOpenflow10;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolOpenflow11;
@@ -48,132 +24,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbFailModeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbFailModeSecure;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbFailModeStandalone;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeEgressPolicer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxCodel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxFqCodel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHfsc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHtb;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxSfq;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.QosEntryKey;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
-public interface SouthboundConstants {
-
-    String OPEN_V_SWITCH = "Open_vSwitch";
-    TopologyId OVSDB_TOPOLOGY_ID = new TopologyId(new Uri("ovsdb:1"));
-    String OVSDB_URI_PREFIX = "ovsdb";
-    String BRIDGE_URI_PREFIX = "bridge";
-    String TP_URI_PREFIX = "terminationpoint";
-    String QOS_URI_PREFIX = "qos";
-    String QOS_NAMED_UUID_PREFIX = "QOS";
-    QosEntryKey PORT_QOS_LIST_KEY = new QosEntryKey(Uint32.ONE);
-    String QUEUE_URI_PREFIX = "queue";
-    String QUEUE_NAMED_UUID_PREFIX = "QUEUE";
-    String AUTOATTACH_URI_PREFIX = "autoattach";
-    String AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION = "7.11.2";
-    Integer DEFAULT_OVSDB_PORT = 6640;
-    String DEFAULT_OPENFLOW_PORT = "6653";
-    String OPENFLOW_CONNECTION_PROTOCOL = "tcp";
-    String UUID = "uuid";
-    String QOS_LINUX_HTB = "linux-htb";
-    String QOS_LINUX_HFSC = "linux-hfsc";
-    // The following four QoS types are present in OVS 2.5+
-    // Refer to http://openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.txt
-    String QOS_LINUX_SFQ = "linux-sfq";
-    String QOS_LINUX_CODEL = "linux-codel";
-    String QOS_LINUX_FQ_CODEL = "linux-fq_codel";
-    String QOS_EGRESS_POLICER = "egress-policer";
-    String URI_SEPERATOR = "/";
-    String CREATED_BY = "created_by";
-    String ODL = "odl";
-
-    ImmutableBiMap<Class<? extends QosTypeBase>,String> QOS_TYPE_MAP
-        = new ImmutableBiMap.Builder<Class<? extends QosTypeBase>,String>()
-            .put(QosTypeLinuxHtb.class,QOS_LINUX_HTB)
-            .put(QosTypeLinuxHfsc.class,QOS_LINUX_HFSC)
-            .put(QosTypeLinuxSfq.class,QOS_LINUX_SFQ)
-            .put(QosTypeLinuxCodel.class,QOS_LINUX_CODEL)
-            .put(QosTypeLinuxFqCodel.class,QOS_LINUX_FQ_CODEL)
-            .put(QosTypeEgressPolicer.class,QOS_EGRESS_POLICER)
-            .build();
-
-    ImmutableBiMap<Class<? extends OvsdbBridgeProtocolBase>,String> OVSDB_PROTOCOL_MAP
-        = new ImmutableBiMap.Builder<Class<? extends OvsdbBridgeProtocolBase>,String>()
-            .put(OvsdbBridgeProtocolOpenflow10.class,"OpenFlow10")
-            .put(OvsdbBridgeProtocolOpenflow11.class,"OpenFlow11")
-            .put(OvsdbBridgeProtocolOpenflow12.class,"OpenFlow12")
-            .put(OvsdbBridgeProtocolOpenflow13.class,"OpenFlow13")
-            .put(OvsdbBridgeProtocolOpenflow14.class,"OpenFlow14")
-            .put(OvsdbBridgeProtocolOpenflow15.class,"OpenFlow15")
-            .build();
-
-    ImmutableBiMap<Class<? extends OvsdbFailModeBase>,String> OVSDB_FAIL_MODE_MAP
-        = new ImmutableBiMap.Builder<Class<? extends OvsdbFailModeBase>,String>()
-            .put(OvsdbFailModeStandalone.class,"standalone")
-            .put(OvsdbFailModeSecure.class,"secure")
-            .build();
-
-    ImmutableBiMap<String, Class<? extends InterfaceTypeBase>> OVSDB_INTERFACE_TYPE_MAP
-        = new ImmutableBiMap.Builder<String, Class<? extends InterfaceTypeBase>>()
-            .put("internal", InterfaceTypeInternal.class)
-            .put("vxlan", InterfaceTypeVxlan.class)
-            .put("vxlan-gpe", InterfaceTypeVxlanGpe.class)
-            .put("patch", InterfaceTypePatch.class)
-            .put("system", InterfaceTypeSystem.class)
-            .put("tap", InterfaceTypeTap.class)
-            .put("geneve", InterfaceTypeGeneve.class)
-            .put("gre", InterfaceTypeGre.class)
-            .put("ipsec_gre", InterfaceTypeIpsecGre.class)
-            .put("gre64", InterfaceTypeGre64.class)
-            .put("ipsec_gre64", InterfaceTypeIpsecGre64.class)
-            .put("lisp", InterfaceTypeLisp.class)
-            .put("dpdk", InterfaceTypeDpdk.class)
-            .put("dpdkr", InterfaceTypeDpdkr.class)
-            .put("dpdkvhost", InterfaceTypeDpdkvhost.class)
-            .put("dpdkvhostuser", InterfaceTypeDpdkvhostuser.class)
-            .put("dpdkvhostuserclient", InterfaceTypeDpdkvhostuserclient.class)
-            .put("stt", InterfaceTypeStt.class)
-            .build();
-
-    ImmutableBiMap<Class<? extends DatapathTypeBase>,String> DATAPATH_TYPE_MAP
-        = new ImmutableBiMap.Builder<Class<? extends DatapathTypeBase>,String>()
-            .put(DatapathTypeSystem.class,"system")
-            .put(DatapathTypeNetdev.class,"netdev")
-            .build();
-
-    String IID_EXTERNAL_ID_KEY = "opendaylight-iid";
-    String QOS_ID_EXTERNAL_ID_KEY = "opendaylight-qos-id";
-    String QUEUE_ID_EXTERNAL_ID_KEY = "opendaylight-queue-id";
-    String AUTOATTACH_ID_EXTERNAL_ID_KEY = "opendaylight-autoattach-id";
-
-    ImmutableCollection<String> SKIP_OVSDB_TABLE = new ImmutableSet.Builder<String>()
-            .add("Flow_Table")
-            .add("Mirror")
-            .add("NetFlow")
-            .add("sFlow")
-            .add("IPFIX")
-            .add("Flow_Sample_Collector_Set")
-            .build();
-
-    //Note: _version is an internal column of ovsdb schema, that gets updated
-    //with every change in the row of the table.
-    // The "Manager" entry needs to be a modifiable list, SouthboundProvider::setSkipManagerStatus() modifies it
-    ImmutableMap<String,List<String>> SKIP_COLUMN_FROM_TABLE
-            = new ImmutableMap.Builder<String,List<String>>()
-            .put("Open_vSwitch", Arrays.asList("statistics","_version"))
-            .put("Port", Arrays.asList("statistics","_version"))
-            .put("Manager", new ArrayList<>(Collections.singletonList("_version")))
-            .put("SSL", Collections.singletonList("_version"))
-            .put("QoS", Collections.singletonList("_version"))
-            .put("Queue", Collections.singletonList("_version"))
-            .put("Bridge", Collections.singletonList("_version"))
-            .put("Interface", Arrays.asList("statistics","_version"))
-            .put("Controller", Arrays.asList("status","_version"))
-            .build();
-
-    enum VlanModes {
+public final class SouthboundConstants {
+    public enum VlanModes {
         ACCESS("access"),
         NATIVE_TAGGED("native-tagged"),
         NATIVE_UNTAGGED("native-untagged"),
@@ -181,7 +37,7 @@ public interface SouthboundConstants {
 
         private final String mode;
 
-        VlanModes(String mode) {
+        VlanModes(final String mode) {
             this.mode = mode;
         }
 
@@ -191,29 +47,75 @@ public interface SouthboundConstants {
         }
 
         public String getMode() {
-            return this.mode;
+            return mode;
         }
     }
 
-    enum OwnershipStates {
-        OWNER("OWNER"),
-        NONOWNER("NON-OWNER");
-
-        private final String state;
-
-        OwnershipStates(String state) {
-            this.state = state;
-        }
+    public static final String OPEN_V_SWITCH = "Open_vSwitch";
+    public static final TopologyId OVSDB_TOPOLOGY_ID = new TopologyId(new Uri("ovsdb:1"));
+    public static final String OVSDB_URI_PREFIX = "ovsdb";
+    public static final String BRIDGE_URI_PREFIX = "bridge";
+    public static final String TP_URI_PREFIX = "terminationpoint";
+    public static final String QOS_URI_PREFIX = "qos";
+    public static final String QOS_NAMED_UUID_PREFIX = "QOS";
+    public static final QosEntryKey PORT_QOS_LIST_KEY = new QosEntryKey(Uint32.ONE);
+    public static final String QUEUE_URI_PREFIX = "queue";
+    public static final String QUEUE_NAMED_UUID_PREFIX = "QUEUE";
+    public static final String AUTOATTACH_URI_PREFIX = "autoattach";
+    public static final String AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION = "7.11.2";
+    public static final Integer DEFAULT_OVSDB_PORT = 6640;
+    public static final String DEFAULT_OPENFLOW_PORT = "6653";
+    public static final String OPENFLOW_CONNECTION_PROTOCOL = "tcp";
+    public static final String UUID = "uuid";
+    public static final String QOS_LINUX_HTB = "linux-htb";
+    public static final String QOS_LINUX_HFSC = "linux-hfsc";
+    // The following four QoS types are present in OVS 2.5+
+    // Refer to http://openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.txt
+    public static final String QOS_LINUX_SFQ = "linux-sfq";
+    public static final String QOS_LINUX_CODEL = "linux-codel";
+    public static final String QOS_LINUX_FQ_CODEL = "linux-fq_codel";
+    public static final String QOS_EGRESS_POLICER = "egress-policer";
+    public static final String URI_SEPERATOR = "/";
+    public static final String CREATED_BY = "created_by";
+    public static final String ODL = "odl";
+
+    public static final ImmutableBiMap<Class<? extends OvsdbBridgeProtocolBase>, String> OVSDB_PROTOCOL_MAP =
+        ImmutableBiMap.<Class<? extends OvsdbBridgeProtocolBase>, String>builder()
+            .put(OvsdbBridgeProtocolOpenflow10.class, "OpenFlow10")
+            .put(OvsdbBridgeProtocolOpenflow11.class, "OpenFlow11")
+            .put(OvsdbBridgeProtocolOpenflow12.class, "OpenFlow12")
+            .put(OvsdbBridgeProtocolOpenflow13.class, "OpenFlow13")
+            .put(OvsdbBridgeProtocolOpenflow14.class, "OpenFlow14")
+            .put(OvsdbBridgeProtocolOpenflow15.class, "OpenFlow15")
+            .build();
 
-        @Override
-        public String toString() {
-            return state;
-        }
+    public static final ImmutableBiMap<Class<? extends OvsdbFailModeBase>, String> OVSDB_FAIL_MODE_MAP =
+        ImmutableBiMap.of(
+            OvsdbFailModeStandalone.class, "standalone",
+            OvsdbFailModeSecure.class,     "secure");
+
+    public static final String IID_EXTERNAL_ID_KEY = "opendaylight-iid";
+    public static final String QOS_ID_EXTERNAL_ID_KEY = "opendaylight-qos-id";
+    public static final String QUEUE_ID_EXTERNAL_ID_KEY = "opendaylight-queue-id";
+    public static final String AUTOATTACH_ID_EXTERNAL_ID_KEY = "opendaylight-autoattach-id";
+
+    // Note: _version is an internal column of ovsdb schema, that gets updated with every change in the row
+    //       of the table.
+    //       The "Manager" entry needs to be a modifiable list, SouthboundProvider::setSkipManagerStatus() modifies it
+    static final ImmutableMap<String, List<String>> SKIP_COLUMN_FROM_TABLE =
+        ImmutableMap.<String,List<String>>builder()
+            .put("Open_vSwitch", Arrays.asList("statistics","_version"))
+            .put("Port", Arrays.asList("statistics","_version"))
+            .put("Manager", new ArrayList<>(Collections.singletonList("_version")))
+            .put("SSL", Collections.singletonList("_version"))
+            .put("QoS", Collections.singletonList("_version"))
+            .put("Queue", Collections.singletonList("_version"))
+            .put("Bridge", Collections.singletonList("_version"))
+            .put("Interface", Arrays.asList("statistics","_version"))
+            .put("Controller", Arrays.asList("status","_version"))
+            .build();
 
-        public String getState() {
-            return this.state;
-        }
+    private SouthboundConstants() {
+        // Hidden on purpose
     }
-
-    int EOS_TIMEOUT = Integer.getInteger("southbound.eos.timeout.delay.secs", 240);
 }
index 7d17bad3e4a7efc12c4688c21a701a0c4d0d9f4b..f9c3e9f116fa0845490a0aaab8736e4d43e6e08a 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.ovsdb.southbound;
 import static java.util.Objects.requireNonNull;
 import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Splitter;
@@ -42,13 +43,38 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeNetdev;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdk;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkr;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhostuser;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhostuserclient;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGeneve;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre64;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeIpsecGre;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeIpsecGre64;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeLisp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypePatch;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeStt;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeSystem;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeTap;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlanGpe;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeEgressPolicer;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxCodel;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxFqCodel;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHfsc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHtb;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxSfq;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryKey;
@@ -79,6 +105,43 @@ public final class SouthboundMapper {
     private static final Logger LOG = LoggerFactory.getLogger(SouthboundMapper.class);
     private static final String N_CONNECTIONS_STR = "n_connections";
 
+    @VisibleForTesting
+    public static final ImmutableBiMap<Class<? extends DatapathTypeBase>, String> DATAPATH_TYPE_MAP =
+        ImmutableBiMap.of(
+            DatapathTypeSystem.class, "system",
+            DatapathTypeNetdev.class, "netdev");
+    @VisibleForTesting
+    public static final ImmutableBiMap<String, Class<? extends InterfaceTypeBase>> OVSDB_INTERFACE_TYPE_MAP =
+        ImmutableBiMap.<String, Class<? extends InterfaceTypeBase>>builder()
+            .put("internal", InterfaceTypeInternal.class)
+            .put("vxlan", InterfaceTypeVxlan.class)
+            .put("vxlan-gpe", InterfaceTypeVxlanGpe.class)
+            .put("patch", InterfaceTypePatch.class)
+            .put("system", InterfaceTypeSystem.class)
+            .put("tap", InterfaceTypeTap.class)
+            .put("geneve", InterfaceTypeGeneve.class)
+            .put("gre", InterfaceTypeGre.class)
+            .put("ipsec_gre", InterfaceTypeIpsecGre.class)
+            .put("gre64", InterfaceTypeGre64.class)
+            .put("ipsec_gre64", InterfaceTypeIpsecGre64.class)
+            .put("lisp", InterfaceTypeLisp.class)
+            .put("dpdk", InterfaceTypeDpdk.class)
+            .put("dpdkr", InterfaceTypeDpdkr.class)
+            .put("dpdkvhost", InterfaceTypeDpdkvhost.class)
+            .put("dpdkvhostuser", InterfaceTypeDpdkvhostuser.class)
+            .put("dpdkvhostuserclient", InterfaceTypeDpdkvhostuserclient.class)
+            .put("stt", InterfaceTypeStt.class)
+            .build();
+    private static final ImmutableBiMap<Class<? extends QosTypeBase>, String> QOS_TYPE_MAP =
+        ImmutableBiMap.<Class<? extends QosTypeBase>, String>builder()
+            .put(QosTypeLinuxHtb.class, SouthboundConstants.QOS_LINUX_HTB)
+            .put(QosTypeLinuxHfsc.class, SouthboundConstants.QOS_LINUX_HFSC)
+            .put(QosTypeLinuxSfq.class, SouthboundConstants.QOS_LINUX_SFQ)
+            .put(QosTypeLinuxCodel.class, SouthboundConstants.QOS_LINUX_CODEL)
+            .put(QosTypeLinuxFqCodel.class, SouthboundConstants.QOS_LINUX_FQ_CODEL)
+            .put(QosTypeEgressPolicer.class, SouthboundConstants.QOS_EGRESS_POLICER)
+            .build();
+
     private SouthboundMapper() {
 
     }
@@ -203,10 +266,10 @@ public final class SouthboundMapper {
     }
 
     public static String createDatapathType(final OvsdbBridgeAugmentation mdsalbridge) {
-        String datapathtype = SouthboundConstants.DATAPATH_TYPE_MAP.get(DatapathTypeSystem.class);
+        String datapathtype = DATAPATH_TYPE_MAP.get(DatapathTypeSystem.class);
 
         if (mdsalbridge.getDatapathType() != null && !mdsalbridge.getDatapathType().equals(DatapathTypeBase.class)) {
-            datapathtype = SouthboundConstants.DATAPATH_TYPE_MAP.get(mdsalbridge.getDatapathType());
+            datapathtype = DATAPATH_TYPE_MAP.get(mdsalbridge.getDatapathType());
             if (datapathtype == null) {
                 throw new IllegalArgumentException("Unknown datapath type " + mdsalbridge.getDatapathType().getName());
             }
@@ -218,7 +281,7 @@ public final class SouthboundMapper {
         if (type.isEmpty()) {
             return DatapathTypeSystem.class;
         }
-        return SouthboundConstants.DATAPATH_TYPE_MAP.inverse().get(type);
+        return DATAPATH_TYPE_MAP.inverse().get(type);
     }
 
     public static Set<String> createOvsdbBridgeProtocols(final OvsdbBridgeAugmentation ovsdbBridgeNode) {
@@ -236,11 +299,11 @@ public final class SouthboundMapper {
     }
 
     public static  Class<? extends InterfaceTypeBase> createInterfaceType(final String type) {
-        return SouthboundConstants.OVSDB_INTERFACE_TYPE_MAP.get(requireNonNull(type));
+        return OVSDB_INTERFACE_TYPE_MAP.get(requireNonNull(type));
     }
 
     public static String createOvsdbInterfaceType(final Class<? extends InterfaceTypeBase> mdsaltype) {
-        return SouthboundConstants.OVSDB_INTERFACE_TYPE_MAP.inverse().get(requireNonNull(mdsaltype));
+        return OVSDB_INTERFACE_TYPE_MAP.inverse().get(requireNonNull(mdsaltype));
     }
 
     public static List<ProtocolEntry> createMdsalProtocols(final Bridge bridge) {
@@ -486,8 +549,7 @@ public final class SouthboundMapper {
             LOG.info("QoS type not supplied");
             return QosTypeBase.class;
         } else {
-            ImmutableBiMap<String, Class<? extends QosTypeBase>> mapper =
-                    SouthboundConstants.QOS_TYPE_MAP.inverse();
+            ImmutableBiMap<String, Class<? extends QosTypeBase>> mapper = QOS_TYPE_MAP.inverse();
             if (mapper.get(type) == null) {
                 LOG.info("QoS type not found in model: {}", type);
                 return QosTypeBase.class;
@@ -498,10 +560,10 @@ public final class SouthboundMapper {
     }
 
     public static String createQosType(final Class<? extends QosTypeBase> qosTypeClass) {
-        String qosType = SouthboundConstants.QOS_TYPE_MAP.get(QosTypeBase.class);
+        String qosType = QOS_TYPE_MAP.get(QosTypeBase.class);
 
         if (qosTypeClass != null && !qosTypeClass.equals(QosTypeBase.class)) {
-            qosType = SouthboundConstants.QOS_TYPE_MAP.get(qosTypeClass);
+            qosType = QOS_TYPE_MAP.get(qosTypeClass);
             if (qosType == null) {
                 throw new IllegalArgumentException("Unknown QoS type" + qosTypeClass.getName());
             }
index 435efbf16a0eafb40783d87ca4d0e1c7d7570cfc..6f78ce7834caf371e77ac4ec6b55ee063297c74b 100644 (file)
@@ -229,7 +229,7 @@ public class SouthboundIT extends AbstractMdsalTestBase {
 
         private NotifyingDataChangeListener(final LogicalDatastoreType type) {
             this.type = type;
-            this.iid = null;
+            iid = null;
         }
 
         private NotifyingDataChangeListener(final LogicalDatastoreType type, final InstanceIdentifier<?> iid) {
@@ -654,7 +654,7 @@ public class SouthboundIT extends AbstractMdsalTestBase {
         } else {
             for (DatapathTypeEntry dpTypeEntry : datapathTypeEntries.values()) {
                 Class<? extends DatapathTypeBase> dpType = dpTypeEntry.getDatapathType();
-                String dpTypeStr = SouthboundConstants.DATAPATH_TYPE_MAP.get(dpType);
+                String dpTypeStr = SouthboundMapper.DATAPATH_TYPE_MAP.get(dpType);
                 LOG.info("dp type is {}", dpTypeStr);
                 if (dpTypeStr.equals(NETDEV_DP_TYPE)) {
                     LOG.info("Found a DPDK node; adding a corresponding netdev device");
@@ -681,7 +681,7 @@ public class SouthboundIT extends AbstractMdsalTestBase {
                             LOG.info("DPDK portname and type is {}, {}", testPortname, dpdkType);
                             OvsdbTerminationPointAugmentationBuilder ovsdbTerminationpointBuilder =
                                     createSpecificDpdkOvsdbTerminationPointAugmentationBuilder(testPortname,
-                                            SouthboundConstants.OVSDB_INTERFACE_TYPE_MAP.get(dpdkType));
+                                            SouthboundMapper.OVSDB_INTERFACE_TYPE_MAP.get(dpdkType));
                             assertTrue(addTerminationPoint(bridgeNodeId, testPortname, ovsdbTerminationpointBuilder));
                         }
 
@@ -695,7 +695,7 @@ public class SouthboundIT extends AbstractMdsalTestBase {
                         for (String dpdkType : dpdkTypes) {
                             String testPortname = "test" + dpdkType + "port";
                             Class<? extends InterfaceTypeBase> dpdkIfType =
-                                    SouthboundConstants.OVSDB_INTERFACE_TYPE_MAP.get(dpdkType);
+                                    SouthboundMapper.OVSDB_INTERFACE_TYPE_MAP.get(dpdkType);
                             for (TerminationPoint terminationPoint
                                     : terminationPointNode.nonnullTerminationPoint().values()) {
                                 OvsdbTerminationPointAugmentation ovsdbTerminationPointAugmentation = terminationPoint
@@ -806,13 +806,9 @@ public class SouthboundIT extends AbstractMdsalTestBase {
 
     private static OvsdbTerminationPointAugmentationBuilder createGenericDpdkOvsdbTerminationPointAugmentationBuilder(
             final String portName) {
-        OvsdbTerminationPointAugmentationBuilder ovsdbTerminationBuilder =
-                createGenericOvsdbTerminationPointAugmentationBuilder();
-        ovsdbTerminationBuilder.setName(portName);
-        Class<? extends InterfaceTypeBase> ifType = SouthboundConstants.OVSDB_INTERFACE_TYPE_MAP
-                .get("dpdk");
-        ovsdbTerminationBuilder.setInterfaceType(ifType);
-        return ovsdbTerminationBuilder;
+        return createGenericOvsdbTerminationPointAugmentationBuilder()
+            .setName(portName)
+            .setInterfaceType(SouthboundMapper.OVSDB_INTERFACE_TYPE_MAP.get("dpdk"));
     }
 
     private static OvsdbTerminationPointAugmentationBuilder createSpecificDpdkOvsdbTerminationPointAugmentationBuilder(
@@ -959,7 +955,7 @@ public class SouthboundIT extends AbstractMdsalTestBase {
         public void close() {
             final InstanceIdentifier<Autoattach> iid = SouthboundUtils.createInstanceIdentifier(connectionInfo)
                     .augmentation(OvsdbNodeAugmentation.class)
-                    .child(Autoattach.class, new AutoattachKey(this.autoattachId));
+                    .child(Autoattach.class, new AutoattachKey(autoattachId));
             final NotifyingDataChangeListener aaOperationalListener =
                     new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, iid);
             aaOperationalListener.registerDataChangeListener();
@@ -1133,7 +1129,7 @@ public class SouthboundIT extends AbstractMdsalTestBase {
         public void close() {
             final InstanceIdentifier<QosEntries> qeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo)
                     .augmentation(OvsdbNodeAugmentation.class)
-                    .child(QosEntries.class, new QosEntriesKey(this.qosId));
+                    .child(QosEntries.class, new QosEntriesKey(qosId));
             final NotifyingDataChangeListener qosOperationalListener =
                     new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, qeIid);
             qosOperationalListener.registerDataChangeListener();
@@ -1197,7 +1193,7 @@ public class SouthboundIT extends AbstractMdsalTestBase {
         public void close() {
             InstanceIdentifier<Queues> queuesIid = SouthboundUtils.createInstanceIdentifier(connectionInfo)
                     .augmentation(OvsdbNodeAugmentation.class)
-                    .child(Queues.class, new QueuesKey(this.queueId));
+                    .child(Queues.class, new QueuesKey(queueId));
             final NotifyingDataChangeListener queueOperationalListener =
                     new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, queuesIid);
             queueOperationalListener.registerDataChangeListener();