From 104b4cbca46f5a218ac21ef2655bb7947863bfce Mon Sep 17 00:00:00 2001 From: Kiran N Upadhyaya Date: Wed, 13 Apr 2016 19:36:19 +0530 Subject: [PATCH] BFD monitoring changes 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 --- .../interfacemgr/commons/InterfaceMetaUtils.java | 1 + .../HwVTEPInterfaceConfigUpdateHelper.java | 16 ++++++++++------ .../hwvtep/utilities/SouthboundUtils.java | 4 +++- .../OvsInterfaceTopologyStateAddHelper.java | 1 + .../renderer/ovs/utilities/SouthboundUtils.java | 1 + 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/commons/InterfaceMetaUtils.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/commons/InterfaceMetaUtils.java index b768b406..09e9868f 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/commons/InterfaceMetaUtils.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/commons/InterfaceMetaUtils.java @@ -99,6 +99,7 @@ public class InterfaceMetaUtils { BridgeEntryKey bridgeEntryKey = new BridgeEntryKey(dpnId); InstanceIdentifier bridgeEntryInstanceIdentifier = InterfaceMetaUtils.getBridgeEntryIdentifier(bridgeEntryKey); + LOG.debug("Trying to retrieve bridge entry from config for Id: {}", bridgeEntryInstanceIdentifier); return getBridgeEntryFromConfigDS(bridgeEntryInstanceIdentifier, dataBroker); } diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/confighelpers/HwVTEPInterfaceConfigUpdateHelper.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/confighelpers/HwVTEPInterfaceConfigUpdateHelper.java index a91fcce9..0b63cb3d 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/confighelpers/HwVTEPInterfaceConfigUpdateHelper.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/confighelpers/HwVTEPInterfaceConfigUpdateHelper.java @@ -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> updateBfdMonitoring(DataBroker dataBroker, InstanceIdentifier nodeId, + public static List> updateBfdMonitoring(DataBroker dataBroker, InstanceIdentifier globalNodeId, InstanceIdentifier physicalSwitchId, IfTunnel ifTunnel) { List> futures = new ArrayList>(); WriteTransaction transaction = dataBroker.newWriteOnlyTransaction(); TunnelsBuilder tBuilder = new TunnelsBuilder(); InstanceIdentifier localTEPInstanceIdentifier = - SouthboundUtils.createTEPInstanceIdentifier(nodeId, ifTunnel.getTunnelSource()); + SouthboundUtils.createTEPInstanceIdentifier(globalNodeId, ifTunnel.getTunnelSource()); InstanceIdentifier remoteTEPInstanceIdentifier = - SouthboundUtils.createTEPInstanceIdentifier(nodeId, ifTunnel.getTunnelDestination()); + SouthboundUtils.createTEPInstanceIdentifier(globalNodeId, ifTunnel.getTunnelDestination()); InstanceIdentifier 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 = 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()); diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/utilities/SouthboundUtils.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/utilities/SouthboundUtils.java index c3b4d3eb..b811dc85 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/utilities/SouthboundUtils.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/hwvtep/utilities/SouthboundUtils.java @@ -143,9 +143,11 @@ public class SouthboundUtils { InstanceIdentifier 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 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) { diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java index 95f9e91f..24df9375 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/statehelpers/OvsInterfaceTopologyStateAddHelper.java @@ -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; } diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/utilities/SouthboundUtils.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/utilities/SouthboundUtils.java index 9fbd1b7d..582cd291 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/utilities/SouthboundUtils.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/renderer/ovs/utilities/SouthboundUtils.java @@ -91,6 +91,7 @@ public class SouthboundUtils { public static void addBridge(InstanceIdentifier bridgeIid, OvsdbBridgeAugmentation bridgeAugmentation, DataBroker dataBroker, List> futures){ + LOG.debug("adding bridge: {}", bridgeAugmentation.getBridgeName()); WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); NodeId nodeId = InstanceIdentifier.keyOf(bridgeIid.firstIdentifierOf(Node.class)).getNodeId(); NodeBuilder bridgeNodeBuilder = new NodeBuilder(); -- 2.36.6