diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 6a106a78930d2c1b849e4259fc1fd0705ca5fbe6..61dc20980a280a554bc35a366e8bbcefe4c2763a 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -11486,7 +11486,28 @@ module OneM2M_Templates {
 																																									) := {
 				individualNiddConfiguration := p_individualNiddConfiguration
 			} // End of template mw_response_body_individualNiddConfiguration
+
+			template NiddDownlinkDataTransfer mw_niddDownlinkDataTransfer := {
+				externalId := omit,
+				externalGroupId := omit,
+				msisdn := omit,
+				self_ := omit,
+				data := ?,
+				reliableDataService := omit,
+				rdsPorts := omit, 
+				maximumLatency := omit,
+				priority := ?,
+				pdnEstablishmentOptions := omit,
+				deliveryStatus := omit,
+				requestedRetransmissionTime := omit
+			} // End of template mw_niddConfiguration
 							
+			template NiddDownlinkDataDeliveryStatusNotification mw_niddDownlinkDataDeliveryStatusNotification := {
+				niddDownlinkDataTransfer := ?,
+				deliveryStatus := ?,
+				requestedRetransmissionTime := omit
+			} // End of template mw_niddConfiguration
+
 		} // End of group nidd
 			
 			group deviceTriggering {
diff --git a/LibOneM2M/oneM2M_Types b/LibOneM2M/oneM2M_Types
index f7ce562828327f71d3224b76e5f854e03c594496..7f2b3a92d6f12731cc6c3ba32ecaa8a2a3ca37a4 160000
--- a/LibOneM2M/oneM2M_Types
+++ b/LibOneM2M/oneM2M_Types
@@ -1 +1 @@
-Subproject commit f7ce562828327f71d3224b76e5f854e03c594496
+Subproject commit 7f2b3a92d6f12731cc6c3ba32ecaa8a2a3ca37a4
diff --git a/OneM2M_Testcases_CSE_Release_4.ttcn b/OneM2M_Testcases_CSE_Release_4.ttcn
index 15ff25a2f6817b88f3ee6855f5716a41e0d30f52..d2107ecae71cdea8cae2c7b9496df3ab301c0088 100644
--- a/OneM2M_Testcases_CSE_Release_4.ttcn
+++ b/OneM2M_Testcases_CSE_Release_4.ttcn
@@ -15289,7 +15289,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var RequestPrimitive v_request;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
-					const TransactionControl transactionControl := int1; //INITIAL
+					const TransactionControl c_transactionControl := int1; //INITIAL
 										   
 					// Test control
 				
@@ -15312,7 +15312,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 							setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType)));
 							f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive);
 							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex);
-							if(not match(transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
+							if(not match(c_transactionControl , vc_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
 								setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL ");
 							}
 						}
@@ -15460,7 +15460,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var integer v_aeIndex := -1;
 					//var integer v_ae2Index := -1;
 					var integer v_resourceIndex := -1;
-					const TransactionControl transactionControl := int2; //LOCK
+					const TransactionControl c_transactionControl := int2; //LOCK
 					
 					// Test control
 				
@@ -15490,7 +15490,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 							setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType)));
 							f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive);
 							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex);
-							if(not match(transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
+							if(not match(c_transactionControl , vc_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
 								setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL ");
 							}
 						}
@@ -15658,7 +15658,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 							setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType)));
 							f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive);
 							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex);
