diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 30be8e0e93583e0a210a254e1a3ab4b54382ef96..6e89186fe7ab104ece78c0e42906217ecd16acc5 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -881,6 +881,214 @@ module OneM2M_Templates {
 				primitiveContent := {serviceSubscribedUserProfile := m_contentUpdateServiceSubscribedUserProfileAE0 } 
 			};
 	
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxValue2 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxValue2",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxValue2 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileActivated modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileActivated",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileActivated } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileDeactivated modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileDeactivated",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileDeactivated } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumAEsZero modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumAEsZero",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumAEsZero } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumAEs2 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumAEs2",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumAEs2 } 
+			};
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumContainersZero modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumContainersZero",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumContainersZero } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumContainers2 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumContainers2",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumContainers2 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumTimeSeriesZero modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumTimeSeriesZero",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumTimeSeriesZero } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumTimeSeries3 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumTimeSeries3",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumTimeSeries3 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxMembersPerGroupZero modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxMembersPerGroupZero",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxMembersPerGroupZero } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxMembersPerGroup3 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxMembersPerGroup3",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxMembersPerGroup3 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumBytes100 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumBytes100",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumBytes100 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumBytes300 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumBytes300",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumBytes300 } 
+			};
+			
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumNodesZero modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumNodesZero",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumNodesZero } 
+			};
+			
+				/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumNodes3 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumNodes3",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumNodes3 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumUsersZero modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumUsersZero",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumUsersZero } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumUsers2 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumUsers2",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumUsers2 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumInstancesPerContainerOne modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumInstancesPerContainerOne",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfilemaxNumInstancesPerContainerOne } 
+			};
+			
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumInstancesPerContainer3 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumInstancesPerContainer3",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfilemaxNumInstancesPerContainer3 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumInstancesPerTimeSeriesZero modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumInstancesPerTimeSeriesZero",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumInstancesPerTimeSeriesZero } 
+			};
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscriptionProfileMaxNumInstancesPerTimeSeries3 modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscriptionProfileMaxNumInstancesPerTimeSeries3",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentUpdateServiceSubscriptionProfileMaxNumInstancesPerTimeSeries3 } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscribedAppRule modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceSubscribedAppRule",
+				resourceType := int19,
+				primitiveContent := {serviceSubscribedAppRule := m_contentUpdateServiceSubscribedAppRule } 
+			};
+			
+			/**
+			 * @desc Base UPDATE request primitive for ServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_updateServiceSubscribedNode modifies m_update := {
+				requestIdentifier := testcasename() & "-m_updateServiceServiceSubscribedNode",
+				resourceType := int20,
+				primitiveContent := {serviceSubscribedNode := m_contentUpdateServiceSubscribedNode } 
+			};
+			
+			
 			/**
 			 * @desc Base UPDATE request primitive for TimeSeries resource
 			 */
@@ -1774,6 +1982,15 @@ module OneM2M_Templates {
 				primitiveContent := {serviceSubscribedNode := m_contentServiceSubscribedNode(p_ruleLinks)}
 			};
 			       	
+			/**
+			 * @desc Base CREATE request primitive for ServiceSubscribedNode Resource
+			 */
+			template (value) RequestPrimitive m_createServiceSubscribedNodeBase(in ListOfURIs p_ruleLinks := {""}, in NodeID p_nodeID, in template (omit) XSD.ID p_cseId) modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createServiceSubscribedNodeBase",
+				resourceType := int20,
+				primitiveContent := {serviceSubscribedNode := m_contentServiceSubscribedNodeBase(p_ruleLinks, p_nodeID, p_cseId )}
+			};
+			
 			/**
 			 * @desc Base CREATE request primitive for Subscription resource
 			 */
@@ -1972,6 +2189,16 @@ module OneM2M_Templates {
 				primitiveContent := {m2mServiceSubscriptionProfile := m_contentCreatem2mServiceSubscriptionProfileMaxValue1}
 			};
 			
+			/**
+			 * @desc Base CREATE request primitive for M2mServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_createM2mServiceSubscriptionProfileDeactivated modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createM2mServiceSubscriptionProfile",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentCreatem2mServiceSubscriptionProfileDeactivated}
+			};
+			
+			
 			/**
 			 * @desc Base CREATE request primitive for M2mServiceSubscriptionProfile resource
 			 */
@@ -1981,6 +2208,24 @@ module OneM2M_Templates {
 				primitiveContent := {m2mServiceSubscriptionProfile := m_contentCreatem2mServiceSubscriptionProfileMaxValue2}
 			};
 
+			/**
+			 * @desc Base CREATE request primitive for M2mServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_createM2mServiceSubscriptionProfileMaxNumBytes200 modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createM2mServiceSubscriptionProfile",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentCreatem2mServiceSubscriptionProfileMaxNumBytes200}
+			};
+			
+			/**
+			 * @desc Base CREATE request primitive for M2mServiceSubscriptionProfile resource
+			 */
+			template (value) RequestPrimitive m_createM2mServiceSubscriptionProfileMaxNumBytes100 modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createM2mServiceSubscriptionProfile",
+				resourceType := int11,
+				primitiveContent := {m2mServiceSubscriptionProfile := m_contentCreatem2mServiceSubscriptionProfileMaxNumBytes100}
+			};
+
 			/**
 			 * @desc Base CREATE request primitive for ServiceSubscribedUserProfile resource
 			 */
