diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index f260d46d1a9ee271631303f056686d41b8b16da1..06820fe7131f6fe8283e2f312b22fa587bf9c17b 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1628,7 +1628,9 @@ module OneM2M_Functions {
 					if(ischosen(p_createRequestPrimitive.primitiveContent.crossResourceSubscription)){
 						p_createRequestPrimitive.primitiveContent.crossResourceSubscription.notificationURI := {f_getResourceAddress(p_ae2Index)};
 					}
-					vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler(p_responseStatusCode));
+					if(PICS_SUBSCRIPTION_VERIFICATION) {
+						vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler(p_responseStatusCode));
+					}
 				}
 			}
 		
@@ -2151,7 +2153,9 @@ module OneM2M_Functions {
 				
 				f_checkAeSimuStatus();
 				
-				return v_retrievedResponse.primitive.responsePrimitive.primitiveContent;
+				vc_primitiveContentRetrievedResource := v_retrievedResponse.primitive.responsePrimitive.primitiveContent;
+				
+				return vc_primitiveContentRetrievedResource;
 				
 			}// end f_cse_retrieveResource	
 			
@@ -2716,7 +2720,8 @@ module OneM2M_Functions {
 					alt {
 						[] mcaPortIn.receive(mw_request(mw_notifyAggregatedNotification)) -> value vc_request {
 							tc_ac.stop;
-							if(p_numberOfAggregatedNotification == lengthof(vc_request.primitive.requestPrimitive.primitiveContent.aggregatedNotification.notification_list)){
+							v_notificationsReceived := lengthof(vc_request.primitive.requestPrimitive.primitiveContent.aggregatedNotification.notification_list);
+							if(p_numberOfAggregatedNotification == v_notificationsReceived){
 								if(f_check_notificationContent(vc_request.primitive.requestPrimitive, p_primitiveContent)){
 									setverdict(pass, __SCOPE__ & ": Notification received");
 								}
@@ -2751,9 +2756,13 @@ module OneM2M_Functions {
 							}
 						}
 						[] tc_ac.timeout {
+							if(v_notificationsReceived == 0) {
 							setverdict(fail, __SCOPE__ & ": No notification received");
+							} else {
+								setverdict(fail, __SCOPE__ & ": Not received the expected number of notifications");
 						}
 					}
+					}
 					
 				} //end f_cse_notifyProcedure_aggregatedNotificationHandler
 	    		
@@ -4137,8 +4146,11 @@ module OneM2M_Functions {
 						v_myResource.timeSeries.lastModifiedTime := v_myResource.timeSeries.creationTime;											
 						if(not(ispresent(p_resource.timeSeries.expirationTime))) {
 							v_myResource.timeSeries.expirationTime := "20301231T012345";
+						};
+						v_myResource.timeSeries.currentNrOfInstances := 0;
+						v_myResource.timeSeries.currentByteSize := 0;
+						v_myResource.timeSeries.missingDataDetect := false;
 						}
-					}				
 				} else if(p_resourceType == int30 and ispresent(p_resource)) { //TimeSeriesInstance
 					if(ischosen(p_resource.timeSeriesInstance)){
 						v_myResource.timeSeriesInstance := valueof(p_resource.timeSeriesInstance);
@@ -4474,6 +4486,8 @@ module OneM2M_Functions {
 					v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentGroup(m_contentCreateGroup(1, {"NotInitialized"}, omit, -, -, -, -, -)), -, int9);
 				} else if (p_resourceType == int10029) {
 					v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentTimeSeries(m_contentCreateTimeSeries), -, int29);
+				} else if (p_resourceType == int10030) {
+					v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentTimeSeriesInstance(m_contentCreateTimeSeriesInstance), -, int30);
 				}
 				if(v_originalResourceIndex != -1) {
 					p_requestPrimitive.primitiveContent := f_setLink(valueof(p_requestPrimitive.primitiveContent), f_getLocalResourceAddress(v_originalResourceIndex, -, e_spRelative));
@@ -5556,6 +5570,12 @@ module OneM2M_Functions {
 				if(match(valueof(p_request.primitiveContent.subscription.notificationURI), v_defaultListOfURIs )){
 					p_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(f_getResourceIndex(f_getOriginator(p_parentIndex)))};
 				}
+				//notificationForwardingURI
+				if(ispresent(p_request.primitiveContent.subscription.notificationForwardingURI)) {
+					if(match(valueof(p_request.primitiveContent.subscription.notificationForwardingURI), "NotInitialized" )){
+						p_request.primitiveContent.subscription.notificationForwardingURI := p_request.primitiveContent.subscription.notificationURI[0];
+					}
+				}
 				//subscriberURI
 				if(ispresent(p_request.primitiveContent.subscription.subscriberURI)) {
 					if(match(valueof(p_request.primitiveContent.subscription.subscriberURI), "NotInitialized" )){
@@ -6745,6 +6765,9 @@ module OneM2M_Functions {
 			else if (ischosen(p_resource.timeSeriesAnnc)){
 				p_resource.timeSeriesAnnc.link := p_link;
 			} 
+			else if (ischosen(p_resource.timeSeriesInstanceAnnc)){
+				p_resource.timeSeriesInstanceAnnc.link := p_link;
+			} 
 			else {
 				log( __SCOPE__, ":INFO: Resource not having link attribute. Not possible to set link")
 			}
@@ -6960,16 +6983,19 @@ module OneM2M_Functions {
 					}
 					[] tc_done.timeout {
 						setverdict(inconc, __SCOPE__ & "INFO: Component did not finish");
+						f_checkAeSimuStatus();
 					}
 				}			 
 				
+				if(v_verdict != none) {//Component started at least once (except config)
 				if(v_verdict == pass) {         // Component was successfully completed and got stopped state
 					setverdict(pass);
 				} else {
 					setverdict(inconc);            // Component was not completed successfully 
 				}
+				}
 				
-				//f_checkAeSimuStatus();
+				f_checkAeSimuStatus();
 			} 
 					
 			/**
@@ -6998,7 +7024,35 @@ module OneM2M_Functions {
 					setverdict(inconc);            // Component was not completed successfully 
 				}
 				
-				//f_checkCseSimuStatus();
+				f_checkCseSimuStatus();
+			} 
+
+			/**
+			 * @desc Sending of an Adapter Control primitive
+			 * @param event Action to be performed by TA
+			 * @param data Corresponding information for the correct execution of the given action
+			 * @verdict 
+			 */
+			function f_scefSimu_checkComponentDoneAndGetVerdict(Tester p_component) runs on ScefSimu {
+				
+				var verdicttype v_verdict := none;
+	
+				tc_done.start;
+				alt {
+					[] p_component.done -> value v_verdict {
+						tc_done.stop;
+					}
+					[] tc_done.timeout {
+						setverdict(inconc, __SCOPE__ & "INFO: Component did not finish");
+					}
+				}			 
+				
+				if(v_verdict == pass) {         // Component was successfully completed and got stopped state
+					setverdict(pass);
+				} else {
+					setverdict(inconc);            // Component was not completed successfully 
+				}
+				
 			} 
 
 		}//end of group ComponentStatus
diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn
index 1ac46932506c1e68b0dc371193314063a8453b9a..4c19c4118f1c7b9ff86631b53fc213c8e29560ec 100644
--- a/LibOneM2M/OneM2M_Pixits.ttcn
+++ b/LibOneM2M/OneM2M_Pixits.ttcn
@@ -170,7 +170,7 @@ module OneM2M_Pixits {
 			 * @desc Test System settings
 			 */			
 			modulepar AeSimuComponentDesc PX_TS_AE1 := { // AE1 component settings
-				aeIdStem := "",
+				aeIdStem := omit,
 				appId := "NMyApp1Id",
 				mcaPort := {
 					binding := {
@@ -206,7 +206,7 @@ module OneM2M_Pixits {
 				}
 			};
 			modulepar AeSimuComponentDesc PX_TS_AE2 := { // AE2 component settings
-				aeIdStem := "",
+				aeIdStem := omit,
 				appId := "NMyApp2Id",
 				mcaPort := {
 					binding := {
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index d2cf29806ce53410ad67b571c812fc11d81c53d5..1b1183e9a1e540e3b1a5b415d2d31b1cda6933b8 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -2822,7 +2822,14 @@ module OneM2M_Templates {
 				resourceType := int13, 
 				primitiveContent := {deviceInfo := ?}
 			};
-						
+			/**
+			 * @desc Base CREATE request primitive for TriggerRequest Resource
+			 */
+			template (value) RequestPrimitive m_createTriggerRequest modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createTriggerRequest",
+				resourceType := int47,
+				primitiveContent := {triggerRequest := m_contentTriggerRequest}
+			};			
 			/**
 			 * @desc Base Reception template for CREATE DynamicAuthorizationC
 			 */
@@ -6105,6 +6112,29 @@ module OneM2M_Templates {
 			choice 					:= omit //O
 		};
 		
+			template (value) TriggerRequest_optional m_contentTriggerRequest := {
+			resourceName 			:= "MyTriggerRequestResource", //O
+			resourceType 			:= omit, //M
+			resourceID 			:= omit, //M
+			parentID 			:= omit, //M
+			creationTime 			:= omit, //M
+			lastModifiedTime 		:= omit, //M
+			labels 				:= omit, //O
+			accessControlPolicyIDs 		:= omit, //O
+			expirationTime 			:= omit, //M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			m2M_Ext_ID 			:= omit, //M,
+			trigger_Recipient_ID 		:= omit, //M,
+			triggerPurpose 			:= omit, //O,
+			triggerStatus 			:= omit, //O,
+			triggerValidityTime 		:= omit, //M,
+			triggerInfoAE_ID 		:= omit, //O,
+			triggerInfoAddress 		:= omit, //O,
+			triggerInfoOperation 		:= omit, //O,
+			targetedResourceType 		:= omit, //O,
+			triggerReference 		:= omit,	 //O,			
+			choice := omit //NP
+		};
 		template (value) ServiceSubscribedNode_optional m_contentServiceSubscribedNodeBase (in ListOfURIs p_ruleLinks, in NodeID p_nodeID, in template (omit) XSD.ID p_cseId) := {
 			resourceName 			:= "MyServiceServiceSubscribedNodeResource-With-NodeID", //O
 			resourceType 			:= omit, //M
@@ -11863,7 +11893,7 @@ module OneM2M_Templates {
 				queryParameters     := p_queryParameters
 			} // End of template mw_uri_3gpp_nidd
 			
-			template (omit) OneM2M_Types_3GPP_T8.URI m_uri_3gpp_device_triggering(
+			template (value) OneM2M_Types_3GPP_T8.URI m_uri_3gpp_device_triggering(
 																																						in charstring p_apiRoot := "/",
 																																						in template (omit) charstring p_apiSpecificSuffixes := omit,
 																																						in template (omit) OneM2M_Types_3GPP_T8.URI.queryParameters p_queryParameters := omit
@@ -11882,9 +11912,9 @@ module OneM2M_Templates {
 		
 		group t8_request {
 			
-			template (omit) T8Request m_t8_request_get(
+			template (value) T8Request m_t8_request_get(
 																								in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
-																								in template (value) RequestHeaders p_requestHeaders,
+																								in template (omit) RequestHeaders p_requestHeaders := omit,
 																								in template (omit) RequestBodyT8 p_requestBody := omit
 																								) := {
 				resourceMethod := GET,
@@ -11893,9 +11923,9 @@ module OneM2M_Templates {
 				requestBody    := p_requestBody
 			} // End of template m_t8_request_get
 			
-			template (omit) T8Request m_t8_request_post(
+			template (value) T8Request m_t8_request_post(
 																									in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri,
-																									in template (value) RequestHeaders p_requestHeaders,
+																									in template (omit) RequestHeaders p_requestHeaders := omit,
 																									in template (omit) RequestBodyT8 p_requestBody := omit
 																									) modifies m_t8_request_get := {
 				resourceMethod := POST
@@ -11972,8 +12002,8 @@ module OneM2M_Templates {
 		
 			group t8_response {
 				
-				template (omit) T8Response m_t8_response_200_ok(
-																												in template (value) ResponseHeaders p_responseHeaders,
+			template (value) T8Response m_t8_response_200_ok(
+																											in template (omit) ResponseHeaders p_responseHeaders := omit,
 																												in template (omit) ResponseBody p_responseBody := omit
 																												) := {
 					responseCode    := 200,
@@ -11990,8 +12020,8 @@ module OneM2M_Templates {
 					responseBody    := p_responseBody
 				} // End of template mw_t8_response_200_ok
 				
-				template (omit) T8Response m_t8_response_201_created(
-																														in template (value) ResponseHeaders p_responseHeaders,
+			template (value) T8Response m_t8_response_201_created(
+																													in template (omit) ResponseHeaders p_responseHeaders:= omit,
 																														in template (omit) ResponseBody p_responseBody := omit
 																														) modifies m_t8_response_200_ok := {
 					responseCode    := 201
@@ -12184,14 +12214,38 @@ module OneM2M_Templates {
 																																										) := {
 					individualDeviceTriggeringTransaction := p_deviceTriggeringTransaction
 				} // End of template mw_response_body_individualDeviceTriggering
+			template (value) DeviceTriggering m_deviceTriggering_response_delieveryResult(
+																																			in template (value) DeliveryResult p_deliveryResult,
+																																			in template (value) charstring p_self_,
+																																			in template (value) DurationSec p_validityPeriod := 0,
+																																			in template (value) Priority p_priority := NO_PRIORITY,
+																																			in template (omit) ExternalId p_externalId := omit,
+																																			in template (value) Port p_applicationPortId := 8181,
+																																			in template (value) Bytes p_triggerPayload := "NotInitialized",
+																																			in template (value) Link p_notificationDestination := "NotInitialized"
+																																			) := {
+				self_                   := p_self_,
+				externalId              := p_externalId,
+				msisdn                  := omit,
+				supportedFeatures       := omit,
+				validityPeriod          := p_validityPeriod,
+				priority                := p_priority,
+				applicationPortId       := p_applicationPortId,
+				appSrcPortId            := omit,
+				triggerPayload          := p_triggerPayload,
+				notificationDestination := p_notificationDestination, 
+				requestTestNotification := omit,
+				websockNotifConfig      := omit,
+				deliveryResult          := p_deliveryResult
+			} // End of template m_deviceTriggering_response_delieveryResult
 				
 				template (value) DeviceTriggering m_deviceTriggering_externalId(
 																																				in template (value) ExternalId p_externalId,
 																																				in template (value) DurationSec p_validityPeriod := 0,
 																																				in template (value) Priority p_priority := NO_PRIORITY,
-																																				in template (value) Port p_applicationPortId,
-																																				in template (value) Bytes p_triggerPayload,
-																																				in template (value) Link p_notificationDestination
+																																			in template (value) Port p_applicationPortId := 8181,
+																																			in template (value) Bytes p_triggerPayload := "NotInitialized",
+																																			in template (value) Link p_notificationDestination := "NotInitialized"
 																																				) := {
 					self_                   := omit,
 					externalId              := p_externalId,
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index 0bc205450e8b2f57f8d4734df3e1fe374e270c74..985ae4789d963f27ddd8400608013a43b593d875 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -2385,6 +2385,50 @@ group OptionalResourceTypes {
 	  variant (choice.choice_list) "untagged";
 	  variant (choice.choice_list[-]) "untagged";
 	};
+type record TriggerRequest_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,
+		ExternalID m2M_Ext_ID optional,
+		TriggerRecipientID trigger_Recipient_ID optional,
+		TriggerPurpose triggerPurpose optional,
+		TriggerStatus triggerStatus optional,
+		XSD.Duration triggerValidityTime optional,
+		XSD.ID triggerInfoAE_ID optional,
+		XSD.AnyURI triggerInfoAddress optional,
+		Operation triggerInfoOperation optional,
+		ResourceType targetedResourceType optional,
+		XSD.String triggerReference optional,
+
+		union {
+			record length(1 .. infinity) of ChildResourceRef childResource_list,
+			record length(1 .. infinity) of union {
+				Subscription subscription,
+				Transaction transaction
+			} choice_list
+		} choice optional
+	}
+	with {
+	  variant "name as uncapitalized";
+	  variant "element";
+	  variant (resourceName) "attribute";
+	  variant (m2M_Ext_ID) "name as 'M2M-Ext-ID'";
+	  variant (trigger_Recipient_ID) "name as 'Trigger-Recipient-ID'";
+ 	  variant (triggerInfoAE_ID) "name as 'triggerInfoAE-ID'";
+	  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 ServiceSubscribedUserProfile_optional {
 		ResourceName resourceName optional,
@@ -5175,6 +5219,7 @@ group OtherTypes {
 	M2mServiceSubscriptionProfile_optional m2mServiceSubscriptionProfile,
 	ServiceSubscribedAppRule_optional serviceSubscribedAppRule,
 	ServiceSubscribedNode_optional serviceSubscribedNode,
+	TriggerRequest_optional triggerRequest,
 	ServiceSubscribedUserProfile_optional serviceSubscribedUserProfile,
 	Subscription_optional subscription,
 	SemanticDescriptor_optional semanticDescriptor,
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 37dbdb117a40312c03122f8653226e0e352a7bd1..1d076fb2fe402792a513c7558c51781d573bda08 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -11,6 +11,7 @@
  */
 module OneM2M_PermutationFunctions {
 
+	import from OneM2M_Types_3GPP_T8 all;
 	import from OneM2M_TestSystem all;
 	import from OneM2M_Templates all;
 	import from OneM2M_Types all;//{type XSD.ID};
@@ -3127,9 +3128,7 @@ module OneM2M_PermutationFunctions {
 						}
 						v_parentIndex := f_cse_createResource(valueof(v_parentRequestPrimitive.resourceType), v_parentRequestPrimitive, v_parentIndex);
 						
-						if(vc_ae2.running) {
-							vc_ae2.stop;
-						}
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 						
 					} else {//Resource under CSEBase
 					
@@ -3177,7 +3176,7 @@ module OneM2M_PermutationFunctions {
 						}
 					}
 					
-					f_checkAeSimuStatus();
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 								
 					//Check to see if the resource is present or not
 					if (f_cse_isResourcePresent(v_resourceIndex)){
@@ -3325,7 +3324,7 @@ module OneM2M_PermutationFunctions {
 						}
 					}
 								
-					f_checkAeSimuStatus();
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 						
 					//Check to see if the resource is present or not
 					if(f_cse_isResourcePresent(v_resourceIndex)){
@@ -3381,11 +3380,10 @@ module OneM2M_PermutationFunctions {
 					v_request.requestIdentifier := "Existing resource";
 						
 					if(p_resourceType == int23){
-						if(vc_ae2.running) {
-							f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+							if(PICS_SUBSCRIPTION_VERIFICATION) {
+								vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler());
+							}
 						}
-						vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler());
-					}
     					
 					f_send(e_mcaPort, m_request(v_request));
 					tc_ac.start;
@@ -3807,7 +3805,7 @@ module OneM2M_PermutationFunctions {
 						}
 					}
 								
-					f_checkAeSimuStatus();
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);	
 						
 					//Check to see if the resource is present or not
 					if(f_cse_isResourcePresent(v_resourceIndex)) {
@@ -4527,6 +4525,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
     								
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+							
 					// Postamble
 					f_cse_postamble_deleteResources();
 						
@@ -6118,6 +6118,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
     								
+						f_checkAeSimuStatus();
+						
 					//Used to check that the resource has been updated
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
 									
@@ -6182,6 +6184,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
     								
+						f_checkAeSimuStatus();
+						
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
 									
 					// Postamble
@@ -6244,6 +6248,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
     								
+					f_checkAeSimuStatus();
+									
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
 									
 					// Postamble
@@ -6315,6 +6321,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
     								
+						f_checkAeSimuStatus();
+						
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
     								
 					// Postamble
@@ -6375,6 +6383,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
     								
+						f_checkAeSimuStatus();
+						
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
 									
 					// Postamble
@@ -6435,6 +6445,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
     								
+						f_checkAeSimuStatus();
+						
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
 									
 					// Postamble
@@ -6750,6 +6762,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
 					  
+						f_checkAeSimuStatus();
+						
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
 
 					//Postamble
@@ -6860,6 +6874,8 @@ module OneM2M_PermutationFunctions {
 						}
 					}
 						
+						f_checkAeSimuStatus();
+						
 					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
 						
 					//Postamble
@@ -7100,13 +7116,13 @@ module OneM2M_PermutationFunctions {
 						v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex);
 					}
 						
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+						
 					// Test Body
 					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
 					v_request.resultContent := int0;//Nothing
 					if(valueof(p_childResourceType) == int23) {
-						if (vc_ae2.running) {
-							vc_ae2.stop;
-						}
+
 						vc_ae2.start(f_cse_notifyProcedure_defaultHandler());
 					}
 					f_send(e_mcaPort, m_request(v_request));
@@ -7179,13 +7195,13 @@ module OneM2M_PermutationFunctions {
 						v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex);
 					}
 						
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
 					v_request.resultContent := int1;//Attributes
 					if(valueof(p_childResourceType) == int23) {
-						if (vc_ae2.running) {
-							vc_ae2.stop;
-						}
+							
 						vc_ae2.start(f_cse_notifyProcedure_defaultHandler());
 					}
 					f_send(e_mcaPort, m_request(v_request));
@@ -7258,13 +7274,13 @@ module OneM2M_PermutationFunctions {
 						v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex);
 					}
 						
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
 					v_request.resultContent := int9;//Modified Attributes
 					if(valueof(p_childResourceType) == int23) {
-						if (vc_ae2.running) {
-							vc_ae2.stop;
-						}
+							
 						vc_ae2.start(f_cse_notifyProcedure_defaultHandler());
 					}
 					f_send(e_mcaPort, m_request(v_request));
@@ -7334,13 +7350,12 @@ module OneM2M_PermutationFunctions {
                 												
 					v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex);
                 												
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+						
 					// Test Body
 					if(p_resourceType == int23) {
-						if (vc_ae2.running) {
-							vc_ae2.stop;
+							vc_ae2.start(f_cse_notifyProcedure_defaultHandler());
 						}
-						vc_ae2.start(f_cse_notifyProcedure_noNotificationHandler());
-					}
 						
 					v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 						                		
@@ -12860,10 +12875,11 @@ module OneM2M_PermutationFunctions {
 					var integer v_aeIndex := -1;
 					var integer v_remoteCSEIndex := -1;
 					var integer v_originalResourceIndex := -1;
-					var integer v_cseBaseAnncIndex := -1;
+					var integer v_parentAnncIndex := -1;
 					var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress;
 					var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit);
 					var template RequestPrimitive v_createAcp := m_createAcpBase;
+					var template RequestPrimitive v_parentAnncResource;
 					var XSD.ID v_resourceAnncAddress;
 					var integer v_acpIndex;
 					
@@ -12888,15 +12904,28 @@ module OneM2M_PermutationFunctions {
 					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -, -, -, {f_getLocalPoA()})));
 				    f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 
-					if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) {
+					if((p_resourceType != int1) and (p_resourceType != int4) and (p_resourceType != int30)) {
 						p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)});
 					}
 					
 					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
-					v_cseBaseAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1);
 					//Creating announced resource (original resource in CSE1) in Hosting CSE
-					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_cseBaseAnncIndex));
+					if(p_resourceType == int4){//Create both original and announced parent resource for contentInstance
+						v_parentAnncResource := m_createContainerAnncBase;
+						v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)});
+						vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int3), v_parentAnncResource, v_parentAnncIndex));
+				    f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
+						v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					} else if (p_resourceType == int30){//Create both original and announced parent resource for timeSeriesInstance
+						v_parentAnncResource := m_createTimeSeriesAnncBase;
+						v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)});
+						vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int29), v_parentAnncResource, v_parentAnncIndex));
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
+						v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					}
+					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_parentAnncIndex));
 				    f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -);
