Monitor Interval range changed. Min value 1 sec. 57/41457/7
authorDimple Jain <dimple.jain@ericsson.com>
Thu, 7 Jul 2016 06:55:25 +0000 (12:25 +0530)
committerFaseela K <faseela.k@ericsson.com>
Mon, 11 Jul 2016 18:31:31 +0000 (18:31 +0000)
Change-Id: I44a52c36fbf4c7df13f4ff8c94cdab648e3ed0cb
Signed-off-by: Dimple Jain <dimple.jain@ericsson.com>
itm/itm-api/src/main/java/org/opendaylight/genius/itm/globals/ITMConstants.java
itm/itm-api/src/main/yang/itm-config.yang
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorIntervalWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorToggleWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmProvider.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelAddTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmInternalTunnelAddTest.java

index 06514ef75711c823530cb066a87cd696949a2416..fc5a1622af8bbdae38c3692f3b1423b67f4901b3 100644 (file)
@@ -22,7 +22,7 @@ public class ITMConstants{
   //Tunnel Monitoring
   public static final boolean DEFAULT_MONITOR_ENABLED = true;
   public static final int DEFAULT_MONITOR_INTERVAL = 10000;
-  public static final int BFD_DEFAULT_MONITOR_INTERVAL = 100;
+  public static final int BFD_DEFAULT_MONITOR_INTERVAL = 1000;
   public static final String DUMMY_IP_ADDRESS = "0.0.0.0";
   public static final String TUNNEL_TYPE_VXLAN = "VXLAN";
   public static final String TUNNEL_TYPE_GRE = "GRE";
index 97b6e3a1061fbb09bc93f14abcb26a232c971985..e77835bf56883c30ea5acd9ec1dabf0d39b90dbd 100644 (file)
@@ -21,9 +21,9 @@ module itm-config {
 
     description "This YANG module defines automatic tunnel configuration.";
     revision "2016-04-06";
-    
+
     /* Tunnel Monitoring Knob */
-    
+
     container tunnel-monitor-params {
       leaf enabled {
          type boolean;
@@ -40,7 +40,7 @@ module itm-config {
     container tunnel-monitor-interval {
       leaf interval {
          type uint16 {
-             range "100..30000";
+             range "1000..30000";
          }
       }
     }
index 8b951b6581d069231c7b3ab44fea66e804f85ea5..79711749a14aea23de4f65e973efe277576e36be 100644 (file)
@@ -17,6 +17,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnelBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorInterval;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorIntervalBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,9 +27,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
 
-/**
- * Created by eanraju on 23-Mar-16.
- */
 public class ItmMonitorIntervalWorker implements Callable<List<ListenableFuture<Void>>> {
     private static final Logger logger = LoggerFactory.getLogger(ItmMonitorIntervalWorker.class) ;
     private DataBroker dataBroker;
@@ -74,6 +73,9 @@ public class ItmMonitorIntervalWorker implements Callable<List<ListenableFuture<
             InterfaceBuilder builder = new InterfaceBuilder().setKey(new InterfaceKey(tunnelInterfaceName))
                     .addAugmentation(IfTunnel.class, tunnel);
             t.merge(LogicalDatastoreType.CONFIGURATION, trunkIdentifier, builder.build());
+            InstanceIdentifier<TunnelMonitorInterval> iid = InstanceIdentifier.builder(TunnelMonitorInterval.class).build();
+            TunnelMonitorInterval intervalBuilder = new TunnelMonitorIntervalBuilder().setInterval(interval).build();
+            ItmUtils.asyncUpdate(LogicalDatastoreType.OPERATIONAL,iid, intervalBuilder, dataBroker, ItmUtils.DEFAULT_CALLBACK);
         }
     }
 }
index 1502ef000021b712b14a4b9846ce27c1296bff91..f6ffb5a16cf061e81129764641076effd3b2dcef 100644 (file)
@@ -19,6 +19,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnelBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorParams;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorParamsBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,7 +29,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
 
-
 public class ItmMonitorToggleWorker implements Callable<List<ListenableFuture<Void>>> {
     private static final Logger logger = LoggerFactory.getLogger(ItmMonitorToggleWorker.class) ;
     private DataBroker dataBroker;
@@ -75,6 +76,10 @@ public class ItmMonitorToggleWorker implements Callable<List<ListenableFuture<Vo
             InterfaceBuilder builder = new InterfaceBuilder().setKey(new InterfaceKey(tunnelInterfaceName))
                     .addAugmentation(IfTunnel.class, tunnel);
             t.merge(LogicalDatastoreType.CONFIGURATION, trunkIdentifier, builder.build());
+            InstanceIdentifier<TunnelMonitorParams> iid = InstanceIdentifier.builder(TunnelMonitorParams.class).build();
+            TunnelMonitorParams protocolBuilder = new TunnelMonitorParamsBuilder().setEnabled(enabled).setMonitorProtocol(monitorProtocol).build();
+            ItmUtils.asyncUpdate(LogicalDatastoreType.OPERATIONAL,iid, protocolBuilder, dataBroker, ItmUtils.DEFAULT_CALLBACK);
+
         }
     }
 }
@@ -82,4 +87,3 @@ public class ItmMonitorToggleWorker implements Callable<List<ListenableFuture<Vo
 
 
 
-
index 7ff6978bef5f1bddb6ad8f1da0c4c98b7f5fe48c..53524edf1c6f79b4cc994e53eea7586e353f13bf 100644 (file)
@@ -190,8 +190,7 @@ public class ItmProvider implements BindingAwareProvider, AutoCloseable, IITMPro
 
     @Override
     public void showTeps() {
-        tepCommandHelper.showTeps(itmManager.getTunnelMonitorEnabledFromConfigDS(),
-                itmManager.getTunnelMonitorIntervalFromConfigDS());
+        tepCommandHelper.showTeps(itmManager.getTunnelMonitorEnabledFromConfigDS(), ItmUtils.determineMonitorInterval(this.dataBroker));
     }
 
     public void showState(TunnelList tunnels) {
index 4c342b2e383638ca97641f32e9a5c65de36cb250..da26ae4649efe70468a18497e9e32fdfdbbe2567 100644 (file)
@@ -35,7 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorParams;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.*;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelListKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.DcGatewayIpList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.dc.gateway.ip.list.DcGatewayIp;
@@ -46,9 +46,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.interfaces._interface.NodeIdentifier;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.interfaces._interface.NodeIdentifierBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.interfaces._interface.NodeIdentifierKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorInterval;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.VtepConfigSchemas;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.VtepIpPools;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.vtep.config.schemas.VtepConfigSchema;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.vtep.config.schemas.VtepConfigSchemaBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.vtep.config.schemas.VtepConfigSchemaKey;
@@ -750,6 +747,9 @@ public class ItmUtils {
                 monitorInterval = ITMConstants.DEFAULT_MONITOR_INTERVAL;
         }
         LOG.debug("determineMonitorInterval: monitorInterval = {}", monitorInterval);
+        InstanceIdentifier<TunnelMonitorInterval> iid = InstanceIdentifier.builder(TunnelMonitorInterval.class).build();
+        TunnelMonitorInterval intervalBuilder = new TunnelMonitorIntervalBuilder().setInterval(monitorInterval).build();
+        ItmUtils.asyncUpdate(LogicalDatastoreType.OPERATIONAL,iid, intervalBuilder, dataBroker, ItmUtils.DEFAULT_CALLBACK);
         return monitorInterval;
     }
 
@@ -1010,10 +1010,16 @@ public class ItmUtils {
         if(monitoringProtocol==null)
             monitoringProtocol = ITMConstants.DEFAULT_MONITOR_PROTOCOL;
         LOG.debug("determineMonitorProtocol: monitorProtocol = {}", monitoringProtocol);
+        Boolean monitorState = ItmUtils.readMonitoringStateFromDS(dataBroker);
+        if(monitorState==null)
+            monitorState = true;
+        LOG.debug("determineMonitorProtocol: monitorState = {}", monitorState);
+        InstanceIdentifier<TunnelMonitorParams> iid = InstanceIdentifier.builder(TunnelMonitorParams.class).build();
+        TunnelMonitorParams protocolBuilder = new TunnelMonitorParamsBuilder().setEnabled(monitorState).setMonitorProtocol(monitoringProtocol).build();
+        ItmUtils.asyncUpdate(LogicalDatastoreType.OPERATIONAL,iid, protocolBuilder, dataBroker, ItmUtils.DEFAULT_CALLBACK);
         return monitoringProtocol;
     }
 
-
     public static List<DcGatewayIp> getDcGatewayIpList(DataBroker broker){
         InstanceIdentifier<DcGatewayIpList> dcGatewayIpListid = InstanceIdentifier.builder(DcGatewayIpList.class).build();
         Optional<DcGatewayIpList> dcGatewayIpListConfig = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, dcGatewayIpListid, broker);
index fdb3fa6aa98f5de702d88e98af399db3b9a3889e..f171c89b37246305ac695797353edb661af80b35 100644 (file)
@@ -79,7 +79,7 @@ public class ItmExternalTunnelAddTest {
 
     BigInteger dpId1 = BigInteger.valueOf(1);
     int vlanId = 100 ;
-    int interval = 100;
+    int interval = 1000;
     String portName1 = "phy0";
     String tepIp1 = "192.168.56.30";
     String tepIp2 = "192.168.56.40";
index 4798a63271e10bae0db79e11f5d367a901996670..0f714edbf92466c9741a29c2b8b650a7cd91f164 100644 (file)
@@ -73,7 +73,7 @@ public class ItmInternalTunnelAddTest {
     String portName1 = "phy0";
     String portName2 = "phy1" ;
     int vlanId = 100 ;
-    int interval = 100;
+    int interval = 1000;
     String tepIp1 = "192.168.56.101";
     String tepIp2 = "192.168.56.102";
     String gwyIp1 = "0.0.0.0";