-							if(not match(c_transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
+							if(not match(c_transactionControl , vc_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){
 								setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL ");
 							}
 						}
@@ -17852,8 +17852,8 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var RequestPrimitive v_request;
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
-					var NiddConfiguration v_niddConfiguration;
-					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var template NiddConfiguration v_niddConfiguration := mw_niddConfiguration();
+					var template RequestBodyT8 v_niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 
 					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
 					
@@ -17872,7 +17872,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					// ServiceSubscribedNode under ServiceSubscriptionProfile
 					vc_ae1.start(f_cse_createResource(int20, v_createServiceSubscribedNode, v_subscriptionProfileIndex));
 					
-					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -,  niddConfig);
+					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -,  v_niddConfig);
 					tc_ac.start;
 					alt{
 						[] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) {
@@ -17917,8 +17917,8 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var RequestPrimitive v_request;
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
-					var NiddConfiguration v_niddConfiguration;
-					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var template NiddConfiguration v_niddConfiguration := mw_niddConfiguration();
+					var template RequestBodyT8 v_niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 					//var template NiddConfiguration v_niddConfiguration;
 					
 					v_createServiceSubscribedNode.primitiveContent.serviceSubscribedNode.niddRequired := false;
@@ -17942,7 +17942,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 	
 					vc_ae1.start(f_cse_updateResource(int20, v_serviceSubscribedNodeIndex, v_updateServiceSubscribedNode));
 					
-					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, niddConfig);
+					v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_niddConfig);
 					tc_ac.start;
 					alt{
 						[] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) {
@@ -17987,8 +17987,8 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var RequestPrimitive v_request;
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
-					var NiddConfiguration v_niddConfiguration;
-					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var template NiddConfiguration v_niddConfiguration := mw_niddConfiguration();
+					var template RequestBodyT8 v_niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 					var RequestHeaders v_requestHeader;
 					//var template NiddConfiguration v_niddConfiguration;
 
@@ -18014,7 +18014,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					
 					vc_ae1.start(f_cse_updateResource(int20, v_serviceSubscribedNodeIndex, v_updateServiceSubscribedNode));
 					
-					v_requestPrimitive := m_t8_request_delete(v_requestResourceURI,v_requestHeader , niddConfig); // NIDD configuration delete request
+					v_requestPrimitive := m_t8_request_delete(v_requestResourceURI,v_requestHeader , v_niddConfig); // NIDD configuration delete request
 					tc_ac.start;
 					alt{
 						[] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) {
@@ -18058,8 +18058,8 @@ module OneM2M_Testcases_CSE_Release_4 {
 					var RequestPrimitive v_request;
 					var OneM2M_Types_3GPP_T8.URI v_requestResourceURI;
 					var template T8Request v_requestPrimitive;
-					var NiddConfiguration v_niddConfiguration;
-					var RequestBodyT8 niddConfig := {individualNiddConfiguration := v_niddConfiguration};
+					var template NiddConfiguration v_niddConfiguration := mw_niddConfiguration();
+					var template RequestBodyT8 v_niddConfig := {individualNiddConfiguration := v_niddConfiguration};
 					var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 					//var template NiddConfiguration v_niddConfiguration;
 					
@@ -18083,7 +18083,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 					
 					vc_ae1.start(f_cse_deleteResource(v_serviceSubscribedNodeIndex));
 					
-					v_requestPrimitive := m_t8_request_delete(v_requestResourceURI, v_requestHeader, niddConfig); // NIDD configuration delete request 
+					v_requestPrimitive := m_t8_request_delete(v_requestResourceURI, v_requestHeader, v_niddConfig); // NIDD configuration delete request 
 					tc_ac.start;
 					alt{
 						[] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) {
@@ -18137,14 +18137,14 @@ module OneM2M_Testcases_CSE_Release_4 {
 				maximumPacketSize := c_maxPacketSize
 						
 			}; // Should contain ExternalId and MaxPacketsize
-			var RequestBodyT8 niddConfig :=
+			var RequestBodyT8 v_niddConfig :=
 			{
 				individualNiddConfiguration := v_niddConfiguration
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
-			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBodyT8 v_niddDLDataTransferBody :=
+			var template NiddDownlinkDataTransfer v_niddDownlinkDataTransfer := mw_niddDownlinkDataTransfer;  //Should contain Notification in data field
+			var template RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
@@ -18158,7 +18158,7 @@ module OneM2M_Testcases_CSE_Release_4 {
 			//Preamble
 			
 			//Sending NIDD config request with ExternalId "M2M-Ext-ID" and MaxPacketSize
-			v_requestPrimitiveNIDDConfig := m_t8_request_post(v_requestResourceURI, v_requestHeader, niddConfig); // NIDD configuration delete request
+			v_requestPrimitiveNIDDConfig := m_t8_request_post(v_requestResourceURI, v_requestHeader, v_niddConfig); // NIDD configuration delete request
 			mcnPort.send(mw_t8Request(v_requestPrimitiveNIDDConfig));
 			
 			//Registering AE with ExternalId "M2M-Ext-ID"	
@@ -18255,8 +18255,8 @@ module OneM2M_Testcases_CSE_Release_4 {
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
-			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBodyT8 v_niddDLDataTransferBody :=
+			var template NiddDownlinkDataTransfer v_niddDownlinkDataTransfer := mw_niddDownlinkDataTransfer;  //Should contain Notification in data field
+			var template RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
@@ -18372,8 +18372,8 @@ module OneM2M_Testcases_CSE_Release_4 {
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
-			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBodyT8 v_niddDLDataTransferBody :=
+			var template NiddDownlinkDataTransfer v_niddDownlinkDataTransfer := mw_niddDownlinkDataTransfer;  //Should contain Notification in data field
+			var template RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
@@ -18463,15 +18463,15 @@ module OneM2M_Testcases_CSE_Release_4 {
 			};
 			var RequestHeaders v_requestHeader; // := {header_name := "header1"};
 			var template T8Request v_requestPrimitiveNiddDownlinkDataTransfer;
-			var NiddDownlinkDataTransfer v_niddDownlinkDataTransfer;  //Should contain Notification in data field
-			var RequestBodyT8 v_niddDLDataTransferBody :=
+			var template NiddDownlinkDataTransfer v_niddDownlinkDataTransfer := mw_niddDownlinkDataTransfer;  //Should contain Notification in data field
+			var template RequestBodyT8 v_niddDLDataTransferBody :=
 			{
 				individualNiddDownlinkDataDelivery := v_niddDownlinkDataTransfer
 			};
 					 
 			var template T8Request v_requestPrimitiveNiddDownlinkDataDeliveryStatusNotification;
-			var NiddDownlinkDataDeliveryStatusNotification v_niddDownlinkDataDeliveryStatusNotification;  //Should contain Notification in data field
-			var RequestBodyT8 v_niddDLDataStatusNotificationBody :=
+			var template NiddDownlinkDataDeliveryStatusNotification v_niddDownlinkDataDeliveryStatusNotification := mw_niddDownlinkDataDeliveryStatusNotification;  //Should contain Notification in data field
+			var template RequestBodyT8 v_niddDLDataStatusNotificationBody :=
 			{
 				niddDownlinkDataDeliveryStatusNotification := v_niddDownlinkDataDeliveryStatusNotification
 			};