@@ -12937,13 +12966,14 @@ module OneM2M_PermutationFunctions {
 					var integer v_aeIndex := -1;
 					var integer v_remoteCSEIndex := -1;
 					var integer v_originalResourceIndex := -1;
-					var integer v_cseBaseAnncIndex := -1;
+					var integer v_parentAnncIndex := -1;
 					var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress;
 					var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit);
 					var template RequestPrimitive v_createAcp := m_createAcpBase;
 					var XSD.ID v_resourceAnncAddress;
 					var integer v_acpIndex;
 					var RequestPrimitive v_request;
+					var template RequestPrimitive v_parentAnncResource;
 					
 					// Test control
 
@@ -12972,13 +13002,27 @@ module OneM2M_PermutationFunctions {
 					
 					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
-					v_cseBaseAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					//Creating announced resource (original resource in CSE1) in Hosting CSE
+					if(p_resourceType == int4){//Create both original and announced parent resource for contentInstance
+						v_parentAnncResource := m_createContainerAnncBase;
+						v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)});
+						vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int3), v_parentAnncResource, v_parentAnncIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
+						v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					} else if (p_resourceType == int30){//Create both original and announced parent resource for timeSeriesInstance
+						v_parentAnncResource := m_createTimeSeriesAnncBase;
+						v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)});
+						vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int29), v_parentAnncResource, v_parentAnncIndex));
+						f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
+						v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1);
+					}
 					//Creating announced resource (original resource in CSE1) in Hosting CSE