@@ -5401,10 +5646,10 @@ module OneM2M_Templates {
 			accessControlPolicyIDs  	:= omit, //O
 			expirationTime 			    := omit, //O
 			dynamicAuthorizationConsultationIDs := omit, //O
-			M2M_Sub_ID                          := PX_M2M_SUB_ID, //M
-		    M2M_SS_ID                           := PX_M2M_SS_ID, //O
-		    Status                              := omit,   //NP
-		    Activate                            := true,  //M
+			m2M_Sub_ID                          := PX_M2M_SUB_ID, //M
+		    m2M_SS_ID                           := PX_M2M_SS_ID, //O
+		    status                              := omit,   //NP	default INACTIVE
+		    activate_                            := omit,  //NP	default false
 		    activationTime                      := omit, //NP
 		    deactivationTime                    := omit,  //NP
 		    serviceSubscriptionDuration         := omit,  //O
@@ -5418,6 +5663,47 @@ module OneM2M_Templates {
 		    maxNumTimeSeries                    := 1, //O
 		    maxNumInstancesPerTimeSeries        := 1, //O
 		    maxMembersPerGroup                  := 1, //O
+			maxNumUsers							:= 1, //O
+		    maxNotificationRate                 := omit, //O
+		    maxNumFlexContainers                := omit, //O
+		    maxNumInstancesPerFlexContainer     := omit, //O
+		    defaultAccessControlPrivileges      := omit, //O
+		    choice 					            := omit  //NP
+		};
+		
+			/**
+			 * @desc Base primitiveContent for CREATE operation for M2mServiceSubscriptionProfile resource
+			 * @param p_primitiveContent Content for the M2mServiceSubscriptionProfile
+			 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentCreatem2mServiceSubscriptionProfileDeactivated := {
+			resourceName 				:= c_defaultm2mServiceSubscriptionProfileResourceName, //O
+			resourceType				:= omit, //NP
+			resourceID					:= omit, //NP
+			parentID					:= omit, //NP
+			creationTime				:= omit, //NP
+			lastModifiedTime			:= omit, //NP
+			labels 						:= PX_LABELS,//O
+			accessControlPolicyIDs  	:= omit, //O
+			expirationTime 			    := omit, //O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			m2M_Sub_ID                          := PX_M2M_SUB_ID, //M
+			m2M_SS_ID                           := PX_M2M_SS_ID, //O
+			status                              := omit,   //NP default INACTIVE
+			activate_                            := omit,  //NP	default false
+			activationTime                      := omit, //NP
+			deactivationTime                    := omit,  //NP
+			serviceSubscriptionDuration         := omit,  //O
+			currentNumAEs                       := omit, //NP
+			maxNumAEs                           := omit,  //O
+			maxNumNodes                         := omit,  //O
+			maxNumBytes                         := omit,  //O
+			maxRequestRate                      := omit, //O
+			maxNumContainers                    := omit, //O
+			maxNumInstancesPerContainer         := omit, //O
+			maxNumTimeSeries                    := omit, //O
+			maxNumInstancesPerTimeSeries        := omit, //O
+			maxMembersPerGroup                  := omit, //O
+			maxNumUsers							:= omit, //O
 		    maxNotificationRate                 := omit, //O
 		    maxNumFlexContainers                := omit, //O
 		    maxNumInstancesPerFlexContainer     := omit, //O
@@ -5440,10 +5726,10 @@ module OneM2M_Templates {
 			accessControlPolicyIDs  	:= omit, //O
 			expirationTime 			    := omit, //O
 			dynamicAuthorizationConsultationIDs := omit, //O
-			M2M_Sub_ID                          := PX_M2M_SUB_ID, //M
-			M2M_SS_ID                           := PX_M2M_SS_ID, //O
-			Status                              := omit,   //NP
-			Activate                            := true,  //M
+			m2M_Sub_ID                          := PX_M2M_SUB_ID, //M
+			m2M_SS_ID                           := PX_M2M_SS_ID, //O
+			status                              := omit,   //NP
+			activate_                            := omit,  //NP
 			activationTime                      := omit, //NP
 			deactivationTime                    := omit,  //NP
 			serviceSubscriptionDuration         := omit,  //O
@@ -5457,6 +5743,87 @@ module OneM2M_Templates {
 			maxNumTimeSeries                    := 2, //O
 			maxNumInstancesPerTimeSeries        := 2, //O
 			maxMembersPerGroup                  := 2, //O
+			maxNumUsers							:= 2, //O
+			maxNotificationRate                 := omit, //O
+			maxNumFlexContainers                := omit, //O
+			maxNumInstancesPerFlexContainer     := omit, //O
+			defaultAccessControlPrivileges      := omit, //O
+			choice 					            := omit  //NP
+		};
+		
+		/**
+			 * @desc Base primitiveContent for CREATE operation for M2mServiceSubscriptionProfile resource
+			 * @param p_primitiveContent Content for the M2mServiceSubscriptionProfile
+			 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentCreatem2mServiceSubscriptionProfileMaxNumBytes200 := {
+			resourceName 				:= c_defaultm2mServiceSubscriptionProfileResourceName, //O
+			resourceType				:= omit, //NP
+			resourceID					:= omit, //NP
+			parentID					:= omit, //NP
+			creationTime				:= omit, //NP
+			lastModifiedTime			:= omit, //NP
+			labels 						:= PX_LABELS,//O
+			accessControlPolicyIDs  	:= omit, //O
+			expirationTime 			    := omit, //O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			m2M_Sub_ID                          := PX_M2M_SUB_ID, //M
+			m2M_SS_ID                           := PX_M2M_SS_ID, //O
+			status                              := omit,   //NP
+			activate_                            := omit,  //NP	default false
+			activationTime                      := omit, //NP
+			deactivationTime                    := omit,  //NP
+			serviceSubscriptionDuration         := omit,  //O
+			currentNumAEs                       := omit, //NP
+			maxNumAEs                           := omit,  //O
+			maxNumNodes                         := omit,  //O
+			maxNumBytes                         := 200,  //O
+			maxRequestRate                      := omit, //O
+			maxNumContainers                    := omit, //O
+			maxNumInstancesPerContainer         := omit, //O
+			maxNumTimeSeries                    := omit, //O
+			maxNumInstancesPerTimeSeries        := omit, //O
+			maxMembersPerGroup                  := omit, //O
+			maxNumUsers							:= omit, //O
+			maxNotificationRate                 := omit, //O
+			maxNumFlexContainers                := omit, //O
+			maxNumInstancesPerFlexContainer     := omit, //O
+			defaultAccessControlPrivileges      := omit, //O
+			choice 					            := omit  //NP
+		};
+		
+		/**
+			 * @desc Base primitiveContent for CREATE operation for M2mServiceSubscriptionProfile resource
+			 * @param p_primitiveContent Content for the M2mServiceSubscriptionProfile
+			 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentCreatem2mServiceSubscriptionProfileMaxNumBytes100 := {
+			resourceName 				:= c_defaultm2mServiceSubscriptionProfileResourceName, //O
+			resourceType				:= omit, //NP
+			resourceID					:= omit, //NP
+			parentID					:= omit, //NP
+			creationTime				:= omit, //NP
+			lastModifiedTime			:= omit, //NP
+			labels 						:= PX_LABELS,//O
+			accessControlPolicyIDs  	:= omit, //O
+			expirationTime 			    := omit, //O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			m2M_Sub_ID                          := PX_M2M_SUB_ID, //M
+			m2M_SS_ID                           := PX_M2M_SS_ID, //O
+			status                              := omit,   //NP
+			activate_                            := omit,  //NP	default false
+			activationTime                      := omit, //NP
+			deactivationTime                    := omit,  //NP
+			serviceSubscriptionDuration         := omit,  //O
+			currentNumAEs                       := omit, //NP
+			maxNumAEs                           := omit,  //O
+			maxNumNodes                         := omit,  //O
+			maxNumBytes                         := 100,  //O
+			maxRequestRate                      := omit, //O
+			maxNumContainers                    := omit, //O
+			maxNumInstancesPerContainer         := omit, //O
+			maxNumTimeSeries                    := omit, //O
+			maxNumInstancesPerTimeSeries        := omit, //O
+			maxMembersPerGroup                  := omit, //O
+			maxNumUsers							:= omit, //O
 			maxNotificationRate                 := omit, //O
 			maxNumFlexContainers                := omit, //O
 			maxNumInstancesPerFlexContainer     := omit, //O
@@ -5506,6 +5873,25 @@ module OneM2M_Templates {
 			choice 					:= omit //O
 		};
 		
+		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
+			resourceID 				:= omit, //M
+			parentID 				:= omit, //M
+			creationTime 			:= omit, //M
+			lastModifiedTime 		:= omit, //M
+			labels 					:= omit, //O
+			accessControlPolicyIDs 	:= omit, //O
+			expirationTime 			:= omit, //M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			nodeID 					:= p_nodeID, //M
+			cSE_ID 					:= p_cseId, //O
+			deviceIdentifier 		:= omit, //M
+			ruleLinks 				:= p_ruleLinks, //O
+			niddRequired 			:= omit, //O
+			choice 					:= omit //O
+		};
+		
 		/**
          * @desc Base primitiveContent for CREATE operation for M2mServiceSubscriptionProfile resource
 		 * @param p_primitiveContent Content for the M2mServiceSubscriptionProfile
@@ -7435,6 +7821,339 @@ module OneM2M_Templates {
 			choice := omit //NP 
 		};
 		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxValue2  := {
+
+			resourceName 				:= omit, //O
+			resourceType				:= omit, //NP
+			resourceID					:= omit, //NP
+			parentID					:= omit, //NP
+			creationTime				:= omit, //NP
+			lastModifiedTime			:= omit, //NP
+			labels 						:= omit,//O
+			accessControlPolicyIDs  	:= omit, //O
+			expirationTime 			    := omit, //O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			m2M_Sub_ID                          := omit, //NP
+			m2M_SS_ID                           := omit, //O
+			status                              := omit,   //NP
+			activate_                            := omit,  //O
+			activationTime                      := omit, //NP
+			deactivationTime                    := omit,  //NP
+			serviceSubscriptionDuration         := omit,  //O
+			currentNumAEs                       := omit, //NP
+			maxNumAEs                           := 2,  //O
+			maxNumNodes                         := 2,  //O
+			maxNumBytes                         := 2,  //O
+			maxRequestRate                      := 2, //O
+			maxNumContainers                    := 2, //O
+			maxNumInstancesPerContainer         := 2, //O
+			maxNumTimeSeries                    := 2, //O
+			maxNumInstancesPerTimeSeries        := 2, //O
+			maxMembersPerGroup                  := 2, //O
+			maxNotificationRate                 := omit, //O
+			maxNumFlexContainers                := omit, //O
+			maxNumInstancesPerFlexContainer     := omit, //O
+			maxNumUsers						    := omit, //O
+			defaultAccessControlPrivileges      := omit, //O
+			choice 					            := omit  //NP
+
+		
+
+		};
+
+
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for serviceSubscribedAppRule resource
+		 */
+		template (value) ServiceSubscribedAppRule_optional m_contentUpdateServiceSubscribedAppRule  := {
+
+			resourceName 							:= omit, //O
+			resourceType							:= omit, //NP
+			resourceID								:= omit, //NP
+			parentID								:= omit, //NP
+			creationTime							:= omit, //NP
+			lastModifiedTime						:= omit, //NP
+			labels 									:= omit,//O
+			accessControlPolicyIDs  				:= omit, //O
+			expirationTime 			   				:= omit, //O
+			dynamicAuthorizationConsultationIDs 	:= omit, //O
+			applicableCredIDs 						:= omit,//O
+			allowedApp_IDs 							:= {*},//O
+			allowedAEs 								:= omit,//O
+			allowedRole_IDs 						:= omit,//O
+			allowedUsers							:= omit,//O 
+			choice 									:= omit//O
+
+		
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscribedNode resource
+		 */
+		template (value) ServiceSubscribedNode_optional m_contentUpdateServiceSubscribedNode  := {
+
+			resourceName 							:= omit, //O
+			resourceType							:= omit, //NP
+			resourceID								:= omit, //NP
+			parentID								:= omit, //NP
+			creationTime							:= omit, //NP
+			lastModifiedTime						:= omit, //NP
+			labels 									:= omit,//O
+			accessControlPolicyIDs  				:= omit, //O
+			expirationTime 			   				:= omit, //O
+			dynamicAuthorizationConsultationIDs 	:= omit, //O
+			nodeID 									:= omit, //NP
+			cSE_ID 									:= omit, //NP
+			deviceIdentifier 						:= omit, //NP
+			ruleLinks 								:= omit, //O
+			niddRequired 							:= true, //O
+			choice 									:= omit //O
+
+		};
+
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfile := {
+
+			resourceName 						:= omit, //O
+			resourceType						:= omit, //NP
+			resourceID							:= omit, //NP
+			parentID							:= omit, //NP
+			creationTime						:= omit, //NP
+			lastModifiedTime					:= omit, //NP
+			labels 								:= omit, //O
+			accessControlPolicyIDs  			:= omit, //O
+			expirationTime 			    		:= omit, //O
+			dynamicAuthorizationConsultationIDs := omit, //O
+			m2M_Sub_ID                          := omit, //NP
+			m2M_SS_ID                           := omit, //O
+			status                              := omit, //NP
+			activate_                           := omit, //O
+			activationTime                      := omit, //NP
+			deactivationTime                    := omit, //NP
+			serviceSubscriptionDuration         := omit, //O
+			currentNumAEs                       := omit, //NP
+			maxNumAEs                           := omit, //O
+			maxNumNodes                         := omit, //O
+			maxNumBytes                         := omit, //O
+			maxRequestRate                      := omit, //O
+			maxNumContainers                    := omit, //O
+			maxNumInstancesPerContainer         := omit, //O
+			maxNumTimeSeries                    := omit, //O
+			maxNumInstancesPerTimeSeries        := omit, //O
+			maxMembersPerGroup                  := omit, //O
+			maxNotificationRate                 := omit, //O
+			maxNumFlexContainers                := omit, //O
+			maxNumInstancesPerFlexContainer     := omit, //O
+			maxNumUsers							:= omit, //O
+			defaultAccessControlPrivileges      := omit, //O
+			choice 					            := omit  //NP
+
+		};		
+
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxValue1 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumAEs                           := 1,  //O
+			maxNumNodes                         := 1,  //O
+			maxNumBytes                         := 1,  //O
+			maxRequestRate                      := 1, //O
+			maxNumContainers                    := 1, //O
+			maxNumInstancesPerContainer         := 1, //O
+			maxNumTimeSeries                    := 1, //O
+			maxNumInstancesPerTimeSeries        := 1, //O
+			maxMembersPerGroup                  := 1  //O
+			
+		};
+
+
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileActivated modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			activate_                            := true  //O
+			
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileDeactivated modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			activate_                            := false  //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumAEsZero modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumAEs                            := 0  //O
+
+		};
+	
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumAEs2 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumAEs                            := 2  //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumContainersZero  modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumContainers                    := 0 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumContainers2 modifies m_contentUpdateServiceSubscriptionProfile:= {
+
+			maxNumContainers                    := 2 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumTimeSeriesZero modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumTimeSeries                    := 0 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumTimeSeries3 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumTimeSeries                    := 3 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfilemaxNumInstancesPerContainerOne modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumInstancesPerContainer                   := 1 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfilemaxNumInstancesPerContainer3 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumInstancesPerContainer                   := 3 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumInstancesPerTimeSeriesZero modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumInstancesPerTimeSeries                   := 0 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumInstancesPerTimeSeries3 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumInstancesPerTimeSeries                   := 3 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxMembersPerGroupZero modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxMembersPerGroup                			   := 0 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxMembersPerGroup3 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxMembersPerGroup                			   := 3 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumBytes100 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumBytes		                			   := 100 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumBytes300 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumBytes		                			   := 300 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumNodesZero modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumNodes		                			   := 0 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumNodes3 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumNodes		                			   := 3 //O
+
+		};
+		
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumUsersZero modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumUsers		                			   := 0 //O
+
+		};
+		/**
+		 * @desc PrimitiveContent for UPDATE operation for ServiceSubscriptionProfile resource
+		 */
+		template (value) M2mServiceSubscriptionProfile_optional m_contentUpdateServiceSubscriptionProfileMaxNumUsers2 modifies m_contentUpdateServiceSubscriptionProfile := {
+
+			maxNumUsers		                			   := 2 //O
+
+		};
+		
 	}//end group ContentUpdate
 	
 	group ContentRetrieve {
@@ -9324,6 +10043,81 @@ module OneM2M_Templates {
 			choice := omit//NP
 		}	
 
+		
+		template M2mServiceSubscriptionProfile_optional mw_contentServiceSubscriptionProfileBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			accessControlPolicyIDs := *,//O
+			expirationTime := ?,//M
+			dynamicAuthorizationConsultationIDs := *, //O
+			m2M_Sub_ID                          := ?, //M
+			m2M_SS_ID                           := *, //O
+			status                              := ?,   //M
+			activate_                            := ?,  //M
+			activationTime                      := *, //O
+			deactivationTime                    := *,  //O
+			serviceSubscriptionDuration         := *,  //O
+			currentNumAEs                       := ?, //M
+			maxNumAEs                           := *,  //O
+			maxNumNodes                         := *,  //O
+			maxNumBytes                         := *,  //O
+			maxRequestRate                      := *, //O
+			maxNumContainers                    := *, //O
+			maxNumInstancesPerContainer         := *, //O
+			maxNumTimeSeries                    := *, //O
+			maxNumInstancesPerTimeSeries        := *, //O
+			maxMembersPerGroup                  := *, //O
+			maxNotificationRate                 := *, //O
+			maxNumFlexContainers                := *, //O
+			maxNumInstancesPerFlexContainer     := *, //O
+			maxNumUsers							:= *, //O
+			defaultAccessControlPrivileges      := *, //O
+			choice 					            := *  //O
+
+		}
+		template ServiceSubscribedAppRule_optional mw_contentServiceSubscribedAppRuleBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			accessControlPolicyIDs := *,//O
+			expirationTime := ?,//M
+			dynamicAuthorizationConsultationIDs := *, //O
+			applicableCredIDs := *,//O
+			allowedApp_IDs := *,//O
+			allowedAEs := *,//O
+			allowedRole_IDs := *,//O
+			allowedUsers := *,//O 
+			choice := *//O
+		}
+		
+		template ServiceSubscribedNode_optional mw_contentServiceSubscribedNodeBase := {
+			resourceName := ?,//M
+			resourceType := ?,//M
+			resourceID := ?,//M
+			parentID := ?,//M
+			creationTime := ?,//M
+			lastModifiedTime := ?,//M
+			labels := *,//O
+			accessControlPolicyIDs := *,//O
+			expirationTime := ?,//M
+			dynamicAuthorizationConsultationIDs := *, //O
+			nodeID := ?,//M
+			cSE_ID := *,//O
+			deviceIdentifier := *,//O
+			ruleLinks := *,//O
+			niddRequired := *,//O 
+			choice := *//O
+		}
+		
 	}//end group responseContent
 	
 	group SpecialContents {
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index c767fc629c33f23000eec7cb971d6aebc658d2d0..af5e13efc3d6b41852fe9f58369f6b279a3d8897 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -1302,10 +1302,10 @@ group OptionalResourceTypes {
 		Timestamp expirationTime optional,
 		ListOfURIs dynamicAuthorizationConsultationIDs optional,
 		//TODO To be removed/replaced by the type defined in XSDs
-		XSD.ID M2M_Sub_ID optional,
-		XSD.ID M2M_SS_ID optional,	
-		ServiceSubscriptionStatus Status optional ,
-		XSD.Boolean Activate optional,
+		XSD.ID m2M_Sub_ID optional,
+		XSD.ID m2M_SS_ID optional,	
+		ServiceSubscriptionStatus status optional ,
+		XSD.Boolean activate_ optional,
 		Timestamp activationTime optional,
 		Timestamp deactivationTime optional,
 		XSD.Duration serviceSubscriptionDuration optional,
@@ -1322,6 +1322,7 @@ group OptionalResourceTypes {
 		XSD.NonNegativeInteger maxNotificationRate optional,
 		XSD.NonNegativeInteger maxNumFlexContainers optional,
 		XSD.NonNegativeInteger maxNumInstancesPerFlexContainer optional,
+		XSD.NonNegativeInteger maxNumUsers optional,
 		SetOfAcrs defaultAccessControlPrivileges optional,
 		union {
 			record length(1 .. infinity) of ChildResourceRef childResource_list,
diff --git a/LibOneM2M/oneM2M_Types b/LibOneM2M/oneM2M_Types
index 2782131b4c78662f8175412cdc69812e7811dfa0..e897c8a8e7c0fddf196e507e464c7a600dea4f05 160000
--- a/LibOneM2M/oneM2M_Types
+++ b/LibOneM2M/oneM2M_Types
@@ -1 +1 @@
-Subproject commit 2782131b4c78662f8175412cdc69812e7811dfa0
+Subproject commit e897c8a8e7c0fddf196e507e464c7a600dea4f05
diff --git a/OneM2M_Testcases_CSE_Release_4.ttcn b/OneM2M_Testcases_CSE_Release_4.ttcn
index f46dd237a10ffd74a508c4f31e1973bcda9493f5..d40d2aff409197cab093bc864e06bd0b7f9f06ae 100644
--- a/OneM2M_Testcases_CSE_Release_4.ttcn
+++ b/OneM2M_Testcases_CSE_Release_4.ttcn
@@ -10861,7 +10861,4329 @@ module OneM2M_Testcases_CSE_Release_4 {
 			} // Basic_Operation
 		} // Service_Subscription_User_Profile
 		
-   // group SoftwareManagement {
+		group Service_Subscription_Profile {
+			group Basic_Operation  {
+				
+				/**
+				 * @desc Check that the IUT successfully performs operations on resource m2mServiceSubscriptionProfile for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_001_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_001_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_001_CRE() runs on AeSimu system CseSystem {
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;
+					var RequestPrimitive v_request;
+					
+					var integer v_resourceIndex := -1;
+					
+					// Test component configuration
+					f_cf01Up(true);
+			
+					// create ServiceSubscriptionProfile directly on CSEBase from superAE					
+					v_request := f_getCreateRequestPrimitive(int11, v_createServiceSubscriptionProfile, -1);
+					f_send(e_mcaPort, m_request(v_request));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource type ServiceSubscriptionProfile created successfully");
+							f_checkAttributesToBeSaved(int11, v_request, vc_response.primitive.responsePrimitive);
+							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int11, -1);
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while creating resource type ServiceSubscriptionProfile");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type ServiceSubscriptionProfile");
+						}
+					}
+													
+					//Check to see if the resource is present or not
+					if (f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+					
+					
+					
+					
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}//f_CSE_SSM_SSP_001_CRE
+				
+				
+				/**
+				 * @desc Check that the IUT successfully performs operations on resource m2mServiceSubscriptionProfile for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_001_RET() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_001_RET()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_001_RET() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;
+					var template PrimitiveContent v_contentResponse;      
+					var MsgIn v_response;
+					
+					var RequestPrimitive v_request;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// create ServiceSubscriptionProfile directly on CSEBase from superAE					
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+					
+					v_contentResponse.m2mServiceSubscriptionProfile := mw_contentServiceSubscriptionProfileBase;
+					
+					
+					// Retrieve ServiceSubscriptionProfile from super AE
+					f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_subscriptionProfileIndex), f_getOriginator(-1))));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": serviceSubscribedAppRule successfully retrived.");
+							
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2000))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while retrieving serviceSubscribedAppRule with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT successfully performs operations on resource m2mServiceSubscriptionProfile for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_001_UPD() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_001_UPD()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_001_UPD() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;
+					var RequestPrimitive v_updateRequest;
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxValue2;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// Update ServiceSubscriptionProfile
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully retrived.");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while retrieving m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Verifiy that the ServiceSubscriptionProfile resource has been updated
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);
+					
+					if(not(match(v_updateRequestPrimitive.primitiveContent.m2mServiceSubscriptionProfile.maxNumAEs, vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumAEs))) {
+						setverdict(fail, __SCOPE__&":INFO: Retrived ServiceSubscriptionProfile does not match with updated content.");
+					} else {
+						setverdict(pass, __SCOPE__ & ": Retrived ServiceSubscriptionProfile matched with updated content.");
+					}
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT successfully performs operations on resource m2mServiceSubscriptionProfile for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_001_DEL() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_001_DEL()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_001_DEL() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+					
+					// Delete ServiceSubscribedUserProfile
+					f_send(e_mcaPort, m_request(m_delete(f_getResourceAddress(v_subscriptionProfileIndex), f_getOriginator(v_subscriptionProfileIndex))));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully deleted.");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2002))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while deleting m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while deleting resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Verify that m2mServiceSubscriptionProfile is not present
+					if (f_cse_isResourceNotPresent(-1, f_getResourceName(vc_resourcesList[v_subscriptionProfileIndex].resource))){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource deleted");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted");
+					}
+                					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+				/**
+				 * @desc Check that the IUT responds with an SERVICE_SUBSCRIPTION_NOT_ESTABLISHED error when the AE 
+				 * 			not having service subscription tries to perform OPERATION on the resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_002_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_002_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_002_CRE() runs on AeSimu system CseSystem {
+					
+					var RequestPrimitive v_request;
+					
+					// Test component configuration
+					f_cf01Up(true);
+										
+					v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, -1);
+					v_request.from_ := "S-AEWithoutSSP";	// Random Ae without ServiceSubscriptionProfile (SSP)
+					
+					f_send(e_mcaPort, m_request(v_request));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4128))) {	//SERVICE_SUBSCRIPTION_NOT_ESTABLISHED(4128)
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Operation properly rejected with 4128 (SERVICE_SUBSCRIPTION_NOT_ESTABLISHED)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4128))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}		
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}//f_CSE_SSM_SSP_002_CRE
+				
+				
+				/**
+				 * @desc Check that the IUT responds with an SERVICE_SUBSCRIPTION_NOT_ESTABLISHED error when the AE 
+				 * 			not having service subscription tries to perform OPERATION on the resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_002_RET() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_002_RET()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_002_RET() runs on AeSimu system CseSystem {
+					
+					var integer v_containerIndex := -1;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// create Container directly on CSEBase from superAE					
+					v_containerIndex := f_cse_createResource(int3, m_createContainerBase, -1);
+					
+					// Retrieve Container from S-AEWithoutSSP
+					f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_containerIndex), "S-AEWithoutSSP")));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4128))) {	//SERVICE_SUBSCRIPTION_NOT_ESTABLISHED(4128)
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Operation properly rejected with 4128 (SERVICE_SUBSCRIPTION_NOT_ESTABLISHED)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4128))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT responds with an SERVICE_SUBSCRIPTION_NOT_ESTABLISHED error when the AE 
+				 * 			not having service subscription tries to perform OPERATION on the resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_002_UPD() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_002_UPD()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_002_UPD() runs on AeSimu system CseSystem {
+					
+					var integer v_containerIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateContainerBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// create Container directly on CSEBase from superAE					
+					v_containerIndex := f_cse_createResource(int3, m_createContainerBase, -1);
+					
+					v_updateRequest := f_getUpdateRequestPrimitive(int3, v_containerIndex, v_updateRequestPrimitive);
+					v_updateRequest.from_ := "S-AEWithoutSSP";	//Update Container from AE without ServiceSubscriptionProfile (SSP)
+					
+					f_send(e_mcaPort, m_request(v_updateRequest));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4128))) {	//SERVICE_SUBSCRIPTION_NOT_ESTABLISHED(4128)
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Operation properly rejected with 4128 (SERVICE_SUBSCRIPTION_NOT_ESTABLISHED)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4128))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT responds with an SERVICE_SUBSCRIPTION_NOT_ESTABLISHED error when the AE 
+				 * 			not having service subscription tries to perform OPERATION on the resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_002_DEL() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_002_DEL()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_002_DEL() runs on AeSimu system CseSystem {
+					
+					var integer v_containerIndex := -1;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// create Container directly on CSEBase from superAE					
+					v_containerIndex := f_cse_createResource(int3, m_createContainerBase, -1);
+					
+					// Delete Container from S-AEWithoutSSP
+					f_send(e_mcaPort, m_request(m_delete(f_getResourceAddress(v_containerIndex), "S-AEWithoutSSP")));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4128))) {	//SERVICE_SUBSCRIPTION_NOT_ESTABLISHED(4128)
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Operation properly rejected with 4128 (SERVICE_SUBSCRIPTION_NOT_ESTABLISHED)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4128))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+                					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT responds with an error when the AE having
+				 * 			 inactive service subscription tries to perform a request
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_003_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_003_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_003_CRE() runs on AeSimu system CseSystem {
+					
+					var RequestPrimitive v_request;
+				    
+				    var integer v_subscriptionProfileIndex := -1;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileDeactivated; 
+					var template RequestPrimitive v_createRequestContainer := m_createContainerBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with INACTIVE status
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+		    
+		 		  	// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+										
+					// Create a container resource from same AE
+					v_request := f_getCreateRequestPrimitive(int3, v_createRequestContainer, -1);					
+					v_request.from_ := PX_ALLOWED_C_AE_IDS[0];
+					
+					f_send(e_mcaPort, m_request(v_request));
+		    
+					tc_ac.start;
+					alt {
+						
+						//SERVICE_SUBSCRIPTION_NOT_ACTIVE 
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4139))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request rejected successfully as SERVICE_SUBSCRIPTION_NOT_ACTIVE (4139)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4139))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4139 as SERVICE_SUBSCRIPTION_NOT_ACTIVE instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}//f_CSE_SSM_SSP_003_CRE
+				
+				
+				/**
+				 * @desc Check that the IUT responds with an error when the AE having
+				 * 			 inactive service subscription tries to perform a request
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_003_RET() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_003_RET()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_003_RET() runs on AeSimu system CseSystem {
+					
+				    
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileDeactivated; 
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with INACTIVE status
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+		    
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+										
+					// Retrieve AE 
+					f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_aeIndex), PX_ALLOWED_C_AE_IDS[0])));							
+
+					tc_ac.start;
+					alt {
+						
+						//SERVICE_SUBSCRIPTION_NOT_ACTIVE 
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4139))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request rejected successfully as SERVICE_SUBSCRIPTION_NOT_ACTIVE (4139)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4139))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4139 as SERVICE_SUBSCRIPTION_NOT_ACTIVE instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}//f_CSE_SSM_SSP_003_RET
+				
+				/**
+				 * @desc Check that the IUT responds with an error when the AE having
+				 * 			 inactive service subscription tries to perform a request
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_003_UPD() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_003_UPD()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_003_UPD() runs on AeSimu system CseSystem {
+					
+				    
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileDeactivated; 
+					
+					var template RequestPrimitive v_updateAeRequestPrimitive := m_updateAeBase;
+					var RequestPrimitive v_updateRequest;
+					
+					var Labels v_labels_1:= {"VALUE_1"};
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with INACTIVE status
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+		    
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					
+					//Update AE		
+					v_updateAeRequestPrimitive.primitiveContent.aE.labels := v_labels_1;
+					v_updateRequest := f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateAeRequestPrimitive);
+					v_updateRequest.from_ := PX_ALLOWED_C_AE_IDS[0];
+					
+					
+					f_send(e_mcaPort, m_request(v_updateRequest));		
+							
+					tc_ac.start;
+					alt {
+						
+						//SERVICE_SUBSCRIPTION_NOT_ACTIVE 
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4139))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request rejected successfully as SERVICE_SUBSCRIPTION_NOT_ACTIVE (4139)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4139))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4139 as SERVICE_SUBSCRIPTION_NOT_ACTIVE instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}//f_CSE_SSM_SSP_003_UPD
+				
+				/**
+				 * @desc Check that the IUT responds with an error when the AE having
+				 * 			 inactive service subscription tries to perform a request
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_003_DEL() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_003_DEL()); 	
+					v_ae1.done;					
+				}
+				
+				/**
+				 * @desc 
+				 * @verdict 
+				 */
+				function f_CSE_SSM_SSP_003_DEL() runs on AeSimu system CseSystem {
+					
+				    
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileDeactivated; 
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with INACTIVE status
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+		    
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					
+					f_send(e_mcaPort, m_request(m_delete(f_getResourceAddress(v_aeIndex), PX_ALLOWED_C_AE_IDS[0])));	
+							
+					tc_ac.start;
+					alt {
+						
+						//SERVICE_SUBSCRIPTION_NOT_ACTIVE 
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4139))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request rejected successfully as SERVICE_SUBSCRIPTION_NOT_ACTIVE (4139)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4139))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4139 as SERVICE_SUBSCRIPTION_NOT_ACTIVE instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}//f_CSE_SSM_SSP_003_DEL
+				
+				
+				/**
+				 * @desc Check that the IUT processes the request when the AE having an active service subscription tries to perform a request
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_004() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_004()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_004() runs on AeSimu system CseSystem {
+					
+				    
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileDeactivated; 
+					var template RequestPrimitive v_updateServiceSubscriptionProfile := m_updateServiceSubscriptionProfileActivated;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with INACTIVE status
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+		  	
+		  			// Update ServiceSubscriptionProfile with activate = true
+					f_cse_updateResource(int11, v_subscriptionProfileIndex, v_updateServiceSubscriptionProfile); 		
+		    
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+										
+					// Retrieve AE successfully beacuse serviceSubscription ACTIVE now
+					f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_aeIndex), PX_ALLOWED_C_AE_IDS[0])));							
+
+					tc_ac.start;
+					alt {
+						
+						//200 OK
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully retrieved resource 200 OK)");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2000))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully retrieve with 200 OK instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}//f_CSE_SSM_SSP_004
+				
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MAE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MAE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MAE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					var RequestPrimitive v_request;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+
+					//Create another Ae : Max 1 allowed as per SSP created above
+					//Assumtption: PX_ALLOWED_C_AE_IDS: [1]Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					v_request := f_getCreateRequestPrimitive(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[1]), -1);
+					f_send(e_mcaPort, m_request(v_request));
+				    
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MNC() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MNC()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MNC() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var RequestPrimitive v_requestContainerCreate;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumContainers = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createResource(int3, m_createContainerBase, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create another container from same AE. maxNumContainers allowed 1
+					v_requestContainerCreate := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex);
+					f_send(e_mcaPort, m_request(v_requestContainerCreate));
+					
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MIC_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MIC_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MIC_CRE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					var integer v_containerIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createContentInstanceRequest := m_createContentInstanceBase;
+					var RequestPrimitive v_request;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumInstancesPerContainer = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createResource(int3, m_createContainerBase, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create 1 content instance under
+					v_containerIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					// Create another content instance from same AE. maxNumInstancesPerContainer allowed 1
+					v_createContentInstanceRequest.primitiveContent.contentInstance.resourceName := c_defaultContentInstanceResourceName & int2str(2);
+					v_request := f_getCreateRequestPrimitive(int4, v_createContentInstanceRequest, v_containerIndex);
+					f_send(e_mcaPort, m_request(v_request));
+
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MNT() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MNT()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MNT() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					
+					var RequestPrimitive v_request;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createTimeSeriesRequest := m_createTimeSeriesBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one TimeSeries container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);															
+					vc_ae2.start(f_cse_createResource(int29, m_createTimeSeriesBase, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create another TimeSeries container. maxNumTimeSeries allowed 1						
+					v_createTimeSeriesRequest.primitiveContent.timeSeries.resourceName := c_defaultTimeSeriesResourceName & int2str(2);
+					v_request := f_getCreateRequestPrimitive(int29, v_createTimeSeriesRequest, v_aeIndex);
+					f_send(e_mcaPort, m_request(v_request));
+					
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MMG_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MMG_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MMG_CRE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					var integer v_containerOneIndex := -1;
+					var integer v_containerTwoIndex := -1;
+					
+					var RequestPrimitive v_request;
+					var ListOfURIs v_memberIDs;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxMembersPerGroup = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createResource(int3, m_createContainerBase, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_containerOneIndex := f_getLatestResourceIndex(vc_ae2);
+					
+					// Create another container from same AE
+					vc_ae2.start(f_cse_createResource(int3, m_createContainerBase, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_containerTwoIndex := f_getLatestResourceIndex(vc_ae2);
+					
+					// Create one Group resource with 2 containers above as members				
+					v_memberIDs := {
+										f_getResourceId(vc_resourcesList[v_containerOneIndex].resource), 
+										f_getResourceId(vc_resourcesList[v_containerTwoIndex].resource)
+									};
+																					
+					v_request := f_getCreateRequestPrimitive(int9, m_createGroup(2, v_memberIDs, omit, int2, -, omit,-), -1);
+					v_request.from_ := PX_ALLOWED_C_AE_IDS[0];
+					
+					f_send(e_mcaPort, m_request(v_request));
+					
+					
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MNB() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MNB()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MNB() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					var integer v_containerIndex := -1; 
+					
+					var RequestPrimitive v_request;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxNumBytes100;
+					var template RequestPrimitive v_createRequestContentInstance;	
+					
+					var XSD.String v_instanceData := any2unistr(int2oct(1, 200)); //200Bytes
+					
+					// Test component configuration
+					f_cf01Up(true);
+										
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createResource(int3, m_createContainerBase, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					// Create another content instance with 200 bytes size. Max allowed 100 bytes
+					v_containerIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createRequestContentInstance := m_createContentInstance(c_defaultContentInstanceResourceName, v_instanceData);
+					v_request := f_getCreateRequestPrimitive(int4, v_createRequestContentInstance, v_containerIndex);
+					f_send(e_mcaPort, m_request(v_request));
+				
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+				
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MND() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MND()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MND() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createNodeRequest := m_createNodeBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+							
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumNodes = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+		
+					// Create 1 Node resource under CSEBase
+					v_createNodeRequest.primitiveContent.node.resourceName := c_defaultNodeResourceName;
+					v_createNodeRequest.from_ := PX_ALLOWED_C_AE_IDS[0];
+					
+					vc_ae2.start(f_CSE_DMR_CRE_001(int14, v_createNodeRequest, -));//Node
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					// Create another Node resource under CSEBase and maxNumNodes set to 1		
+					v_createNodeRequest.primitiveContent.node.resourceName := c_defaultNodeResourceName & int2str(2);			
+					v_request := f_getCreateRequestPrimitive(int14, v_createNodeRequest, -1);
+					v_request.from_ := PX_ALLOWED_C_AE_IDS[0];
+					f_send(e_mcaPort, m_request(v_request));
+					
+					
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT responds with an error when the authorized AE tries to perform OPERATION on the
+				 * 			 resource TARGET_RESOURCE_ADDRESS and it exceeds the limit for ATTRIBUTE_NAME in its 
+				 * 				m2mServiceSubscriptionProfile resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_007_MNU() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_007_MNU()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_007_MNU() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createServiceSubscribedUserProfile := m_createServiceSubscribedUserProfileMaxValue1;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumUsers = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+		
+					//// Create 1 ServiceSubscriptionUserProfile i.e 1 user associated with this Service Subscription Profile
+					v_createServiceSubscribedUserProfile.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_cse_createResource(int52, v_createServiceSubscribedUserProfile, v_subscriptionProfileIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);					
+					
+					//// Create another ServiceSubscriptionUserProfile, max allowed users associated with this Service Subscription Profile is 1
+					v_createServiceSubscribedUserProfile.primitiveContent.serviceSubscribedUserProfile.resourceName := c_defaultServiceSubscribedUserProfileResourceName & int2str(2);			
+					v_request := f_getCreateRequestPrimitive(int52, v_createServiceSubscribedUserProfile, v_subscriptionProfileIndex);
+					f_send(e_mcaPort, m_request(v_request));
+					
+					tc_ac.start;
+					alt {
+						
+						// SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4141))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Request successfully Rejected");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4141))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with 4141 (SERVICE_SUBSCRIPTION_LIMITS_EXCEEDED) instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MAE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MAE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MAE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					var RequestPrimitive v_request;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					//Create Ae : Max 1 allowed as per SSP created above
+					//Assumtption/TODO: PX_ALLOWED_C_AE_IDS[0] is Linked to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					v_request := f_getCreateRequestPrimitive(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1);
+					f_send(e_mcaPort, m_request(v_request));
+				    
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MNC() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MNC()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MNC() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var RequestPrimitive v_requestContainerCreate;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumContainers = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create container from same AE. maxNumContainers allowed 1
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_requestContainerCreate := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex);
+					v_requestContainerCreate.from_ := PX_ALLOWED_C_AE_IDS[0];
+					
+					f_send(e_mcaPort, m_request(v_requestContainerCreate));
+					
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MIC_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MIC_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MIC_CRE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					var integer v_containerIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createContentInstanceRequest := m_createContentInstanceBase;
+					var template RequestPrimitive v_createContainerRequest := m_createContainerBase;
+					var RequestPrimitive v_request;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumInstancesPerContainer = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createContainerRequest.from_ := PX_ALLOWED_C_AE_IDS[0];					
+					vc_ae2.start(f_cse_createResource(int3, v_createContainerRequest, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					
+					// Create 1 content instance from same AE. maxNumInstancesPerContainer allowed 1
+					v_request := f_getCreateRequestPrimitive(int4, m_createContentInstanceBase, v_containerIndex);
+					f_send(e_mcaPort, m_request(v_request));
+
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MNT() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MNT()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MNT() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					
+					var RequestPrimitive v_request;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createTimeSeriesRequest := m_createTimeSeriesBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create another TimeSeries container. maxNumTimeSeries allowed 1						
+					v_request := f_getCreateRequestPrimitive(int29, m_createTimeSeriesBase, v_aeIndex);
+					v_request.from_ := PX_ALLOWED_C_AE_IDS[0];
+					f_send(e_mcaPort, m_request(v_request));
+					
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MMG_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MMG_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MMG_CRE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					var integer v_containerOneIndex := -1;
+					
+					var RequestPrimitive v_request;
+					var ListOfURIs v_memberIDs;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createContainerRequest := m_createContainerBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxMembersPerGroup = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createContainerRequest.from_ := PX_ALLOWED_C_AE_IDS[0];					
+					vc_ae2.start(f_cse_createResource(int3, v_createContainerRequest, v_aeIndex));
+					
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_containerOneIndex := f_getLatestResourceIndex(vc_ae2);
+					
+					
+					// Create one Group resource with 1 container above as members				
+					v_memberIDs := {
+										f_getResourceId(vc_resourcesList[v_containerOneIndex].resource)
+									};
+																					
+					v_request := f_getCreateRequestPrimitive(int9, m_createGroup(1, v_memberIDs, omit, int2, -, omit,-), -1);
+					v_request.from_ := PX_ALLOWED_C_AE_IDS[0];
+					f_send(e_mcaPort, m_request(v_request));
+					
+					
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MNB() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MNB()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MNB() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					var integer v_containerIndex := -1; 
+					var RequestPrimitive v_request;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxNumBytes100;
+					var template RequestPrimitive v_createContainerRequest := m_createContainerBase;
+					var template RequestPrimitive v_createRequestContentInstance;	
+					
+					var XSD.String v_instanceData := any2unistr(int2oct(1, 50)); //50Bytes
+
+					// Test component configuration
+					f_cf01Up(true);
+															
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createContainerRequest.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_cse_createResource(int3, v_createContainerRequest, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					// Create another content instance with 50 bytes size. Max allowed 100 bytes
+					v_containerIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createRequestContentInstance := m_createContentInstance(c_defaultContentInstanceResourceName, v_instanceData);
+					v_request := f_getCreateRequestPrimitive(int4, v_createRequestContentInstance, v_containerIndex);
+					f_send(e_mcaPort, m_request(v_request));
+				
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+				
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MND() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MND()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MND() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createNodeRequest := m_createNodeBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+							
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumNodes = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					
+					// Create 1 Node resource under CSEBase and maxNumNodes set to 1		
+					v_request := f_getCreateRequestPrimitive(int14, m_createNodeBase, -1);
+					v_request.from_ := PX_ALLOWED_C_AE_IDS[0];
+					f_send(e_mcaPort, m_request(v_request));
+					
+					
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT processes the request when the authorized AE 
+				 * 			having not exceeded the limit for ATTRIBUTE_NAME in its m2mServiceSubscriptionProfile resource 
+				 * 			tries to perform OPERATION on the resource TARGET_RESOURCE_ADDRESS
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_008_MNU() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_008_MNU()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_008_MNU() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_request;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_createServiceSubscribedUserProfile := m_createServiceSubscribedUserProfileMaxValue1;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumUsers = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);				
+					
+					//// Create ServiceSubscriptionUserProfile, max allowed users associated with this Service Subscription Profile is 1
+					v_request := f_getCreateRequestPrimitive(int52, v_createServiceSubscribedUserProfile, v_subscriptionProfileIndex);
+					v_request.from_ := PX_ALLOWED_C_AE_IDS[0];					
+					f_send(e_mcaPort, m_request(v_request));
+					
+					tc_ac.start;
+					alt {
+						
+						// SUCCESSFULL CREATION
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource successfully created");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should successfully create instead of " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+			}// Basic_Operation
+			
+			
+			group Update  {
+				
+				/**
+				 * @desc Check that the  IUT updates  the value of the attributes activationTime, status, deactivationTime 
+				 * 			in <m2mserviceSubscriptionProfile> resource when activate attribute is set to TRUE in resource representation 
+				 * 				of UPDATE request
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_001() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_001()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_001() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileDeactivated;
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileActivated;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// Update ServiceSubscriptionProfile
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					// 			activate attribute set to TRUE
+                    // 			activationTime attribute set to Current Time
+                    // 			deactivationTime attribute set to Null
+                    //			status attribute set to ACTIVE
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.activate_)) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile Activate is not TRUE");
+				
+					}
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.activationTime, fx_generateTimestamp()))) {	//getcurrentTime() 
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile activationTime does not match with current time");
+				
+					} 
+				
+					if(ispresent(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.deactivationTime)){	 
+					
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile deactivationTime does not match with null.");
+					
+					} 
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.status, active ))){	 
+					
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile does not has Status as ACTIVE in updated content.");
+					} 
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT updates  the value of the attributes deactivationTime, status when 
+				 * 	activate attribute is set to FALSE in resource representation of UPDATE request
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_002() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_002()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_002() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileDeactivated;	//activate default value false
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileDeactivated;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// Update ServiceSubscriptionProfile
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	activate attribute set to FALSE
+					//	deactivationTime attribute set to Current Time
+					//	status attribute set to INACTIVE
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.activate_)) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile Activate is not FALSE");
+				
+					}
+					
+				
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.deactivationTime, fx_generateTimestamp() ))){	//getCurrentTime() 
+					
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile deactivationTime does not match current time");
+					
+					} 
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.status, inactive ))){	 
+					
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile does not has Status as INACTIVE in updated content.");
+					} 
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MAE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MAE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MAE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var M2mServiceSubscriptionProfile_optional m2mServiceSubscriptionProfile;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2; // maxNumAEs 2	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumAEsZero;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Update ServiceSubscriptionProfile and make maxNumAEs to 0
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+//					v_updateRequest.from_ := PX_ALLOWED_C_AE_IDS[0];
+					
+					f_send(e_mcaPort, m_request(v_updateRequest));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumAEs = currentNumberOfAE (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					m2mServiceSubscriptionProfile := vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile; 
+				
+					if(not(match(m2mServiceSubscriptionProfile.maxNumAEs, m2mServiceSubscriptionProfile.currentNumAEs))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumAEs should be equal to currentNumberOfAEs");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MNC() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MNC()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MNC() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumContainersZero;
+					var template RequestPrimitive v_createRequestContainer := m_createContainerBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumContainers = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createRequestContainer.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_cse_createResource(int3, v_createRequestContainer, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Update ServiceSubscriptionProfile and make maxNumContainers to 0
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumContainers = currentNumContainers (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumContainers, 1))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumContainers should be equal to currentNumContainers (1 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MNI() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MNI()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MNI() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumInstancesPerContainerOne;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumInstancesPerContainer = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create container and 2 content instances under
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					//// Create 2 container instances
+					//trigger 1k bytes data storage 200 bytes of data at 100 bytes at time
+					// Operations to generate charging info - AE2 stores total 200 bytes of data at 100 bytes at time
+					vc_ae2.start(f_cse_createContentAndInstances(200, 100, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Update ServiceSubscriptionProfile and make maxNumInstancesPerContainer to 1
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+
+
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumInstancesPerContainer = currentNumInstancesPerContainer (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumInstancesPerContainer, 2))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumInstancesPerContainer should be equal to currentNumInstancesPerContainer (2 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MNT() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MNT()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MNT() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumTimeSeriesZero;
+					var template RequestPrimitive v_createTimeSeriesRequest := m_createTimeSeriesBase;
+					var template RequestPrimitive v_createRequestContainer := m_createContainerBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one TimeSeries container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createTimeSeriesRequest.from_ := PX_ALLOWED_C_AE_IDS[0];															
+					vc_ae2.start(f_cse_createResource(int29, v_createTimeSeriesRequest, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Update ServiceSubscriptionProfile and make maxNumTimeSeries to 0
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumTimeSeries = currentNumTimeSeries (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumTimeSeries, 1))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumTimeSeries should be equal to currentNumTimeSeries (1 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MIT() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MIT()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MIT() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex, v_timeSeriesIndex := -1; 
+					
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumInstancesPerTimeSeriesZero;
+					var RequestPrimitive v_createTimeSeriesRequest := m_createTimeSeriesBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumInstancesPerContainer = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create TimeSeries and 1 TimeSeriesInstance under
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createTimeSeriesRequest.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_cse_createResource(int29, v_createTimeSeriesRequest, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_timeSeriesIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createResource(int30, m_createTimeSeriesInstanceBase, v_timeSeriesIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+
+					// Update ServiceSubscriptionProfile and make maxNumInstancesPerTimeSeries to 0
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+
+
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumInstancesPerTimeSeries = currentNumInstancesPerTimeSeries (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumInstancesPerTimeSeries, 1))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumInstancesPerTimeSeries should be equal to currentNumInstancesPerTimeSeries (1 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MMG() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MMG()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MMG() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var ListOfURIs v_memberIDs;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxMembersPerGroupZero;
+					
+					var template RequestPrimitive v_createGroupRequest;
+					
+					// Test component configuration
+					f_cf01Up(true);
+										
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one Group resource having one AE as member					
+					v_memberIDs := {f_getLatestResourceAddress(vc_ae2)};	
+					v_createGroupRequest := m_createGroup(2, v_memberIDs, omit, int2, -, omit,-);
+					v_createGroupRequest.from_ := PX_ALLOWED_C_AE_IDS[0];																
+					
+					vc_ae2.start(f_cse_createResource(int9, v_createGroupRequest, -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+
+					// Update ServiceSubscriptionProfile and make maxMembersPerGroup to 0
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumTimeSeries = currentNumTimeSeries (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxMembersPerGroup, 1))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxMembersPerGroup should be equal to current Members in group already created (1 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MNB() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MNB()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MNB() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxNumBytes200;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumBytes100;
+														
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+		
+					//// Create 2 container instances saving 200 bytes of data
+					
+					//trigger 1k bytes data storage 200 bytes of data at 100 bytes at time
+					// Operations to generate charging info - AE2 stores total 200 bytes of data at 100 bytes at time
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createContentAndInstances(200, 100, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					
+					// Update ServiceSubscriptionProfile and make maxNumBytes to 100
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumBytes = currentNumBytes (200 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumBytes, 200))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumBytes should be equal to currentNumBytes already created (200 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+				
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MND() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MND()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MND() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumNodesZero;
+					var template RequestPrimitive v_createNodeRequest := m_createNodeBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+												
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumNodes = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+		
+					//// Create 1 Node resource under CSEBase
+					v_createNodeRequest.primitiveContent.node.resourceName := omit;
+					v_createNodeRequest.from_ := PX_ALLOWED_C_AE_IDS[0];
+					
+					vc_ae2.start(f_CSE_DMR_CRE_001(int14, v_createNodeRequest, -));//Node
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					// Update ServiceSubscriptionProfile and make maxNumNodes to 0
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumNodes = currentNumBytes (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumNodes, 1))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumNodes  should be equal to currentNumBytes already created (1 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT overrides the value of the attribute ATTRIBUTE_NAME with the current limit
+				 * 		when the value provided in  the resource representation of the UPDATE request is less than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_003_MNU() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_003_MNU()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_003_MNU() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumUsersZero;
+					var template RequestPrimitive v_createServiceSubscribedUserProfile := m_createServiceSubscribedUserProfileMaxValue1;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumUsers = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+		
+					//// Create 1 ServiceSubscriptionUserProfile i.e 1 user associated with this Service Subscription Profile
+					v_createServiceSubscribedUserProfile.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_cse_createResource(int52, v_createServiceSubscribedUserProfile, v_subscriptionProfileIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);					
+					
+					// Update ServiceSubscriptionProfile and make maxNumUsers to 0
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumUsers = current M2M Service Users associated with this M2M Service Subscription. (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumUsers, 1))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumUsers  should be equal to current M2M Service Users associated with this M2M Service Subscription (1 in this case)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MAE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MAE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MAE() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var M2mServiceSubscriptionProfile_optional m2mServiceSubscriptionProfile;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumAEs2;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+
+					// Update ServiceSubscriptionProfile and make maxNumAEs to 2
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumAEs = 2 (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					m2mServiceSubscriptionProfile := vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile; 
+				
+					if(not(match(m2mServiceSubscriptionProfile.maxNumAEs, 2))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumAEs should be equal to 2");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MNC() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MNC()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MNC() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumContainers2;
+					var template RequestPrimitive v_createRequestContainer := m_createContainerBase;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumContainers = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createRequestContainer.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_cse_createResource(int3, v_createRequestContainer, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Update ServiceSubscriptionProfile and make maxNumContainers to 2
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumContainers = 2
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumContainers, 2))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumContainers should be equal to 2");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MNI() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MNI()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MNI() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumInstancesPerContainer3;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumInstancesPerContainer = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create container and 2 content instances under
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					//// Create 2 container instances
+					//trigger 1k bytes data storage 200 bytes of data at 100 bytes at time
+					// Operations to generate charging info - AE2 stores total 200 bytes of data at 100 bytes at time
+					vc_ae2.start(f_cse_createContentAndInstances(200, 100, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Update ServiceSubscriptionProfile and make maxNumInstancesPerContainer to 3
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+
+
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumInstancesPerContainer = 3
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumInstancesPerContainer, 3))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumInstancesPerContainer should be equal to 3");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MNT() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MNT()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MNT() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex := -1; 
+					
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumTimeSeries3;
+					
+					var template RequestPrimitive v_createTimeSeriesRequest := m_createTimeSeriesBase;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one TimeSeries container
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);		
+					v_createTimeSeriesRequest.from_ := PX_ALLOWED_C_AE_IDS[0];													
+					vc_ae2.start(f_cse_createResource(int29, v_createTimeSeriesRequest, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Update ServiceSubscriptionProfile and make maxNumTimeSeries to 3
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumTimeSeries = 3
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumTimeSeries, 3))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumTimeSeries should be equal to updated value (3)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MIT() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MIT()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MIT() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_aeIndex, v_timeSeriesIndex := -1; 
+					
+					var RequestPrimitive v_updateRequest;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumInstancesPerTimeSeries3;
+					var RequestPrimitive v_createTimeSeriesRequest := m_createTimeSeriesBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumInstancesPerContainer = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create TimeSeries and 1 TimeSeriesInstance under
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					v_createTimeSeriesRequest.from_ := PX_ALLOWED_C_AE_IDS[0];													
+					vc_ae2.start(f_cse_createResource(int29, v_createTimeSeriesRequest, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					v_timeSeriesIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createResource(int30, m_createTimeSeriesInstanceBase, v_timeSeriesIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					// Update ServiceSubscriptionProfile and make maxNumInstancesPerTimeSeries to 3
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+
+
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumInstancesPerTimeSeries = 3
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumInstancesPerTimeSeries, 3))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumInstancesPerTimeSeries should be equal to updated value (3)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MMG() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MMG()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MMG() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var ListOfURIs v_memberIDs;
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxMembersPerGroup3;
+					var template RequestPrimitive v_createGroupRequest;
+					
+					var template RequestPrimitive v_createRequestContainer := m_createContainerBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+										
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumTimeSeries = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+					// Create one Group resource container					
+					v_memberIDs := {f_getLatestResourceAddress(vc_ae2)};		
+					v_createGroupRequest := m_createGroup(2, v_memberIDs, omit, int2, -, omit,-);
+					v_createGroupRequest.from_ := PX_ALLOWED_C_AE_IDS[0];														
+					vc_ae2.start(f_cse_createResource(int9, v_createGroupRequest, -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+
+					// Update ServiceSubscriptionProfile and make maxMembersPerGroup to 3
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumTimeSeries = 3
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxMembersPerGroup, 3))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxMembersPerGroup should be equal to 3 (updated value)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MNB() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MNB()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MNB() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxNumBytes200;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumBytes300;
+										
+					// Test component configuration
+					f_cf01Up(true);
+										
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumBytes = 200
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+		
+					//// Create 2 container instances saving 200 bytes of data
+					
+					//trigger 1k bytes data storage 200 bytes of data at 100 bytes at time
+					// Operations to generate charging info - AE2 stores total 200 bytes of data at 100 bytes at time
+					v_aeIndex := f_getLatestResourceIndex(vc_ae2);
+					vc_ae2.start(f_cse_createContentAndInstances(200, 100, v_aeIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					
+					// Update ServiceSubscriptionProfile and make maxNumBytes to 300
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumBytes = updatedValue (300 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumBytes, 300))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumBytes should be equal to 300");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+				
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MND() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MND()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MND() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue2;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumNodes3;
+					var template RequestPrimitive v_createNodeRequest := m_createNodeBase;
+										
+					// Test component configuration
+					f_cf01Up(true);
+							
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumNodes = 2
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+		
+					//// Create 1 Node resource under CSEBase
+					v_createNodeRequest.primitiveContent.node.resourceName := omit;
+					v_createNodeRequest.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_CSE_DMR_CRE_001(int14, v_createNodeRequest, -));//Node
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+					
+					// Update ServiceSubscriptionProfile and make maxNumNodes to 3
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumNodes = currentNumBytes (1 in this case)
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumNodes, 3))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumNodes  should be equal to updated value (3)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS
+				 * 		 resource, when the value provided in  the resource representation of the UPDATE request is more than the current limit.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSP_UPD_004_MNU() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSP_UPD_004_MNU()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSP_UPD_004_MNU() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var RequestPrimitive v_updateRequest;
+					var integer v_aeIndex := -1; 
+					
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1;	
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscriptionProfileMaxNumUsers2;
+					var template RequestPrimitive v_createServiceSubscribedUserProfile := m_createServiceSubscribedUserProfileMaxValue1;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE, Create serviceSubscriptionProfile with maxNumUsers = 1
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+
+					// register one AE
+					// TODO: Link this AE to Subscription Profile created above
+					// NOTE: Its assumed that the CSE has the mapping of this AE with ServiceSubscriptionProfile
+					vc_ae2.start(f_cse_createResource(int2, m_createAe(vc_aeSimuDesc.appId, omit, PX_ALLOWED_C_AE_IDS[0]), -1));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
+
+		
+					//// Create 1 ServiceSubscriptionUserProfile i.e 1 user associated with this Service Subscription Profile
+					v_createServiceSubscribedUserProfile.from_ := PX_ALLOWED_C_AE_IDS[0];
+					vc_ae2.start(f_cse_createResource(int52, v_createServiceSubscribedUserProfile, v_subscriptionProfileIndex));
+					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);					
+					
+					// Update ServiceSubscriptionProfile and make maxNumUsers to 2
+					v_updateRequest := f_getUpdateRequestPrimitive(int11, v_subscriptionProfileIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": m2mServiceSubscriptionProfile successfully Updated.");
+		
+						}
+	
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					// 	Verifiy that the ServiceSubscriptionProfile resource has been updated correctly:
+					//	maxNumUsers = 2
+                    
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_subscriptionProfileIndex);												
+					
+					if(not(match(vc_primitiveContentRetrievedResource.m2mServiceSubscriptionProfile.maxNumUsers, 2))) {	
+																						
+						setverdict(fail, __SCOPE__&":INFO: Retrieved ServiceSubscriptionProfile maxNumUsers  should be equal to updated value (2)");
+				
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+
+
+
+
+
+				
+			}// Update
+			
+		}// Service_Subscription_Profile
+		
+		group Service_Subscribed_App_Rule {
+		
+			group g_CSE_SSAR_001 {
+				
+				/**
+				 * @desc Check that the  IUT successfully performs operations on 
+				 * 			resource seriviceSubscribedAppRule for authorized AE.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSAR_001_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSAR_001_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSAR_001_CRE() runs on AeSimu system CseSystem {
+					
+					var RequestPrimitive v_request;
+					var integer v_resourceIndex := -1;
+					var template RequestPrimitive v_createRequest := m_createServiceSubscribedAppRuleBase;
+					
+					// Test component configuration
+					f_cf01Up(true);
+										
+					// Create seriviceSubscribedAppRule under CSEBase 
+					v_request := f_getCreateRequestPrimitive(int19, v_createRequest, -1);
+					f_send(e_mcaPort, m_request(v_request));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource type seriviceSubscribedAppRule created successfully");
+							f_checkAttributesToBeSaved(int19, v_request, vc_response.primitive.responsePrimitive);
+							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int19, -1);
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while creating resource type seriviceSubscribedAppRule ");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type seriviceSubscribedAppRule" );
+						}
+					}
+													
+					//Check to see if the resource is present or not
+					if (f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+					
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+		
+				/**
+				 * @desc Check that the  IUT successfully performs operations on 
+				 * 			resource seriviceSubscribedAppRule for authorized AE.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSAR_001_RET() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSAR_001_RET()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSAR_001_RET() runs on AeSimu system CseSystem {
+					
+					var RequestPrimitive v_request;
+					var integer v_serviceSubscribedAppRuleIndex := -1;
+					var template RequestPrimitive v_createRequest := m_createServiceSubscribedAppRuleBase;
+					var template PrimitiveContent v_contentResponse;      
+					var MsgIn v_response;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// Create seriviceSubscribedAppRule under CSEBase 
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, m_createServiceSubscribedAppRuleBase, -1);
+					
+					v_contentResponse.serviceSubscribedAppRule := mw_contentServiceSubscribedAppRuleBase;
+			
+					// Retrieve v_serviceSubscribedAppRule
+					f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_serviceSubscribedAppRuleIndex), f_getOriginator(-1))));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": serviceSubscribedAppRule successfully retrived.");
+							
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2000))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while retrieving serviceSubscribedAppRule with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT successfully performs operations on 
+				 * 			resource seriviceSubscribedAppRule for authorized AE.
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSAR_001_UPD() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSAR_001_UPD()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSAR_001_UPD() runs on AeSimu system CseSystem {
+					
+					var integer v_serviceSubscribedAppRuleIndex := -1;
+					var template RequestPrimitive v_createRequest := m_createServiceSubscribedAppRuleBase;
+					
+					var RequestPrimitive v_updateRequest;
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscribedAppRule;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// Create serviceSubscribedAppRule under CSEBase 
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, m_createServiceSubscribedAppRuleBase, -1);
+
+					// Update serviceSubscribedAppRule
+					v_updateRequest := f_getUpdateRequestPrimitive(int19, v_serviceSubscribedAppRuleIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": serviceSubscribedAppRule successfully updated.");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while retrieving m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Verifiy that the seriviceSubscribedAppRule resource has been updated
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_serviceSubscribedAppRuleIndex);
+					
+					if(not(match(v_updateRequestPrimitive.primitiveContent.serviceSubscribedAppRule.allowedApp_IDs, vc_primitiveContentRetrievedResource.serviceSubscribedAppRule.allowedApp_IDs))) {
+						setverdict(fail, __SCOPE__&":INFO: Retrived ServiceSubscriptionProfile does not match with updated content.");
+					} else {
+						setverdict(pass, __SCOPE__ & ": Retrived ServiceSubscriptionProfile matched with updated content.");
+					}
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the IUT successfully performs operations on resource m2mServiceSubscriptionProfile for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSAR_001_DEL() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSAR_001_DEL()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSAR_001_DEL() runs on AeSimu system CseSystem {
+					
+					var integer v_serviceSubscribedAppRuleIndex := -1;
+					var template RequestPrimitive v_createRequest := m_createServiceSubscribedAppRuleBase;
+										
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// Create serviceSubscribedAppRule under CSEBase 
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, m_createServiceSubscribedAppRuleBase, -1);
+					
+					// Delete serviceSubscribedAppRule
+					f_send(e_mcaPort, m_request(m_delete(f_getResourceAddress(v_serviceSubscribedAppRuleIndex), f_getOriginator(v_serviceSubscribedAppRuleIndex))));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": v_serviceSubscribedAppRuleIndex successfully deleted.");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2002))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while deleting v_serviceSubscribedAppRuleIndex with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while deleting resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Verify that m2mServiceSubscriptionProfile is not present
+					if (f_cse_isResourceNotPresent(-1, f_getResourceName(vc_resourcesList[v_serviceSubscribedAppRuleIndex].resource))){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource deleted");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted");
+					}
+                					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+				
+			}//	g_CSE_SSAR_001
+		
+		}//Service_Subscribed_App_Rule
+		
+		group Service_Subscribed_Node {
+			
+			group Basic_Operation {
+				
+			group g_CSE_SSN_001 {
+				
+				
+				/**
+				 * @desc Check that the IUT successfully performs operations on resource seriviceSubscribedNode for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSN_001_CRE() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSN_001_CRE()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSN_001_CRE() runs on AeSimu system CseSystem {
+					
+					var integer v_resourceIndex := -1;
+					var integer v_serviceSubscribedAppRuleIndex, v_subscriptionProfileIndex := -1;
+					var XSD.ID v_cseId := PX_TS_CSE1.cseId;
+					
+					var template ListOfM2MID v_allowedUsers := {""};
+					var ListOfM2MID v_allowedAEs := {""}
+					var NodeID v_nodeID := "urn:gsma:imei:90420156-025763-0"; //Dummy ID
+					
+					var RequestPrimitive v_createServiceSubscribedNode;
+					var template RequestPrimitive v_createServiceSubscribedAppRule;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+					
+					v_createServiceSubscribedAppRule :=  m_createServiceSubscribedAppRule({"None"}, {vc_aeSimuDesc.appId}, v_allowedAEs, valueof(v_allowedUsers));
+					// Create AppRule under CSEBase
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, v_createServiceSubscribedAppRule);
+					
+					// ServiceSubscribedNode as a child of SubscriptionProfile with ruleLinks pointing to SubscribedAppRule
+					v_createServiceSubscribedNode := m_createServiceSubscribedNodeBase({f_getResourceAddress(v_serviceSubscribedAppRuleIndex)}, v_nodeID, v_cseId);
+					v_createServiceSubscribedNode := f_getCreateRequestPrimitive(int20, v_createServiceSubscribedNode, v_subscriptionProfileIndex);
+					
+					f_send(e_mcaPort, m_request(v_createServiceSubscribedNode));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource type ServiceSubscribedNode  created successfully");
+							f_checkAttributesToBeSaved(int11, v_createServiceSubscribedNode, vc_response.primitive.responsePrimitive);
+							v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int11, -1);
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while creating resource type ServiceSubscribedNode");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while creating resource type ServiceSubscribedNode");
+						}
+					}
+													
+					//Check to see if the resource is present or not
+					if (f_cse_isResourcePresent(v_resourceIndex)){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource created");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not created");
+					}
+										
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+		
+				/**
+				 * @desc Check that the  IUT successfully performs operations on resource seriviceSubscribedNode for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSN_001_RET() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSN_001_RET()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSN_001_RET() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_serviceSubscribedAppRuleIndex := -1;
+					var integer v_serviceSubscribedNodeIndex := -1;
+					var template ListOfM2MID v_allowedUsers := {""};
+					var XSD.ID v_cseId := PX_TS_CSE1.cseId;
+					
+					var ListOfM2MID v_allowedAEs := {""}
+					var NodeID v_nodeID := "urn:gsma:imei:90420156-025763-0"; //Dummy ID
+					
+					var template PrimitiveContent v_contentResponse;      
+					
+					var template RequestPrimitive v_createServiceSubscribedNode;
+					var template RequestPrimitive v_createServiceSubscribedAppRule;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					
+					var MsgIn v_response;
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+					
+					v_createServiceSubscribedAppRule :=  m_createServiceSubscribedAppRule({"None"}, {vc_aeSimuDesc.appId}, v_allowedAEs, valueof(v_allowedUsers));
+					// Create AppRule under CSEBase
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, v_createServiceSubscribedAppRule);
+				
+					// ServiceSubscribedNode as a child of SubscriptionProfile with ruleLinks pointing to SubscribedAppRule
+					v_createServiceSubscribedNode := m_createServiceSubscribedNodeBase({f_getResourceAddress(v_serviceSubscribedAppRuleIndex)}, v_nodeID, v_cseId);
+					v_serviceSubscribedNodeIndex := f_cse_createResource(int20, v_createServiceSubscribedNode, v_subscriptionProfileIndex);
+					
+					v_contentResponse.serviceSubscribedNode := mw_contentServiceSubscribedNodeBase;
+			
+					// Retrieve ServiceSubscribedNode
+					f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_serviceSubscribedNodeIndex), f_getOriginator(-1))));
+					
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": ServiceSubscribedNode successfully retrived.");
+							
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2000))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while retrieving ServiceSubscribedNode with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer from IUT for the last Request!");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT successfully performs operations on resource seriviceSubscribedNode for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSN_001_UPD() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSN_001_UPD()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSN_001_UPD() runs on AeSimu system CseSystem {
+					
+					var RequestPrimitive v_updateRequest;
+					var template RequestPrimitive v_updateRequestPrimitive := m_updateServiceSubscribedNode;
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_serviceSubscribedAppRuleIndex := -1;
+					var integer v_serviceSubscribedNodeIndex := -1;
+					var template ListOfM2MID v_allowedUsers := {""};
+					var XSD.ID v_cseId := PX_TS_CSE1.cseId;
+					
+					var ListOfM2MID v_allowedAEs := {""}
+					var NodeID v_nodeID := "urn:gsma:imei:90420156-025763-0"; //Dummy ID
+					
+					var template PrimitiveContent v_contentResponse;      
+					
+					var template RequestPrimitive v_createServiceSubscribedNode;
+					var template RequestPrimitive v_createServiceSubscribedAppRule;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+					
+					v_createServiceSubscribedAppRule :=  m_createServiceSubscribedAppRule({"None"}, {vc_aeSimuDesc.appId}, v_allowedAEs, valueof(v_allowedUsers));
+					// Create AppRule under CSEBase
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, v_createServiceSubscribedAppRule);
+				
+					// ServiceSubscribedNode as a child of SubscriptionProfile with ruleLinks pointing to SubscribedAppRule
+					v_createServiceSubscribedNode := m_createServiceSubscribedNodeBase({f_getResourceAddress(v_serviceSubscribedAppRuleIndex)}, v_nodeID, v_cseId);
+					v_serviceSubscribedNodeIndex := f_cse_createResource(int20, v_createServiceSubscribedNode, v_subscriptionProfileIndex);
+
+					// Update ServiceSubscribedNode
+					v_updateRequest := f_getUpdateRequestPrimitive(int20, v_serviceSubscribedNodeIndex, v_updateRequestPrimitive);
+					f_send(e_mcaPort, m_request(v_updateRequest));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": serviceSubscribedAppRule successfully updated.");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2004))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while retrieving m2mServiceSubscriptionProfile with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Verifiy that the ServiceSubscribedNode resource has been updated
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_serviceSubscribedNodeIndex);
+					
+					if(not(match(v_updateRequestPrimitive.primitiveContent.serviceSubscribedNode.niddRequired, vc_primitiveContentRetrievedResource.serviceSubscribedNode.niddRequired))) {
+						setverdict(fail, __SCOPE__&":INFO: Retrived serviceSubscribedNode does not match with updated content.");
+					} else {
+						setverdict(pass, __SCOPE__ & ": Retrived serviceSubscribedNode matched with updated content.");
+					}
+
+					// Postamble
+					f_cse_postamble_deleteResources();
+						
+					// Tear down
+					f_cf01Down();
+				}
+				
+				/**
+				 * @desc Check that the  IUT successfully performs operations on resource seriviceSubscribedNode for authorized AE
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSN_001_DEL() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSN_001_DEL()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSN_001_DEL() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_serviceSubscribedAppRuleIndex := -1;
+					var integer v_serviceSubscribedNodeIndex := -1;
+					var template ListOfM2MID v_allowedUsers := {""};
+					var XSD.ID v_cseId := PX_TS_CSE1.cseId;
+					
+					var ListOfM2MID v_allowedAEs := {""}
+					var NodeID v_nodeID := "urn:gsma:imei:90420156-025763-0"; //Dummy ID
+					
+					var template PrimitiveContent v_contentResponse;      
+					
+					var template RequestPrimitive v_createServiceSubscribedNode;
+					var template RequestPrimitive v_createServiceSubscribedAppRule;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+					
+					v_createServiceSubscribedAppRule :=  m_createServiceSubscribedAppRule({"None"}, {vc_aeSimuDesc.appId}, v_allowedAEs, valueof(v_allowedUsers));
+					// Create AppRule under CSEBase
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, v_createServiceSubscribedAppRule);
+				
+					// ServiceSubscribedNode as a child of SubscriptionProfile with ruleLinks pointing to SubscribedAppRule
+					v_createServiceSubscribedNode := m_createServiceSubscribedNodeBase({f_getResourceAddress(v_serviceSubscribedAppRuleIndex)}, v_nodeID, v_cseId);
+					v_serviceSubscribedNodeIndex := f_cse_createResource(int20, v_createServiceSubscribedNode, v_subscriptionProfileIndex);
+					
+					// Delete ServiceSubscribedNode
+					f_send(e_mcaPort, m_request(m_delete(f_getResourceAddress(v_serviceSubscribedNodeIndex), f_getOriginator(v_serviceSubscribedNodeIndex))));
+				    
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": ServiceSubscribedNode successfully deleted.");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2002))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while deleting ServiceSubscribedNode with status code " & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while deleting resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+					
+					// Verify that ServiceSubscribedNode is not present
+					if (f_cse_isResourceNotPresent(-1, f_getResourceName(vc_resourcesList[v_serviceSubscribedNodeIndex].resource))){
+						setverdict(pass, __SCOPE__ & ":INFO: Resource deleted");
+					} else {
+						setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted");
+					}
+                					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}
+				
+				
+				
+			
+				
+				
+			}
+			
+			
+			group Create {
+				
+				/**
+				 * @desc Check that the   IUT rejects CREATE request If the ruleLinks attribute
+				 * 			 is present in the resource representation, but the CSE-ID attribute 
+				 * 				is not present in the resource representation of <serviceSubscribedNode> resource
+				 * 
+				 */
+				testcase TC_CSE_SSM_SSN_CRE_001() runs on Tester system CseSystem {
+					var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+							
+					v_ae1.start(f_CSE_SSM_SSN_CRE_001()); 	
+					v_ae1.done;					
+				}
+				
+				function f_CSE_SSM_SSN_CRE_001() runs on AeSimu system CseSystem {
+					
+					var integer v_subscriptionProfileIndex := -1;
+					var integer v_serviceSubscribedAppRuleIndex := -1;
+					var integer v_serviceSubscribedNodeIndex := -1;
+					var template ListOfM2MID v_allowedUsers := {""};
+					
+					var ListOfM2MID v_allowedAEs := {""}
+					var NodeID v_nodeID := "urn:gsma:imei:90420156-025763-0"; //Dummy ID
+					
+					var template PrimitiveContent v_contentResponse;      
+					
+					var RequestPrimitive v_createServiceSubscribedNode;
+					var template RequestPrimitive v_createServiceSubscribedAppRule;
+					var template RequestPrimitive v_createServiceSubscriptionProfile := m_createM2mServiceSubscriptionProfileMaxValue1; // maxNumAEs 1	
+					
+					// Test component configuration
+					f_cf01Up(true);
+					
+					// directly on CSEBase from superAE
+					v_subscriptionProfileIndex := f_cse_createResource(int11, v_createServiceSubscriptionProfile, -1);
+					
+					v_createServiceSubscribedAppRule :=  m_createServiceSubscribedAppRule({"None"}, {vc_aeSimuDesc.appId}, v_allowedAEs, valueof(v_allowedUsers));
+					// Create AppRule under CSEBase
+					v_serviceSubscribedAppRuleIndex := f_cse_createResource(int19, v_createServiceSubscribedAppRule);
+				
+					// ServiceSubscribedNode as a child of SubscriptionProfile with ruleLinks pointing to SubscribedAppRule 
+					// and no CSE-ID
+					v_createServiceSubscribedNode := m_createServiceSubscribedNodeBase({f_getResourceAddress(v_serviceSubscribedAppRuleIndex)}, v_nodeID, omit);
+					
+					v_createServiceSubscribedNode := f_getCreateRequestPrimitive(int20, v_createServiceSubscribedNode, v_subscriptionProfileIndex);
+					
+					f_send(e_mcaPort, m_request(v_createServiceSubscribedNode));
+				    
+					tc_ac.start;
+					alt {
+						// BAD_REQUEST
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": ServiceSubscribedNode creation successfully rejected with 4000 (BAD_REQUEST).");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4000))) -> value vc_response{
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Request should be rejected with BAD_REQUEST instead of" & int2str(enum2int(vc_response.primitive.responsePrimitive.responseStatusCode)));
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while Creating resource");
+						}
+					}
+					
+					f_checkAeSimuStatus();
+                					
+					// Postamble
+					f_cse_postamble_deleteResources();
+                		
+					// Tear down
+					f_cf01Down();
+				}
+			
+			}
+			
+			}
+			
+		}//Service_Subscribed_Node
+		
+   group SoftwareManagement {
             /**
             * @desc Check that the IUT rejects the creation request of <softwareCampaign> resource if target node referenced in softwareTargets attribute does not exist
             *  
@@ -11785,7 +16107,7 @@ module OneM2M_Testcases_CSE_Release_4 {
                 f_cf02DownCseSimuMaster();
             } // f_CSE_SM_014
 
-     // }  End group SoftwareManagement        
+      	}//  End group SoftwareManagement        
         
 		group Transaction_Management {