From 00245d74bad4193fb58dbe5c89e656985369f396 Mon Sep 17 00:00:00 2001
From: garciay <yann.garcia@fscom.fr>
Date: Thu, 4 Apr 2019 12:17:46 +0100
Subject: [PATCH] Validating Generic group

---
 LibOneM2M/OneM2M_Functions.ttcn     | 137 ++++++++++++++++++----------
 LibOneM2M/OneM2M_Pixits.ttcn        |  10 +-
 LibOneM2M/OneM2M_Templates.ttcn     |   8 +-
 LibOneM2M/OneM2M_TestSystem.ttcn    |   1 +
 OneM2M_Testcases_CSE_Release_1.ttcn |  40 ++------
 5 files changed, 104 insertions(+), 92 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 9d4c04e..a2c8aea 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -27,11 +27,12 @@ module OneM2M_Functions {
 		/**
 			@desc Ports mapping and default behaviour activation for Config 1
 		*/
-		function f_cf01Up(in boolean p_auxiliaryAe2Required := false) runs on AeSimu system AeSystem {
+		function f_cf01Up(in boolean p_auxiliaryAe2Required := false) runs on AeSimu system CseSystem {
 			
 			// Variables
       var charstring v_binding;
       var charstring v_binding_in;
+      var integer v_port := 0;
 			vc_config := e_cf01;
 			vc_testSystemRole := e_ae;	
 			
@@ -40,14 +41,18 @@ module OneM2M_Functions {
 			map(self:mcaPortIn, system:mcaPortIn) param (PX_TS_SETTINGS.AE1.mcaPortIn, PX_TS_SETTINGS.SUT.sutAddress);
 			map(self:acPort, system:acPort);
 			
-			if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.httpBindingDesc)) {
+			if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.httpBindingDesc)) { // FIXME Create a function to initialize vc_myInterfaces
 				v_binding := "HTTP";
+				v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.httpBindingDesc.bindingDesc.remotePort; // FIXME Use mcxPortyy.sutAddress if present instead of PX_TS_SETTINGS.SUT.sutAddress
 			} else if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.coapBindingDesc)) {
 				v_binding := "COAP";
+        v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.coapBindingDesc.bindingDesc.remotePort;
 			} else if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.mqttBindingDesc)) {
 				v_binding := "MQTT";
+        v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.mqttBindingDesc.bindingDesc.remotePort;
 			} else {
 				v_binding := "WSCK";
+        v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.wsBindingDesc.bindingDesc.remotePort;
 			}
       if (ischosen(PX_TS_SETTINGS.AE1.mcaPortIn.binding.httpBindingDesc)) {
         v_binding_in := "HTTP";
@@ -59,8 +64,8 @@ module OneM2M_Functions {
         v_binding_in := "WSCK";
       }
 			
-			vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPort.serialization)] };
-      vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPortIn.serialization)] };
+			vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPort.serialization)] };
+      vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPortIn.serialization)] };
 			
 			activate(a_default());
 			vc_aeSimu := activate(a_cse_cf01());
@@ -80,11 +85,12 @@ module OneM2M_Functions {
 		/**
 			@desc Ports mapping and default behaviour activation for Config 1 on the auxiliary AE2
 		*/
-		function f_cf01UpAe2() runs on AeSimu system AeSystem {
+		function f_cf01UpAe2() runs on AeSimu system CseSystem {
 			
 			// Variables
 			var charstring v_binding;
 			var charstring v_binding_in;
+      var integer v_port := 0;
 			vc_config := e_cf01;
 			vc_testSystemRole := e_ae;		
 			
@@ -95,12 +101,16 @@ module OneM2M_Functions {
 	
       if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.httpBindingDesc)) {
         v_binding := "HTTP";
+        v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.httpBindingDesc.bindingDesc.remotePort;
       } else if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.coapBindingDesc)) {
         v_binding := "COAP";
+        v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.coapBindingDesc.bindingDesc.remotePort;
       } else if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.mqttBindingDesc)) {
         v_binding := "MQTT";
+        v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.mqttBindingDesc.bindingDesc.remotePort;
       } else {
         v_binding := "WSCK";
+        v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.wsBindingDesc.bindingDesc.remotePort;
       }
       if (ischosen(PX_TS_SETTINGS.AE2.mcaPortIn.binding.httpBindingDesc)) {
         v_binding_in := "HTTP";
@@ -112,8 +122,8 @@ module OneM2M_Functions {
         v_binding_in := "WSCK";
       }
       
-      vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE2.mcaPort.serialization)] };
-      vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE2.mcaPortIn.serialization)] };
+      vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE2.mcaPort.serialization)] };
+      vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE2.mcaPortIn.serialization)] };
 
 			//Initialze the IUT
 							
