BFD monitoring changes
[vpnservice.git] / interfacemgr / interfacemgr-impl / src / main / java / org / opendaylight / vpnservice / interfacemgr / renderer / hwvtep / confighelpers / HwVTEPInterfaceConfigUpdateHelper.java
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());