diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 6b6bbbf0db9f6f58a07f73a848a7f25603a8ff40..6b1657679d31dfe9c8868ce0d33be4daa06b0f3f 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -986,7 +986,16 @@ module OneM2M_Templates {
 				resourceType := int28, 
 				primitiveContent := {flexContainer := ?}
 			};  
-			
+
+			/**
+			 * @desc Base CREATE request primitive for GenericInterworkingService resource
+			 */
+			template (value) RequestPrimitive m_createGenericInterworkingServiceBase modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createGenericInterworkingService",
+				resourceType := int28,
+				primitiveContent := {genericInterworkingService := m_contentCreateGenericInterworkingService()}
+			};
+						
 			/**
 			 * @desc Reception template for CREATE GenericInterworkingOperationInstance
 			 */
@@ -1907,8 +1916,39 @@ module OneM2M_Templates {
 			aggregatedRequest := omit,//O
 			choice := omit//NP
 			
-		};    
+		};   
     	
+		/**
+		 * @desc Base primitiveContent for CREATE operation for GenericInterworkingService resource
+		 * @param p_accessControlPolicyIds ACP IDs for the PollingChannel
+		 * @param p_name Resource name
+		 */
+		template (value) GenericInterworkingService_optional m_contentCreateGenericInterworkingService (in template (omit) XSD.String p_name := c_defaultGenericInterworkingServiceResourceName, 
+																	in template (omit) AcpType p_accessControlPolicyIds := omit) := {
+			
+			resourceName := p_name,//O
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			accessControlPolicyIDs := p_accessControlPolicyIds,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit,//O
+			announceTo := omit,//O
+			announcedAttribute := omit,//O
+			stateTag := omit,//NP
+			creator := omit,//O
+			containerDefinition := "org.onem2m.genericInterworkingService",//M
+			ontologyRef := omit,//O
+			serviceName := "MyService",//M??
+			inputDataPointLinks := omit,//O
+			outputDataPointLinks := omit,//O		
+			choice := omit//NP
+			
+		};
+
     	/**
     	 * @desc Base primitiveContent for CREATE operation for Group resource
     	 * @param p_maxNrOfMembers Max number of members
@@ -4911,6 +4951,38 @@ module OneM2M_Templates {
 			choice := *//O
 		};	
 