@@ -122,10 +132,11 @@ module OneM2M_Functions {
 		/**
 		 * @desc Ports mapping and default behaviour activation for Config 02
 		 */
-		function f_cf02Up(in CseTypeID p_cseType := int2) runs on AeSimu system AeSystem {
+		function f_cf02Up(in CseTypeID p_cseType := int2) runs on AeSimu system CseSystem {
 				
 			// Variables
 			var charstring v_binding;
+      var integer v_port := 0;
 			vc_config := e_cf02;
 			vc_testSystemRole := e_ae;	
 			vc_cse1 := CseSimu.create("CSE1") alive;
@@ -136,15 +147,19 @@ module OneM2M_Functions {
 			
       if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.httpBindingDesc)) {
         v_binding := "HTTP";
+        v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.httpBindingDesc.bindingDesc.remotePort;
       } else if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.coapBindingDesc)) {
         v_binding := "HTTP";
+        v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.coapBindingDesc.bindingDesc.remotePort;
       } else if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.mqttBindingDesc)) {
         v_binding := "MQTT";
+        v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.mqttBindingDesc.bindingDesc.remotePort;
       } else {
         v_binding := "WSCK";
+        v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.wsBindingDesc.bindingDesc.remotePort;
       }
       
-      vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPort.serialization)] };
+      vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPort.serialization)] };
 			
 			if(PX_UT_IMPLEMENTED) {
 				map(self:utPort, system:utPort) param (PX_TS_SETTINGS.UT);
@@ -168,6 +183,7 @@ module OneM2M_Functions {
 			// Variables
       var charstring v_binding;
       var charstring v_binding_in;
+      var integer v_port := 0;
 			var PrimitiveContent v_cSEBaseResource;
 			vc_config := e_cf02;
 			vc_testSystemRole := e_cse;		
@@ -180,11 +196,15 @@ module OneM2M_Functions {
 			
       if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc)) {
         v_binding := "HTTP";
+        v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc.bindingDesc.remotePort;
       } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc)) {
         v_binding := "COAP";
+        v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc.bindingDesc.remotePort;
       } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc)) {
+        v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc.bindingDesc.remotePort;
         v_binding := "MQTT";
       } else {
+        v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.wsBindingDesc.bindingDesc.remotePort;
         v_binding := "WSCK";
       }
       if (ischosen(PX_TS_SETTINGS.CSE1.mccPortIn.binding.httpBindingDesc)) {
@@ -197,8 +217,8 @@ module OneM2M_Functions {
         v_binding_in := "WSCK";
       }
       
-      vc_myInterfaces[enum2int(e_mcc_port)] := { mccPort, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPort.serialization)] };
-      vc_myInterfaces[enum2int(e_mcc_in_port)] := { mccPortIn, v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPortIn.serialization)] };
+      vc_myInterfaces[enum2int(e_mcc_port)] := { mccPort, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPort.serialization)] };
+      vc_myInterfaces[enum2int(e_mcc_in_port)] := { mccPortIn, v_binding_in, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPortIn.serialization)] };
       
 			v_cSEBaseResource := f_generateLocalResource(-, -1, int5);
 			vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1);