-					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_cseBaseAnncIndex));
+					vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_parentAnncIndex));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 					
 					v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -);
-					v_originalResourceIndex := f_getLatestLocalResource(vc_cse1);
+					v_originalResourceIndex := f_getLatestLocalResourceIndex(vc_cse1);
 					
 					// Test Body
 					vc_cse1.start(f_cse_retrieveResourceHandler(v_originalResourceIndex, -, -));
@@ -14423,7 +14467,7 @@ module OneM2M_PermutationFunctions {
 						var template PrimitiveContent v_contentResponseUri;
 						var template PrimitiveContent v_contentResponseRequestResource;
 						var RequestStatus v_requestStatus;
-						var URI v_requestResourceURI;
+					var OneM2M_Types.URI v_requestResourceURI;
 						var ResponseStatusCode v_statusCode;
 						var RequestID v_requestIdentifier;
 						var template PrimitiveContent v_primitiveContent;
@@ -14942,7 +14986,218 @@ module OneM2M_PermutationFunctions {
 			}//end group Non_Blocking_Requests
 	
 		}//end of group Response_Type
+	group Interworking_3GPP {
 	
+		group device_trigerring {
+
+			function f_CSE_3GPP_TRIG_001(in TriggerPurpose p_triggerPurpose, in template (value) Bytes p_triggerPayload ) runs on ScefSimu system ScefSystem {
+
+					var integer v_aeIndex := -1;
+					
+					var RequestPrimitive v_request;
+					
+					//{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions
+					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"));
+									
+					var template T8Request v_requestPrimitive;
+
+					var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, p_triggerPayload, "link");
+					var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering};
+					
+					var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest;
+					
+					v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := p_triggerPurpose; 	//TriggerPurpose                   TriggerPayload            
+																//int1 establishConnection ---> resource address of the <remoteCSE> or <AE>
+																//int2 registrationRequest ---> the resource address (triggerInfoAddress) of the <MEFBase>
+																//int3 executeCRUD         ---> the resource address (triggerInfoAddress) of the <cseBase>
+																//int4 enrolmentRequest    ---> the type of CRUDN operation (triggerInfoOperation), the address of the resource that the operation should be performed on (triggerInfoAddress) and the resource type (targetedResourceType)
+
+					
+					// Test component configuration
+					f_cf05Up();
+										
+					// Test Body
+					
+					// Register AE1
+					vc_ae1.start(f_cse_preamble_registerAe());
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
+
+					// TriggerRequest under AE
+					vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex));
+					
+					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -,  v_3GPPDeviceTriggeringRequest);
+
+					tc_ac.start;
+					alt{
+						[] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": 3GPP Device Triggering received.");
+						}
+						[] mcnPortIn.receive(mw_t8Request(?)){
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Other operation received");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer");
+						}
+					}
+					
+					// Postamble: NOTE This needs to be done.
+					//f_cse_postamble_deleteResourcesCSE();
+					
+					//Tear Down
+					f_cf05Down();
+				} // end of function f_CSE_3GPP_TRIG_001
+
+				function f_CSE_3GPP_TRIG_004(in TriggerStatus p_triggerStatus, in template (value) DeliveryResult p_deliveryResult) runs on ScefSimu system ScefSystem{
+
+					var integer v_aeIndex := -1, v_triggerRequestIndex := -1;
+					var PrimitiveContent v_contentTriggerRequest;
+					var RequestPrimitive v_request;
+					
+					//{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions
+					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"));
+									
+					var template T8Request v_requestPrimitive;
+
+					var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link");
+					var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering};
+
+					var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(p_deliveryResult, "URI to the resource created by the SCEF",-,-,-,-,-,-);
+					
+					var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest;
+					
+					v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection
+																
+					// Test component configuration
+					f_cf05Up();
+						
+					//Preamble
+					
+					// Register AE1
+					vc_ae1.start(f_cse_preamble_registerAe());
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
+
+					// TriggerRequest under AE
+					vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1);
+
+					//IUT sent a 3GPP Device Trigger Request
+					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -,  v_3GPPDeviceTriggeringRequest);		
+					mcnPortIn.receive(mw_t8Request(v_requestPrimitive));					
+
+					// Test Body		
+					
+					// SCEF sends Device Triggering response 				
+					mcnPort.send(m_t8Response(m_t8_response_201_created(-, m_response_body_individualDeviceTriggering(valueof(v_deviceTriggeringResponse)))));	
+					
+					// Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to p_triggerStatus
+					vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1);
+					
+					if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), p_triggerStatus))) {
+						setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set correctly");
+					} else {
+						setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content.");
+					}
+							
+					// Postamble: NOTE This needs to be done.
+					//f_cse_postamble_deleteResourcesCSE();
+							
+					//Tear Down
+					f_cf05Down();
+				} // end of function f_CSE_3GPP_TRIG_004
+				
+
+				function f_CSE_3GPP_TRIG_005(in TriggerStatus p_triggerStatus, in template (value) DeliveryResult p_deliveryResult) runs on ScefSimu system ScefSystem{
+
+					var integer v_aeIndex := -1, v_triggerRequestIndex := -1;
+					var PrimitiveContent v_contentTriggerRequest;
+					var RequestPrimitive v_request;
+					
+					//{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions
+					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"));
+									
+					var template T8Request v_requestPrimitive;
+
+					var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination");
+					var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering};
+
+					var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(p_deliveryResult, "URI to the resource created by the SCEF",-,-,-,-,-,-);
+					
+					var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest;
+					
+					v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection
+																
+					// Test component configuration
+					f_cf05Up();
+						
+					//Preamble
+					
+					// Register AE1
+					vc_ae1.start(f_cse_preamble_registerAe());
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
+
+					// TriggerRequest under AE
+					vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1);
+
+					//IUT sent a 3GPP Device Trigger Request
+					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -,  v_3GPPDeviceTriggeringRequest);		
+					mcnPortIn.receive(mw_t8Request(v_requestPrimitive));					
+
+					// Test Body		
+					
+					// SCEF sends DeviceTriggeringDeliveryReportNotification
+					mcnPort.send(m_t8Request(m_t8_request_post(m_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, 
+					mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI.apiRoot & v_requestResourceURI.apiName & v_requestResourceURI.apiVersion & v_requestResourceURI.apiSpecificSuffixes & "/cf_001" , SUCCESS)))));  // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction 
+					
+					tc_ac.start;
+					alt{
+						[] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": 204 no content is received.");
+						}
+						[] mcnPortIn.receive(mw_t8Request(?)){
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Other operation received");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No Answer");
+						}
+					}
+
+					// Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to p_triggerStatus
+					vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1);
+					
+					if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), p_triggerStatus))) {
+						setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set correctly");
+					} else {
+						setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content.");
+					}
+							
+					// Postamble: NOTE This needs to be done.
+					//f_cse_postamble_deleteResourcesCSE();
+							
+					//Tear Down
+					f_cf05Down();
+				} // end of function f_CSE_3GPP_TRIG_005
+
+
+			} // end group device_trigerring
+		  } //end group Interworking_3GPP
+
+
 		group Transaction_Management{
 			
 			group Update{
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index 11bedb2994b31021ae80fc0a9f3dc2b8e81a923d..a1a152fce4ea0da1cfcb81c882d2cc827b613c22 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -8506,20 +8506,24 @@ module OneM2M_Testcases_CSE_Release_1 {
 							
 				function f_CSE_SUB_CRE_004() runs on AeSimu system CseSystem {
 					//Local variables
-					 var template RequestPrimitive v_request := m_createSubscriptionBase;
-					 var RequestPrimitive v_notificationRequest;
-					 var integer v_aeIndex := -1;
-					 var integer v_ae2Index := -1;
-					 var integer v_resourceIndex := -1;
+					var template RequestPrimitive v_request := m_createSubscriptionBase;
+					var RequestPrimitive v_notificationRequest;
+					var integer v_aeIndex := -1;
+					var integer v_ae2Index := -1;
+					var integer v_resourceIndex := -1;
 					 
-					 // Test control
-	
-					 // Test component configuration
-					 f_cf01Up(true);
+					// Test control
+					if(not(PICS_SUBSCRIPTION_VERIFICATION)) {
+						setverdict(inconc, __SCOPE__ & ": Subscription verification support is required to run this test case");
+						stop;
+					}
+					
+					// Test component configuration
+					f_cf01Up(true);
 	
-					 // Test adapter configuration
+					// Test adapter configuration
 	
-					 // Preamble
+					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); 
 	
 					f_cse_preamble_subscriptionVerification(v_ae2Index, v_request, int23);
@@ -8529,11 +8533,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 	
 					v_resourceIndex := f_cse_createResource(int23, v_request, v_aeIndex);//Subscription 				
 					
-					if(vc_ae2.running) {
-						setverdict(inconc, __SCOPE__ & ": Notification not received");
-						vc_ae2.stop;
-					};
-					
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 					// Test Body
@@ -8594,10 +8593,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription 				
 					
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-	
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					v_request:= f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex);
 					
@@ -8623,8 +8620,6 @@ module OneM2M_Testcases_CSE_Release_1 {
 						}
 					}
     				
-					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
-										
 					//Postamble
 					f_cse_postamble_deleteResources();
 
@@ -8676,9 +8671,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 					// Test Body
 					v_contentResponse.aE := mw_contentAeBase; // all attributes expected
@@ -8763,10 +8756,8 @@ module OneM2M_Testcases_CSE_Release_1 {
 					
 					v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); // Subscription resource deletion request
 										
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					v_notificationContent.subscriptionReference := ?;
 					v_notificationContent.notificationEvent := omit;
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index 0a28580f4e7400d21704cea5199ac0ecc4a0aecd..8f1f92d6e02b7aa447c3168bd8e31637bde41784 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -2524,10 +2524,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); //Subscription
 			
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-			
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					//TODO Use f_getTemplateFromPrimitiveContent() which needs to be modified to receive the template in which the output template will be built upon
 					v_contentResponse.aE.labels := ?;// only modified attribute expected
