initial code commit

Signed-off-by: Eszter Susanszky <eszter.susanszky@ericsson.com>
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..162dd2f
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,57 @@
+[submodule "src/Libraries/EPTF_Applib_MQTT_CNL113860"]
+	path = src/Libraries/EPTF_Applib_MQTT_CNL113860
+	url = git://git.eclipse.org/gitroot/titan/titan.ApplicationLibraries.MQTT.git
+[submodule "src/Libraries/EPTF_Applib_COAP_CNL113858"]
+	path = src/Libraries/EPTF_Applib_COAP_CNL113858
+	url = git://git.eclipse.org/gitroot/titan/titan.ApplicationLibraries.CoAP.git
+[submodule "src/Libraries/EPTF_Applib_LWM2M_CNL113859"]
+	path = src/Libraries/EPTF_Applib_LWM2M_CNL113859
+	url = git://git.eclipse.org/gitroot/titan/titan.ApplicationLibraries.LWM2M.git
+[submodule "src/Libraries/EPTF_Applib_MBT_CNL113659"]
+	path = src/Libraries/EPTF_Applib_MBT_CNL113659
+	url = git://git.eclipse.org/gitroot/titan/titan.ApplicationLibraries.MBT.git
+[submodule "src/Libraries/EPTF_Applib_HTTP_CNL113618"]
+	path = src/Libraries/EPTF_Applib_HTTP_CNL113618
+	url = git://git.eclipse.org/gitroot/titan/titan.ApplicationLibraries.HTTP.git
+[submodule "src/Libraries/EPTF_Core_Library_CNL113512"]
+	path = src/Libraries/EPTF_Core_Library_CNL113512
+	url = git://git.eclipse.org/gitroot/titan/titan.Libraries.CLL.git
+[submodule "src/Libraries/TCCUsefulFunctions_CNL113472"]
+	path = src/Libraries/TCCUsefulFunctions_CNL113472
+	url = git://github.com/eclipse/titan.Libraries.TCCUsefulFunctions
+[submodule "src/ProtocolModules/CoAP_CNL113829"]
+	path = src/ProtocolModules/CoAP_CNL113829
+	url = git://git.eclipse.org/gitroot/titan/titan.ProtocolModules.CoAP.git
+[submodule "src/ProtocolModules/MQTT_v3.1.1_CNL113831"]
+	path = src/ProtocolModules/MQTT_v3.1.1_CNL113831
+	url = git://git.eclipse.org/gitroot/titan/titan.ProtocolModules.MQTT.git
+[submodule "src/ProtocolModules/COMMON"]
+	path = src/ProtocolModules/COMMON
+	url = git://github.com/eclipse/titan.ProtocolModules.COMMON.git
+[submodule "src/ProtocolModules/XTDP_CNL113663"]
+	path = src/ProtocolModules/XTDP_CNL113663
+	url = git://git.eclipse.org/gitroot/titan/titan.ProtocolModules.XTDP.git
+[submodule "src/ProtocolModules/JSON_v07_2006_CNL113676"]
+	path = src/ProtocolModules/JSON_v07_2006_CNL113676
+	url = git://github.com/eclipse/titan.ProtocolModules.JSON_v07_2006.git
+[submodule "src/TestPorts/Common_Components/Abstract_Socket_CNL113384"]
+	path = src/TestPorts/Common_Components/Abstract_Socket_CNL113384
+	url = git://github.com/eclipse/titan.TestPorts.Common_Components.Abstract_Socket.git
+[submodule "src/TestPorts/Common_Components/Socket_API_CNL113686"]
+	path = src/TestPorts/Common_Components/Socket_API_CNL113686
+	url = git://github.com/eclipse/titan.TestPorts.Common_Components.Socket-API.git
+[submodule "src/TestPorts/TELNETasp_CNL113320"]
+	path = src/TestPorts/TELNETasp_CNL113320
+	url = git://github.com/eclipse/titan.TestPorts.TELNETasp.git
+[submodule "src/TestPorts/HTTPmsg_CNL113312"]
+	path = src/TestPorts/HTTPmsg_CNL113312
+	url = git://github.com/eclipse/titan.TestPorts.HTTPmsg.git
+[submodule "src/TestPorts/IPL4asp_CNL113531"]
+	path = src/TestPorts/IPL4asp_CNL113531
+	url = git://github.com/eclipse/titan.TestPorts.IPL4asp.git
+[submodule "src/Libraries/IoT_Loadtest_Framework"]
+	path = src/Libraries/IoT_Loadtest_Framework
+	url = git://git.eclipse.org/gitroot/titan/titan.Applications.IoT_Loadtest_Framework.git
+[submodule "src/Libraries/IoT_Functiontest_Framework"]
+	path = src/Libraries/IoT_Functiontest_Framework
+	url = git://git.eclipse.org/gitroot/titan/titan.Applications.IoT_Functiontest_Framework.git
diff --git a/RIOT_LPA108661.tpd b/RIOT_LPA108661.tpd
new file mode 100644
index 0000000..6beeb51
--- /dev/null
+++ b/RIOT_LPA108661.tpd
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TITAN_Project_File_Information version="1.0">
+<!--
+ Copyright (c) 2000-2017 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+   
+  File:               RIOT_LPA108661.tpd
+  Description:        tpd project file
+  Rev:                <RnXnn>
+  Prodnr:             LPA108661
+  Updated:            2018-02-27
+  Contact:            http://ttcn.ericsson.se
+-->
+  <ProjectName>RIOT_LPA108661</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_COAP_CNL113858" projectLocationURI="src/Libraries/EPTF_Applib_COAP_CNL113858/EPTF_Applib_COAP_CNL113858.tpd"/>
+    <ReferencedProject name="EPTF_Applib_LWM2M_CNL113859" projectLocationURI="src/Libraries/EPTF_Applib_LWM2M_CNL113859/EPTF_Applib_LWM2M_CNL113859.tpd"/>
+    <ReferencedProject name="EPTF_Applib_MBT_CNL113659" projectLocationURI="src/Libraries/EPTF_Applib_MBT_CNL113659/EPTF_Applib_MBT_CNL113659.tpd"/>
+    <ReferencedProject name="EPTF_Applib_MQTT_CNL113860" projectLocationURI="src/Libraries/EPTF_Applib_MQTT_CNL113860/EPTF_Applib_MQTT_CNL113860.tpd"/>
+    <ReferencedProject name="EPTF_Applib_HTTP_CNL113618" projectLocationURI="src/Libraries/EPTF_Applib_HTTP_CNL113618/EPTF_Applib_HTTP_CNL113618.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DsRestAPI" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/DsRestAPI/EPTF_CLL_DsRestAPI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ILogBase" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/ILog/EPTF_CLL_ILog.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_NQueue" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/NQueue/EPTF_CLL_NQueue.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RandomNArray" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RandomNArray.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RingBuffer" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/RingBuffer/EPTF_CLL_RingBuffer.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatManager" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/StatManager/EPTF_CLL_StatManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_Common" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_IPsecHandler" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_IPsecHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="src/Libraries/EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="JSON_v07_2006_CNL113676_1" projectLocationURI="src/ProtocolModules/JSON_v07_2006_CNL113676/JSON_v07_2006_CNL113676_1.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="src/ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="src/Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="IFW_CoAP_Peer_Definitions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_CoAP_Peer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IFW_CoAP_Peer_Functions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_CoAP_Peer_Functions.ttcn"/>
+    <FileResource projectRelativePath="IFW_CoAP_Peer_TestSteps.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_CoAP_Peer_TestSteps.ttcn"/>
+    <FileResource projectRelativePath="IFW_Common.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_Common.ttcn"/>
+    <FileResource projectRelativePath="IFW_HTTP_Client_Definitions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_HTTP_Client_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IFW_HTTP_Client_Functions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_HTTP_Client_Functions.ttcn"/>
+    <FileResource projectRelativePath="IFW_HTTP_Client_TestSteps.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_HTTP_Client_TestSteps.ttcn"/>
+    <FileResource projectRelativePath="IFW_MQTT_Client_Definitions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_MQTT_Client_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IFW_MQTT_Client_Functions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_MQTT_Client_Functions.ttcn"/>
+    <FileResource projectRelativePath="IFW_MQTT_Client_TestSteps.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IFW_MQTT_Client_TestSteps.ttcn"/>
+    <FileResource projectRelativePath="IOT_App_Definitions.ttcn" relativeURI="src/Libraries/IoT_Loadtest_Framework/IOT_App_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IOT_App_Functions.ttcn" relativeURI="src/Libraries/IoT_Loadtest_Framework/IOT_App_Functions.ttcn"/>
+    <FileResource projectRelativePath="IOT_LGen_Definitions.ttcn" relativeURI="src/Libraries/IoT_Loadtest_Framework/IOT_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IOT_LGen_Functions.ttcn" relativeURI="src/Libraries/IoT_Loadtest_Framework/IOT_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="IOT_LGen_Steps.ttcn" relativeURI="src/Libraries/IoT_Loadtest_Framework/IOT_LGen_Steps.ttcn"/>
+    <FileResource projectRelativePath="InfluxDB_Definitions.ttcn" relativeURI="src/Libraries/IoT_Loadtest_Framework/InfluxDB_Definitions.ttcn"/>
+    <FileResource projectRelativePath="InfluxDB_Functions.ttcn" relativeURI="src/Libraries/IoT_Loadtest_Framework/InfluxDB_Functions.ttcn"/>
+    <FileResource projectRelativePath="IoT_FT_Framework_Definitions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IoT_FT_Framework_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IoT_FT_Framework_Functions.ttcn" relativeURI="src/Libraries/IoT_Functiontest_Framework/IoT_FT_Framework_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/riot</targetExecutable>
+          <suppressWarnings>true</suppressWarnings>
+          <enableLegacyEncoding>true</enableLegacyEncoding>
+          <buildLevel>Level3-Creatingobjectfileswithdependencyupdate</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/cfg/coap_basic/coap_basic_fsms.cfg b/cfg/coap_basic/coap_basic_fsms.cfg
new file mode 100644
index 0000000..dc5bca7
--- /dev/null
+++ b/cfg/coap_basic/coap_basic_fsms.cfg
@@ -0,0 +1,814 @@
+

+[MODULE_PARAMETERS]