@@ -215,6 +235,7 @@ module OneM2M_Functions {
 			// Variables
       var charstring v_binding;
       var charstring v_binding_in;
+      var integer v_port := 0;
 			var PrimitiveContent v_cSEBaseResource;
 			vc_config := e_cf02CseSimuMaster;
 			vc_testSystemRole := e_cse;	
@@ -230,15 +251,19 @@ module OneM2M_Functions {
 			map(self:mccPortIn, system:mccPortIn) param (PX_TS_SETTINGS.CSE1.mccPortIn, PX_TS_SETTINGS.SUT.sutAddress);
 			map(self:acPort, system:acPort);
 			
-      if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc)) {
-        v_binding := "HTTP";
-      } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc)) {
-        v_binding := "COAP";
-      } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc)) {
-        v_binding := "MQTT";
-      } else {
-        v_binding := "WSCK";
-      }
+			if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc)) {
+			  v_binding := "HTTP";
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc.bindingDesc.remotePort;
+			} else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc)) {
+			  v_binding := "COAP";
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc.bindingDesc.remotePort;
+			} else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc)) {
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc.bindingDesc.remotePort;
+			  v_binding := "MQTT";
+			} else {
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.wsBindingDesc.bindingDesc.remotePort;
+			  v_binding := "WSCK";
+			}
       if (ischosen(PX_TS_SETTINGS.CSE1.mccPortIn.binding.httpBindingDesc)) {
         v_binding_in := "HTTP";
       } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPortIn.binding.coapBindingDesc)) {
@@ -249,8 +274,8 @@ module OneM2M_Functions {
         v_binding_in := "WSCK";
       }
       
-			vc_myInterfaces[enum2int(e_mcc_port)] := { mccPort, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPort.serialization)] };
-			vc_myInterfaces[enum2int(e_mcc_in_port)] := { mccPortIn, v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPortIn.serialization)] };
+			vc_myInterfaces[enum2int(e_mcc_port)] := { mccPort, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPort.serialization)] };
+			vc_myInterfaces[enum2int(e_mcc_in_port)] := { mccPortIn, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPortIn.serialization)] };
 			
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf02_cse1());
@@ -266,11 +291,12 @@ module OneM2M_Functions {
 		/**
 			@desc Ports mapping and default behaviour activation for Config 2 on the AE1
 		*/
-		function f_cf02UpAe1(in CseTypeID p_cseType := int2) runs on AeSimu system AeSystem {
+		function f_cf02UpAe1(in CseTypeID p_cseType := int2) runs on AeSimu system CseSystem {
 			
 			// Variables
       var charstring v_binding;
       var charstring v_binding_in;
+      var integer v_port := 0;
 			vc_config := e_cf02CseSimuMaster;	
 			vc_testSystemRole := e_ae;	
 			
@@ -281,12 +307,16 @@ module OneM2M_Functions {
 			
 			if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.httpBindingDesc)) {
 			  v_binding := "HTTP";
+			  v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.httpBindingDesc.bindingDesc.remotePort;
 			} else if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.coapBindingDesc)) {
-			  v_binding := "COAP";
+			  v_binding := "HTTP";
+			  v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.coapBindingDesc.bindingDesc.remotePort;
 			} else if (ischosen(PX_TS_SETTINGS.AE1.mcaPort.binding.mqttBindingDesc)) {
 			  v_binding := "MQTT";
+			  v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.mqttBindingDesc.bindingDesc.remotePort;
 			} else {
 			  v_binding := "WSCK";
+			  v_port := PX_TS_SETTINGS.AE1.mcaPort.binding.wsBindingDesc.bindingDesc.remotePort;
 			}
 			if (ischosen(PX_TS_SETTINGS.AE1.mcaPortIn.binding.httpBindingDesc)) {
 			  v_binding_in := "HTTP";
@@ -298,8 +328,8 @@ module OneM2M_Functions {
 			  v_binding_in := "WSCK";
 			}
       
-			vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPort.serialization)] };
-			vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPortIn.serialization)] };
+			vc_myInterfaces[enum2int(e_mca_port)] := { mcaPort, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPort.serialization)] };
+			vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE1.mcaPortIn.serialization)] };
       
 			//Initialze the IUT
 							