@@ -2698,9 +2696,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subscription
 					
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 					// Test Body
 					vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs
@@ -2790,10 +2786,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);// Subscription
 
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-	
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs
 					f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // AE update request
@@ -2877,10 +2871,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request
 
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					vc_ae2.start(f_cse_notifyProcedure_noNotificationHandler()); // check that no notification is received
 		
@@ -2960,10 +2952,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 		
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
 					
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received
 					
@@ -3032,9 +3022,7 @@ module OneM2M_Testcases_CSE_Release_2 {
             		
 					v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription
             					
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 					// Test Body
 					v_contentResponse.aE.labels := v_labels_3;
@@ -3107,10 +3095,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request
 					
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-			
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					// Test Body
 					vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs
 					
@@ -3190,10 +3176,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 								
 					v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex );//Subscription
 					
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					//Test Body
 					v_notificationContent := {aE:= mw_contentAeBase}; // all attributes expected;
 					
@@ -3274,10 +3258,8 @@ module OneM2M_Testcases_CSE_Release_2 {
 					
 					v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription (with name attribute omitted) 									
 					
-					if(vc_ae2.running) {
-						vc_ae2.stop;
-					};
-
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
 					//Test Body
 					v_notificationContent := {container := mw_contentContainer_rc1}; // all attributes expected;
 					
diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn
index 91b310eec95c4307a7d03636c564378f39eb22b9..3d167ab81b36f060d2fca7366e3bbabda2d89412 100644
--- a/OneM2M_Testcases_CSE_Release_3.ttcn
+++ b/OneM2M_Testcases_CSE_Release_3.ttcn
@@ -7705,6 +7705,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var Timestamp v_timeStamp := fx_generateTimestamp();
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.createdBefore := v_timeStamp;
 
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest));//createdBefore
@@ -7717,6 +7718,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var Timestamp v_timeStamp := fx_generateTimestamp();
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
                         
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.createdAfter := v_timeStamp;
 									
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest));//createdAfter
@@ -7729,6 +7731,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var Timestamp v_timeStamp := fx_generateTimestamp();
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
                         
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.modifiedSince := v_timeStamp;
 									
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest));//modifiedSince	
@@ -7741,6 +7744,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var Timestamp v_timeStamp := fx_generateTimestamp();
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
                         
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.unmodifiedSince := v_timeStamp;
 									
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //unmodifiedSince
@@ -7753,6 +7757,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var XSD.PositiveInteger v_stateTagSmaller := 5;
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.stateTagSmaller := v_stateTagSmaller;     
 
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //stateTagSmaller
@@ -7765,6 +7770,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var XSD.PositiveInteger v_stateTagBigger := 5;
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
                         
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.stateTagBigger := v_stateTagBigger;                        
 									
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); // stateTagBigger
@@ -7777,6 +7783,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var Timestamp v_timeStamp := fx_generateTimestamp();
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.expireBefore := v_timeStamp;   
 
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //expireBefore
@@ -7789,6 +7796,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var Timestamp v_timeStamp := fx_generateTimestamp();
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.expireAfter := v_timeStamp;
 									
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //expireAfter
@@ -7801,6 +7809,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var XSD.PositiveInteger v_sizeAbove := 5;
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
                         
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.sizeAbove := v_sizeAbove;                        
 
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //sizeAbove
@@ -7813,6 +7822,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var XSD.PositiveInteger v_sizeBelow := 5;
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.sizeBelow := v_sizeBelow;
 
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //sizeBelow
@@ -7825,6 +7835,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         var EventNotificationCriteria.notificationEventType_list v_notificationEventType := {int1}; // Example value taken from TS-001, cl 9.6.8, Table 9.6.8-3 -> A. Update to attributes of the subscribed-to resource
                         var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.notificationEventType_list := v_notificationEventType;
 									
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //eventType
@@ -7840,6 +7851,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                         v_OperationMonitor.operations := int1;
                         v_OperationMonitor.originator := PX_SUPER_CSE_ID;
 
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria();
                         v_createRequest.primitiveContent.subscription.eventNotificationCriteria.operationMonitor_list := {v_OperationMonitor};
 
 						v_ae1.start(f_CSE_SUB_CRE_006(v_createRequest)); //operationMonitor 