+		/**
+		 * @desc Base primitiveContent for CREATE operation for GenericInterworkingService resource
+		 * @param p_accessControlPolicyIds ACP IDs for the PollingChannel
+		 * @param p_name Resource name
+		 */
+		template (value) GenericInterworkingService_invalid m_contentCreateGenericInterworkingService_invalid (in template (omit) XSD.String p_name := c_defaultGenericInterworkingServiceResourceName, 
+																	in template (omit) AcpType p_accessControlPolicyIds := omit) := {
+			
+			resourceName := p_name,//O
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			expirationCounter := 1,//Invalid attribute
+			labels := omit,//O
+			accessControlPolicyIDs := p_accessControlPolicyIds,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit,//O
+			announceTo := omit,//O
+			announcedAttribute := omit,//O
+			stateTag := omit,//NP
+			creator := omit,//O
+			containerDefinition := "org.onem2m.genericInterworkingService",//M
+			ontologyRef := omit,//O
+			serviceName := "MyService",//M??
+			inputDataPointLinks := omit,//O
+			outputDataPointLinks := omit,//O		
+			choice := omit//NP
+			
+		};
+
 		template (value) AE_update_invalid m_contentUpdateAe_invalid := {
 			resourceName := omit,//M
 			resourceType := omit,//M
diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn
index b2d6d5c40e372a525bdad25bfcc72f7301710eef..23ee6c7c1fa236ebc9c0343931ab4302436ed0f6 100644
--- a/LibOneM2M/OneM2M_Types.ttcn
+++ b/LibOneM2M/OneM2M_Types.ttcn
@@ -1720,6 +1720,7 @@ type union PrimitiveContent {
 	TimeSeriesInstance_optional timeSeriesInstance,
 	TimeSeriesAnnc_optional timeSeriesAnnc,
 	TimeSeriesInstanceAnnc_optional timeSeriesInstanceAnnc,
+	GenericInterworkingService_optional genericInterworkingService,
 	GenericInterworkingOperationInstance_optional genericInterworkingOperationInstance,
 	//SecurityInfo
 	SecurityInfo securityInfo,
@@ -1740,6 +1741,7 @@ type union PrimitiveContent {
 	AE_update_invalid aE_update_invalid,
 	ACP_update_invalid aCP_update_invalid,
 	Container_update_invalid container_update_invalid,
+	GenericInterworkingService_invalid genericInterworkingService_invalid,
 	Group_update_invalid group_update_invalid,
 	PollingChannel_update_invalid pollingChannel_update_invalid,
 	Schedule_update_invalid schedule_update_invalid,
@@ -7220,6 +7222,48 @@ group OptionalResourceTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
 
+	type record GenericInterworkingService_optional
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		ListOfURIs announceTo optional,
+		ListOfNCNames announcedAttribute optional,
+		XSD.NonNegativeInteger stateTag optional,
+		XSD.ID creator optional,
+		XSD.AnyURI containerDefinition optional,
+		XSD.AnyURI ontologyRef optional,
+		XSD.String serviceName optional,
+		ListOfDataLinks inputDataPointLinks optional,
+		ListOfDataLinks outputDataPointLinks optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record of union {
+				GenericInterworkingService genericInterworkingService,
+				GenericInterworkingOperationInstance genericInterworkingOperationInstance,
+				SemanticDescriptor semanticDescriptor,
+				Subscription subscription
+			} choice_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.choice_list) "untagged";
+	  variant (choice.choice_list[-]) "untagged";
+	};
+
 	type record GenericInterworkingOperationInstance_optional
 	{
 		ResourceName resourceName optional,
@@ -8343,6 +8387,49 @@ group InvalidTypes {
 	  variant (choice.choice_list[-]) "untagged";
 	};
 	          
+	type record GenericInterworkingService_invalid
+	{
+		ResourceName resourceName optional,
+		ResourceType resourceType optional,
+		XSD.ID resourceID optional,
+		NhURI parentID optional,
+		Timestamp creationTime optional,
+		Timestamp lastModifiedTime optional,
+		XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Container
+		Labels labels optional,
+		AcpType accessControlPolicyIDs optional,
+		Timestamp expirationTime optional,
+		ListOfURIs dynamicAuthorizationConsultationIDs optional,
+		ListOfURIs announceTo optional,
+		ListOfNCNames announcedAttribute optional,
+		XSD.NonNegativeInteger stateTag optional,
+		XSD.ID creator optional,
+		XSD.AnyURI containerDefinition optional,
+		XSD.AnyURI ontologyRef optional,
+		XSD.String serviceName optional,
+		ListOfDataLinks inputDataPointLinks optional,
+		ListOfDataLinks outputDataPointLinks optional,
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record of union {
+				GenericInterworkingService genericInterworkingService,
+				GenericInterworkingOperationInstance genericInterworkingOperationInstance,
+				SemanticDescriptor semanticDescriptor,
+				Subscription subscription
+			} choice_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (choice) "untagged";
+	  variant (choice.childResource_list) "untagged";
+	  variant (choice.childResource_list[-]) "name as 'childResource'";
+	  variant (choice.choice_list) "untagged";
+	  variant (choice.choice_list[-]) "untagged";
+	};
+
 	type record Group_update_invalid {
 		ResourceName resourceName optional,
 		ResourceType resourceType optional,
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index 61d58b175414a718c262451a7d9f1f393ce7e605..70504b7eafc1c6ae7af25b42925c614312e5a691 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -43,6 +43,7 @@ module OneM2M_TypesAndValues {
 	const XSD.String c_defaultTimeSeriesResourceName := "MyTimeSeriesResource";
 	const XSD.String c_defaultTimeSeriesAnncResourceName := "MyTimeSeriesAnncResource";
 	const XSD.String c_defaultTimeSeriesInstanceResourceName := "MyTimeSeriesInstanceResource";
+	const XSD.String c_defaultGenericInterworkingServiceResourceName := "MyGenericInterworkingServiceResource"; //<genericInterworkingService>
 	const XSD.ID c_aeAuxName := "MyAe";
 	const XSD.String c_defaultAE2Name := "MyAe2";
 	const XSD.String c_acpAuxName := "MyAcp";
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index b76fc37ce6ae623d4c55e8d46f93c65dd89084cc..1a4fa888438d8beece3cc4ca1d1684facd2f86c7 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -1032,6 +1032,27 @@ module OneM2M_Testcases_CSE_Release_2 {
 						}
 					}
 					
+					testcase TC_CSE_DMR_CRE_002_FLXC() runs on Tester system CseSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+						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_CRE_002(int28, m_createGenericInterworkingServiceBase));//Specialization of FlexContainer
+						v_ae1.done;	 
+							
+						if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							if(not ispresent(v_responsePrimitive.primitiveContent.genericInterworkingService.resourceName)){
+								setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided");
+							} else {
+								if(v_responsePrimitive.primitiveContent.flexContainer.resourceName != c_defaultGenericInterworkingServiceResourceName){
+									setverdict(fail, __SCOPE__, ": Error, resourceName attribute not correct");
+								}
+							}
+						}
+					}
+					
 				}// end group g_CSE_DMR_CRE_002
 				
 				group g_CSE_DMR_CRE_003 {
@@ -13896,6 +13917,357 @@ module OneM2M_Testcases_CSE_Release_2 {
 			}//end group timeSeries
 			
 		}//end group dataManagement