@@ -308,11 +338,12 @@ module OneM2M_Functions {
 		/**
 		 * @desc Ports mapping and default behaviour activation for Config 03
 		 */
-		function f_cf03Up(in CseTypeID p_cseType := int2) runs on CseSimu system CseSystem {
+		function f_cf03Up(in CseTypeID p_cseType := int2) runs on CseSimu system AeSystem {
 		
 			// Variables
       var charstring v_binding;
 			var PrimitiveContent v_cSEBaseResource;
+      var integer v_port := 0;
 			vc_config := e_cf03;
 			vc_testSystemRole := e_cse;	
 			vc_cseType := p_cseType;	
@@ -325,17 +356,21 @@ module OneM2M_Functions {
 			map(self:mcaPortIn, system:mcaPortIn) param (PX_TS_SETTINGS.AE1.mcaPort, PX_TS_SETTINGS.SUT.sutAddress);//TODO To be consistent, we should use mcaPortIn for AE testing
 			map(self:acPort, system:acPort);
 			
-      if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.httpBindingDesc)) {
-        v_binding := "HTTP";
-      } else if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.coapBindingDesc)) {
-        v_binding := "COAP";
-      } else if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.mqttBindingDesc)) {
-        v_binding := "MQTT";
-      } else {
-        v_binding := "WSCK";
-      }
+			if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.httpBindingDesc)) {
+			  v_binding := "HTTP";
+			  v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.httpBindingDesc.bindingDesc.remotePort;
+			} else if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.coapBindingDesc)) {
+			  v_binding := "HTTP";
+			  v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.coapBindingDesc.bindingDesc.remotePort;
+			} else if (ischosen(PX_TS_SETTINGS.AE2.mcaPort.binding.mqttBindingDesc)) {
+			  v_binding := "MQTT";
+			  v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.mqttBindingDesc.bindingDesc.remotePort;
+			} else {
+			  v_binding := "WSCK";
+			  v_port := PX_TS_SETTINGS.AE2.mcaPort.binding.wsBindingDesc.bindingDesc.remotePort;
+			}
       
-			vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE2.mcaPortIn.serialization)] };
+			vc_myInterfaces[enum2int(e_mca_in_port)] := { mcaPortIn, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.AE2.mcaPortIn.serialization)] };
 			
 			if(PX_UT_IMPLEMENTED) {
 				map(self:utPort, system:utPort) param (PX_TS_SETTINGS.UT);
@@ -358,6 +393,7 @@ module OneM2M_Functions {
 			var charstring v_binding;
 			var charstring v_binding_in;
 			var PrimitiveContent v_cSEBaseResource;
+      var integer v_port := 0;
 			vc_config := e_cf04;
 			vc_testSystemRole := e_cse;	
 			vc_cseType := p_cseType;			
@@ -370,15 +406,19 @@ module OneM2M_Functions {
 			map(self:mccPortIn, system:mccPortIn) param (PX_TS_SETTINGS.CSE1.mccPortIn, PX_TS_SETTINGS.SUT.sutAddress);
 			map(self:acPort, system:acPort);
 			
-      if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc)) {
-        v_binding := "HTTP";
-      } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc)) {
-        v_binding := "COAP";
-      } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc)) {
-        v_binding := "MQTT";
-      } else {
-        v_binding := "WSCK";
-      }
+			if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc)) {
+			  v_binding := "HTTP";
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.httpBindingDesc.bindingDesc.remotePort;
+			} else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc)) {
+			  v_binding := "COAP";
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.coapBindingDesc.bindingDesc.remotePort;
+			} else if (ischosen(PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc)) {
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.mqttBindingDesc.bindingDesc.remotePort;
+			  v_binding := "MQTT";
+			} else {
+			  v_port := PX_TS_SETTINGS.CSE1.mccPort.binding.wsBindingDesc.bindingDesc.remotePort;
+			  v_binding := "WSCK";
+			}
       if (ischosen(PX_TS_SETTINGS.CSE1.mccPortIn.binding.httpBindingDesc)) {
         v_binding_in := "HTTP";
       } else if (ischosen(PX_TS_SETTINGS.CSE1.mccPortIn.binding.coapBindingDesc)) {
@@ -389,8 +429,8 @@ module OneM2M_Functions {
         v_binding_in := "WSCK";
       }
       
-      vc_myInterfaces[enum2int(e_mcc_port)] := { mccPort, v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPort.serialization)] };
-      vc_myInterfaces[enum2int(e_mcc_in_port)] := { mccPortIn, v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPortIn.serialization)] };
+      vc_myInterfaces[enum2int(e_mcc_port)] := { mccPort, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPort.serialization)] };
+      vc_myInterfaces[enum2int(e_mcc_in_port)] := { mccPortIn, PX_TS_SETTINGS.SUT.sutAddress & ":" & int2str(v_port), v_binding_in, c_serializationLabel[enum2int(PX_TS_SETTINGS.CSE1.mccPortIn.serialization)] };
       
 			activate(a_default());
 			vc_cseSimu := activate(a_cse_cf04());
