BFD monitoring changes 51/37651/5
authorKiran N Upadhyaya <kiran.n.upadhyaya@ericsson.com>
Wed, 13 Apr 2016 14:06:19 +0000 (19:36 +0530)
committerKiran N Upadhyaya <kiran.n.upadhyaya@ericsson.com>
Wed, 27 Apr 2016 11:43:48 +0000 (11:43 +0000)
Enabling/Disabling BFD monitor was fixed. Updates to the  monitor
parameters were not being considered while writing to the data store.

Change-Id: Iaa9a71b353a78d8ac626a81dbe43e1587b8bbdf8
Signed-off-by: Kiran N Upadhyaya <kiran.n.upadhyaya@ericsson.com>
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/commons/InterfaceMetaUtils.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/confighelpers/HwVTEPInterfaceConfigUpdateHelper.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/utilities/SouthboundUtils.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/utilities/SouthboundUtils.java

index b768b406eadfb2df1fc865400653221c5ca81850..09e9868fb671a9cbdb054c2e87666251257daccb 100644 (file)
@@ -99,6 +99,7 @@ public class InterfaceMetaUtils {
         BridgeEntryKey bridgeEntryKey = new BridgeEntryKey(dpnId);
         InstanceIdentifier<BridgeEntry> bridgeEntryInstanceIdentifier =
                 InterfaceMetaUtils.getBridgeEntryIdentifier(bridgeEntryKey);
+        LOG.debug("Trying to retrieve bridge entry from config for Id: {}", bridgeEntryInstanceIdentifier);
         return getBridgeEntryFromConfigDS(bridgeEntryInstanceIdentifier,
                         dataBroker);
     }
index a91fcce9a1dfad697ea5c287f6589730000c166a..0b63cb3d903beed70a3f2edfdf1dc3abfe9d01e8 100644 (file)
@@ -7,10 +7,13 @@
  */
 package org.opendaylight.vpnservice.interfacemgr.renderer.hwvtep.confighelpers;
 
+import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.ReadTransaction;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.vpnservice.interfacemgr.IfmUtil;
 import org.opendaylight.vpnservice.interfacemgr.commons.InterfaceManagerCommonUtils;
 import org.opendaylight.vpnservice.interfacemgr.renderer.hwvtep.utilities.SouthboundUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