@@ -7895,7 +7907,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                 function f_CSE_SUB_CRE_007() runs on AeSimu system CseSystem {
                     // Local variables
                     var MsgIn v_response;
-                    var integer v_aeIndex := -1;
+                    var integer v_aeIndex, v_ae2Index := -1;
                     var integer v_resourceIndex := -1;                    
                     var integer v_timeSeriesIndex := -1;
                     var template (value) EventNotificationCriteria v_eventNotificationCriteria := m_eventNotificationCriteria; // parameter notificationEventType_list
@@ -7914,12 +7926,12 @@ module OneM2M_Testcases_CSE_Release_3 {
                     v_aeIndex := f_cse_preamble_registerAe();
                     
                     v_eventNotificationCriteria.missingData := valueof(m_missingData(v_missingDataPointNumber, "PT1M"));//1 missing data, duration 1 Minute
-                    v_timeSeriesIndex := f_cse_createResource(int23, m_createTimeSeries(-, true, 5, -, 2000), v_aeIndex);
+                    v_timeSeriesIndex := f_cse_createResource(int29, m_createTimeSeries(-, true, 5, -, 2000), v_aeIndex);
 
-                    v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_timeSeriesIndex)}, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit);
-                    f_cse_preamble_subscriptionVerification(v_timeSeriesIndex, v_createRequest, int23);
+                    v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_timeSeriesIndex), -, -, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit);
+                    f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23);
 