@@ -5626,6 +5666,7 @@ module OneM2M_Functions {
 		) runs on Tester {
 			log(">>> f_send: ", p_interfaceIds);
 			
+			p_msgOut.host := vc_myInterfaces[enum2int(p_interfaceIds)].myHost;
 			p_msgOut.protocolBinding := vc_myInterfaces[enum2int(p_interfaceIds)].myProtocolBinding;
 			p_msgOut.serialization := vc_myInterfaces[enum2int(p_interfaceIds)].mySerialization;
 			log("f_send: protocolBinding=", p_msgOut.protocolBinding);
diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn
index c042ac9..0dcd835 100644
--- a/LibOneM2M/OneM2M_Pixits.ttcn
+++ b/LibOneM2M/OneM2M_Pixits.ttcn
@@ -36,11 +36,6 @@ module OneM2M_Pixits {
 			 */						
 			modulepar boolean PX_ASN_CSE:= false; 
 		
-			/**
-			 * @desc IUT IP address and port 
-			 */
-			modulepar charstring PX_SUT_ADDRESS := "127.0.0.1:8080";
-			
 			/**
 			 * @desc IUT Upper Tester interface support 
 			 */
@@ -137,7 +132,7 @@ module OneM2M_Pixits {
 								bindingDesc := {
 									tsAddress  := "192.168.56.102",
 									remotePort := omit,
-									localPort  := 3141,														// Test Adapter listener port (AeSimu acts as server)
+									localPort  := 3141,															// Test Adapter listener port (AeSimu acts as server)
 									sutAddress := omit
 								}
 							}
@@ -183,7 +178,8 @@ module OneM2M_Pixits {
 									bindingDesc := {
 										tsAddress := "192.168.56.102",
 										remotePort:= 9010,
-										localPort := 3031
+										localPort := 3031,
+										sutAddress := omit
 									}
 								}
 							},
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index a188318..60162e3 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -42,7 +42,7 @@ module OneM2M_Templates {
     	 */
     	template (value) MsgOut m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
     		primitive := { requestPrimitive := p_requestPrimitive},
-    		host := PX_SUT_ADDRESS,
+    		host := "",
     		xmlNamespace := PX_XML_NAMESPACE,
     		protocolBinding := "",
     		serialization := "", 
@@ -55,7 +55,7 @@ module OneM2M_Templates {
 		 */
 		template (value) MsgOut m_response(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
 			primitive := { responsePrimitive := p_responsePrimitive},
-			host := PX_SUT_ADDRESS,
+			host := "",
 			xmlNamespace := PX_XML_NAMESPACE,
 			protocolBinding := "",
 			serialization := "", 
@@ -68,9 +68,9 @@ module OneM2M_Templates {
 		 */
 		template (value) MsgOut m_httpResponse(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
 			primitive := { responsePrimitive := p_responsePrimitive},
-			host := PX_SUT_ADDRESS,
+			host := "",
 			xmlNamespace := PX_XML_NAMESPACE,
-			protocolBinding := "HTTP",
+			protocolBinding := "",
 			serialization := "", 
 			forcedFields := p_forcedFields
 		};
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index b510922..53545f3 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -32,6 +32,7 @@ module OneM2M_TestSystem {
   
   type record Interface {
 	  OneM2MPort myPort,
+	  charstring myHost,
 	  charstring myProtocolBinding,
 	  charstring mySerialization
   }
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index e58a3af..e4a16bf 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -5250,8 +5250,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
-						v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-						v_ae1.done;					
 						v_createRequest.primitiveContent.group_.labels := v_labels_1;//Attribute 3
 						v_updateRequest.primitiveContent.group_.expirationTime := "20301231T012345";//Attribute 1
 						v_updateRequest.primitiveContent.group_.groupName:= v_groupName_1;//Attribute 2
@@ -5915,8 +5913,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_UPD_010() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
 							
 					v_ae1.start(f_CSE_DMR_UPD_010());
 				  	  	
@@ -5990,8 +5986,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_UPD_011() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
 							
 					v_ae1.start(f_CSE_DMR_UPD_011());
 				  	  	
@@ -6073,8 +6067,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_UPD_012() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
 							
 					v_ae1.start(f_CSE_DMR_UPD_012());
 				  	  	
@@ -6158,8 +6150,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_UPD_013() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
 							
 					v_ae1.start(f_CSE_DMR_UPD_013());
 				  	  	
@@ -6513,12 +6503,10 @@ module OneM2M_Testcases_CSE_Release_1 {
 					
 					testcase TC_CSE_DMR_UPD_015_CSR_POA() runs on Tester system CseSystem {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var PoaList v_poaList := {"http://" & PX_AE2_ADDRESS & "/"};
+						var PoaList v_poaList := {f_getCompletePoA(PX_TS_SETTINGS.AE2.mcaPortIn)};
 					   var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
 					   var ResponsePrimitive v_responsePrimitive;
 					   var PrimitiveContent v_primitiveContentRetrieveResource;
-					   v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-						v_ae1.done;
 					   v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := v_poaList;
 
 					   v_ae1.start(f_CSE_DMR_UPD_015(int16, m_createRemoteCSEBase, v_updateRequest));//Remote CSE
@@ -6679,7 +6667,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					
 					testcase TC_CSE_DMR_UPD_015_AE_POA() runs on Tester system CseSystem {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var PoaList v_poaList := {"http://" & PX_AE2_ADDRESS & "/"};
+						var PoaList v_poaList := {f_getCompletePoA(PX_TS_SETTINGS.AE2.mcaPortIn)};
 						var template RequestPrimitive v_updateRequest := m_updateAeBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -7408,8 +7396,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
-						v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-						v_ae1.done;					
+						
 						v_updateRequest.primitiveContent.subscription.notificationURI := v_notificationURI;
 						
 						v_ae1.start(f_CSE_DMR_UPD_016(int23, m_createSubscriptionBase, v_updateRequest));//Subscription
@@ -7675,9 +7662,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_DEL_005() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
-							
+					
 					v_ae1.start(f_CSE_DMR_DEL_005());
 				  	  	
 					v_ae1.done;
@@ -7775,8 +7760,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_DEL_006() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
 							
 					v_ae1.start(f_CSE_DMR_DEL_006());
 				  	  	
@@ -7844,8 +7827,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_DEL_007() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
 							
 					v_ae1.start(f_CSE_DMR_DEL_007());
 				  	  	
@@ -7938,8 +7919,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 				testcase TC_CSE_DMR_DEL_009() runs on Tester system CseSystem {
 			
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-					v_ae1.done;
 							
 					v_ae1.start(f_CSE_DMR_DEL_009());
 				  	  	
@@ -10002,8 +9981,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						
 					var FilterCriteria v_filterCriteria := valueof(m_filterCriteria);
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-						v_ae1.done;
+					
 					v_filterCriteria.createdBefore := "20171231T012345";
 					v_filterCriteria.createdAfter := "20181231T012345";
 					v_filterCriteria.filterUsage := int1;
@@ -10019,8 +9997,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						
 					var FilterCriteria v_filterCriteria := valueof(m_filterCriteria);
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-						v_ae1.done;
+					
 					v_filterCriteria.unmodifiedSince := "20171231T012345";
 					v_filterCriteria.modifiedSince := "20181231T012345";
 					v_filterCriteria.filterUsage := int1;
@@ -10036,8 +10013,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						
 					var FilterCriteria v_filterCriteria := valueof(m_filterCriteria);
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-						v_ae1.done;
 					v_filterCriteria.stateTagSmaller := 1;
 					v_filterCriteria.stateTagBigger := 2;
 					v_filterCriteria.filterUsage := int1;
@@ -10053,8 +10028,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						
 					var FilterCriteria v_filterCriteria := valueof(m_filterCriteria);
-					v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1));
-						v_ae1.done;
+					
 					v_filterCriteria.expireBefore := "20171231T012345";
 					v_filterCriteria.expireAfter := "20181231T012345";
 					v_filterCriteria.filterUsage := int1;
-- 
GitLab