@@ -30,6 +33,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
+import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,7 +53,7 @@ public class HwVTEPInterfaceConfigUpdateHelper {
         // create hwvtep through ovsdb plugin
         WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
         if(globalNodeId != null) {
-            updateBfdMonitoring(dataBroker, physicalSwitchNodeId, ifTunnel);
+            updateBfdMonitoring(dataBroker, globalNodeId, physicalSwitchNodeId, ifTunnel);
 
         }else{
             LOG.debug("specified physical switch is not connected {}", physicalSwitchNodeId);
@@ -61,23 +65,23 @@ public class HwVTEPInterfaceConfigUpdateHelper {
     /*
      * bfd monitoring interval and enable/disbale attributes can be modified
      */
-    public static List<ListenableFuture<Void>> updateBfdMonitoring(DataBroker dataBroker, InstanceIdentifier<Node> nodeId,
+    public static List<ListenableFuture<Void>> updateBfdMonitoring(DataBroker dataBroker, InstanceIdentifier<Node> globalNodeId, InstanceIdentifier<Node> physicalSwitchId,
                                                                    IfTunnel ifTunnel) {
         List<ListenableFuture<Void>> futures = new ArrayList<ListenableFuture<Void>>();
         WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
         TunnelsBuilder tBuilder = new TunnelsBuilder();
         InstanceIdentifier<TerminationPoint> localTEPInstanceIdentifier =
-                SouthboundUtils.createTEPInstanceIdentifier(nodeId, ifTunnel.getTunnelSource());
+                SouthboundUtils.createTEPInstanceIdentifier(globalNodeId, ifTunnel.getTunnelSource());
         InstanceIdentifier<TerminationPoint> remoteTEPInstanceIdentifier =
-                SouthboundUtils.createTEPInstanceIdentifier(nodeId, ifTunnel.getTunnelDestination());
+                SouthboundUtils.createTEPInstanceIdentifier(globalNodeId, ifTunnel.getTunnelDestination());
         InstanceIdentifier<Tunnels> tunnelsInstanceIdentifier = SouthboundUtils.
-                createTunnelsInstanceIdentifier(nodeId, localTEPInstanceIdentifier, remoteTEPInstanceIdentifier);
+                createTunnelsInstanceIdentifier(physicalSwitchId, localTEPInstanceIdentifier, remoteTEPInstanceIdentifier);
 
         LOG.debug("updating bfd monitoring parameters for the hwvtep {}", tunnelsInstanceIdentifier);
         tBuilder.setKey(new TunnelsKey(new HwvtepPhysicalLocatorRef(localTEPInstanceIdentifier),
                 new HwvtepPhysicalLocatorRef(remoteTEPInstanceIdentifier)));
         List <BfdParams> bfdParams = new ArrayList<>();
-        SouthboundUtils.fillBfdParameters(bfdParams, null);
+        SouthboundUtils.fillBfdParameters(bfdParams, ifTunnel);
         tBuilder.setBfdParams(bfdParams);
         transaction.merge(LogicalDatastoreType.CONFIGURATION, tunnelsInstanceIdentifier,tBuilder.build(), true);
         futures.add(transaction.submit());
index c3b4d3eb80d8c45495a7f01c8c0c9e8152e5e8d1..b811dc852340ede78e22e5bcf412c70efccddb91 100644 (file)
@@ -143,9 +143,11 @@ public class SouthboundUtils {
                                                                               InstanceIdentifier<TerminationPoint> remoteTEPInstanceIdentifier) {
         TunnelsKey tunnelsKey = new TunnelsKey(new HwvtepPhysicalLocatorRef(localTEPInstanceIdentifier),
                 new HwvtepPhysicalLocatorRef(remoteTEPInstanceIdentifier));
-        return InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class, new TopologyKey(HWVTEP_TOPOLOGY_ID))
+
+        InstanceIdentifier<Tunnels> tunnelInstanceId = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class, new TopologyKey(HWVTEP_TOPOLOGY_ID))
                 .child(Node.class, new NodeKey(nodeId.firstKeyOf(Node.class))).augmentation(PhysicalSwitchAugmentation.class)
                 .child(Tunnels.class, tunnelsKey).build();
+        return tunnelInstanceId;
     }
 
     public static String getTerminationPointKeyString(String ipAddress) {
index 95f9e91ff3deb42d1479da2c05038d4a02eaab89..24df937593a58e9d30aa72eba8ebbb34046d5b6d 100644 (file)
@@ -58,6 +58,7 @@ public class OvsInterfaceTopologyStateAddHelper {
         // handle pre-provisioning of tunnels for the newly connected dpn
         BridgeEntry bridgeEntry = InterfaceMetaUtils.getBridgeEntryFromConfigDS(dpnId, dataBroker);
         if (bridgeEntry == null) {
+            LOG.debug("Bridge entry not found in config DS for dpn: {}", dpnId);
             futures.add(writeTransaction.submit());
             return futures;
         }
index 9fbd1b7dc063ab68e8ea57cc5269d67f50211a40..582cd2916ee4407e30cfa14087490a5841c82fd0 100644 (file)
@@ -91,6 +91,7 @@ public class SouthboundUtils {
     public static void addBridge(InstanceIdentifier<OvsdbBridgeAugmentation> bridgeIid,
                                  OvsdbBridgeAugmentation bridgeAugmentation,
                                  DataBroker dataBroker, List<ListenableFuture<Void>> futures){
+        LOG.debug("adding bridge: {}", bridgeAugmentation.getBridgeName());
         WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
         NodeId nodeId = InstanceIdentifier.keyOf(bridgeIid.firstIdentifierOf(Node.class)).getNodeId();
         NodeBuilder bridgeNodeBuilder = new NodeBuilder();