-                    v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription
+                    v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_timeSeriesIndex);//Subscription
                     v_request.to_ := f_getResourceAddress(v_timeSeriesIndex);
                     // Test Body					
                     f_send(e_mcaPort, m_request(v_request));
@@ -7929,7 +7941,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                             tc_ac.stop;
                             setverdict(pass, __SCOPE__ & ": Resource created successfully");
                             f_checkAttributesToBeSaved(int23, v_request, v_response.primitive.responsePrimitive);
-                            v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int23, vc_aeIndex);                            
+                            v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int23, v_timeSeriesIndex);                            
                         }
                         [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
                             tc_ac.stop;
@@ -8009,11 +8021,10 @@ module OneM2M_Testcases_CSE_Release_3 {
                     v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); // initial conditions
 
                     v_request.primitiveContent.subscription.groupID := f_getResourceId(vc_resourcesList[v_groupIndex].resource);
-                    v_request.primitiveContent.subscription.notificationURI := {v_memberID};
-                    v_request.primitiveContent.subscription.notificationForwardingURI := v_memberID; 
+                    v_request.primitiveContent.subscription.notificationForwardingURI := "NotInitialized"; 
                     //notificationForwardingURI shall be present only for group related subscriptions. If the subscriber intends the Group Hosting CSE to aggregate the notifications, the attribute shall be set identical to the notificationURI attribute
                     
-                    v_request.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_groupIndex].resource)};
+                    //v_request.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_groupIndex].resource)};
                     v_request.requestIdentifier := valueof(v_groupRequest.requestIdentifier) & f_rnd(1, 1000000);
 
                     v_request := f_getCreateRequestPrimitive(int23, v_request, v_aeIndex);//Subscription
@@ -8408,6 +8419,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                     // subscription child resource having notificationURI attribute set to AE2_RESOURCE_ADDRESS and latestNotify attribute set to TRUE and batchNotify attribute containing duration attribute set to TIME_LIMIT
 					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_ae2LocalIndex), -, {f_getResourceAddress(v_ae1Index)},omit,omit,m_batchNotify(2, "PT10S" ), true, omit, -, int2); //batchNotify/number greater than number of notifications to be sent so that batchNotify/duration expires before along with latestNotify
 
+					t_batchNotificationTimer.start; // Timer to control requisite on duration attribute
 					vc_ae2.start(f_cse_createResource(int23, v_createRequest, v_ae2Index));//Subscription
 					
 					tc_ac.start;
@@ -8436,8 +8448,6 @@ module OneM2M_Testcases_CSE_Release_3 {
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 					// Test Body
-					t_batchNotificationTimer.start; // Timer to control requisite on duration attribute
-					
 					v_updateRequest.primitiveContent.aE.labels := v_labels_1;
 					vc_ae2.start(f_cse_updateResource(int2, v_ae2Index, v_updateRequest)); // Update request 1
 					
@@ -8513,8 +8523,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 														
 				function f_CSE_SUB_NTF_005() runs on AeSimu system CseSystem {
 					// Local variables
-                    const integer receivedUpdateCounter := 3;
-					var Labels v_labels[receivedUpdateCounter];
+                    const integer c_receivedUpdateCounter := 3;
+					var Labels v_labels[c_receivedUpdateCounter];
                     var integer i;
 					var integer v_ae1Index := -1;
 					var integer v_resourceIndex := -1;
@@ -8542,7 +8552,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                     f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23);
                         
                     // subscription child resource containing notificationURI attribute set to AE2_RESOURCE_ADDRESS and pendingNotification attribute set to 1 (sendLatest)
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_ae2LocalIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,omit,omit,omit, -, int1);
+					v_createRequest := m_createSubscriptionAdvanced(-, -, {f_getResourceAddress(v_ae2Index)},omit,omit,omit,omit,omit, -, int2);
                     
                     v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_ae1Index);//Subscription
 
@@ -8554,7 +8564,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					vc_ae2.start(f_cf01DownAe2());
 					vc_ae2.done;
                     
-                    for (i := 0; i < receivedUpdateCounter; i := i+1 ) {// Update request, see TS-001 - cl. 10.2.10.7
+                    for (i := 0; i < c_receivedUpdateCounter-1; i := i+1 ) {// Update request, see TS-001 - cl. 10.2.10.7
                         v_updateRequest.primitiveContent.aE.labels := v_labels[i];
 	             		f_cse_updateResource(int2, v_ae1Index, v_updateRequest); //IUT having frequently received from AE1 a valid UPDATE Request to subscribed-to resource
                     }                  
@@ -8567,6 +8577,9 @@ module OneM2M_Testcases_CSE_Release_3 {
                     v_contentResponse.aE.labels := v_labels[2];
                     vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, 1)); // check if the Rx. of notification and match contents
 					
