diff --git a/OneM2M_Testcases_CSE.ttcn b/OneM2M_Testcases_CSE.ttcn
index ca0befd6acc4b88fa21ce830ff7e5d28b2de52ee..f346dcc5c9985743a5b238aebc35aff24d27f320 100644
--- a/OneM2M_Testcases_CSE.ttcn
+++ b/OneM2M_Testcases_CSE.ttcn
@@ -1739,6 +1739,83 @@ module OneM2M_Testcases_CSE {
 	
 				}//end TC_CSE_REG_RET_001
 				
+				group g_CSE_REG_RET_002 {
+					
+					testcase TC_CSE_REG_RET_002_CST() runs on Tester system CseSystem {
+						// Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template PrimitiveContent v_contentResponse;
+					
+						v_contentResponse.cSEBase := mw_contentCSEBase_rc1;
+						    
+						v_ae1.start(f_CSE_REG_RET_002(v_contentResponse));
+						v_ae1.done;
+					}
+					
+					testcase TC_CSE_REG_RET_002_NL() runs on Tester system CseSystem {
+						//Local variables
+						 var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						 var template PrimitiveContent v_contentResponse;
+	
+						 v_contentResponse.cSEBase := mw_contentCSEBase_rc1;
+	    
+						 v_ae1.start(f_CSE_REG_RET_002(v_contentResponse));
+						 v_ae1.done;
+					}
+					
+					function f_CSE_REG_RET_002(template PrimitiveContent p_contentResponse) runs on AeSimu {
+						//Local variables
+						 var MsgIn v_response;
+						 var integer v_aeIndex := -1;
+								   
+						 // Test control
+
+						 // Test component configuration
+						 f_cf01Up();
+
+						 // Test adapter configuration
+
+						 // Preamble
+						 v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+						 
+						 mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));//TODO Maybe PX_SUPER_AE_ID
+						 tc_ac.start;
+						 alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response {
+								tc_ac.stop;
+								if ((ispresent(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType)) or 
+								     (ispresent(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.nodeLink))){
+								  setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute cseType or nodeLink");
+								} else {
+								  setverdict(fail, __SCOPE__ & ": Error: Unable to retrieve attribute cseType"); 	
+								}
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Wrong response status code");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Error while retrieving resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, __SCOPE__ & ": No answer while retrieving resource");
+							}
+						}	
+
+						// Postamble
+						f_cse_postamble_deleteResources();
+
+						// Tear down
+						f_cf01Down();
+					} //end f_CSE_REG_RET_002
+					
+				} //end g_CSE_REG_RET_002
+				
 				/**
 				 * @desc Check that if the IUT is IN-CSE, it accepts an retrieval request of <CSEBase> resource and returns the cseType attribute. cseType Attribute is mandatory for IN-CSE
 				 * 
@@ -1930,8 +2007,361 @@ module OneM2M_Testcases_CSE {
 					// Tear down
 					f_cf01Down();
 
-				}//end TC_CSE_REG_UPD_BI_001			
+				}; //end TC_CSE_REG_UPD_BI_001
+				
+				group g_CSE_REG_UPD_002 {
+					
+					testcase TC_CSE_REG_UPD_002_ET() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_Attribute := {"expirationTime", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+    						
+						v_updateRequest.primitiveContent.remoteCSE.expirationTime := "20301231T012345";
+	
+						v_cse1.start(f_CSE_REG_UPD_002(v_updateRequest, c_Attribute));
+						v_cse1.done;
+						
+					}
+					
+					testcase TC_CSE_REG_UPD_002_LBL() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_Attribute := {"labels", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+    						
+						v_updateRequest.primitiveContent.remoteCSE.labels := {"MyLabel"};
+	
+						v_cse1.start(f_CSE_REG_UPD_002(v_updateRequest, c_Attribute));
+						v_cse1.done;
+	
+					}
+					
+					testcase TC_CSE_REG_UPD_002_POA() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_Attribute := {"pointofAccess", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+    					
+						v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := {"http://" & PX_CSE1_ADDRESS & "/"};
+	
+						v_cse1.start(f_CSE_REG_UPD_002(v_updateRequest, c_Attribute));
+						v_cse1.done;
+	
+					}
+					
+					testcase TC_CSE_REG_UPD_002_NL() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_Attribute := {"nodeLink", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+    						
+						v_updateRequest.primitiveContent.remoteCSE.nodeLink := c_defaultNodeID;
+	
+						v_cse1.start(f_CSE_REG_UPD_002(v_updateRequest, c_Attribute));
+						v_cse1.done;
+
+					}
+					
+					function f_CSE_REG_UPD_002(template RequestPrimitive p_requestPrimitive, in AttributeAux p_Attribute) runs on CseSimu {
+						// Local variables
+						//Local variables
+					    var MsgIn v_response;
+					    var RequestPrimitive v_request;
+						var ResourceType v_resourceType := int16;	//remoteCSE		
+						// Test control
+
+						// Test component configuration
+						f_cf04Up();
 
+						// Test adapter configuration
+
+						// Preamble
+						vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase);
+
+						// Test Body
+						v_request := f_getUpdateRequestPrimitive(int16, vc_remoteCseIndex, p_requestPrimitive);
+	
+						mccPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mccPort.receive(mw_response(mw_responsePrimitive(int2004, f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, __SCOPE__ & ": Accepted updation for resource type remoteCSE containing attribute " & p_Attribute.name);
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Wrong response status code in the response");
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Accepted updation for resource type remoteCSE without containing attribute " & p_Attribute.name);
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Rejected updation of resource type remoteCSE containing attribute" & p_Attribute.name);
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, __SCOPE__ & ": No answer while updating resource type remoteCSE");
+							}
+						}					    
+
+						// Postamble
+						f_cse_postamble_deleteResourcesCSE();
+
+						// Tear down
+						f_cf04Down();
+
+					}//end f_CSE_REG_UPD_002
+				} //end g_CSE_REG_UPD_002
+			    
+			    group g_CSE_REG_UPD_003 {
+	
+					testcase TC_CSE_REG_UPD_003_ET() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"expirationTime", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+			
+						v_updateRequest.primitiveContent.remoteCSE.expirationTime := "20301231T012345";
+
+						v_cse1.start(f_CSE_REG_UPD_003(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+		
+					}
+	
+					testcase TC_CSE_REG_UPD_003_LBL() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"labels", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+			
+						v_updateRequest.primitiveContent.remoteCSE.labels := {"MyLabel"};
+
+						v_cse1.start(f_CSE_REG_UPD_003(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+	
+					testcase TC_CSE_REG_UPD_003_POA() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"pointofAccess", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+		
+						v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := {"http://" & PX_CSE1_ADDRESS & "/"};
+
+						v_cse1.start(f_CSE_REG_UPD_003(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+	
+					testcase TC_CSE_REG_UPD_003_NL() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"nodeLink", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+			
+						v_updateRequest.primitiveContent.remoteCSE.nodeLink := c_defaultNodeID;
+
+						v_cse1.start(f_CSE_REG_UPD_003(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+					
+					testcase TC_CSE_REG_UPD_003_RR() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"requestReachability", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+
+						v_updateRequest.primitiveContent.remoteCSE.requestReachability := true;
+
+						v_cse1.start(f_CSE_REG_UPD_003(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+	
+					function f_CSE_REG_UPD_003(template RequestPrimitive p_requestPrimitive, in AttributeAux p_Attribute) runs on CseSimu {
+						// Local variables
+						//Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var ResourceType v_resourceType := int16;	//remoteCSE		
+						// Test control
+
+						// Test component configuration
+						f_cf04Up();
+
+						// Test adapter configuration
+
+						// Preamble
+						vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase);
+
+						// Test Body
+						v_request := f_getUpdateRequestPrimitive(int16, vc_remoteCseIndex, p_requestPrimitive);
+
+						mccPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mccPort.receive(mw_response(mw_responsePrimitive(int2004, f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, __SCOPE__ & ": Accepted updation for resource type remoteCSE containing attribute " & p_Attribute.name);
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Wrong response status code in the response");
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Accepted updation for resource type remoteCSE without containing attribute " & p_Attribute.name);
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Rejected updation of resource type remoteCSE containing attribute" & p_Attribute.name);
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, __SCOPE__ & ": No answer while updating resource type remoteCSE");
+							}
+						}					    
+
+						// Postamble
+						f_cse_postamble_deleteResourcesCSE();
+
+						// Tear down
+						f_cf04Down();
+
+					}//end f_CSE_REG_UPD_003
+				} //end g_CSE_REG_UPD_003
+			    
+				group g_CSE_REG_UPD_004 {
+	
+					testcase TC_CSE_REG_UPD_004_ET() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"expirationTime", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+			
+						v_updateRequest.primitiveContent.remoteCSE.expirationTime := "20301231T012345";
+
+						v_cse1.start(f_CSE_REG_UPD_004(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+		
+					}
+	
+					testcase TC_CSE_REG_UPD_004_LBL() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"labels", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+			
+						v_updateRequest.primitiveContent.remoteCSE.labels := {"MyLabel"};
+
+						v_cse1.start(f_CSE_REG_UPD_004(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+	
+					testcase TC_CSE_REG_UPD_004_POA() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"pointofAccess", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+		
+						v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := {"http://" & PX_CSE1_ADDRESS & "/"};
+
+						v_cse1.start(f_CSE_REG_UPD_004(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+	
+					testcase TC_CSE_REG_UPD_004_NL() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"nodeLink", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+			
+						v_updateRequest.primitiveContent.remoteCSE.nodeLink := c_defaultNodeID;
+
+						v_cse1.start(f_CSE_REG_UPD_004(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+					
+					testcase TC_CSE_REG_UPD_004_RR() runs on Tester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
+						const AttributeAux c_optionalAttribute := {"requestReachability", omit};
+						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
+
+						v_updateRequest.primitiveContent.remoteCSE.requestReachability := true;
+
+						v_cse1.start(f_CSE_REG_UPD_004(v_updateRequest, c_optionalAttribute));
+						v_cse1.done;
+
+					}
+	
+					function f_CSE_REG_UPD_004(template RequestPrimitive p_requestPrimitive, in AttributeAux p_Attribute) runs on CseSimu {
+						// Local variables
+						//Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var ResourceType v_resourceType := int16;	//remoteCSE		
+						// Test control
+
+						// Test component configuration
+						f_cf04Up();
+
+						// Test adapter configuration
+
+						// Preamble
+						vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase);
+
+						// Test Body
+						v_request := f_getUpdateRequestPrimitive(int16, vc_remoteCseIndex, p_requestPrimitive);
+
+						mccPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mccPort.receive(mw_response(mw_responsePrimitive(int2004, f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, __SCOPE__ & ": Accepted updation for resource type remoteCSE containing attribute " & p_Attribute.name);
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Wrong response status code in the response");
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Accepted updation for resource type remoteCSE without containing attribute " & p_Attribute.name);
+								f_setResource(v_request.primitiveContent,int16);
+							}
+							[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, __SCOPE__ & ": Rejected updation of resource type remoteCSE containing attribute" & p_Attribute.name);
+							}
+							[] tc_ac.timeout {
+								setverdict(fail, __SCOPE__ & ": No answer while updating resource type remoteCSE");
+							}
+						}					    
+
+						// Postamble
+						f_cse_postamble_deleteResourcesCSE();
+
+						// Tear down
+						f_cf04Down();
+
+					}//end f_CSE_REG_UPD_004
+				} //end g_CSE_REG_UPD_004
+			    
 			}// end group Update
 			
 			group Delete{