+		
+		group FlexContainer {
+					
+			group Create {
+			
+				/**
+				 * @desc Check that the IUT rejects the creation of the <flexContainer> resource when the resource representation does not comply with the schema definition. 
+				 * 
+				 */
+				testcase TC_CSE_FLXC_CRE_001() 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_FLXC_CRE_001());
+					v_ae1.done;
+								  	  		
+				}
+										
+				function f_CSE_FLXC_CRE_001() runs on AeSimu {
+					// Local variables
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request := m_create;
+					// Test control
+		
+					// Test component configuration
+					f_cf01Up();
+		
+					// Test adapter configuration
+		
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -);//AE1 is registred;
+					
+					v_request.primitiveContent := { genericInterworkingService_invalid := m_contentCreateGenericInterworkingService_invalid }; 
+					v_request := f_getCreateRequestPrimitive(int28, v_request, v_aeIndex);
+						
+					mcaPort.send(f_getMsgOutPrimitive(m_request(v_request)));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Creation of resource type 28 rejected correctly");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Creating resource type 28 with invalid representation");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type 28");
+						}
+					}
+					
+					//Check to see if the resource is NOT present
+					if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){
+					  setverdict(pass, __SCOPE__ & ":INFO: Resource not created");
+					} else {
+					  setverdict(fail, __SCOPE__ & ":ERROR: Resource created");
+					}
+				
+					// Postamble
+					f_cse_postamble_deleteResources();
+					
+					// Tear down
+					f_cf01Down();
+				} // end TC_CSE_FLXC_CRE_001
+				
+				/**
+				 * @desc Check that the IUT rejects the creation of the <flexContainer> resource when the IUT does not have the schema definition. 
+				 * 
+				 */
+				testcase TC_CSE_FLXC_CRE_002() 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_FLXC_CRE_002());
+					v_ae1.done;
+								  	  		
+				}
+										
+				function f_CSE_FLXC_CRE_002() runs on AeSimu {
+					// Local variables
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request;
+					// Test control
+		
+					// Test component configuration
+					f_cf01Up();
+		
+					// Test adapter configuration
+		
+					// Preamble
+					v_aeIndex := f_cse_preamble_registerAe(-, -);//AE1 is registred;
+					
+					v_request := m_createGenericInterworkingServiceBase;
+					v_request.primitiveContent.genericInterworkingService.containerDefinition := "org.onem2m.nonExistingDefinition";
+					v_request := f_getCreateRequestPrimitive(int28, v_request, v_aeIndex);
+						
+					mcaPort.send(f_getMsgOutPrimitive(m_request(v_request)));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Creation of resource type 28 rejected correctly");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Creating resource type 28 with invalid representation");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type 28");
+						}
+					}
+					
+					//Check to see if the resource is NOT present
+					if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){
+					  setverdict(pass, __SCOPE__ & ":INFO: Resource not created");
+					} else {
+					  setverdict(fail, __SCOPE__ & ":ERROR: Resource created");
+					}
+				
+					// Postamble
+					f_cse_postamble_deleteResources();
+					
+					// Tear down
+					f_cf01Down();
+				} // end TC_CSE_FLXC_CRE_002
+			
+				/**
+				 * @desc Check that the IUT increments the field value of attribute stateTag in the parent <flexContainer> resource when a resource is created as the direct child of the parent <flexContainer>
+				 * 
+				*/
+				testcase TC_CSE_FLXC_CRE_003() 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_FLXC_CRE_003());
+					v_ae1.done;
+					  	  		
+				}
+				
+				function f_CSE_FLXC_CRE_003() runs on AeSimu {
+					//Local variables
+					var integer v_aeIndex, v_acpAuxIndex := -1;
+					var integer v_resourceIndex := -1;
+					var RequestPrimitive v_req1;
+					var RequestPrimitive v_req2;
+					var RequestPrimitive v_req3;
+					var MsgIn v_resp1, v_resp3;
+					var ResponsePrimitive v_resp2;//Response to a Notify Request
+		
+					// Test control
+	
+	
+					// Test component configuration
+					f_cf02Up();
+	
+					// Test adapter configuration
+	
+					// Preamble
+					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase));
+					vc_cse1.done;
+		
+					v_acpAuxIndex := f_cse_preamble_createAcpAux();
+					
+				    v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//AE1 is registred;
+					
+					v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex);
+					 
+					v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
+					mcaPort.send(f_getMsgOutPrimitive(m_request(v_req1)));
+					
+					//v_req2 := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification));
+					v_req2 := valueof(m_notify(f_getResourceAddress(v_aeIndex)));
+					v_req2.requestExpirationTimestamp := {alt_1 := 15000};
+					
+					vc_cse1.start(f_cse_notifyProcedure_notify(v_req2));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePollingResponse(v_req2))) -> value v_resp1 {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Polling response received");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePollingResponse)) { 
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Content not carrying request targeting AE1");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { 
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while retrieving resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					 
+					f_checkAeSimuStatus();
+					
+					//Send response in any case
+					v_resp2 := valueof(m_responseNotification(int2000, omit));
+					v_resp2.requestIdentifier := v_resp1.primitive.responsePrimitive.primitiveContent.requestPrimitive.requestIdentifier;
+					v_req3 := valueof(m_notifyResponsePrimitive(f_getResourceAddress(v_resourceIndex) & "/" & c_resourceShortNamePollingChannelUri, v_resp2));
+					v_req3.from_ := f_getOriginator(v_aeIndex);
+					mcaPort.send(f_getMsgOutPrimitive(m_request(v_req3)));
+					 
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responseNotify(int2000))) -> value v_resp3 {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Polling response received");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__&":INFO: Error while performing notification");
+						}
+						[] mcaPort.receive {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__&":INFO: Unexpected message received");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__&":INFO: No answer while performing notification");
+						}
+					}
+					
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
+					
+					//Postamble
+	 			    f_cse_postamble_deleteResources();
+					
+					// Tear down
+					f_cf02Down();
+				}
+			
+			}//end of group Create
+			
+			group Update {
+				
+				/**
+				 * @desc Check that the IUT rejects the update of the <flexContainer> resource when the resource representation does not comply with the schema definition.
+				 * 
+				*/
+				testcase TC_CSE_FLXC_UPD_001() runs on Tester system CseSystem {
+			
+					var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+					
+					v_cse1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_CSE1));
+							v_cse1.done;
+					v_cse1.start(f_CSE_FLXC_UPD_001());
+					v_cse1.done;
+				}
+				
+				function f_CSE_FLXC_UPD_001() runs on CseSimu {
+					//Local variables
+				   	var integer v_localResourceIndex := -1;
+				   	var MsgIn v_request_req1, v_request_req3;
+				   	var RequestPrimitive v_request_req2;
+				   	var ResponsePrimitive v_response_rsp1;
+				   	var template UtTriggerPrimitive v_utRequest1 := m_utCreatePollingChannel;
+				  	var template UtTriggerPrimitive v_utRequest2;
+				   	var charstring v_action1 := "Please, send a Polling Channel CREATE request";
+				   	var charstring v_action2 := "Please, send a Polling request (Retrieve PollingChannelURI request)";
+				   	var RequestPrimitive v_requestNotify;
+				   
+				   	//Test control
+	
+	 			  	 // Test component configuration
+				   	f_cf02UpCseSimuMaster();
+	
+				   	// Test adapter configuration
+	
+				  	 // Preamble
+				   	vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase);
+				   
+				   	//send triggering primitive to SUT
+				   	v_localResourceIndex := f_cse_createLocalResource(v_utRequest1,v_action1);
+				   
+				  	//Check that the created resource is a PollingChannel
+				  	if(not(vc_localResourcesList[v_localResourceIndex].resourceType == int15)) {
+				  		setverdict(inconc, __SCOPE__&":INFO: Polling Channel resource not creaded");
+				  		f_checkCseSimuStatus();
+				  	}
+				   
+				   	//Trigger IUT for sending a polling request (req1)
+					v_utRequest2 := valueof(m_utRetrievePollingChannelUri(f_getLocalResourceAddress(v_localResourceIndex) & "/" & c_resourceShortNamePollingChannelUri));
+					f_sendUtPrimitive(v_utRequest2,v_action2);
+					
+					tc_ac.start;
+				   	alt {
+					   	[] mccPortIn.receive(mw_request(mw_retrieve(f_getResourceAddress(v_localResourceIndex) & "/" & c_resourceShortNamePollingChannelUri))) -> value v_request_req1 {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__&":INFO: Polling request received successfuly");
+							v_response_rsp1 := valueof(m_responsePrimitive(int2000,v_request_req1.primitive.requestPrimitive.requestIdentifier));
+							v_response_rsp1.from_ := PX_CSE1_ID;
+							v_response_rsp1.to_ := v_request_req1.primitive.requestPrimitive.from_;
+							//Put in the primitiveContent a Notify request (req2) (simulated) from another node CSE
+							v_request_req2 := valueof(m_notify(f_getResourceAddress(vc_remoteCseIndex)));
+							v_response_rsp1.primitiveContent := { requestPrimitive := v_request_req2 };
+							mccPortIn.send(f_getMsgOutPrimitive(m_response(v_response_rsp1)));
+					   }
+					   [] tc_ac.timeout {
+						   setverdict(inconc, __SCOPE__&":INFO: No request received for creating resource type Polling Channel");
+					   }
+					}
+					
+					tc_ac.start;
+					alt {
+						[] mccPortIn.receive(mw_request(mw_notifyResponsePrimitive(?))) -> value v_request_req3 {
+							tc_ac.stop;
+							//Check that primitiveContent carries the response to req2 (resp2)
+							if(v_request_req3.primitive.requestPrimitive.primitiveContent.responsePrimitive.requestIdentifier == v_request_req2.requestIdentifier) {
+								setverdict(pass, __SCOPE__ & ": NOTIFY request received carrying response (rsp2) to the Notify request (req2)");
+							} else {
+								setverdict(fail, __SCOPE__ & ": NOTIFY request received not carryng the expected response (rsp2) to the Notify request (req2)");
+							}
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No message while expecting NOTIFY request");
+						}
+					 }
+					
+					//Postamble
+					f_cse_postamble_deleteResourcesCSE();
+						
+				    // Tear down
+					f_cf02DownCseSimuMaster();
+				}
+			}//end of group Update
+									
+		}//end group FlexContainer
+
 	
 	}//end group CSE