+					v_updateRequest.primitiveContent.aE.labels := v_labels[i];
+	             	f_cse_updateResource(int2, v_ae1Index, v_updateRequest); //IUT having frequently received from AE1 a valid UPDATE Request to subscribed-to resource
+                    
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 					//Postamble
@@ -8592,8 +8605,8 @@ module OneM2M_Testcases_CSE_Release_3 {
 
 				function f_CSE_SUB_NTF_006() runs on AeSimu system CseSystem {
 					// Local variables
-                    const integer receivedUpdateCounter := 3;
-					var Labels v_labels[receivedUpdateCounter];
+                    const integer c_receivedUpdateCounter := 3;
+					var Labels v_labels[c_receivedUpdateCounter];
                     var integer i;
 					var integer v_ae1Index := -1;
 					var integer v_resourceIndex := -1;
@@ -8621,7 +8634,7 @@ module OneM2M_Testcases_CSE_Release_3 {
                     f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23);
 
                     // subscription child resource having notificationURI attribute set to AE2_RESOURCE_ADDRESS and pendingNotification attribute set to 2 (sendAllPending)
-					v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_ae2LocalIndex), -, {f_getResourceAddress(v_ae1Index)},omit,omit,omit,omit,omit, -, int2);
+					v_createRequest := m_createSubscriptionAdvanced(-, -, {f_getResourceAddress(v_ae2Index)},omit,omit,omit,omit,omit, -, int2);
 
                     v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_ae1Index);//Subscription
 
@@ -8633,7 +8646,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 					vc_ae2.start(f_cf01DownAe2());
 					vc_ae2.done;    
 
-                    for (i := 0; i < receivedUpdateCounter; i := i+1 ) {// Update request, see TS-001 - cl. 10.2.10.7
+                    for (i := 0; i < c_receivedUpdateCounter-1; i := i+1 ) {// Update request, see TS-001 - cl. 10.2.10.7
                         v_updateRequest.primitiveContent.aE.labels := v_labels[i];
 	             		f_cse_updateResource(int2, v_ae1Index, v_updateRequest); //IUT having received from AE1 a NUMBER of valid UPDATE Requests to subscribed-to resource
                     }
@@ -8643,7 +8656,9 @@ module OneM2M_Testcases_CSE_Release_3 {
 				    vc_ae2.done;
                     vc_auxiliaryAe2Up := true; //the IUT escapes from the “connectionless state”
 
-                    vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, receivedUpdateCounter)); // check if the Rz. of notification and match contents
+                    vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, c_receivedUpdateCounter)); // check if the Rz. of notification and match contents
+					v_updateRequest.primitiveContent.aE.labels := v_labels[i];
+					f_cse_updateResource(int2, v_ae1Index, v_updateRequest); //IUT having received from AE1 a NUMBER of valid UPDATE Requests to subscribed-to resource
 
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 
@@ -8680,10 +8695,13 @@ module OneM2M_Testcases_CSE_Release_3 {
                     // Test component configuration
                     f_cf02Up();
                     vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()})));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
                     // Test adapter configuration
 
                     // Preamble
-                    v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn, "")});//c_CRUDNDi);
+					f_cse_createAccessControlPolicyAux();
+                    
+					v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn, "")});//c_CRUDNDi);
                     
                     // Test Body      
                     v_reqNotify := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId)));