+tsp_IOT_LGen_FSMs := {

+  {

+/**** FSM Editor layout information. ****

+@state "idle" (144, 311)

+@state "initiated" (739, 313)

+@parallellink "idle" -- "initiated" (159, 311) (214, 311) * (712, 313) (657, 313)

+@link "idle" -- "initiated"

+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"

+@link "initiated" -- "idle"

+singleevent "COAP Behavior" "COAP rsp: 205"

+@link "initiated" -- "idle"

+eventlist "COAP Behavior" "COAP rsp: 200" "COAP rsp: 201" "COAP rsp: 202" "COAP rsp: 203" "COAP rsp: 204" 

+@link "initiated" -- "idle"

+singleevent "Special behavior for timeout reporting" "watchdog"

+*/

+    name := "TC_CORE01_GET_FSM",

+    fsmParams := {

+      {

+        stateList := {

+          "idle",

+          "initiated"

+        }

+      },

+      {

+        timerList := {

+          {

+            name := "watchdog",

+            startValue := 10.0

+          }

+        }

+      },

+      {

+        varList := {

+          {

+            name := "remoteHost",

+            initValue := {

+              charstringVal := "127.0.0.1"

+            },

+            scope := TC

+          },//var:remoteHost

+          {

+            name := "remotePort",

+            initValue := {

+              intVal := 5683

+            },

+            scope := TC

+          },//var:remotePort

+          // var:localHost

+          {

+            name := "localHost",

+            initValue := {

+              charstringVal := "172.31.21.18"

+            },

+            scope := TC

+          },

+          // var:localPort

+          {

+            name := "localPort",

+            initValue := {

+              intVal := 31000

+            },

+            scope := TC

+          }

+        }

+      },

+      {

+        statHandlerStatList := { }

+      }

+    },// fsmParams

+    table := {

+      extendedTable := {

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "EPTF_CLL_LGenBase",

+                  iName := "LGenBase: Start_the_traffic_case!",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "idle"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: init", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 

+                      contextArgs := {

+                        varNames := {

+                          "localHost", 

+                          "localPort"

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 

+                      contextArgs := {

+                        varNames := {

+                          "remoteHost", 

+                          "remotePort"

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_TC_CORE_01_GET"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: send", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "watchdog"

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "initiated"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "COAP Behavior",

+                  iName := "COAP rsp: 205",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "initiated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := pass,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                eventList := {

+                  bName := "COAP Behavior",

+                  iNameList := {

+                    "COAP rsp: 200",

+                    "COAP rsp: 201",

+                    "COAP rsp: 202",

+                    "COAP rsp: 203",

+                    "COAP rsp: 204"

+                  },

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "initiated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "Special behavior for timeout reporting",

+                  iName := "watchdog",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "initiated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        }

+      }

+    }

+  },

+  {
+/**** FSM Editor layout information. ****
+@state "idle" (100, 527)
+@state "initiated" (1019, 527)
+@parallellink "idle" -- "initiated" (115, 527) (203, 527) * (992, 527) (904, 527)
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+eventlist "COAP Behavior" "COAP rsp: 200" "COAP rsp: 202" "COAP rsp: 203" "COAP rsp: 205" 
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP rsp: 201"
+@link "initiated" -- "idle"
+singleevent "Special behavior for timeout reporting" "watchdog"
+*/
+    name := "TC_CORE02_POST_FSM",
+    fsmParams := {
+      {
+        stateList := {
+          "idle",
+          "initiated"
+        }
+      },
+      {
+        timerList := {
+          {
+            name := "watchdog",
+            startValue := 10.0
+          }
+        }
+      },
+      {
+        varList := {
+          {
+            name := "remoteHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },//var:remoteHost
+          {
+            name := "remotePort",
+            initValue := {
+              intVal := 5683
+            },
+            scope := TC
+          },//var:remotePort
+          // var:localHost
+          {
+            name := "localHost",
+            initValue := {
+              charstringVal := "172.31.21.18"
+            },
+            scope := TC
+          },
+          // var:localPort
+          {
+            name := "localPort",
+            initValue := {
+              intVal := 31000
+            },
+            scope := TC
+          }
+        }
+      },
+      {
+        statHandlerStatList := { }
+      }
+    },// fsmParams
+    table := {
+      extendedTable := {
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Start_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "idle"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "COAP Applib: init", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "localHost", 
+                          "localPort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "remoteHost", 
+                          "remotePort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_TC_CORE_02_POST"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: send", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "watchdog"
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "initiated"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                eventList := {
+                  bName := "COAP Behavior",
+                  iNameList := {
+                    "COAP rsp: 200",
+                    "COAP rsp: 202",
+                    "COAP rsp: 203",
+                    "COAP rsp: 205"
+                  },
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP rsp: 201",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := pass,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "Special behavior for timeout reporting",
+                  iName := "watchdog",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  },

+  {

+/**** FSM Editor layout information. ****

+@state "idle" (177, 188)

+@state "initializing" (668, 273)

+@state "serving" (393, 486)

+@selfstate "serving" (850, 668)

+@parallellink "idle" -- "initializing" (192, 191) (236, 199) * (633, 267) (589, 259)

+@link "idle" -- "initializing"

+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"

+@link "initializing" -- "idle"

+singleevent "COAP Behavior" "COAP transport: fail rsp"

+@parallellink "initializing" -- "serving" (653, 285) (629, 304) * (408, 474) (433, 455)

+@link "initializing" -- "serving"

+singleevent "COAP Behavior" "COAP transport: succ rsp"

+@parallellink "serving" -- "idle" (384, 474) (364, 447) * (186, 200) (206, 227)

+@link "serving" -- "idle"

+singleevent "EPTF_CLL_LGenBase" "LGenBase: Stop_the_traffic_case!"

+@parallellink "serving" -- "serving" (417, 496) (458, 512) * (826, 658) (785, 642)

+@link "serving" -- "serving"

+singleevent "COAP Behavior" "COAP req: GET"

+@link "serving" -- "serving"

+singleevent "COAP Behavior" "COAP req: POST"

+*/

+    name := "TC_CORE_Server_FSM",

+    fsmParams := {

+      {

+        stateList := {

+          "idle",

+          "initializing",

+          "serving"

+        }

+      },

+      {

+        varList := {

+          // var:localHost

+          {

+            name := "localHost",

+            initValue := {

+              charstringVal := "172.31.21.18"

+            },

+            scope := TC

+          },

+          // var:localPort

+          {

+            name := "localPort",

+            initValue := {

+              intVal := 30000

+            },

+            scope := TC

+          },

+          {

+            name := "portOffset",

+            initValue := {

+              intVal := 0

+            },

+            scope := TC

+          }//var:portOffset

+        }

+      },

+      {

+        statHandlerStatList := { }

+      }

+    },// fsmParams

+    table := {

+      extendedTable := {

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "EPTF_CLL_LGenBase",

+                  iName := "LGenBase: Start_the_traffic_case!",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "idle"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: init", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 

+                      contextArgs := {

+                        varNames := {

+                          "localHost", 

+                          "localPort", 

+                          "portOffset"

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: startListening", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "initializing"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "COAP Behavior",

+                  iName := "COAP transport: succ rsp",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "initializing"

+                },

+                cell := {

+                  actionList := omit,

+                  nextStateCalculation := omit,

+                  nextState := "serving"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "COAP Behavior",

+                  iName := "COAP transport: fail rsp",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "initializing"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "EPTF_CLL_LGenBase",

+                  iName := "LGenBase: Stop_the_traffic_case!",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "serving"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "COAP Behavior",

+                  iName := "COAP req: GET",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "serving"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_TC_CORE_Server_Content"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: sendResponse", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "serving"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "COAP Behavior",

+                  iName := "COAP req: POST",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "serving"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_TC_CORE_Server_Created"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: sendResponse", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "serving"

+                }

+              }

+            }

+          }

+        }

+      }

+    }

+  }}

+

diff --git a/cfg/coap_basic/coap_basic_main.cfg b/cfg/coap_basic/coap_basic_main.cfg
new file mode 100644
index 0000000..00b31ab
--- /dev/null
+++ b/cfg/coap_basic/coap_basic_main.cfg
@@ -0,0 +1,96 @@
+[INCLUDE]
+"coap_basic_params.cfg"
+"coap_basic_fsms.cfg"
+"coap_basic_templates.cfg"
+
+[MODULE_PARAMETERS]
+tsp_LGenBase_EntityGrpDeclarators := {
+  { name := "IotClients", eType := "IOT_Entity", eCount := 100 },
+  { name := "IotServer", eType := "IOT_Entity", eCount := 1 }
+}
+
+tsp_EPTF_ExecCtrl_Scenario2EntityGroupList := {
+  { scenarioName := "IotClientScenario", eGrpName := "IotClients", name := omit},
+  { scenarioName := "IotServerScenario", eGrpName := "IotServer", name := omit}
+}
+
+tsp_LGenBase_TcMgmt_tcTypeDeclarators2 := {
+  {
+    name := "TC_CORE01_GET",
+    fsmName := "TC_CORE01_GET_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  },
+  {
+    name := "TC_CORE02_POST",
+    fsmName := "TC_CORE02_POST_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  },
+  {
+    name := "TC_CORE_Server",
+    fsmName := "TC_CORE_Server_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  }
+}
+
+tsp_LGenBase_TcMgmt_ScenarioDeclarators3 :=
+{
+  {
+    name := "IotClientScenario",
+    tcList := {
+      {
+        tcName := "TC_CORE01_GET",
+        tcParamsList := {
+          {startDelay := 1.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true}
+          //{trafficStartFinish := {
+          //    {nrOfExecStart := {count := 100, actions := {}}},
+          //    {nrOfSuccesses := {count := 100, actions := {}}}
+          //  }
+          //}
+        }
+      },
+      {
+        tcName := "TC_CORE02_POST",
+        tcParamsList := {
+          {startDelay := 1.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true}
+          //{trafficStartFinish := {
+          //    {nrOfExecStart := {count := 100, actions := {}}},
+          //    {nrOfSuccesses := {count := 100, actions := {}}}
+          //  }
+          //}
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  },
+  {
+    name := "IotServerScenario",
+    tcList := {
+      {
+        tcName := "TC_CORE_Server",
+        tcParamsList := {
+          {startDelay := 0.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true}
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  }
+}
diff --git a/cfg/coap_basic/coap_basic_params.cfg b/cfg/coap_basic/coap_basic_params.cfg
new file mode 100644
index 0000000..2eabba0
--- /dev/null
+++ b/cfg/coap_basic/coap_basic_params.cfg
@@ -0,0 +1,57 @@
+
+[MODULE_PARAMETERS]
+
+tsp_nrOfLGens := 1;
+
+#tsp_EPTF_UIHandler_Browser_RemotePort := 4321
+#tsp_EPTF_UIHandler_Browser_directory := "./BrowserGUI";
+
+tsp_EPTF_Var_SyncInterval := 3.0;
+
+tsp_ExecCtrl_manualControl := true;
+
+tsp_EPTF_LwM2M_CoapApplibTransport_enabled := false;
+
+//tsp_EPTF_COAP_LGen_debug := true;
+//tsp_EPTF_COAP_LGen_debugVerbose := true;
+//tsp_EPTF_COAP_LocalTransport_debug := true;
+//tsp_EPTF_LwM2M_LGen_debug := true;
+//tsp_EPTF_LwM2M_LGen_debugVerbose := true;
+//tsp_EPTF_LwM2M_CoapApplibTransport_debug := true;
+//tsp_EPTF_HTTP_Transport_loggingEnable := true;
+//tsp_EPTF_HTTP_loggingEnable := true;
+//tsp_EPTF_LGenBaseDebug := false;
+//tsp_EPTF_LGenBaseDebugTraffic := false;
+
+[LOGGING]
+FileMask :=  TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING #| LOG_ALL #| DEBUG
+ConsoleMask := TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING
+LogFile := "logs/%e.%h-%r.log"
+LogEventTypes := Yes
+SourceInfoFormat := Single
+LogEntityName := Yes
+
+[EXECUTE]
+IOT_App_Functions.TC
+
+[MAIN_CONTROLLER]
+TCPPort := 9777
+KillTimer := 30.0
+
+[TESTPORT_PARAMETERS]
+# EPTF CLL CLI TELNET interface
+*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "17100"
+*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"
+
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := "17101"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"
+
+*.IPL4_PCO.debug := "NO" 
diff --git a/cfg/coap_basic/coap_basic_templates.cfg b/cfg/coap_basic/coap_basic_templates.cfg
new file mode 100644
index 0000000..775b521
--- /dev/null
+++ b/cfg/coap_basic/coap_basic_templates.cfg
@@ -0,0 +1,87 @@
+

+[MODULE_PARAMETERS]

+tsp_EPTF_COAP_LGen_templates :=

+{

+  {

+    id := "t_TC_CORE_01_GET",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := NON_CONFIRMABLE,

+        code := { class:= 0, detail := 1 },

+        message_id := 0

+      },

+      token := ''O,

+      options := 

+      {

+        {

+          uri_path := "test"

+        }

+      },

+      payload := omit

+    }

+  },

+  {

+    id := "t_TC_CORE_02_POST",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := CONFIRMABLE,

+        code := { class := 0, detail := 2 },

+        message_id := 0

+      },

+      token := ''O,

+      options := 

+      {

+        {

+          uri_path := "test"

+        },

+        {

+          content_format := 0

+        }

+      },

+      payload := '010203040506070809'O

+    }

+  },

+  {

+    id := "t_TC_CORE_Server_Content",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := ACKNOWLEDGEMENT,

+        code := { class := 2, detail := 5 },

+        message_id := 0

+      },

+      token := ''O,

+      options := 

+      {

+        {

+          content_format := 0

+        }

+      },

+      payload := '010203040506070809'O

+    }

+  },

+  {

+    id := "t_TC_CORE_Server_Created",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := ACKNOWLEDGEMENT,

+        code := { class := 2, detail := 1 },

+        message_id := 0

+      },

+      token := ''O,

+      options := {},

+      payload := omit

+    }

+  }

+}

diff --git a/cfg/func_tests/ft_coap.cfg b/cfg/func_tests/ft_coap.cfg
new file mode 100644
index 0000000..fe08d70
--- /dev/null
+++ b/cfg/func_tests/ft_coap.cfg
@@ -0,0 +1,95 @@
+[MODULE_PARAMETERS]

+tsp_addresses :=

+{

+	{

+	  	id := "client",

+		hostName := "127.0.0.1",

+		portNumber := 31111

+	},

+	{

+	  	id := "server",

+	  	hostName := "127.0.0.1",

+	  	portNumber := 5683

+	},

+	{

+	  id := "ctrl",

+	  hostName := "127.0.0.1",

+	  portNumber := 32222

+	},

+	{

+	  id := "sut_app",

+	  hostName := "127.0.0.1",

+	  portNumber := 33333

+	}

+}

+

+[LOGGING]

+# In this section you can specify the name of the log file and the classes of events

+# you want to log into the file or display on console (standard error).

+

+LogFile := "logs/%e.%h-%r.%s"

+FileMask := LOG_ALL | DEBUG | MATCHING

+ConsoleMask := ERROR | WARNING | TESTCASE | STATISTICS | PORTEVENT

+LogSourceInfo := Yes

+AppendFile := No

+TimeStampFormat := DateTime

+LogEventTypes := Yes

+SourceInfoFormat := Stack

+LogEntityName := Yes

+

+[TESTPORT_PARAMETERS]

+# In this section you can specify parameters that are passed to Test Ports.

+

+[DEFINE]

+# In this section you can create macro definitions,

+# that can be used in other configuration file sections except [INCLUDE] and [ORDERED_INCLUDE].

+

+[INCLUDE]

+# To use configuration settings given in other configuration files,

+# the configuration files just need to be listed in this section, with their full or relative pathnames.

+

+[ORDERED_INCLUDE]

+# To use configuration settings given in other configuration files,

+# the configuration files just need to be listed in this section, with their full or relative pathnames.

+

+[EXTERNAL_COMMANDS]

+# This section can define external commands (shell scripts) to be executed by the ETS

+# whenever a control part or test case is started or terminated.

+

+#BeginTestCase := ""

+#EndTestCase := ""

+#BeginControlPart := ""

+#EndControlPart := ""

+

+[EXECUTE]

+//CoapTestSuite_Fw.control

+//CoapTestSuite_Fw.tc_example

+//CoapTestSuite_Fw.tc_client

+//CoapTestSuite_Fw.tc_server

+//CoapTestSuite_Fw.tc_block_encdec

+CoapTestSuite_Etsi.control

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_01

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_02

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_03

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_04

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_05

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_06

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_07

+//CoapTestSuite_Etsi.tc_client_TD_COAP_CORE_08

+//CoapTestSuite_Etsi.tc_client_TD_COAP_BLOCK_01

+//CoapTestSuite_Etsi.tc_client_TD_COAP_OBS_01

+

+[GROUPS]

+# In this section you can specify groups of hosts. These groups can be used inside the

+# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.

+

+[COMPONENTS]

+# This section consists of rules restricting the location of created PTCs.

+

+[MAIN_CONTROLLER]

+# The options herein control the behavior of MC.

+

+TCPPort := 0

+KillTimer := 10.0

+# NumHCs := 0

+# LocalAddress := 

diff --git a/cfg/func_tests/ft_leshan.cfg b/cfg/func_tests/ft_leshan.cfg
new file mode 100644
index 0000000..6747e77
--- /dev/null
+++ b/cfg/func_tests/ft_leshan.cfg
@@ -0,0 +1,50 @@
+[MODULE_PARAMETERS]

+tsp_addresses :=

+{

+	{

+	  	id := "iot_client",

+		hostName := "127.0.0.1",

+		portNumber := 31111

+	},

+	{

+	  	id := "coap_server",

+	  	hostName := "127.0.0.1",

+	  	portNumber := 5683

+	},

+	{

+	  id := "http_server",

+	  hostName := "127.0.0.1",

+	  portNumber := 8080

+	},

+	{

+	  id := "http_client",

+	  hostName := "127.0.0.1",

+	  portNumber := 32222

+	}

+}

+

+[LOGGING]

+LogFile := "logs/%e.%h-%r.%s"

+FileMask := LOG_ALL | DEBUG | MATCHING

+ConsoleMask := ERROR | WARNING | TESTCASE | STATISTICS | PORTEVENT

+LogSourceInfo := Yes

+AppendFile := No

+TimeStampFormat := DateTime

+LogEventTypes := Yes

+SourceInfoFormat := Single

+LogEntityName := Yes

+

+[TESTPORT_PARAMETERS]

+*.IPL4_PCO.debug := "YES"

+

+[EXECUTE]

+//LeshanTestSuite.control

+//LeshanTestSuite.tc_Leshan_checkHttpInterface

+LeshanTestSuite.tc_COAP_register

+//LeshanTestSuite.tc_COAP_read

+//LeshanTestSuite.tc_LwM2M_register

+//LeshanTestSuite.tc_LwM2M_read

+

+[MAIN_CONTROLLER]

+TCPPort := 0

+KillTimer := 10.0

diff --git a/cfg/func_tests/ft_lwm2m.cfg b/cfg/func_tests/ft_lwm2m.cfg
new file mode 100644
index 0000000..d1fd668
--- /dev/null
+++ b/cfg/func_tests/ft_lwm2m.cfg
@@ -0,0 +1,45 @@
+[MODULE_PARAMETERS]

+tsp_addresses :=

+{

+	{

+	  	id := "client",

+		hostName := "127.0.0.1",

+		portNumber := 31111

+	},

+	{

+	  	id := "server",

+	  	hostName := "127.0.0.1",

+	  	portNumber := 5683

+	},

+	{

+	  id := "ctrl",

+	  hostName := "127.0.0.1",

+	  portNumber := 32222

+	},

+	{

+	  id := "sut_app",

+	  hostName := "127.0.0.1",

+	  portNumber := 33333

+	}

+}

+

+[LOGGING]

+LogFile := "logs/%e.%h-%r.%s"

+FileMask := LOG_ALL | DEBUG | MATCHING

+ConsoleMask := ERROR | WARNING | TESTCASE | STATISTICS | PORTEVENT

+LogSourceInfo := Yes

+AppendFile := No

+TimeStampFormat := DateTime

+LogEventTypes := Yes

+SourceInfoFormat := Stack

+LogEntityName := Yes

+

+[EXECUTE]

+//Lwm2mTestSuite.control

+//Lwm2mTestSuite.tc_client_LightweightM2M_10_int_101_102_103_regdereg

+//Lwm2mTestSuite.tc_client_LightweightM2M_10_int_101_102_103_regdereg_lwm2mPDU

+Lwm2mTestSuite.tc_json_encdec

+

+[MAIN_CONTROLLER]

+TCPPort := 0

+KillTimer := 10.0

diff --git a/cfg/func_tests/ft_mqtt.cfg b/cfg/func_tests/ft_mqtt.cfg
new file mode 100644
index 0000000..6610315
--- /dev/null
+++ b/cfg/func_tests/ft_mqtt.cfg
@@ -0,0 +1,45 @@
+[MODULE_PARAMETERS]

+tsp_addresses :=

+{

+	{

+	  id := "mqtt_server",

+	  hostName := "127.0.0.1",

+	  portNumber := 1883

+	},

+	{

+	  id := "mqtt_client",

+	  hostName := "127.0.0.1",

+	  portNumber := 32225

+	},

+	{

+	  id := "mqtt_client2",

+	  hostName := "127.0.0.1",

+	  portNumber := 32226

+	}

+}

+

+[LOGGING]

+LogFile := "logs/%e.%h-%r.%s"

+FileMask := LOG_ALL | DEBUG | MATCHING

+ConsoleMask := ERROR | WARNING | TESTCASE | STATISTICS | PORTEVENT

+LogSourceInfo := Yes

+AppendFile := No

+TimeStampFormat := DateTime

+LogEventTypes := Yes

+SourceInfoFormat := Single

+LogEntityName := Yes

+

+[TESTPORT_PARAMETERS]

+*.IPL4_PCO.debug := "YES"

+

+[EXECUTE]

+//MqttTestSuite_Interop.control

+//MqttTestSuite_Interop.tc_Mqtt_client_connect_disconnect

+//MqttTestSuite_Interop.tc_Mqtt_client_subscribe

+//MqttTestSuite_Interop.tc_Mqtt_client_unsubscribe

+//MqttTestSuite_Interop.tc_Mqtt_client_publish_qos0

+MqttTestSuite_Interop.tc_Mqtt_client_publish_qos1

+

+[MAIN_CONTROLLER]

+TCPPort := 0

+KillTimer := 10.0

diff --git a/cfg/leshan_basic/leshan_basic_fsms.cfg b/cfg/leshan_basic/leshan_basic_fsms.cfg
new file mode 100644
index 0000000..ef7afae
--- /dev/null
+++ b/cfg/leshan_basic/leshan_basic_fsms.cfg
@@ -0,0 +1,982 @@
+[MODULE_PARAMETERS]

+tsp_IOT_LGen_FSMs := {

+  {

+/**** FSM Editor layout information. ****

+@state "registered" (775, 477)

+@selfstate "registered" (1256, 480)

+@state "deregistering" (544, 813)

+@state "idle" (62, 475)

+@state "inititated" (587, 173)

+@parallellink "idle" -- "inititated" (77, 466) (126, 438) * (566, 185) (517, 213)

+@link "idle" -- "inititated"

+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"

+@link "inititated" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"

+@link "inititated" -- "idle"

+singleevent "Special behavior for timeout reporting" "userWatchdog"

+@parallellink "inititated" -- "registered" (594, 185) (611, 213) * (768, 465) (751, 437)

+@link "inititated" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M rsp: 201"

+@parallellink "registered" -- "registered" (807, 477) (849, 477) * (1225, 480) (1183, 480)

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M rsp: 204"

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M req: Read"

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M req: Write"

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M req: Execute"

+@link "registered" -- "registered"

+singleevent "Special behavior for timeout reporting" "update"

+@parallellink "deregistering" -- "idle" (527, 801) (482, 770) * (77, 486) (122, 518)

+@link "deregistering" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 202"

+@link "deregistering" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"

+@link "deregistering" -- "idle"

+singleevent "Special behavior for timeout reporting" "userWatchdog"

+@parallellink "registered" -- "idle" (744, 477) (677, 477) * (77, 475) (144, 475)

+@link "registered" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"

+@link "registered" -- "idle"

+singleevent "Special behavior for timeout reporting" "userWatchdog"

+@parallellink "registered" -- "deregistering" (767, 489) (746, 520) * (552, 801) (574, 770)

+@link "registered" -- "deregistering"

+singleevent "Special behavior for timeout reporting" "dereg"

+*/

+    name := "LWM2M_RegDereg_FSM",

+    fsmParams := {

+      {

+        stateList := {

+          "idle",

+          "inititated",

+          "registered",

+          "deregistering"

+        }

+      },

+      {

+        timerList := {

+          {

+            name := "userWatchdog",

+            startValue := 180.0

+          },

+          {

+            name := "update",

+            startValue := 25.0

+          },

+          {

+            name := "dereg",

+            startValue := 110.0

+          }

+        }

+      },

+      {

+        varList := {

+          {

+            name := "localHost",

+            initValue := {

+              charstringVal := "127.0.0.1"

+            },

+            scope := TC

+          },//var:localHost

+          {

+            name := "localPort",

+            initValue := {

+              intVal := 30000

+            },

+            scope := TC

+          },//var:localPort

+          {

+            name := "remoteHost",

+            initValue := {

+              charstringVal := "127.0.0.1"

+            },

+            scope := TC

+          },//var:remoteHost

+          {

+            name := "remotePort",

+            initValue := {

+              intVal := 5683

+            },

+            scope := TC

+          }//var:remotePort

+        }

+      },

+      {

+        statHandlerStatList := { }

+      }

+    },// fsmParams

+    table := {

+      extendedTable := {

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "EPTF_CLL_LGenBase",

+                  iName := "LGenBase: Start_the_traffic_case!",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "idle"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: init", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 

+                      contextArgs := {

+                        varNames := {

+                          "localHost", 

+                          "localPort"

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 

+                      contextArgs := {

+                        varNames := {

+                          "remoteHost", 

+                          "remotePort"

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: reportCoapEventForEntity", 

+                      contextArgs := {

+                        stepContextArgs := {

+                          0

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: createDevice", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: createObject", 

+                      contextArgs := {

+                        stepContextArgs := {

+                          3

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: createObjectInstance", 

+                      contextArgs := {

+                        stepContextArgs := {

+                          3

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "IOT Fsm LWM2M_RegDereg: initResourceValues", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: logDevice", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_LWM2M_RegDereg_FSM_register"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "IOT App LwM2M: setClientNameInRegister", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: send", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "userWatchdog"

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "inititated"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 201",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "inititated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "update"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "dereg"

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 204",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "update"

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 202",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "deregistering"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := pass,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 3xxto6xx",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "inititated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "deregistering"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M req: Read",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: handleReadRequest", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M req: Write",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: handleWriteRequest", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M req: Execute",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: handleExecuteRequest", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "Special behavior for timeout reporting",

+                  iName := "update",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_LWM2M_RegDereg_FSM_update"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: send", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "Special behavior for timeout reporting",

+                  iName := "dereg",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning", 

+                      contextArgs := {

+                        timerName := "update"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_LWM2M_RegDereg_FSM_deregister"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: send", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "deregistering"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "Special behavior for timeout reporting",

+                  iName := "userWatchdog",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "inititated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "deregistering"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        }

+      }

+    }

+  },

+  {
+/**** FSM Editor layout information. ****
+@state "initiated" (541, 159)
+@state "reading" (991, 519)
+@state "idle" (78, 521)
+@parallellink "initiated" -- "idle" (526, 171) (483, 205) * (93, 509) (136, 475)
+@link "initiated" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 4XX"
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+singleevent "Special behavior for timeout reporting" "userWatchdog"
+@parallellink "reading" -- "idle" (966, 519) (879, 519) * (93, 521) (180, 521)
+@link "reading" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 4XX"
+@link "reading" -- "idle"
+singleevent "Special behavior for timeout reporting" "userWatchdog"
+@link "reading" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 200 Ok"
+@parallellink "initiated" -- "reading" (556, 171) (598, 205) * (976, 507) (934, 473)
+@link "initiated" -- "reading"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 200 Ok"
+*/
+    name := "HTTP_GET_FSM",
+    fsmParams := {
+      {
+        stateList := {
+          "idle",
+          "initiated",
+          "reading"
+        }
+      },
+      {
+        timerList := {
+          {
+            name := "userWatchdog",
+            startValue := 10.0
+          }
+        }
+      },
+      {
+        varList := {
+          {
+            name := "remoteHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },//var:remoteHost
+          {
+            name := "remotePort",
+            initValue := {
+              intVal := 8080
+            },
+            scope := TC
+          },//var:remotePort
+          {
+            name := "clientName",
+            initValue := {
+              charstringVal := ""
+            },
+            scope := TC
+          }//var:clientName
+        }
+      },
+      {
+        statHandlerStatList := { }
+      }
+    },// fsmParams
+    table := {
+      extendedTable := {
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "HTTP Behavior",
+                  iName := "HTTP Message arrived, Result Code: 4XX",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Start_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "idle"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: initEntityContext", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setMethod_stringParam", 
+                      contextArgs := {
+                        charstringValue := "GET"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/api/clients"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addHostHeader_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "remoteHost", 
+                          "remotePort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "EPTF HTTP: Sends HTTP Request", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "userWatchdog"
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "initiated"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "Special behavior for timeout reporting",
+                  iName := "userWatchdog",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "HTTP Behavior",
+                  iName := "HTTP Message arrived, Result Code: 200 Ok",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App Leshan: getClientFromResponse_intoVar", 
+                      contextArgs := {
+                        varNames := {
+                          "clientName"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/api/clients/"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addToUri_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "clientName"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addToUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/3/0/0?format=JSON"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "EPTF HTTP: Sends HTTP Request", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "reading"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := pass,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }

+}

+

diff --git a/cfg/leshan_basic/leshan_basic_main.cfg b/cfg/leshan_basic/leshan_basic_main.cfg
new file mode 100644
index 0000000..7afa157
--- /dev/null
+++ b/cfg/leshan_basic/leshan_basic_main.cfg
@@ -0,0 +1,114 @@
+[INCLUDE]
+"leshan_basic_params.cfg"
+"leshan_basic_fsms.cfg"
+"leshan_basic_templates.cfg"
+
+[MODULE_PARAMETERS]
+
+tsp_LGenBase_EntityGrpDeclarators := {
+  { name := "IotClients", eType := "IOT_Entity", eCount := 100 },
+  { name := "WebClients", eType := "IOT_Entity", eCount := 1 }
+}
+
+tsp_EPTF_ExecCtrl_Scenario2EntityGroupList := {
+  { scenarioName := "IotClientScenario", eGrpName := "IotClients", name := omit},
+  { scenarioName := "WebClientScenario", eGrpName := "WebClients", name := omit}
+}
+
+tsp_LGenBase_TcMgmt_tcTypeDeclarators2 := {
+  {
+    name := "TC_LWM2M_RegDereg",
+    fsmName := "LWM2M_RegDereg_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  },
+  {
+    name := "TC_HTTP_GET_FSM",
+    fsmName := "HTTP_GET_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  }
+}
+
+tsp_LGenBase_TcMgmt_ScenarioDeclarators3 :=
+{
+  {
+    name := "IotClientScenario",
+    tcList := {
+      {
+        tcName := "TC_LWM2M_RegDereg",
+        tcParamsList := {
+          {startDelay := 0.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true},
+          {trafficStartFinish := {
+              {nrOfExecStart := {count := 100, actions := {}}},
+              {nrOfSuccesses := {count := 100, actions := {}}}
+            }
+          }
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  },
+  {
+    name := "WebClientScenario",
+    tcList := {
+      {
+        tcName := "TC_HTTP_GET_FSM",
+        tcParamsList := {
+          {startDelay := 3.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true},
+          {trafficStartFinish := {
+              {nrOfExecStart := {count := 100, actions := {}}},
+              {nrOfSuccesses := {count := 100, actions := {}}}
+            }
+          }
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  }
+}
+
+[LOGGING]
+FileMask :=  TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING | LOG_ALL #| DEBUG
+ConsoleMask := TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING
+LogFile := "logs/%e.%h-%r.log"
+LogEventTypes := Yes
+SourceInfoFormat := Single
+LogEntityName := Yes
+
+[EXECUTE]
+IOT_App_Functions.TC
+
+[MAIN_CONTROLLER]
+TCPPort := 9777
+KillTimer := 30.0
+
+[TESTPORT_PARAMETERS]
+# EPTF CLL CLI TELNET interface
+*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "17100"
+*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"
+
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := "17101"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"
+
+*.IPL4_PCO.debug := "YES" 
diff --git a/cfg/leshan_basic/leshan_basic_params.cfg b/cfg/leshan_basic/leshan_basic_params.cfg
new file mode 100644
index 0000000..8041c05
--- /dev/null
+++ b/cfg/leshan_basic/leshan_basic_params.cfg
@@ -0,0 +1,23 @@
+
+[MODULE_PARAMETERS]
+
+tsp_nrOfLGens := 1;
+
+#tsp_EPTF_UIHandler_Browser_RemotePort := 4321
+#tsp_EPTF_UIHandler_Browser_directory := "./BrowserGUI";
+
+tsp_EPTF_Var_SyncInterval := 3.0;
+
+tsp_ExecCtrl_manualControl := true;
+
+//tsp_EPTF_COAP_LGen_debug := true;
+//tsp_EPTF_COAP_LGen_debugVerbose := true;
+//tsp_EPTF_COAP_LocalTransport_debug := true;
+//tsp_EPTF_LwM2M_LGen_debug := true;
+//tsp_EPTF_LwM2M_LGen_debugVerbose := true;
+//tsp_EPTF_LwM2M_CoapApplibTransport_debug := true;
+//tsp_EPTF_HTTP_Transport_loggingEnable := true;
+//tsp_EPTF_HTTP_loggingEnable := true;
+//tsp_EPTF_LGenBaseDebug := false;
+//tsp_EPTF_LGenBaseDebugTraffic := false;
+
diff --git a/cfg/leshan_basic/leshan_basic_templates.cfg b/cfg/leshan_basic/leshan_basic_templates.cfg
new file mode 100644
index 0000000..7e5fccb
--- /dev/null
+++ b/cfg/leshan_basic/leshan_basic_templates.cfg
@@ -0,0 +1,43 @@
+[MODULE_PARAMETERS]

+tsp_EPTF_LwM2M_LGen_templates :=

+{

+  {

+    id := "t_LWM2M_RegDereg_FSM_register",

+    msg := 

+	{

+	  Register := 

+	  {

+	    endpointClientName := "client",

+	    lifetime := 30,

+		version := omit,

+	  	bindingMode := U,

+	  	smsNumber := omit,

+	  	objectsAndObjectInstances := {}

+	  }

+	}

+  },

+  {	

+    id := "t_LWM2M_RegDereg_FSM_update",

+	msg :=

+	{

+	  Update := 

+	  {

+	  	location := {},

+	  	lifetime := 30,

+	  	bindingMode := U,

+	  	smsNumber := omit,

+	  	objectsAndObjectInstances := {}

+	  }

+	}

+  },

+  {

+    id := "t_LWM2M_RegDereg_FSM_deregister",

+	msg :=

+	{

+	  Deregister :=

+	  {

+	    location := {}

+	  }

+	}

+  }

+}
\ No newline at end of file
diff --git a/cfg/leshan_serverdown/leshan_basic_fsms.cfg b/cfg/leshan_serverdown/leshan_basic_fsms.cfg
new file mode 100644
index 0000000..3d417e6
--- /dev/null
+++ b/cfg/leshan_serverdown/leshan_basic_fsms.cfg
@@ -0,0 +1,1138 @@
+[MODULE_PARAMETERS]

+tsp_IOT_LGen_FSMs := {

+  {

+/**** FSM Editor layout information. ****

+@state "registered" (772, 546)

+@selfstate "registered" (1244, 550)

+@state "inititated" (568, 188)

+@state "deregistering" (573, 994)

+@state "idle" (73, 592)

+@parallellink "idle" -- "inititated" (88, 580) (134, 542) * (553, 200) (507, 238)

+@link "idle" -- "inititated"

+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"

+@link "inititated" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"

+@link "inititated" -- "idle"

+singleevent "Special behavior for timeout reporting" "userWatchdog"

+@link "inititated" -- "idle"

+singleevent "COAP Behavior" "COAP transaction: timeout"

+@parallellink "inititated" -- "registered" (575, 200) (594, 233) * (765, 534) (746, 501)

+@link "inititated" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M rsp: 201"

+@parallellink "registered" -- "registered" (804, 546) (845, 546) * (1213, 550) (1172, 550)

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M rsp: 204"

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M req: Read"

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M req: Write"

+@link "registered" -- "registered"

+singleevent "LWM2M Behavior" "LWM2M req: Execute"

+@link "registered" -- "registered"

+singleevent "Special behavior for timeout reporting" "update"

+@parallellink "deregistering" -- "idle" (558, 982) (511, 944) * (88, 604) (135, 642)

+@link "deregistering" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 202"

+@link "deregistering" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"

+@link "deregistering" -- "idle"

+singleevent "Special behavior for timeout reporting" "userWatchdog"

+@link "deregistering" -- "idle"

+singleevent "COAP Behavior" "COAP transaction: timeout"

+@parallellink "registered" -- "idle" (741, 548) (676, 552) * (88, 591) (153, 587)

+@link "registered" -- "idle"

+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"

+@link "registered" -- "idle"

+singleevent "Special behavior for timeout reporting" "userWatchdog"

+@link "registered" -- "idle"

+singleevent "COAP Behavior" "COAP transaction: timeout"

+@parallellink "registered" -- "deregistering" (767, 558) (748, 600) * (578, 982) (597, 940)

+@link "registered" -- "deregistering"

+singleevent "Special behavior for timeout reporting" "dereg"

+*/

+    name := "LWM2M_RegDereg_FSM",

+    fsmParams := {

+      {

+        stateList := {

+          "idle",

+          "inititated",

+          "registered",

+          "deregistering"

+        }

+      },

+      {

+        timerList := {

+          {

+            name := "userWatchdog",

+            startValue := 80.0

+          },

+          {

+            name := "update",

+            startValue := 25.0

+          },

+          {

+            name := "dereg",

+            startValue := 60.0

+          }

+        }

+      },

+      {

+        varList := {

+          {

+            name := "localHost",

+            initValue := {

+              charstringVal := "127.0.0.1"

+            },

+            scope := TC

+          },//var:localHost

+          {

+            name := "localPort",

+            initValue := {

+              intVal := 30000

+            },

+            scope := TC

+          },//var:localPort

+          {

+            name := "remoteHost",

+            initValue := {

+              charstringVal := "127.0.0.1"

+            },

+            scope := TC

+          },//var:remoteHost

+          {

+            name := "remotePort",

+            initValue := {

+              intVal := 5683

+            },

+            scope := TC

+          }//var:remotePort

+        }

+      },

+      {

+        statHandlerStatList := { }

+      }

+    },// fsmParams

+    table := {

+      extendedTable := {

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "EPTF_CLL_LGenBase",

+                  iName := "LGenBase: Start_the_traffic_case!",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "idle"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: init", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 

+                      contextArgs := {

+                        varNames := {

+                          "localHost", 

+                          "localPort"

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 

+                      contextArgs := {

+                        varNames := {

+                          "remoteHost", 

+                          "remotePort"

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "COAP Applib: reportCoapEventForEntity", 

+                      contextArgs := {

+                        stepContextArgs := {

+                          0

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: createDevice", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: createObject", 

+                      contextArgs := {

+                        stepContextArgs := {

+                          3

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: createObjectInstance", 

+                      contextArgs := {

+                        stepContextArgs := {

+                          3

+                        }

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "IOT Fsm LWM2M_RegDereg: initResourceValues", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: logDevice", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_LWM2M_RegDereg_FSM_register"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "IOT App LwM2M: setClientNameInRegister", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: send", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "userWatchdog"

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "inititated"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 201",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "inititated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "update"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "dereg"

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 204",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 

+                      contextArgs := {

+                        timerName := "update"

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 202",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "deregistering"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := pass,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M rsp: 3xxto6xx",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "inititated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "deregistering"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M req: Read",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: handleReadRequest", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M req: Write",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: handleWriteRequest", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "LWM2M Behavior",

+                  iName := "LWM2M req: Execute",

+                  eventType := entity

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "COAP Applib: handleRequest", 

+                      contextArgs := omit

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: handleExecuteRequest", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "Special behavior for timeout reporting",

+                  iName := "update",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_LWM2M_RegDereg_FSM_update"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: send", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "registered"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "Special behavior for timeout reporting",

+                  iName := "dereg",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning", 

+                      contextArgs := {

+                        timerName := "update"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 

+                      contextArgs := {

+                        charstringValue := "t_LWM2M_RegDereg_FSM_deregister"

+                      }

+                    },

+                    {

+                      stepOrFunctionName := "LWM2M Applib: send", 

+                      contextArgs := omit

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "deregistering"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "Special behavior for timeout reporting",

+                  iName := "userWatchdog",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "inititated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "deregistering"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        },

+        {

+          events2Listen := {

+            events := {

+              {

+                singleEvent := {

+                  bName := "COAP Behavior",

+                  iName := "COAP transaction: timeout",

+                  eventType := fsm

+                }

+              }

+            }

+          },

+          cellRow := {

+            statedCellRow := {

+              {

+                inState := {

+                  state := "inititated"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "registered"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              },

+              {

+                inState := {

+                  state := "deregistering"

+                },

+                cell := {

+                  actionList := {

+                    {

+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 

+                      contextArgs := {

+                        verdict := {

+                          verdict := fail,

+                          reason := ""

+                        }

+                      }

+                    }

+                  },

+                  nextStateCalculation := omit,

+                  nextState := "idle"

+                }

+              }

+            }

+          }

+        }

+      }

+    }

+  },

+  {
+/**** FSM Editor layout information. ****
+@state "initiated" (541, 159)
+@state "reading" (991, 519)
+@state "idle" (78, 521)
+@parallellink "initiated" -- "idle" (526, 171) (483, 205) * (93, 509) (136, 475)
+@link "initiated" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 4XX"
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+singleevent "Special behavior for timeout reporting" "userWatchdog"
+@parallellink "reading" -- "idle" (966, 519) (879, 519) * (93, 521) (180, 521)
+@link "reading" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 4XX"
+@link "reading" -- "idle"
+singleevent "Special behavior for timeout reporting" "userWatchdog"
+@link "reading" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 200 Ok"
+@parallellink "initiated" -- "reading" (556, 171) (598, 205) * (976, 507) (934, 473)
+@link "initiated" -- "reading"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 200 Ok"
+*/
+    name := "HTTP_GET_FSM",
+    fsmParams := {
+      {
+        stateList := {
+          "idle",
+          "initiated",
+          "reading"
+        }
+      },
+      {
+        timerList := {
+          {
+            name := "userWatchdog",
+            startValue := 10.0
+          }
+        }
+      },
+      {
+        varList := {
+          // var:remoteHost
+          {
+            name := "remoteHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },
+          // var:remotePort
+          {
+            name := "remotePort",
+            initValue := {
+              intVal := 8080
+            },
+            scope := TC
+          },
+          // var:clientName
+          {
+            name := "clientName",
+            initValue := {
+              charstringVal := ""
+            },
+            scope := TC
+          },
+          {
+            name := "localHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },//var:localHost
+          {
+            name := "localPort",
+            initValue := {
+              intVal := 20000
+            },
+            scope := TC
+          }//var:localPort
+        }
+      },
+      {
+        statHandlerStatList := { }
+      }
+    },// fsmParams
+    table := {
+      extendedTable := {
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "HTTP Behavior",
+                  iName := "HTTP Message arrived, Result Code: 4XX",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Start_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "idle"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: initEntityContext", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: openConnection_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "localHost", 
+                          "localPort", 
+                          "remoteHost", 
+                          "remotePort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setMethod_stringParam", 
+                      contextArgs := {
+                        charstringValue := "GET"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/api/clients"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addHostHeader_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "remoteHost", 
+                          "remotePort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "EPTF HTTP: Sends HTTP Request", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "userWatchdog"
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "initiated"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "Special behavior for timeout reporting",
+                  iName := "userWatchdog",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "HTTP Behavior",
+                  iName := "HTTP Message arrived, Result Code: 200 Ok",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App Leshan: getClientFromResponse_intoVar", 
+                      contextArgs := {
+                        varNames := {
+                          "clientName"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/api/clients/"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addToUri_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "clientName"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addToUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/3/0/0?format=JSON"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "EPTF HTTP: Sends HTTP Request", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "reading"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := pass,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }

+}

+

diff --git a/cfg/leshan_serverdown/leshan_basic_main.cfg b/cfg/leshan_serverdown/leshan_basic_main.cfg
new file mode 100644
index 0000000..ad03dc4
--- /dev/null
+++ b/cfg/leshan_serverdown/leshan_basic_main.cfg
@@ -0,0 +1,97 @@
+[MODULE_PARAMETERS]
+
+tsp_nrOfLGens := 0;
+
+tsp_EPTF_ExecCtrl_LGenPool_Declarators :=
+{
+  {
+    name := "Pool_LWM2M_Clients",
+    lgenPoolItems :=  { { hostname := "localhost", num := 2, createFunctionName := "RIoT.createLGen" } }
+  },
+  {
+    name := "Pool_Web_Clients", 
+    lgenPoolItems :=  { { hostname := "localhost", num := 2, createFunctionName := "RIoT.createLGen" } }
+  }
+}
+
+tsp_EPTF_ExecCtrl_EntityGroup2LGenPool_List := 
+{
+  {
+    eGrpName := "IotClients",
+    lgenPoolName := "Pool_LWM2M_Clients"
+  },
+  {
+    eGrpName := "WebClients",
+    lgenPoolName := "Pool_Web_Clients"
+  }
+}
+
+tsp_LGenBase_EntityGrpDeclarators := {
+  { name := "IotClients", eType := "IOT_Entity",  eCount := 10 },
+  { name := "WebClients", eType := "IOT_Entity",   eCount := 2 }
+}
+
+tsp_EPTF_ExecCtrl_Scenario2EntityGroupList := {
+  { scenarioName := "IotClientScenario", eGrpName := "IotClients", name := omit},
+  { scenarioName := "WebClientScenario", eGrpName := "WebClients", name := omit}
+}
+
+tsp_LGenBase_TcMgmt_tcTypeDeclarators2 := {
+  {
+    name := "TC_LWM2M_RegDereg",
+    fsmName := "LWM2M_RegDereg_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  },
+  {
+    name := "TC_HTTP_GET_FSM",
+    fsmName := "HTTP_GET_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  }
+}
+
+tsp_LGenBase_TcMgmt_ScenarioDeclarators3 :=
+{
+  {
+    name := "IotClientScenario",
+    tcList := {
+      {
+        tcName := "TC_LWM2M_RegDereg",
+        tcParamsList := {
+          {startDelay := 0.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true}
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  },
+  {
+    name := "WebClientScenario",
+    tcList := {
+      {
+        tcName := "TC_HTTP_GET_FSM",
+        tcParamsList := {
+          {startDelay := 3.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true}
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  }
+}
+
+[INCLUDE]
+"leshan_basic_params.cfg"
+"leshan_basic_fsms.cfg"
+"leshan_basic_templates.cfg"
diff --git a/cfg/leshan_serverdown/leshan_basic_params.cfg b/cfg/leshan_serverdown/leshan_basic_params.cfg
new file mode 100644
index 0000000..f1b60fd
--- /dev/null
+++ b/cfg/leshan_serverdown/leshan_basic_params.cfg
@@ -0,0 +1,54 @@
+
+[MODULE_PARAMETERS]
+
+#tsp_EPTF_UIHandler_Browser_RemotePort := 4321
+#tsp_EPTF_UIHandler_Browser_directory := "./BrowserGUI";
+tsp_EPTF_Var_SyncInterval := 3.0;
+
+tsp_ExecCtrl_manualControl := true;
+
+tsp_EPTF_COAP_EXCHANGE_LIFETIME := 20.0;
+
+//tsp_EPTF_COAP_LGen_debug := true;
+//tsp_EPTF_COAP_LGen_debugVerbose := true;
+//tsp_EPTF_COAP_LocalTransport_debug := true;
+//tsp_EPTF_LwM2M_LGen_debug := true;
+//tsp_EPTF_LwM2M_LGen_debugVerbose := true;
+//tsp_EPTF_LwM2M_CoapApplibTransport_debug := true;
+//tsp_EPTF_HTTP_Transport_loggingEnable := true;
+//tsp_EPTF_HTTP_loggingEnable := true;
+//tsp_EPTF_LGenBaseDebug := false;
+//tsp_EPTF_LGenBaseDebugTraffic := false;
+
+[LOGGING]
+FileMask :=  TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING | LOG_ALL | DEBUG
+ConsoleMask := TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING
+LogFile := "logs/%e.%h-%r.log"
+LogEventTypes := Yes
+SourceInfoFormat := Single
+LogEntityName := Yes
+
+[EXECUTE]
+IOT_App_Functions.TC
+
+[MAIN_CONTROLLER]
+TCPPort := 9777
+KillTimer := 30.0
+
+[TESTPORT_PARAMETERS]
+# EPTF CLL CLI TELNET interface
+*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "17100"
+*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"
+
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := "17101"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"
+
+*.IPL4_PCO.debug := "YES" 
diff --git a/cfg/leshan_serverdown/leshan_basic_templates.cfg b/cfg/leshan_serverdown/leshan_basic_templates.cfg
new file mode 100644
index 0000000..7e5fccb
--- /dev/null
+++ b/cfg/leshan_serverdown/leshan_basic_templates.cfg
@@ -0,0 +1,43 @@
+[MODULE_PARAMETERS]

+tsp_EPTF_LwM2M_LGen_templates :=

+{

+  {

+    id := "t_LWM2M_RegDereg_FSM_register",

+    msg := 

+	{

+	  Register := 

+	  {

+	    endpointClientName := "client",

+	    lifetime := 30,

+		version := omit,

+	  	bindingMode := U,

+	  	smsNumber := omit,

+	  	objectsAndObjectInstances := {}

+	  }

+	}

+  },

+  {	

+    id := "t_LWM2M_RegDereg_FSM_update",

+	msg :=

+	{

+	  Update := 

+	  {

+	  	location := {},

+	  	lifetime := 30,

+	  	bindingMode := U,

+	  	smsNumber := omit,

+	  	objectsAndObjectInstances := {}

+	  }

+	}

+  },

+  {

+    id := "t_LWM2M_RegDereg_FSM_deregister",

+	msg :=

+	{

+	  Deregister :=

+	  {

+	    location := {}

+	  }

+	}

+  }

+}
\ No newline at end of file
diff --git a/cfg/mqtt_basic/mqtt_basic_fsms.cfg b/cfg/mqtt_basic/mqtt_basic_fsms.cfg
new file mode 100644
index 0000000..6d4a18d
--- /dev/null
+++ b/cfg/mqtt_basic/mqtt_basic_fsms.cfg
@@ -0,0 +1,664 @@
+[MODULE_PARAMETERS]

+tsp_IOT_LGen_FSMs := {

+  {
+/**** FSM Editor layout information. ****
+@state "idle" (44, 255)
+@state "connecting" (641, 433)
+@state "initializing" (915, 120)
+@state "connected" (362, 755)
+@selfstate "connected" (984, 753)
+@parallellink "idle" -- "initializing" (59, 253) (141, 240) * (880, 125) (798, 138)
+@link "idle" -- "initializing"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initializing" -- "idle"
+singleevent "Special behavior for timeout reporting" "watchdog"
+@link "initializing" -- "idle"
+singleevent "MQTT Behavior" "MQTT transport: fail rsp"
+@parallellink "connecting" -- "idle" (608, 423) (553, 407) * (59, 259) (114, 275)
+@link "connecting" -- "idle"
+singleevent "Special behavior for timeout reporting" "watchdog"
+@link "connecting" -- "idle"
+singleevent "MQTT Behavior" "MQTT rsp: CONNACK Refused"
+@parallellink "connected" -- "idle" (354, 743) (324, 695) * (52, 267) (82, 315)
+@link "connected" -- "idle"
+singleevent "Special behavior for timeout reporting" "watchdog"
+@link "connected" -- "idle"
+singleevent "Special behavior for timeout reporting" "dereg"
+@parallellink "initializing" -- "connecting" (904, 132) (879, 161) * (652, 421) (677, 392)
+@link "initializing" -- "connecting"
+singleevent "MQTT Behavior" "MQTT transport: succ rsp"
+@parallellink "connecting" -- "connected" (631, 445) (605, 475) * (372, 743) (398, 713)
+@link "connecting" -- "connected"
+singleevent "MQTT Behavior" "MQTT rsp: CONNACK Accepted"
+@parallellink "connected" -- "connected" (393, 755) (449, 755) * (953, 753) (897, 753)
+@link "connected" -- "connected"
+singleevent "Special behavior for timeout reporting" "publish"
+@link "connected" -- "connected"
+singleevent "MQTT Behavior" "MQTT req: PUBLISH"
+*/
+    name := "MQTT_RegDereg_FSM",
+    fsmParams := {
+      {
+        stateList := {
+          "idle",
+          "initializing",
+          "connecting",
+          "connected"
+        }
+      },
+      {
+        timerList := {
+          {
+            name := "watchdog",
+            startValue := 60.0
+          },
+          {
+            name := "dereg",
+            startValue := 50.0
+          },
+          {
+            name := "publish",
+            startValue := 3.0
+          }
+        }
+      },
+      {
+        varList := {
+          {
+            name := "remoteHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },//var:remoteHost
+          {
+            name := "remotePort",
+            initValue := {
+              intVal := 1883
+            },
+            scope := TC
+          },//var:remotePort
+          // var:localHost
+          {
+            name := "localHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },
+          // var:localPort
+          {
+            name := "localPort",
+            initValue := {
+              intVal := 20000
+            },
+            scope := TC
+          },
+          {
+            name := "publishSent",
+            initValue := {
+              intVal := 0
+            },
+            scope := TC
+          },//var:publishSent
+          {
+            name := "publishReceived",
+            initValue := {
+              intVal := 0
+            },
+            scope := TC
+          }//var:publishReceived
+        }
+      },
+      {
+        statisticList := {
+          {
+            name := "Published",
+            providersList := {

+              {"publishSent"}
+            },
+            statMethod := "Max",
+            statResetValue := {
+              intVal := 0
+            },
+            scope := TC
+          },//statistic:Published
+          {
+            name := "Received",
+            providersList := {

+              {"publishReceived"}
+            },
+            statMethod := "Max",
+            statResetValue := {
+              intVal := 0
+            },
+            scope := TC
+          }//statistic:Received
+        }
+      },
+      {
+        statHandlerStatList := { }
+      }
+    },// fsmParams
+    table := {
+      extendedTable := {
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Start_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "idle"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "MQTT Applib: init", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App MQTT: setLocalAddress_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "localHost", 
+                          "localPort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: setRemoteAddress_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "remoteHost", 
+                          "remotePort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App MQTT: setClientId_stringParam", 
+                      contextArgs := {
+                        charstringValue := "SmartMeter_"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "watchdog"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: transportConnect", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "initializing"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "Special behavior for timeout reporting",
+                  iName := "watchdog",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initializing"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "MQTT Applib: transportClose", 
+                      contextArgs := {
+                        stepContextArgs := {
+                          0
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "connecting"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "MQTT Applib: transportClose", 
+                      contextArgs := {
+                        stepContextArgs := {
+                          0
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "connected"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "MQTT Applib: transportClose", 
+                      contextArgs := {
+                        stepContextArgs := {
+                          0
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "MQTT Behavior",
+                  iName := "MQTT transport: fail rsp",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initializing"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "MQTT Behavior",
+                  iName := "MQTT transport: succ rsp",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initializing"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "MQTT Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_MQTT_RegDereg_FSM_connect"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: send", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "connecting"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "MQTT Behavior",
+                  iName := "MQTT rsp: CONNACK Refused",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "connecting"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "MQTT Applib: transportClose", 
+                      contextArgs := {
+                        stepContextArgs := {
+                          0
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "MQTT Behavior",
+                  iName := "MQTT rsp: CONNACK Accepted",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "connecting"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "dereg"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "publish"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_MQTT_RegDereg_FSM_subscribe"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: setTopic_stringParam", 
+                      contextArgs := {
+                        charstringValue := "control"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: send", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "connected"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "Special behavior for timeout reporting",
+                  iName := "dereg",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "connected"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "MQTT Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_MQTT_RegDereg_FSM_disconnect"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: send", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: transportClose", 
+                      contextArgs := {
+                        stepContextArgs := {
+                          0
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := pass,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "Special behavior for timeout reporting",
+                  iName := "publish",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "connected"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "publish"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_MQTT_RegDereg_FSM_publish"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: setTopic_stringParam", 
+                      contextArgs := {
+                        charstringValue := "report"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: setPublishMessage_add_clientId", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: setPublishMessage_add_stringParam", 
+                      contextArgs := {
+                        charstringValue := ":"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: setPublishMessage_add_varParams", 
+                      contextArgs := {
+                        varNames := {
+                          "publishSent"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: Increment variable", 
+                      contextArgs := {
+                        varNames := {
+                          "publishSent"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "MQTT Applib: send", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "connected"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "MQTT Behavior",
+                  iName := "MQTT req: PUBLISH",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "connected"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: print_stringParam", 
+                      contextArgs := {
+                        charstringValue := "PUBLISH received :-)"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: Increment variable", 
+                      contextArgs := {
+                        varNames := {
+                          "publishReceived"
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "connected"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }

+}

diff --git a/cfg/mqtt_basic/mqtt_basic_main.cfg b/cfg/mqtt_basic/mqtt_basic_main.cfg
new file mode 100644
index 0000000..bb050ae
--- /dev/null
+++ b/cfg/mqtt_basic/mqtt_basic_main.cfg
@@ -0,0 +1,49 @@
+[INCLUDE]

+"mqtt_basic_params.cfg"

+"mqtt_basic_fsms.cfg"

+"mqtt_basic_templates.cfg"

+

+[MODULE_PARAMETERS]

+tsp_LGenBase_EntityGrpDeclarators := {

+  { name := "IotClients", eType := "IOT_Entity", eCount := 1 }

+}

+

+tsp_EPTF_ExecCtrl_Scenario2EntityGroupList := {

+  { scenarioName := "IotClientScenario", eGrpName := "IotClients", name := omit}

+}

+

+tsp_LGenBase_TcMgmt_tcTypeDeclarators2 := {

+  {

+    name := "TC_MQTT_RegDereg",

+    fsmName := "MQTT_RegDereg_FSM",

+    entityType := "IOT_Entity",

+    customEntitySucc := ""

+  }

+}

+

+tsp_LGenBase_TcMgmt_ScenarioDeclarators3 :=

+{

+  {

+    name := "IotClientScenario",

+    tcList := {

+      {

+        tcName := "TC_MQTT_RegDereg",

+        tcParamsList := {

+          {startDelay := 1.0},

+          {target := { cpsToReach := 1.0 }},

+          {scheduler := {preDefinedName := cs}},

+          {enableEntitiesAtStart := true},

+          {enabledAtStart := true}

+          //{trafficStartFinish := {

+          //    {nrOfExecStart := {count := 100, actions := {}}},

+          //    {nrOfSuccesses := {count := 100, actions := {}}}

+          //  }

+          //}

+        }

+      }

+    },

+    scParamsList := {

+      {enabled := true}

+    }

+  }

+}

diff --git a/cfg/mqtt_basic/mqtt_basic_params.cfg b/cfg/mqtt_basic/mqtt_basic_params.cfg
new file mode 100644
index 0000000..ae5a185
--- /dev/null
+++ b/cfg/mqtt_basic/mqtt_basic_params.cfg
@@ -0,0 +1,73 @@
+

+[MODULE_PARAMETERS]

+

+tsp_nrOfLGens := 1;

+

+#tsp_EPTF_UIHandler_Browser_RemotePort := 4321

+#tsp_EPTF_UIHandler_Browser_directory := "./BrowserGUI";

+tsp_EPTF_Var_SyncInterval := 3.0;

+

+tsp_ExecCtrl_manualControl := true;

+

+tsp_EPTF_MQTT_LGen_debug := true;

+tsp_EPTF_MQTT_LGen_debugVerbose := true;

+tsp_EPTF_MQTT_LocalTransport_debug := true;

+tsp_EPTF_MQTT_LocalTransport_debugVerbose := true;

+//tsp_EPTF_COAP_LGen_debug := true;

+//tsp_EPTF_COAP_LGen_debugVerbose := true;

+//tsp_EPTF_COAP_LocalTransport_debug := true;

+//tsp_EPTF_LwM2M_LGen_debug := true;

+//tsp_EPTF_LwM2M_LGen_debugVerbose := true;

+//tsp_EPTF_LwM2M_CoapApplibTransport_debug := true;

+//tsp_EPTF_HTTP_Transport_loggingEnable := true;

+//tsp_EPTF_HTTP_loggingEnable := true;

+tsp_EPTF_LGenBaseDebug := true;

+tsp_EPTF_LGenBaseDebugTraffic := true;

+

+[LOGGING]

+FileMask :=  TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING | LOG_ALL | DEBUG

+ConsoleMask := TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING

+LogFile := "logs/%e.%h-%r.log"

+LogEventTypes := Yes

+SourceInfoFormat := Single

+LogEntityName := Yes

+

+[EXECUTE]

+IOT_App_Functions.TC

+

+[MAIN_CONTROLLER]

+TCPPort := 9777

+KillTimer := 30.0

+

+[TESTPORT_PARAMETERS]

+# EPTF CLL CLI TELNET interface

+*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "17100"

+*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"

+*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"

+*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"

+*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "

+*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"

+

+*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := "17101"

+*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"

+*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"

+*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"

+*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "

+*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"

+

+*.IPL4_PCO.debug := "YES" 

+

+[GROUPS]

+# In this section you can specify groups of hosts. These groups can be used inside the

+# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.

+

+[COMPONENTS]

+# This section consists of rules restricting the location of created PTCs.

+

+[MAIN_CONTROLLER]

+# The options herein control the behavior of MC.

+

+TCPPort := 0

+KillTimer := 10.0

+# NumHCs := 0

+# LocalAddress := 

diff --git a/cfg/mqtt_basic/mqtt_basic_templates.cfg b/cfg/mqtt_basic/mqtt_basic_templates.cfg
new file mode 100644
index 0000000..3ae7469
--- /dev/null
+++ b/cfg/mqtt_basic/mqtt_basic_templates.cfg
@@ -0,0 +1,73 @@
+[MODULE_PARAMETERS]

+tsp_EPTF_MQTT_LGen_templates :=

+{

+  {

+    id := "t_MQTT_RegDereg_FSM_connect",

+    msg := 

+    {

+      connect_msg := 

+      {

+        header := { flags := '0000'B },

+        name := "MQTT",

+        protocol_level := 4,

+        flags := {

+          user_name_flag := '0'B,

+          password_flag := '0'B,

+      	  will_retain := '0'B,

+     	  will_qos := AT_MOST_ONCE_DELIVERY,

+    	  will_flag := '0'B,

+    	  clean_session := '1'B

+        },

+        keep_alive := 0,

+        payload := {        

+    	  client_identifier := "",

+    	  will_topic := omit,

+    	  will_message := omit,

+    	  user_name := omit,

+    	  password := omit

+        }

+      }

+    }

+  },

+  {

+    id := "t_MQTT_RegDereg_FSM_disconnect",

+    msg :=

+    {

+      disconnect_msg := {

+        header := { flags := '0000'B }

+      }

+    }

+  },

+  {

+    id := "t_MQTT_RegDereg_FSM_publish",

+    msg :=

+    {

+      publish := {

+      	header := {

+    		dup_flag := '0'B,

+    		qos_level := AT_MOST_ONCE_DELIVERY,

+    		retain_flag := '0'B

+    	},

+    	topic_name := "topic",

+    	packet_identifier := 0,

+    	payload := ''O

+      }

+    }

+  },

+  {

+    id := "t_MQTT_RegDereg_FSM_subscribe",

+    msg := 

+    {

+      subscribe := {

+        header := { flags := '0010'B },

+        packet_identifier := 0,

+        payload := {

+          {

+    	    topic_filter := "topic",

+    	    requested_qos := AT_MOST_ONCE_DELIVERY

+          }

+        }

+      }

+    }

+  }

+}

diff --git a/cfg/performance_californium/coap_basic_fsms.cfg b/cfg/performance_californium/coap_basic_fsms.cfg
new file mode 100644
index 0000000..59b257a
--- /dev/null
+++ b/cfg/performance_californium/coap_basic_fsms.cfg
@@ -0,0 +1,804 @@
+
+[MODULE_PARAMETERS]
+tsp_IOT_LGen_FSMs := {
+	{
+/**** FSM Editor layout information. ****
+@state "idle" (144, 311)
+@state "initiated" (739, 313)
+@parallellink "idle" -- "initiated" (162, 311) (214, 311) * (706, 313) (657, 313)
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP rsp: 205"
+@link "initiated" -- "idle"
+eventlist "COAP Behavior" "COAP rsp: 200" "COAP rsp: 201" "COAP rsp: 202" "COAP rsp: 203" "COAP rsp: 204" 
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP transaction: timeout"
+*/
+		name := "TC_CORE01_GET_FSM",
+		fsmParams := {
+			{
+				stateList := {
+					"idle",
+					"initiated"
+				}
+			},
+			{
+				timerList := {
+					{
+						name := "watchdog",
+						startValue := 10.0
+					}
+				}
+			},
+			{
+				varList := {
+					// var:remoteHost
+					{
+						name := "remoteHost",
+						initValue := {
+							charstringVal := "127.0.0.1"
+						},
+						scope := TC
+					},
+					// var:remotePort
+					{
+						name := "remotePort",
+						initValue := {
+							intVal := 5683
+						},
+						scope := TC
+					},
+					{
+						name := "localHost",
+						initValue := {
+							charstringVal := "172.31.21.18"
+						},
+						scope := TC
+					},//var:localHost
+					{
+						name := "localPort",
+						initValue := {
+							intVal := 11000
+						},
+						scope := TC
+					}//var:localPort
+				}
+			},
+			{
+				statHandlerStatList := { }
+			}
+		},// fsmParams
+		table := {
+			extendedTable := {
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "EPTF_CLL_LGenBase",
+									iName := "LGenBase: Start_the_traffic_case!",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "idle"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: init", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"localHost", 
+													"localPort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"remoteHost", 
+													"remotePort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+											contextArgs := {
+												charstringValue := "t_TC_CORE_01_GET"
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: send", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "initiated"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP rsp: 205",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := pass,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								eventList := {
+									bName := "COAP Behavior",
+									iNameList := {
+										"COAP rsp: 200",
+										"COAP rsp: 201",
+										"COAP rsp: 202",
+										"COAP rsp: 203",
+										"COAP rsp: 204",
+										"COAP rsp: 3xxto6xx"
+									},
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP transaction: timeout",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	},
+	{
+/**** FSM Editor layout information. ****
+@state "idle" (100, 527)
+@state "initiated" (1019, 527)
+@parallellink "idle" -- "initiated" (118, 527) (203, 527) * (986, 527) (904, 527)
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+eventlist "COAP Behavior" "COAP rsp: 200" "COAP rsp: 202" "COAP rsp: 203" "COAP rsp: 205" 
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP rsp: 201"
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP transaction: timeout"
+*/
+		name := "TC_CORE02_POST_FSM",
+		fsmParams := {
+			{
+				stateList := {
+					"idle",
+					"initiated"
+				}
+			},
+			{
+				timerList := {
+					{
+						name := "watchdog",
+						startValue := 10.0
+					}
+				}
+			},
+			{
+				varList := {
+					// var:remoteHost
+					{
+						name := "remoteHost",
+						initValue := {
+							charstringVal := "127.0.0.1"
+						},
+						scope := TC
+					},
+					// var:remotePort
+					{
+						name := "remotePort",
+						initValue := {
+							intVal := 5683
+						},
+						scope := TC
+					},
+					{
+						name := "localHost",
+						initValue := {
+							charstringVal := "172.31.21.18"
+						},
+						scope := TC
+					},//var:localHost
+					{
+						name := "localPort",
+						initValue := {
+							intVal := 11000
+						},
+						scope := TC
+					}//var:localPort
+				}
+			},
+			{
+				statHandlerStatList := { }
+			}
+		},// fsmParams
+		table := {
+			extendedTable := {
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "EPTF_CLL_LGenBase",
+									iName := "LGenBase: Start_the_traffic_case!",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "idle"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: init", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"localHost", 
+													"localPort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"remoteHost", 
+													"remotePort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+											contextArgs := {
+												charstringValue := "t_TC_CORE_02_POST"
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: send", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "initiated"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								eventList := {
+									bName := "COAP Behavior",
+									iNameList := {
+										"COAP rsp: 200",
+										"COAP rsp: 202",
+										"COAP rsp: 203",
+										"COAP rsp: 205",
+										"COAP rsp: 3xxto6xx"
+									},
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP rsp: 201",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := pass,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP transaction: timeout",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	},
+  {
+/**** FSM Editor layout information. ****
+@state "idle" (177, 188)
+@state "initializing" (668, 273)
+@state "serving" (393, 486)
+@selfstate "serving" (850, 668)
+@parallellink "idle" -- "initializing" (192, 191) (236, 199) * (633, 267) (589, 259)
+@link "idle" -- "initializing"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initializing" -- "idle"
+singleevent "COAP Behavior" "COAP transport: fail rsp"
+@parallellink "initializing" -- "serving" (653, 285) (629, 304) * (408, 474) (433, 455)
+@link "initializing" -- "serving"
+singleevent "COAP Behavior" "COAP transport: succ rsp"
+@parallellink "serving" -- "idle" (384, 474) (364, 447) * (186, 200) (206, 227)
+@link "serving" -- "idle"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Stop_the_traffic_case!"
+@parallellink "serving" -- "serving" (417, 496) (458, 512) * (826, 658) (785, 642)
+@link "serving" -- "serving"
+singleevent "COAP Behavior" "COAP req: GET"
+@link "serving" -- "serving"
+singleevent "COAP Behavior" "COAP req: POST"
+*/
+    name := "TC_CORE_Server_FSM",
+    fsmParams := {
+      {
+        stateList := {
+          "idle",
+          "initializing",
+          "serving"
+        }
+      },
+      {
+        varList := {
+          // var:localHost
+          {
+            name := "localHost",
+            initValue := {
+              charstringVal := "172.31.21.18"
+            },
+            scope := TC
+          },
+          // var:localPort
+          {
+            name := "localPort",
+            initValue := {
+              intVal := 30000
+            },
+            scope := TC
+          },
+          {
+            name := "portOffset",
+            initValue := {
+              intVal := 0
+            },
+            scope := TC
+          }//var:portOffset
+        }
+      },
+      {
+        statHandlerStatList := { }
+      }
+    },// fsmParams
+    table := {
+      extendedTable := {
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Start_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "idle"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "COAP Applib: init", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "localHost", 
+                          "localPort", 
+                          "portOffset"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: startListening", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "initializing"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP transport: succ rsp",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initializing"
+                },
+                cell := {
+                  actionList := omit,
+                  nextStateCalculation := omit,
+                  nextState := "serving"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP transport: fail rsp",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initializing"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Stop_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "serving"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP req: GET",
+                  eventType := entity
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "serving"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "COAP Applib: handleRequest", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_TC_CORE_Server_Content"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: sendResponse", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "serving"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP req: POST",
+                  eventType := entity
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "serving"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "COAP Applib: handleRequest", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_TC_CORE_Server_Created"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: sendResponse", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "serving"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }}
+
diff --git a/cfg/performance_californium/coap_basic_fsms.cfg~ b/cfg/performance_californium/coap_basic_fsms.cfg~
new file mode 100644
index 0000000..810cea1
--- /dev/null
+++ b/cfg/performance_californium/coap_basic_fsms.cfg~
@@ -0,0 +1,802 @@
+
+[MODULE_PARAMETERS]
+tsp_IOT_LGen_FSMs := {
+	{
+/**** FSM Editor layout information. ****
+@state "idle" (144, 311)
+@state "initiated" (739, 313)
+@parallellink "idle" -- "initiated" (162, 311) (214, 311) * (706, 313) (657, 313)
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP rsp: 205"
+@link "initiated" -- "idle"
+eventlist "COAP Behavior" "COAP rsp: 200" "COAP rsp: 201" "COAP rsp: 202" "COAP rsp: 203" "COAP rsp: 204" 
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP transaction: timeout"
+*/
+		name := "TC_CORE01_GET_FSM",
+		fsmParams := {
+			{
+				stateList := {
+					"idle",
+					"initiated"
+				}
+			},
+			{
+				timerList := {
+					{
+						name := "watchdog",
+						startValue := 10.0
+					}
+				}
+			},
+			{
+				varList := {
+					// var:remoteHost
+					{
+						name := "remoteHost",
+						initValue := {
+							charstringVal := "127.0.0.1"
+						},
+						scope := TC
+					},
+					// var:remotePort
+					{
+						name := "remotePort",
+						initValue := {
+							intVal := 5683
+						},
+						scope := TC
+					},
+					{
+						name := "localHost",
+						initValue := {
+							charstringVal := "172.31.21.18"
+						},
+						scope := TC
+					},//var:localHost
+					{
+						name := "localPort",
+						initValue := {
+							intVal := 11000
+						},
+						scope := TC
+					}//var:localPort
+				}
+			},
+			{
+				statHandlerStatList := { }
+			}
+		},// fsmParams
+		table := {
+			extendedTable := {
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "EPTF_CLL_LGenBase",
+									iName := "LGenBase: Start_the_traffic_case!",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "idle"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: init", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"localHost", 
+													"localPort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"remoteHost", 
+													"remotePort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+											contextArgs := {
+												charstringValue := "t_TC_CORE_01_GET"
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: send", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "initiated"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP rsp: 205",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := pass,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								eventList := {
+									bName := "COAP Behavior",
+									iNameList := {
+										"COAP rsp: 200",
+										"COAP rsp: 201",
+										"COAP rsp: 202",
+										"COAP rsp: 203",
+										"COAP rsp: 204"
+									},
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP transaction: timeout",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	},
+	{
+/**** FSM Editor layout information. ****
+@state "idle" (100, 527)
+@state "initiated" (1019, 527)
+@parallellink "idle" -- "initiated" (118, 527) (203, 527) * (986, 527) (904, 527)
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+eventlist "COAP Behavior" "COAP rsp: 200" "COAP rsp: 202" "COAP rsp: 203" "COAP rsp: 205" 
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP rsp: 201"
+@link "initiated" -- "idle"
+singleevent "COAP Behavior" "COAP transaction: timeout"
+*/
+		name := "TC_CORE02_POST_FSM",
+		fsmParams := {
+			{
+				stateList := {
+					"idle",
+					"initiated"
+				}
+			},
+			{
+				timerList := {
+					{
+						name := "watchdog",
+						startValue := 10.0
+					}
+				}
+			},
+			{
+				varList := {
+					// var:remoteHost
+					{
+						name := "remoteHost",
+						initValue := {
+							charstringVal := "127.0.0.1"
+						},
+						scope := TC
+					},
+					// var:remotePort
+					{
+						name := "remotePort",
+						initValue := {
+							intVal := 5683
+						},
+						scope := TC
+					},
+					{
+						name := "localHost",
+						initValue := {
+							charstringVal := "172.31.21.18"
+						},
+						scope := TC
+					},//var:localHost
+					{
+						name := "localPort",
+						initValue := {
+							intVal := 11000
+						},
+						scope := TC
+					}//var:localPort
+				}
+			},
+			{
+				statHandlerStatList := { }
+			}
+		},// fsmParams
+		table := {
+			extendedTable := {
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "EPTF_CLL_LGenBase",
+									iName := "LGenBase: Start_the_traffic_case!",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "idle"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: init", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"localHost", 
+													"localPort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"remoteHost", 
+													"remotePort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+											contextArgs := {
+												charstringValue := "t_TC_CORE_02_POST"
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: send", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "initiated"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								eventList := {
+									bName := "COAP Behavior",
+									iNameList := {
+										"COAP rsp: 200",
+										"COAP rsp: 202",
+										"COAP rsp: 203",
+										"COAP rsp: 205"
+									},
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP rsp: 201",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := pass,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP transaction: timeout",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "initiated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	},
+  {
+/**** FSM Editor layout information. ****
+@state "idle" (177, 188)
+@state "initializing" (668, 273)
+@state "serving" (393, 486)
+@selfstate "serving" (850, 668)
+@parallellink "idle" -- "initializing" (192, 191) (236, 199) * (633, 267) (589, 259)
+@link "idle" -- "initializing"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initializing" -- "idle"
+singleevent "COAP Behavior" "COAP transport: fail rsp"
+@parallellink "initializing" -- "serving" (653, 285) (629, 304) * (408, 474) (433, 455)
+@link "initializing" -- "serving"
+singleevent "COAP Behavior" "COAP transport: succ rsp"
+@parallellink "serving" -- "idle" (384, 474) (364, 447) * (186, 200) (206, 227)
+@link "serving" -- "idle"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Stop_the_traffic_case!"
+@parallellink "serving" -- "serving" (417, 496) (458, 512) * (826, 658) (785, 642)
+@link "serving" -- "serving"
+singleevent "COAP Behavior" "COAP req: GET"
+@link "serving" -- "serving"
+singleevent "COAP Behavior" "COAP req: POST"
+*/
+    name := "TC_CORE_Server_FSM",
+    fsmParams := {
+      {
+        stateList := {
+          "idle",
+          "initializing",
+          "serving"
+        }
+      },
+      {
+        varList := {
+          // var:localHost
+          {
+            name := "localHost",
+            initValue := {
+              charstringVal := "172.31.21.18"
+            },
+            scope := TC
+          },
+          // var:localPort
+          {
+            name := "localPort",
+            initValue := {
+              intVal := 30000
+            },
+            scope := TC
+          },
+          {
+            name := "portOffset",
+            initValue := {
+              intVal := 0
+            },
+            scope := TC
+          }//var:portOffset
+        }
+      },
+      {
+        statHandlerStatList := { }
+      }
+    },// fsmParams
+    table := {
+      extendedTable := {
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Start_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "idle"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "COAP Applib: init", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "localHost", 
+                          "localPort", 
+                          "portOffset"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: startListening", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "initializing"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP transport: succ rsp",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initializing"
+                },
+                cell := {
+                  actionList := omit,
+                  nextStateCalculation := omit,
+                  nextState := "serving"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP transport: fail rsp",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initializing"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Stop_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "serving"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP req: GET",
+                  eventType := entity
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "serving"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "COAP Applib: handleRequest", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_TC_CORE_Server_Content"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: sendResponse", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "serving"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "COAP Behavior",
+                  iName := "COAP req: POST",
+                  eventType := entity
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "serving"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "COAP Applib: handleRequest", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: loadTemplate_byStringId", 
+                      contextArgs := {
+                        charstringValue := "t_TC_CORE_Server_Created"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "COAP Applib: sendResponse", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "serving"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }}
+
diff --git a/cfg/performance_californium/coap_basic_main.cfg b/cfg/performance_californium/coap_basic_main.cfg
new file mode 100644
index 0000000..8992865
--- /dev/null
+++ b/cfg/performance_californium/coap_basic_main.cfg
@@ -0,0 +1,65 @@
+[INCLUDE]
+"coap_basic_params.cfg"
+"coap_basic_fsms.cfg"
+"coap_basic_templates.cfg"
+
+[MODULE_PARAMETERS]
+tsp_EPTF_ExecCtrl_LGenPool_Declarators :=
+{
+  {
+    name := "Pool_CoAP_Clients",
+    lgenPoolItems :=  { { hostname := "localhost", num := 4, createFunctionName := "RIoT.createLGen" } }
+  }
+}
+
+tsp_EPTF_ExecCtrl_EntityGroup2LGenPool_List := 
+{
+  {
+    eGrpName := "IotClients",
+    lgenPoolName := "Pool_CoAP_Clients"
+  }
+}
+
+tsp_LGenBase_EntityGrpDeclarators := {
+  { name := "IotClients", eType := "IOT_Entity", eCount := 10000 }
+}
+
+tsp_EPTF_ExecCtrl_Scenario2EntityGroupList := {
+  { scenarioName := "IotClientScenario", eGrpName := "IotClients", name := omit}
+}
+
+tsp_LGenBase_TcMgmt_tcTypeDeclarators2 := {
+  {
+    name := "TC_CORE02_POST",
+    fsmName := "TC_CORE02_POST_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  }
+}
+
+tsp_LGenBase_TcMgmt_ScenarioDeclarators3 :=
+{
+  {
+    name := "IotClientScenario",
+    tcList := {
+      {
+        tcName := "TC_CORE02_POST",
+        tcParamsList := {
+          {startDelay := 1.0},
+          {target := { cpsToReach := 1.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true}
+          //{trafficStartFinish := {
+          //    {nrOfExecStart := {count := 100, actions := {}}},
+          //    {nrOfSuccesses := {count := 100, actions := {}}}
+          //  }
+          //}
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  }
+}
diff --git a/cfg/performance_californium/coap_basic_params.cfg b/cfg/performance_californium/coap_basic_params.cfg
new file mode 100644
index 0000000..9061b49
--- /dev/null
+++ b/cfg/performance_californium/coap_basic_params.cfg
@@ -0,0 +1,50 @@
+[MODULE_PARAMETERS]
+tsp_EPTF_Var_SyncInterval := 3.0;
+
+tsp_ExecCtrl_manualControl := true;
+
+tsp_EPTF_LwM2M_CoapApplibTransport_enabled := false;
+
+//tsp_EPTF_COAP_LGen_debug := true;
+//tsp_EPTF_COAP_LGen_debugVerbose := true;
+//tsp_EPTF_COAP_LocalTransport_debug := true;
+//tsp_EPTF_LwM2M_LGen_debug := true;
+//tsp_EPTF_LwM2M_LGen_debugVerbose := true;
+//tsp_EPTF_LwM2M_CoapApplibTransport_debug := true;
+//tsp_EPTF_HTTP_Transport_loggingEnable := true;
+//tsp_EPTF_HTTP_loggingEnable := true;
+//tsp_EPTF_LGenBaseDebug := false;
+//tsp_EPTF_LGenBaseDebugTraffic := false;
+
+[LOGGING]
+FileMask :=  TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING | TTCN_ACTION #| LOG_ALL #| DEBUG
+ConsoleMask := TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING  #| TTCN_ACTION
+LogFile := "logs/%e.%h-%r.log"
+LogEventTypes := Yes
+SourceInfoFormat := Single
+LogEntityName := Yes
+
+[EXECUTE]
+IOT_App_Functions.TC
+
+[MAIN_CONTROLLER]
+TCPPort := 9777
+KillTimer := 30.0
+
+[TESTPORT_PARAMETERS]
+# EPTF CLL CLI TELNET interface
+*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "17100"
+*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"
+
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := "17101"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"
+
+*.IPL4_PCO.debug := "NO" 
diff --git a/cfg/performance_californium/coap_basic_templates.cfg b/cfg/performance_californium/coap_basic_templates.cfg
new file mode 100644
index 0000000..6335ce7
--- /dev/null
+++ b/cfg/performance_californium/coap_basic_templates.cfg
@@ -0,0 +1,87 @@
+

+[MODULE_PARAMETERS]

+tsp_EPTF_COAP_LGen_templates :=

+{

+  {

+    id := "t_TC_CORE_01_GET",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := CONFIRMABLE,

+        code := { class:= 0, detail := 1 },

+        message_id := 0

+      },

+      token := ''O,

+      options := 

+      {

+        {

+          uri_path := "test"

+        }

+      },

+      payload := omit

+    }

+  },

+  {

+    id := "t_TC_CORE_02_POST",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := CONFIRMABLE,

+        code := { class := 0, detail := 2 },

+        message_id := 0

+      },

+      token := ''O,

+      options := 

+      {

+        {

+          uri_path := "test"

+        },

+        {

+          content_format := 0

+        }

+      },

+      payload := '010203040506070809'O

+    }

+  },

+  {

+    id := "t_TC_CORE_Server_Content",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := ACKNOWLEDGEMENT,

+        code := { class := 2, detail := 5 },

+        message_id := 0

+      },

+      token := ''O,

+      options := 

+      {

+        {

+          content_format := 0

+        }

+      },

+      payload := '010203040506070809'O

+    }

+  },

+  {

+    id := "t_TC_CORE_Server_Created",

+    msg :=

+    {

+      header := 

+      {

+        version := 1,

+        msg_type := ACKNOWLEDGEMENT,

+        code := { class := 2, detail := 1 },

+        message_id := 0

+      },

+      token := ''O,

+      options := {},

+      payload := omit

+    }

+  }

+}

diff --git a/cfg/stability_leshan/leshan_basic_fsms.cfg b/cfg/stability_leshan/leshan_basic_fsms.cfg
new file mode 100644
index 0000000..8ebe8bf
--- /dev/null
+++ b/cfg/stability_leshan/leshan_basic_fsms.cfg
@@ -0,0 +1,1202 @@
+[MODULE_PARAMETERS]
+tsp_IOT_LGen_FSMs := {
+	{
+/**** FSM Editor layout information. ****
+@state "registered" (772, 546)
+@selfstate "registered" (1254, 548)
+@state "deregistering" (573, 994)
+@state "idle" (73, 592)
+@state "inititated" (568, 188)
+@parallellink "idle" -- "inititated" (88, 580) (134, 542) * (553, 200) (507, 238)
+@link "idle" -- "inititated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "inititated" -- "idle"
+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"
+@link "inititated" -- "idle"
+singleevent "Special behavior for timeout reporting" "userWatchdog"
+@link "inititated" -- "idle"
+singleevent "COAP Behavior" "COAP transaction: timeout"
+@parallellink "inititated" -- "registered" (575, 200) (594, 233) * (765, 534) (746, 501)
+@link "inititated" -- "registered"
+singleevent "LWM2M Behavior" "LWM2M rsp: 201"
+@parallellink "registered" -- "registered" (811, 546) (852, 546) * (1216, 548) (1176, 548)
+@link "registered" -- "registered"
+singleevent "LWM2M Behavior" "LWM2M rsp: 204"
+@link "registered" -- "registered"
+singleevent "LWM2M Behavior" "LWM2M req: Read"
+@link "registered" -- "registered"
+singleevent "LWM2M Behavior" "LWM2M req: Write"
+@link "registered" -- "registered"
+singleevent "LWM2M Behavior" "LWM2M req: Execute"
+@link "registered" -- "registered"
+singleevent "Special behavior for timeout reporting" "update"
+@link "registered" -- "registered"
+singleevent "Special behavior for timeout reporting" "refresh"
+@link "registered" -- "registered"
+singleevent "COAP Behavior" "COAP observe: cancel"
+@parallellink "deregistering" -- "idle" (558, 982) (511, 944) * (88, 604) (135, 642)
+@link "deregistering" -- "idle"
+singleevent "LWM2M Behavior" "LWM2M rsp: 202"
+@link "deregistering" -- "idle"
+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"
+@link "deregistering" -- "idle"
+singleevent "COAP Behavior" "COAP transaction: timeout"
+@parallellink "registered" -- "idle" (734, 548) (676, 552) * (91, 591) (153, 587)
+@link "registered" -- "idle"
+singleevent "LWM2M Behavior" "LWM2M rsp: 3xxto6xx"
+@link "registered" -- "idle"
+singleevent "COAP Behavior" "COAP transaction: timeout"
+@parallellink "registered" -- "deregistering" (767, 558) (748, 600) * (578, 982) (597, 940)
+@link "registered" -- "deregistering"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Stop_the_traffic_case!"
+*/
+		name := "LWM2M_SimDevice_FSM",
+		fsmParams := {
+			{
+				stateList := {
+					"idle",
+					"inititated",
+					"registered",
+					"deregistering"
+				}
+			},
+			{
+				timerList := {
+					{
+						name := "userWatchdog",
+						startValue := 80.0
+					},
+					{
+						name := "update",
+						startValue := 25.0
+					},
+					{
+						name := "dereg",
+						startValue := 60.0
+					},
+					{
+						name := "refresh",
+						startValue := 20.0
+					}
+				}
+			},
+			{
+				varList := {
+					// var:localHost
+					{
+						name := "localHost",
+						initValue := {
+							charstringVal := "172.31.21.18"
+						},
+						scope := TC
+					},
+					// var:localPort
+					{
+						name := "localPort",
+						initValue := {
+							intVal := 11000
+						},
+						scope := TC
+					},
+					// var:remoteHost
+					{
+						name := "remoteHost",
+						initValue := {
+							charstringVal := "172.31.21.18"
+						},
+						scope := TC
+					},
+					// var:remotePort
+					{
+						name := "remotePort",
+						initValue := {
+							intVal := 5683
+						},
+						scope := TC
+					}
+				}
+			},
+			{
+				statHandlerStatList := { }
+			}
+		},// fsmParams
+		table := {
+			extendedTable := {
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "EPTF_CLL_LGenBase",
+									iName := "LGenBase: Start_the_traffic_case!",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "idle"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: init", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "IOT App COAP: setLocalAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"localHost", 
+													"localPort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: setRemoteAddress_byVars", 
+											contextArgs := {
+												varNames := {
+													"remoteHost", 
+													"remotePort"
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "COAP Applib: reportCoapEventForEntity", 
+											contextArgs := {
+												stepContextArgs := {
+													0
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createDevice", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObject", 
+											contextArgs := {
+												stepContextArgs := {
+													0
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObjectInstance", 
+											contextArgs := {
+												stepContextArgs := {
+													0
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObject", 
+											contextArgs := {
+												stepContextArgs := {
+													1
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObjectInstance", 
+											contextArgs := {
+												stepContextArgs := {
+													1
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObject", 
+											contextArgs := {
+												stepContextArgs := {
+													3
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObjectInstance", 
+											contextArgs := {
+												stepContextArgs := {
+													3
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObject", 
+											contextArgs := {
+												stepContextArgs := {
+													6
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObjectInstance", 
+											contextArgs := {
+												stepContextArgs := {
+													6
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObject", 
+											contextArgs := {
+												stepContextArgs := {
+													3303
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: createObjectInstance", 
+											contextArgs := {
+												stepContextArgs := {
+													3303
+												}
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: logDevice", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "IOT Fsm LWM2M_SimDevice: initResourceValues", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 
+											contextArgs := {
+												charstringValue := "t_LWM2M_SimDevice_FSM_register"
+											}
+										},
+										{
+											stepOrFunctionName := "IOT App LwM2M: setClientNameInRegister", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: send", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "inititated"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "LWM2M Behavior",
+									iName := "LWM2M rsp: 201",
+									eventType := entity
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "inititated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+											contextArgs := {
+												timerName := "update"
+											}
+										},
+										{
+											stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+											contextArgs := {
+												timerName := "refresh"
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "registered"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "LWM2M Behavior",
+									iName := "LWM2M rsp: 204",
+									eventType := entity
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+											contextArgs := {
+												timerName := "update"
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "registered"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "LWM2M Behavior",
+									iName := "LWM2M rsp: 202",
+									eventType := entity
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "deregistering"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := pass,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "LWM2M Behavior",
+									iName := "LWM2M rsp: 3xxto6xx",
+									eventType := entity
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "inititated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							},
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							},
+							{
+								inState := {
+									state := "deregistering"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "LWM2M Behavior",
+									iName := "LWM2M req: Read",
+									eventType := entity
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: handleRequest", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: handleReadRequest", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "registered"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "LWM2M Behavior",
+									iName := "LWM2M req: Write",
+									eventType := entity
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: handleRequest", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: handleWriteRequest", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "registered"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "LWM2M Behavior",
+									iName := "LWM2M req: Execute",
+									eventType := entity
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "COAP Applib: handleRequest", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: handleExecuteRequest", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "registered"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "Special behavior for timeout reporting",
+									iName := "update",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 
+											contextArgs := {
+												charstringValue := "t_LWM2M_SimDevice_FSM_update"
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: send", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "registered"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "EPTF_CLL_LGenBase",
+									iName := "LGenBase: Stop_the_traffic_case!",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning", 
+											contextArgs := {
+												timerName := "update"
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: loadTemplate_byStringId", 
+											contextArgs := {
+												charstringValue := "t_LWM2M_SimDevice_FSM_deregister"
+											}
+										},
+										{
+											stepOrFunctionName := "LWM2M Applib: send", 
+											contextArgs := omit
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "deregistering"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "Special behavior for timeout reporting",
+									iName := "userWatchdog",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "inititated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "COAP Behavior",
+									iName := "COAP transaction: timeout",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "inititated"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							},
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							},
+							{
+								inState := {
+									state := "deregistering"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+											contextArgs := {
+												verdict := {
+													verdict := fail,
+													reason := ""
+												}
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "idle"
+								}
+							}
+						}
+					}
+				},
+				{
+					events2Listen := {
+						events := {
+							{
+								singleEvent := {
+									bName := "Special behavior for timeout reporting",
+									iName := "refresh",
+									eventType := fsm
+								}
+							}
+						}
+					},
+					cellRow := {
+						statedCellRow := {
+							{
+								inState := {
+									state := "registered"
+								},
+								cell := {
+									actionList := {
+										{
+											stepOrFunctionName := "IOT Fsm LWM2M_SimDevice: updateResourceValues", 
+											contextArgs := omit
+										},
+										{
+											stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+											contextArgs := {
+												timerName := "refresh"
+											}
+										}
+									},
+									nextStateCalculation := omit,
+									nextState := "registered"
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	},
+  {
+/**** FSM Editor layout information. ****
+@state "initiated" (541, 159)
+@state "reading" (991, 519)
+@state "idle" (78, 521)
+@parallellink "initiated" -- "idle" (526, 171) (483, 205) * (93, 509) (136, 475)
+@link "initiated" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 4XX"
+@link "idle" -- "initiated"
+singleevent "EPTF_CLL_LGenBase" "LGenBase: Start_the_traffic_case!"
+@link "initiated" -- "idle"
+singleevent "Special behavior for timeout reporting" "userWatchdog"
+@parallellink "reading" -- "idle" (966, 519) (879, 519) * (93, 521) (180, 521)
+@link "reading" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 4XX"
+@link "reading" -- "idle"
+singleevent "Special behavior for timeout reporting" "userWatchdog"
+@link "reading" -- "idle"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 200 Ok"
+@parallellink "initiated" -- "reading" (556, 171) (598, 205) * (976, 507) (934, 473)
+@link "initiated" -- "reading"
+singleevent "HTTP Behavior" "HTTP Message arrived, Result Code: 200 Ok"
+*/
+    name := "HTTP_GET_FSM",
+    fsmParams := {
+      {
+        stateList := {
+          "idle",
+          "initiated",
+          "reading"
+        }
+      },
+      {
+        timerList := {
+          {
+            name := "userWatchdog",
+            startValue := 10.0
+          }
+        }
+      },
+      {
+        varList := {
+          // var:remoteHost
+          {
+            name := "remoteHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },
+          // var:remotePort
+          {
+            name := "remotePort",
+            initValue := {
+              intVal := 8080
+            },
+            scope := TC
+          },
+          // var:clientName
+          {
+            name := "clientName",
+            initValue := {
+              charstringVal := ""
+            },
+            scope := TC
+          },
+          {
+            name := "localHost",
+            initValue := {
+              charstringVal := "127.0.0.1"
+            },
+            scope := TC
+          },//var:localHost
+          {
+            name := "localPort",
+            initValue := {
+              intVal := 20000
+            },
+            scope := TC
+          }//var:localPort
+        }
+      },
+      {
+        statHandlerStatList := { }
+      }
+    },// fsmParams
+    table := {
+      extendedTable := {
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "HTTP Behavior",
+                  iName := "HTTP Message arrived, Result Code: 4XX",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "EPTF_CLL_LGenBase",
+                  iName := "LGenBase: Start_the_traffic_case!",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "idle"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: initEntityContext", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: openConnection_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "localHost", 
+                          "localPort", 
+                          "remoteHost", 
+                          "remotePort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setMethod_stringParam", 
+                      contextArgs := {
+                        charstringValue := "GET"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/api/clients"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addHostHeader_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "remoteHost", 
+                          "remotePort"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "EPTF HTTP: Sends HTTP Request", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "LGenBase: StepFunction_timerStart", 
+                      contextArgs := {
+                        timerName := "userWatchdog"
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "initiated"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "Special behavior for timeout reporting",
+                  iName := "userWatchdog",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := fail,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        },
+        {
+          events2Listen := {
+            events := {
+              {
+                singleEvent := {
+                  bName := "HTTP Behavior",
+                  iName := "HTTP Message arrived, Result Code: 200 Ok",
+                  eventType := fsm
+                }
+              }
+            }
+          },
+          cellRow := {
+            statedCellRow := {
+              {
+                inState := {
+                  state := "initiated"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App Leshan: getClientFromResponse_intoVar", 
+                      contextArgs := {
+                        varNames := {
+                          "clientName"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: setUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/api/clients/"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addToUri_byVars", 
+                      contextArgs := {
+                        varNames := {
+                          "clientName"
+                        }
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "IOT App HTTP: addToUri_stringParam", 
+                      contextArgs := {
+                        charstringValue := "/3/0/0?format=JSON"
+                      }
+                    },
+                    {
+                      stepOrFunctionName := "EPTF HTTP: Sends HTTP Request", 
+                      contextArgs := omit
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "reading"
+                }
+              },
+              {
+                inState := {
+                  state := "reading"
+                },
+                cell := {
+                  actionList := {
+                    {
+                      stepOrFunctionName := "IOT App HTTP: closeConnection", 
+                      contextArgs := omit
+                    },
+                    {
+                      stepOrFunctionName := "IOT App: tcFinished_withVerdict", 
+                      contextArgs := {
+                        verdict := {
+                          verdict := pass,
+                          reason := ""
+                        }
+                      }
+                    }
+                  },
+                  nextStateCalculation := omit,
+                  nextState := "idle"
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
diff --git a/cfg/stability_leshan/leshan_basic_main.cfg b/cfg/stability_leshan/leshan_basic_main.cfg
new file mode 100644
index 0000000..7deb12b
--- /dev/null
+++ b/cfg/stability_leshan/leshan_basic_main.cfg
@@ -0,0 +1,61 @@
+[MODULE_PARAMETERS]
+
+tsp_EPTF_ExecCtrl_LGenPool_Declarators :=
+{
+  {
+    name := "Pool_LWM2M_Clients",
+    lgenPoolItems :=  { { hostname := "localhost", num := 1, createFunctionName := "RIoT.createLGen" } }
+  }
+}
+
+tsp_EPTF_ExecCtrl_EntityGroup2LGenPool_List := 
+{
+  {
+    eGrpName := "IotClients",
+    lgenPoolName := "Pool_LWM2M_Clients"
+  }
+}
+
+tsp_LGenBase_EntityGrpDeclarators := {
+  { name := "IotClients", eType := "IOT_Entity",  eCount := 1000 }
+}
+
+tsp_EPTF_ExecCtrl_Scenario2EntityGroupList := {
+  { scenarioName := "IotClientScenario", eGrpName := "IotClients", name := omit}
+}
+
+tsp_LGenBase_TcMgmt_tcTypeDeclarators2 := {
+  {
+    name := "TC_LWM2M_SimDevice",
+    fsmName := "LWM2M_SimDevice_FSM",
+    entityType := "IOT_Entity",
+    customEntitySucc := ""
+  }
+}
+
+tsp_LGenBase_TcMgmt_ScenarioDeclarators3 :=
+{
+  {
+    name := "IotClientScenario",
+    tcList := {
+      {
+        tcName := "TC_LWM2M_SimDevice",
+        tcParamsList := {
+          {startDelay := 0.0},
+          {target := { cpsToReach := 50.0 }},
+          {scheduler := {preDefinedName := cs}},
+          {enableEntitiesAtStart := true},
+          {enabledAtStart := true}
+        }
+      }
+    },
+    scParamsList := {
+      {enabled := true}
+    }
+  }
+}
+
+[INCLUDE]
+"leshan_basic_params.cfg"
+"leshan_basic_fsms.cfg"
+"leshan_basic_templates.cfg"
diff --git a/cfg/stability_leshan/leshan_basic_params.cfg b/cfg/stability_leshan/leshan_basic_params.cfg
new file mode 100644
index 0000000..d726336
--- /dev/null
+++ b/cfg/stability_leshan/leshan_basic_params.cfg
@@ -0,0 +1,52 @@
+
+[MODULE_PARAMETERS]
+
+tsp_EPTF_Var_SyncInterval := 3.0;
+
+tsp_ExecCtrl_manualControl := true;
+
+tsp_EPTF_COAP_EXCHANGE_LIFETIME := 20.0;
+
+//tsp_EPTF_COAP_LGen_debug := true;
+//tsp_EPTF_COAP_LGen_debugVerbose := true;
+//tsp_EPTF_COAP_LocalTransport_debug := true;
+//tsp_EPTF_LwM2M_LGen_debug := true;
+//tsp_EPTF_LwM2M_LGen_debugVerbose := true;
+//tsp_EPTF_LwM2M_CoapApplibTransport_debug := true;
+//tsp_EPTF_HTTP_Transport_loggingEnable := true;
+//tsp_EPTF_HTTP_loggingEnable := true;
+//tsp_EPTF_LGenBaseDebug := true;
+//tsp_EPTF_LGenBaseDebugTraffic := true;
+
+[LOGGING]
+FileMask :=  TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING #| LOG_ALL | DEBUG
+ConsoleMask := TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING #| TTCN_ACTION
+LogFile := "logs/%e.%h-%r.log"
+LogEventTypes := Yes
+SourceInfoFormat := Stack //Single
+LogEntityName := Yes
+
+[EXECUTE]
+IOT_App_Functions.TC
+
+[MAIN_CONTROLLER]
+TCPPort := 9777
+KillTimer := 30.0
+
+[TESTPORT_PARAMETERS]
+# EPTF CLL CLI TELNET interface
+*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "17100"
+*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"
+
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := "17101"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
+*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
+*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"
+
+*.IPL4_PCO.debug := "NO" 
diff --git a/cfg/stability_leshan/leshan_basic_templates.cfg b/cfg/stability_leshan/leshan_basic_templates.cfg
new file mode 100644
index 0000000..27c0e5f
--- /dev/null
+++ b/cfg/stability_leshan/leshan_basic_templates.cfg
@@ -0,0 +1,43 @@
+[MODULE_PARAMETERS]

+tsp_EPTF_LwM2M_LGen_templates :=

+{

+  {

+    id := "t_LWM2M_SimDevice_FSM_register",

+    msg := 

+	{

+	  Register := 

+	  {

+	    endpointClientName := "eantwuh_SimDevice",

+	    lifetime := 30,

+		version := omit,

+	  	bindingMode := U,

+	  	smsNumber := omit,

+	  	objectsAndObjectInstances := {}

+	  }

+	}

+  },

+  {	

+    id := "t_LWM2M_SimDevice_FSM_update",

+	msg :=

+	{

+	  Update := 

+	  {

+	  	location := {},

+	  	lifetime := 30,

+	  	bindingMode := U,

+	  	smsNumber := omit,

+	  	objectsAndObjectInstances := {}

+	  }

+	}

+  },

+  {

+    id := "t_LWM2M_SimDevice_FSM_deregister",

+	msg :=

+	{

+	  Deregister :=

+	  {

+	    location := {}

+	  }

+	}

+  }

+}
\ No newline at end of file
diff --git a/src/Libraries/EPTF_Applib_COAP_CNL113858 b/src/Libraries/EPTF_Applib_COAP_CNL113858
new file mode 160000
index 0000000..14dd69f
--- /dev/null
+++ b/src/Libraries/EPTF_Applib_COAP_CNL113858
@@ -0,0 +1 @@
+Subproject commit 14dd69fc965caf72ead76b591cfae9bc94c628d4
diff --git a/src/Libraries/EPTF_Applib_HTTP_CNL113618 b/src/Libraries/EPTF_Applib_HTTP_CNL113618
new file mode 160000
index 0000000..57b6b2a
--- /dev/null
+++ b/src/Libraries/EPTF_Applib_HTTP_CNL113618
@@ -0,0 +1 @@
+Subproject commit 57b6b2ac52b13d88b9f6c7d1089160cefeea7d49
diff --git a/src/Libraries/EPTF_Applib_LWM2M_CNL113859 b/src/Libraries/EPTF_Applib_LWM2M_CNL113859
new file mode 160000
index 0000000..e8831cf
--- /dev/null
+++ b/src/Libraries/EPTF_Applib_LWM2M_CNL113859
@@ -0,0 +1 @@
+Subproject commit e8831cf49ea4bb19fce0e3b1e4f4488780e30e1c
diff --git a/src/Libraries/EPTF_Applib_MBT_CNL113659 b/src/Libraries/EPTF_Applib_MBT_CNL113659
new file mode 160000
index 0000000..78268e1
--- /dev/null
+++ b/src/Libraries/EPTF_Applib_MBT_CNL113659
@@ -0,0 +1 @@
+Subproject commit 78268e1580f7034bbd1b06550edf8ddf67b52f1f
diff --git a/src/Libraries/EPTF_Applib_MQTT_CNL113860 b/src/Libraries/EPTF_Applib_MQTT_CNL113860
new file mode 160000
index 0000000..e3a308b
--- /dev/null
+++ b/src/Libraries/EPTF_Applib_MQTT_CNL113860
@@ -0,0 +1 @@
+Subproject commit e3a308b81560ea7ddf6cb658b2eb5d962abdaae8
diff --git a/src/Libraries/EPTF_Core_Library_CNL113512 b/src/Libraries/EPTF_Core_Library_CNL113512
new file mode 160000
index 0000000..ca99b03
--- /dev/null
+++ b/src/Libraries/EPTF_Core_Library_CNL113512
@@ -0,0 +1 @@
+Subproject commit ca99b036d100e0d847a796b37ee77652703a86cf
diff --git a/src/Libraries/IoT_Functiontest_Framework b/src/Libraries/IoT_Functiontest_Framework
new file mode 160000
index 0000000..4b7cbeb
--- /dev/null
+++ b/src/Libraries/IoT_Functiontest_Framework
@@ -0,0 +1 @@
+Subproject commit 4b7cbeb80b47d67c105db65eebd448fdea268e76
diff --git a/src/Libraries/IoT_Loadtest_Framework b/src/Libraries/IoT_Loadtest_Framework
new file mode 160000
index 0000000..2a467af
--- /dev/null
+++ b/src/Libraries/IoT_Loadtest_Framework
@@ -0,0 +1 @@
+Subproject commit 2a467afcef8376383b50a2efd4d294ffdaa6ccba
diff --git a/src/Libraries/TCCUsefulFunctions_CNL113472 b/src/Libraries/TCCUsefulFunctions_CNL113472
new file mode 160000
index 0000000..27f76bb
--- /dev/null
+++ b/src/Libraries/TCCUsefulFunctions_CNL113472
@@ -0,0 +1 @@
+Subproject commit 27f76bb794af89f5ed9088317fc2e82247667f74
diff --git a/src/ProtocolModules/COMMON b/src/ProtocolModules/COMMON
new file mode 160000
index 0000000..9a52b8d
--- /dev/null
+++ b/src/ProtocolModules/COMMON
@@ -0,0 +1 @@
+Subproject commit 9a52b8dc609e18c193fbe4619aeb52d6c94e7922
diff --git a/src/ProtocolModules/CoAP_CNL113829 b/src/ProtocolModules/CoAP_CNL113829
new file mode 160000
index 0000000..f51e641
--- /dev/null
+++ b/src/ProtocolModules/CoAP_CNL113829
@@ -0,0 +1 @@
+Subproject commit f51e6415de7582d01bf725efdc5161d3533babd1
diff --git a/src/ProtocolModules/JSON_v07_2006_CNL113676 b/src/ProtocolModules/JSON_v07_2006_CNL113676
new file mode 160000
index 0000000..e35500b
--- /dev/null
+++ b/src/ProtocolModules/JSON_v07_2006_CNL113676
@@ -0,0 +1 @@
+Subproject commit e35500b27b65532cfbe71236bf13292071f8dedd
diff --git a/src/ProtocolModules/MQTT_v3.1.1_CNL113831 b/src/ProtocolModules/MQTT_v3.1.1_CNL113831
new file mode 160000
index 0000000..79bf722
--- /dev/null
+++ b/src/ProtocolModules/MQTT_v3.1.1_CNL113831
@@ -0,0 +1 @@
+Subproject commit 79bf722301ba5e2bb7da9a55de974c1beb1a8f5e
diff --git a/src/ProtocolModules/XTDP_CNL113663 b/src/ProtocolModules/XTDP_CNL113663
new file mode 160000
index 0000000..9461de5
--- /dev/null
+++ b/src/ProtocolModules/XTDP_CNL113663
@@ -0,0 +1 @@
+Subproject commit 9461de5d5b6821481fe1b537b293eda15f59ebf8
diff --git a/src/TestPorts/Common_Components/Abstract_Socket_CNL113384 b/src/TestPorts/Common_Components/Abstract_Socket_CNL113384
new file mode 160000
index 0000000..271fe0a
--- /dev/null
+++ b/src/TestPorts/Common_Components/Abstract_Socket_CNL113384
@@ -0,0 +1 @@
+Subproject commit 271fe0a55de9139b8510063e922174632e4df8f0
diff --git a/src/TestPorts/Common_Components/Socket_API_CNL113686 b/src/TestPorts/Common_Components/Socket_API_CNL113686
new file mode 160000
index 0000000..9e4ac13
--- /dev/null
+++ b/src/TestPorts/Common_Components/Socket_API_CNL113686
@@ -0,0 +1 @@
+Subproject commit 9e4ac13486f084e6eca74b976daf21b0028c44c1
diff --git a/src/TestPorts/HTTPmsg_CNL113312 b/src/TestPorts/HTTPmsg_CNL113312
new file mode 160000
index 0000000..df921b0
--- /dev/null
+++ b/src/TestPorts/HTTPmsg_CNL113312
@@ -0,0 +1 @@
+Subproject commit df921b00fb9ba907825bc8646c36a1eacdcb6ffa
diff --git a/src/TestPorts/IPL4asp_CNL113531 b/src/TestPorts/IPL4asp_CNL113531
new file mode 160000
index 0000000..aebef02
--- /dev/null
+++ b/src/TestPorts/IPL4asp_CNL113531
@@ -0,0 +1 @@
+Subproject commit aebef02419af81a81434738248d67981e7398a26
diff --git a/src/TestPorts/TELNETasp_CNL113320 b/src/TestPorts/TELNETasp_CNL113320
new file mode 160000
index 0000000..defacd4
--- /dev/null
+++ b/src/TestPorts/TELNETasp_CNL113320
@@ -0,0 +1 @@
+Subproject commit defacd420c5d267d79c26b989859edf0a96fb046