@@ -8692,7 +8710,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 
 					tc_ac.start;
 					alt {
-						[] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotification(?)))) -> value vc_request {
+						[] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotificationVerification))) -> value vc_request {
 							tc_ac.stop;
 							
 							setverdict(pass, __SCOPE__ & ":INFO: Notification received");
@@ -8700,10 +8718,7 @@ module OneM2M_Testcases_CSE_Release_3 {
 							//Send response in any case
 							v_responsePrimitive := valueof(m_responseNotification(int2000, omit));
 							v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier;
-                            v_responsePrimitive.to_ := f_getLocalPoA(vc_aeSimuDesc.mcaPortIn);
 							f_send(e_mcaPortIn, m_response(v_responsePrimitive));
-							tc_ac.start;
-							repeat;
 						}
 						[] mcaPortIn.receive(mw_request(mw_notifyResponsePrimitive(?))) -> value vc_request {
 							tc_ac.stop;
@@ -8771,20 +8786,16 @@ module OneM2M_Testcases_CSE_Release_3 {
                     f_send(e_mccPort, m_request(v_reqNotify));
 					tc_ac.start;
 					alt {
-						[] mccPort.receive(mw_request(mw_notifyNotification(mw_contentNotification(?)))) -> value vc_request {
+						[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) {
 							tc_ac.stop;
-							
-							setverdict(pass, __SCOPE__ & ":INFO: Notification received");
-							
-							//Send response in any case
-							v_responsePrimitive := valueof(m_responseNotification(int2000, omit));
+							setverdict(pass, __SCOPE__ & ":INFO: Response Notification received");
 						}
-						[] mccPort.receive(mw_request(mw_notifyResponsePrimitive(?))) -> value vc_request {
+						[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
 							tc_ac.stop;
-							setverdict(fail, __SCOPE__ & ": Error, Non expected notification received");
+							setverdict(fail, __SCOPE__ & ": Error, Wrong response status code in response notification received");
 						}                        
                         [] tc_ac.timeout {
-                            setverdict(fail, __SCOPE__ & ": No answer while retargeting request");
+                            setverdict(fail, __SCOPE__ & ": No response notification received");
                         }                        
 					}
                     
@@ -18628,6 +18639,585 @@ module OneM2M_Testcases_CSE_Release_3 {
 				
 			group device_trigerring {
 				
+
+				/* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource
+				 *	
+				 *	
+				 */
+				testcase TC_CSE_3GPP_TRIG_001_CON() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+															
+					var TriggerPurpose v_triggerPurpose := int1;
+					var template (value) Bytes v_triggerPayload := "This is Trigger payload- triggerInfoOperation, triggerInfoAddress, targetedResourceType";
+
+					v_scef.start(f_CSE_3GPP_TRIG_001(v_triggerPurpose, v_triggerPayload));
+
+					v_scef.done;
+						
+				} // end testcase TC_CSE_3GPP_TRIG_001_CON
+				
+				
+
+				/* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource
+				 *	
+				 *	
+				 */
+				testcase TC_CSE_3GPP_TRIG_001_REQ() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+						
+					var TriggerPurpose v_triggerPurpose := int2;
+					var template (value) Bytes v_triggerPayload := "This is Trigger payload- the resource address (triggerInfoAddress) of the <MEFBase>";
+
+					v_scef.start(f_CSE_3GPP_TRIG_001(v_triggerPurpose, v_triggerPayload));
+
+					v_scef.done;
+						
+				} // end testcase TC_CSE_3GPP_TRIG_001_REQ
+				
+				
+				/* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource
+				 *	
+				 *	
+				 */
+				testcase TC_CSE_3GPP_TRIG_001_EXE() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+
+					var TriggerPurpose v_triggerPurpose := int3;
+					var template (value) Bytes v_triggerPayload := "This is Trigger payload- the resource address (triggerInfoAddress) of the <cseBase>";
+
+					v_scef.start(f_CSE_3GPP_TRIG_001(v_triggerPurpose, v_triggerPayload));
+
+					v_scef.done;
+						
+				} // end testcase TC_CSE_3GPP_TRIG_001_EXE
+				
+				
+		
+				/* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource
+				 *	
+				 *	
+				 */
+				testcase TC_CSE_3GPP_TRIG_001_ENR() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+							
+					var TriggerPurpose v_triggerPurpose := int4;
+					var template (value) Bytes v_triggerPayload := "This is Trigger payload- the resource address (triggerInfoAddress) of the <cseBase>";
+	
+					v_scef.start(f_CSE_3GPP_TRIG_001(v_triggerPurpose, v_triggerPayload));
+	
+					v_scef.done;
+						
+				} // end testcase TC_CSE_3GPP_TRIG_001_ENR
+				
+				
+				/* @desk Check that the IUT sends an implicit 3GPP Device Trigger Request 
+				 *		when it receives a valid <notification> from an AE
+				 *
+				 */
+				testcase TC_CSE_3GPP_TRIG_002() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+						
+					v_scef.start(f_CSE_3GPP_TRIG_002());
+					v_scef.done;
+						
+				} // end testcase TC_CSE_3GPP_TRIG_002
+				
+				function f_CSE_3GPP_TRIG_002() runs on ScefSimu system ScefSystem{
+					
+					var template RequestPrimitive v_createContainer := m_createContainerBase;
+					var template RequestPrimitive v_updateContainer := m_updateContainerBase;
+					var template RequestPrimitive v_createRequestSubscription;						
+			
+					var integer v_aeIndex := -1, v_containerIndex := -1;
+					var RequestPrimitive v_request;
+
+					//{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions
+					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"));
+																	
+					var template T8Request v_requestPrimitive;
+					
+					var Labels v_labels_1:= {"VALUE_1"};
+					var Labels v_labels_2:= {"VALUE_2"};	
+					
+					// 3GPP device trigger request with TriggerPayload null
+					var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, -, "link");
+					var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering};
+										
+					var template NiddConfiguration v_niddConfiguration := mw_niddConfiguration();
+					var template RequestBodyT8 v_niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+
+					v_createContainer.primitiveContent.container.labels := v_labels_1;			
+					v_updateContainer.primitiveContent.container.labels := v_labels_2;
+					
+					// Test component configuration
+					f_cf05Up();
+					
+					// Register AE1
+					vc_ae1.start(f_cse_preamble_registerAe());
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
+
+					// Container under AE
+					vc_ae1.start(f_cse_createResource(int3, v_createContainer, v_aeIndex));					
+					v_containerIndex := f_getLatestResourceIndex(vc_ae1);
+			
+					// Create Subscription
+					v_createRequestSubscription := m_createSubscriptionAdvanced(f_getResourceAddress(v_containerIndex), -, {f_getResourceAddress(v_aeIndex)}, m_eventNotificationCriteria({int1}), -, omit, omit, omit, -, omit);
+					vc_ae1.start(f_cse_createResource(int23, v_createRequestSubscription, v_containerIndex));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					// Test Body
+					vc_ae1.start(f_cse_updateResource(int3, v_containerIndex, v_updateContainer));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest);
+					tc_ac.start;
+					alt{
+						[] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": 3GPP device Triggering received.");
+						}
+						[] mcnPortIn.receive(mw_t8Request(?)){
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Other operation received");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer");
+						}
+					}
+					
+					// Postamble: NOTE This needs to be done.
+					//f_cse_postamble_deleteResourcesCSE();
+					
+					//Tear Down
+					f_cf05Down();
+				} // end of function f_CSE_3GPP_NIDD_002
+
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> to ERROR_NSE_NOT_FOUND 
+				 *	when the SCEF does not respond to the Device Trigger Request prior to the timeout period
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_003() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					v_scef.start(f_CSE_3GPP_TRIG_003());
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_003
+				
+						
+				function f_CSE_3GPP_TRIG_003() runs on ScefSimu system ScefSystem{
+
+					var integer v_aeIndex := -1, v_triggerRequestIndex := -1;
+					var PrimitiveContent v_contentTriggerRequest;
+					var RequestPrimitive v_request;
+					
+					//{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions
+					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"));
+									
+					var template T8Request v_requestPrimitive;
+
+					var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link");
+					var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering};
+					
+					var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest;
+					
+					v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection
+																
+					// Test component configuration
+					f_cf05Up();
+						
+					//Preamble
+					
+					// Register AE1
+					vc_ae1.start(f_cse_preamble_registerAe());
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					v_aeIndex := f_getLatestResourceIndex(vc_ae1);
+
+					// TriggerRequest under AE
+					vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1);
+
+					//IUT sent a 3GPP Device Trigger Request
+					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -,  v_3GPPDeviceTriggeringRequest);		
+									
+					tc_ac.start;
+					alt{
+						[] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": 3GPP device Triggering received.");
+						}
+						[] mcnPortIn.receive(mw_t8Request(?)){
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Other operation received");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer");
+						}
+					}					
+
+					// Test Body		
+					// SCEF does not send a reponse to IUT					
+					f_sleep(3.0);	
+					
+					// Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to ERROR_NSE_NOT_FOUND
+					vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex));
+					f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1);
+					
+					v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1);
+					
+					if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int2))) {// ERROR_NSE_NOT_FOUND
+						setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to ERROR_NSE_NOT_FOUND");
+					} else {
+						setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content.");
+					}
+							
+					// Postamble: NOTE This needs to be done.
+					//f_cse_postamble_deleteResourcesCSE();
+							
+					//Tear Down
+					f_cf05Down();
+				} // end of function f_CSE_3GPP_TRIG_003
+			
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_1() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+	
+					var template (value) DeliveryResult v_deliveryResult := SUCCESS;
+					var TriggerStatus v_triggerStatus := int1;
+			
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+			
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_1
+				
+						
+				
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_2() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+					
+					var template (value) DeliveryResult v_deliveryResult := UNKNOWN;
+					var TriggerStatus v_triggerStatus := int6;			
+
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_2
+				
+						
+
+
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_3() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+										
+					var template (value) DeliveryResult v_deliveryResult := FAILURE;
+					var TriggerStatus v_triggerStatus := int6;					
+	
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_3
+				
+						
+				
+
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_4() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+				
+					var template (value) DeliveryResult v_deliveryResult := TRIGGERED;
+					var TriggerStatus v_triggerStatus := int6;
+			
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+			
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_4
+				
+						
+			
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_5() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;							
+										
+					var template (value) DeliveryResult v_deliveryResult := EXPIRED;
+					var TriggerStatus v_triggerStatus := int5;
+						
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_5
+				
+						
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_6() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+										
+					var template (value) DeliveryResult v_deliveryResult := UNCONFIRMED;
+					var TriggerStatus v_triggerStatus := int5;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_6
+				
+					
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_7() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+									
+					var template (value) DeliveryResult v_deliveryResult := REPLACED;
+					var TriggerStatus v_triggerStatus := int6;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_7
+				
+						
+				
+				/* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> 
+				 *		to the proper value when the SCEF responds to the Device Trigger Request
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_004_8() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+					
+					var template (value) DeliveryResult v_deliveryResult := TERMINATE;
+					var TriggerStatus v_triggerStatus := int6;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_004(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_004_8
+				
+					
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_1() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := SUCCESS;
+					var TriggerStatus v_triggerStatus := int4;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_1
+				
+						
+				
+
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_2() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := UNKNOWN;
+					var TriggerStatus v_triggerStatus := int6;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_2
+				
+						
+				
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_3() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := FAILURE;
+					var TriggerStatus v_triggerStatus := int6;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_3
+				
+						
+
+
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_4() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := TRIGGERED;
+					var TriggerStatus v_triggerStatus := int4;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_4
+				
+						
+			
+
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_5() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := EXPIRED;
+					var TriggerStatus v_triggerStatus := int5;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_5
+				
+						
+				
+
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_6() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := UNCONFIRMED;
+					var TriggerStatus v_triggerStatus := int4;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_6
+				
+				
+
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_7() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := REPLACED;
+					var TriggerStatus v_triggerStatus := int6;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_7
+				
+						
+				
+
+				/* @desk Check that the IUT returns a HTTP response when it receives a valid 
+				 *		DeviceTriggeringDeliveryReportNotification Report message 
+				 *
+				 */
+
+				testcase TC_CSE_3GPP_TRIG_005_8() runs on Tester system ScefSystem {
+						
+					var ScefSimu v_scef := ScefSimu.create("SCEF") alive;
+								
+					var template (value) DeliveryResult v_deliveryResult := TERMINATE;
+					var TriggerStatus v_triggerStatus := int4;						
+			
+					v_scef.start(f_CSE_3GPP_TRIG_005(v_triggerStatus, v_deliveryResult));
+
+					v_scef.done;
+								
+				} // end testcase TC_CSE_3GPP_TRIG_005_8
+				
+						
+				
+
+
+
+
 				// GET all transactons from an SCEF
 				testcase TC_CSE_3GPP_SCEF_T8_007() runs on ScefSimu system ScefSystem {
 					f_cf05Up();