diff --git a/LibCommon/LibCommon_AbstractData.ttcn b/LibCommon/LibCommon_AbstractData.ttcn
index 111d87ab4f8921f7b6b539a2803c6b41d5be2824..0710c439314c31512bbf24d39fe9d45996f82d3b 100644
--- a/LibCommon/LibCommon_AbstractData.ttcn
+++ b/LibCommon/LibCommon_AbstractData.ttcn
@@ -1,6 +1,6 @@
 /** 
  *  @author   ETSI
- *  @version  $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_AbstractData.ttcn $
+ *  @version  $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_AbstractData.ttcn $
  *            $Id: LibCommon_AbstractData.ttcn 64 2016-12-14 15:09:43Z berge $
  *  @desc     A collection of functions for abstract data types which may be
  *            useful in the implementation of any TTCN-3 test suite.
diff --git a/LibCommon/LibCommon_BasicTypesAndValues.ttcn b/LibCommon/LibCommon_BasicTypesAndValues.ttcn
index b2796484ae8b0e82ce16f1b3c2469d7bf76a9e74..318a1933e105835f437f0ad9bec0538b9d458dc3 100644
--- a/LibCommon/LibCommon_BasicTypesAndValues.ttcn
+++ b/LibCommon/LibCommon_BasicTypesAndValues.ttcn
@@ -1,6 +1,6 @@
 /**
  *  @author   ETSI
- *  @version  $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_BasicTypesAndValues.ttcn $
+ *  @version  $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_BasicTypesAndValues.ttcn $
  *            $Id: LibCommon_BasicTypesAndValues.ttcn 64 2016-12-14 15:09:43Z berge $
  *  @desc     A collection of basic type and value definitions which may be 
  *            useful in the implementation of any TTCN-3 test suite. <br><br>
diff --git a/LibCommon/LibCommon_DataStrings.ttcn b/LibCommon/LibCommon_DataStrings.ttcn
index 39f7a0e2522aa07f5518bd8a9cbcfd007dbe7707..ac6e63da04653db9bb8a684c6873a98139bb9232 100644
--- a/LibCommon/LibCommon_DataStrings.ttcn
+++ b/LibCommon/LibCommon_DataStrings.ttcn
@@ -1,7 +1,7 @@
 /**
  *
  *  @author   ETSI
- *  @version  $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_DataStrings.ttcn $
+ *  @version  $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_DataStrings.ttcn $
  *            $Id: LibCommon_DataStrings.ttcn 64 2016-12-14 15:09:43Z berge $
  *  @desc     A collection of data string type and value definitions which
  *            may be useful in the implementation of any TTCN-3 test
diff --git a/LibCommon/LibCommon_Sync.ttcn b/LibCommon/LibCommon_Sync.ttcn
index cdd786d20c41d13bca7d456ceed795ad1a613706..38e29df924fe40e808448a50008ad62ccc765d27 100644
--- a/LibCommon/LibCommon_Sync.ttcn
+++ b/LibCommon/LibCommon_Sync.ttcn
@@ -1,6 +1,6 @@
 /**
  *  @author   ETSI
- *  @version  $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Sync.ttcn $
+ *  @version  $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Sync.ttcn $
  *            $Id: LibCommon_Sync.ttcn 66 2017-03-06 09:59:41Z filatov $
  *  @desc     This module implements _one_ generic synchronization mechanism
  *            for TTCN-3 test cases with one or more test components.
diff --git a/LibCommon/LibCommon_TextStrings.ttcn b/LibCommon/LibCommon_TextStrings.ttcn
index db3dc6439a53d5fb9e3b37a2a2d3c01de084e4d1..213e85c1e5f90ac5afbeed7f247477f33ba0d575 100644
--- a/LibCommon/LibCommon_TextStrings.ttcn
+++ b/LibCommon/LibCommon_TextStrings.ttcn
@@ -1,6 +1,6 @@
 /**
  *  @author   ETSI
- *  @version  $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_TextStrings.ttcn $
+ *  @version  $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_TextStrings.ttcn $
  *            $Id: LibCommon_TextStrings.ttcn 64 2016-12-14 15:09:43Z berge $
  *  @desc     A collection of text string type and value definitions which
  *            may be useful in the implementation of any TTCN-3 test
diff --git a/LibCommon/LibCommon_Time.ttcn b/LibCommon/LibCommon_Time.ttcn
index 7664296a496f4401e5d221941a451633d4d4d38a..6efbb847d1b826366b332df7742bc6a472812f4e 100644
--- a/LibCommon/LibCommon_Time.ttcn
+++ b/LibCommon/LibCommon_Time.ttcn
@@ -1,6 +1,6 @@
 /**
  *  @author   ETSI
- *  @version  $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Time.ttcn $
+ *  @version  $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Time.ttcn $
  *            $Id: LibCommon_Time.ttcn 64 2016-12-14 15:09:43Z berge $
  *  @desc     A collection of time handling functions which may be useful in
  *            the implementation of any TTCN-3 test suite.
diff --git a/LibCommon/LibCommon_VerdictControl.ttcn b/LibCommon/LibCommon_VerdictControl.ttcn
index 4c693569943bac3b4cc5f4695d4117d504ddbe63..e71c7b89d68c5753552bc12219d09360cc5af3e5 100644
--- a/LibCommon/LibCommon_VerdictControl.ttcn
+++ b/LibCommon/LibCommon_VerdictControl.ttcn
@@ -1,6 +1,6 @@
 /**
  *  @author   ETSI
- *  @version  $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_VerdictControl.ttcn $
+ *  @version  $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_VerdictControl.ttcn $
  *            $Id: LibCommon_VerdictControl.ttcn 64 2016-12-14 15:09:43Z berge $
  *  @desc     Contains generic functions which set test component verdicts
  *            based on generic function return codes according to established
diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 3138f585b33864616533fcda01e86aab701d6cc9..bacfc8472ce24825992283bdf30ca767a50eacb0 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -6,8 +6,8 @@
  *  All rights reserved.
  *  
  *  @author     oneM2M
- *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 296 2017-06-02 13:16:50Z reinaortega $
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
+ *              $Id: OneM2M_Functions.ttcn 299 2017-06-20 12:36:36Z reinaortega $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -867,7 +867,97 @@ module OneM2M_Functions {
     			unmap(self:acPort, system:acPort); 
     	
     		} //end f_cse_notifyProcedure
+    		
+    		/**
+    		 * @desc It determines whether the addressing method of the given address is non-hierarchical. Not valid for CSE-Base as target
+    		 * @param p_resourceAddress
+    		 * @return boolean
+    		 */
+    		function f_isNonHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean {	
+    			var integer i;
+    			var integer v_nbOfSlashes:= 0;
+    			
+				for (i := 0; i < lengthof(p_resourceAddress); i:= i+1){
+					if(match (p_resourceAddress[i], "/")){
+						v_nbOfSlashes:= v_nbOfSlashes+1;
+					}
+				}
+				
+    			if(f_isScopeCseRelative(p_resourceAddress)) {
+    				if(v_nbOfSlashes == 0 ) {
+    					return true;
+    				} else {
+    					return false;
+    				}
+    				
+    			} else if (f_isScopeSpRelative(p_resourceAddress)){	
+					if(v_nbOfSlashes == 2 ) {
+						return true;
+					} else {
+						return false;
+					}
+    			} else if (f_isScopeAbsolute(p_resourceAddress)){
+					if(v_nbOfSlashes == 4 ) {
+						return true;
+					} else {
+						return false;
+					}
+    			} else {
+    			   return false;
+    			}
+    		}
+    		
+			/**
+			 * @desc It determines whether the addressing method of the given address is hierarchical. Not valid for CSE-Base as target
+			 * @param p_resourceAddress
+			 * @return boolean
+			 */
+			 function f_isHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean {
+				if(f_isNonHierarchical(p_resourceAddress)) {
+					return false;
+				} else {
+					return true;
+				}	
+    		} 
 			
+			/**
+			 * @desc It determines whether the primitive scope of the given address is CSE-Relative
+			 * @param p_resourceAddress
+			 * @return boolean
+			 */
+			function f_isScopeCseRelative(XSD.ID p_resourceAddress) runs on Tester return boolean { 
+			  if (p_resourceAddress[0] != "/") {
+				return true;
+			  } else {
+			  	return false;
+			  }
+			}
+			
+			/**
+			 * @desc It determines whether the primitive scope of the given address is SP-Relative
+			 * @param p_resourceAddress
+			 * @return boolean
+			 */
+			function f_isScopeSpRelative(XSD.ID p_resourceAddress) runs on Tester return boolean {	
+			  	if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] != "/")){
+				  return true;
+				} else {
+				  return false;
+				}
+			}
+			
+			/**
+			 * @desc It determines whether the primitive scope of the given address is Absolute
+			 * @param p_resourceAddress
+			 * @return boolean
+			 */
+			function f_isScopeAbsolute(XSD.ID p_resourceAddress) runs on Tester return boolean {
+				if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] == "/")) {
+				  return true;
+				} else {
+				  return false;
+				}
+			}
 	
 		}//end group helpingFunctions
 		
@@ -1400,9 +1490,9 @@ module OneM2M_Functions {
 		function f_getResourceAddress(integer  p_targetResourceIndex := -1) runs on Tester return XSD.ID {
 			var XSD.ID v_resourceAddress;
 			
-			if(PX_ADDRESSING_FORMAT == e_cseRelative) {
+			if(vc_primitiveScope == e_cseRelative) {
 					
-				if(PX_UNSTRUCTURED) {
+				if(vc_addressingMethod == e_nonHierarchical) {
 					if(p_targetResourceIndex == -1) {
 						return PX_CSE_RESOURCE_ID;
 					} else {
@@ -1417,8 +1507,8 @@ module OneM2M_Functions {
 					}	
 				}
 					
-			} else if (PX_ADDRESSING_FORMAT == e_spRelative) {
-				if(PX_UNSTRUCTURED) {
+			} else if (vc_primitiveScope == e_spRelative) {
+				if(vc_addressingMethod == e_nonHierarchical) {
 					if(p_targetResourceIndex == -1) {
 						return "/" & PX_CSE_ID;
 					} else {
@@ -1433,8 +1523,8 @@ module OneM2M_Functions {
 						return v_resourceAddress;
 					}
 				}
-			} else if (PX_ADDRESSING_FORMAT ==  e_absolute) {
-				if(PX_UNSTRUCTURED) {
+			} else if (vc_primitiveScope ==  e_absolute) {
+				if(vc_addressingMethod == e_nonHierarchical) {
 					if(p_targetResourceIndex == -1) {
 						return "//" &"SpId" & "/" & PX_CSE_ID;
 					} else {
diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn
index 7fa2d172c41675d5530d927e0374f633f6ccda35..da172fcf0ec453a51f84e237c65d84562462f048 100644
--- a/LibOneM2M/OneM2M_Pixits.ttcn
+++ b/LibOneM2M/OneM2M_Pixits.ttcn
@@ -6,8 +6,8 @@
  *  All rights reserved.
  *  
  *  @author     oneM2M
- *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Pixits.ttcn $
- *              $Id: OneM2M_Pixits.ttcn 288 2017-05-19 07:18:08Z reinaortega $
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Pixits.ttcn $
+ *              $Id: OneM2M_Pixits.ttcn 298 2017-06-14 07:11:13Z reinaortega $
  *  @desc       Module containing Pixits for oneM2M
  *
  */
@@ -40,8 +40,6 @@ module OneM2M_Pixits {
 	
 	modulepar XSD.ID PX_CSE_RESOURCE_ID			:= "cseResourceId";
 	
-	modulepar boolean PX_UNSTRUCTURED 				:= false;
-	
 	modulepar XSD.ID PX_AE1_ID_STEM				:= "";
 	
 	modulepar XSD.ID PX_AE2_ID_STEM				:= "";
@@ -54,7 +52,9 @@ module OneM2M_Pixits {
 	
 	modulepar ListOfURIs PX_ACOR 					:= {"*"};
 	
-	modulepar AddressingFormat PX_ADDRESSING_FORMAT := e_cseRelative;
+	modulepar AddressingMethod PX_ADDRESSING_METHOD := e_hierarchical;
+	
+	modulepar PrimitiveScope PX_PRIMITIVE_SCOPE 	:= e_cseRelative;
 	
 	modulepar charstring PX_SERIALIZATION			:= "XML";
 	
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index de47aa076b2479135f03b942d7b6550767cfd48a..7f7c449b70b63d419513dda2444ec74a96c9a4ca 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -6,8 +6,8 @@
  *  All rights reserved.
  *  
  *  @author     oneM2M
- *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 297 2017-06-02 14:21:45Z reinaortega $
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
+ *              $Id: OneM2M_Templates.ttcn 299 2017-06-20 12:36:36Z reinaortega $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -198,10 +198,28 @@ module OneM2M_Templates {
 			template (value) RequestPrimitive m_retrieveResourceFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := {
 				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
 				filterCriteria := {
-					contentType_list := {}, 
-					attribute_list := {}, 
+					createdBefore := omit,
+					createdAfter := omit,
+					modifiedSince := omit,
+					unmodifiedSince := omit,
+					stateTagSmaller := omit,
+					stateTagBigger := omit,
+					expireBefore := omit,
+					expireAfter := omit,
+					labels := omit,
+					resourceType := omit,
+					sizeAbove := omit,
+					sizeBelow := omit,
+					contentType_list := {},
+					attribute_list := {},
 					filterUsage := p_filterUsage,
-					semanticsFilter_list := {}
+					limit := omit,
+					semanticsFilter_list := {},
+					filterOperation := omit,
+					contentFilterSyntax := omit,
+					contentFilterQuery := omit,
+					level := omit,
+					offset := omit
 				}
 			};
 			
@@ -214,10 +232,28 @@ module OneM2M_Templates {
 			template (value) RequestPrimitive m_retrieveResourceDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DiscResType p_discResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := {
 				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
 				filterCriteria := {
-					contentType_list := {}, 
-					attribute_list := {}, 
+					createdBefore := omit,
+					createdAfter := omit,
+					modifiedSince := omit,
+					unmodifiedSince := omit,
+					stateTagSmaller := omit,
+					stateTagBigger := omit,
+					expireBefore := omit,
+					expireAfter := omit,
+					labels := omit,
+					resourceType := omit,
+					sizeAbove := omit,
+					sizeBelow := omit,
+					contentType_list := {},
+					attribute_list := {},
 					filterUsage := p_filterUsage,
-					semanticsFilter_list := {}
+					limit := omit,
+					semanticsFilter_list := {},
+					filterOperation := omit,
+					contentFilterSyntax := omit,
+					contentFilterQuery := omit,
+					level := omit,
+					offset := omit
 				},
 				discoveryResultType := p_discResType
 			};
@@ -231,10 +267,28 @@ module OneM2M_Templates {
 				template (value) RequestPrimitive m_retrieveResourceInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieveResource := {
 					requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
 					filterCriteria := {
-						contentType_list := {}, 
-						attribute_list := {}, 
+						createdBefore := omit,
+						createdAfter := omit,
+						modifiedSince := omit,
+						unmodifiedSince := omit,
+						stateTagSmaller := omit,
+						stateTagBigger := omit,
+						expireBefore := omit,
+						expireAfter := omit,
+						labels := omit,
+						resourceType := omit,
+						sizeAbove := omit,
+						sizeBelow := omit,
+						contentType_list := {},
+						attribute_list := {},
 						filterUsage := omit,
-						semanticsFilter_list := {}
+						limit := omit,
+						semanticsFilter_list := {},
+						filterOperation := omit,
+						contentFilterSyntax := omit,
+						contentFilterQuery := omit,
+						level := omit,
+						offset := omit
 					}
 				};
 			
@@ -629,7 +683,7 @@ module OneM2M_Templates {
 				primitiveContent := {groupAnnc_optional := mw_contentCreateGroupAnncBase}
 			};
         	
-        	/**
+			/**
 			 * @desc Base CREATE request primitive for MgmtCmd resource
 			 */
 			template (value) RequestPrimitive m_createMgmtCmdBase modifies m_create := {
@@ -990,8 +1044,8 @@ module OneM2M_Templates {
 			labels := p_labels,//O
 			accessControlPolicyIDs := p_accessControlPolicyIds,//O
 			expirationTime := omit,//O
-			dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation
 			link := omit,//M TODO Put the right value
+			dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation			
 			appName := omit,//O
 			app_ID := p_appId,//M
 			aE_ID := omit,//NP
@@ -1021,8 +1075,8 @@ module OneM2M_Templates {
     		labels := p_labels,//MA
     		accessControlPolicyIDs := p_accessControlPolicyIds,//MA
     		expirationTime := ?,//MA M
-    		dynamicAuthorizationConsultationIDs := omit, //OA
-			link := ?,//M
+    		link := ?,//M
+    		dynamicAuthorizationConsultationIDs := omit, //OA			
 			appName := omit,//OA
 			app_ID := omit,//OA
 			aE_ID := omit,//OA
@@ -2969,6 +3023,21 @@ module OneM2M_Templates {
 			tokenRequestInformation := *
     	};
     	
+		template ResponsePrimitive mw_responseDiscovery := {
+			responseStatusCode := int2000,
+			requestIdentifier := ?,
+			primitiveContent := {uRIList := ?},
+			to_ := *,
+			from_ := *,
+			originatingTimestamp := *,
+			resultExpirationTimestamp := *,
+			eventCategory := *,
+			contentStatus := *,
+			contentOffset := *,
+			assignedTokenIdentifiers := *,
+			tokenRequestInformation := *
+		};
+    	
 		template ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := {
 			responseStatusCode := p_statusCode,
 			requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000),
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index cfd14808641a01dec793b025812aa0e58893119b..c0abf03c7dcca33dad452d4771dc8ee2fb49ff66 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -6,8 +6,8 @@
  *  All rights reserved.
  *  
  *  @author     oneM2M
- *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TestSystem.ttcn $
- *              $Id: OneM2M_TestSystem.ttcn 234 2017-03-20 16:37:29Z reinaortega $
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TestSystem.ttcn $
+ *              $Id: OneM2M_TestSystem.ttcn 298 2017-06-14 07:11:13Z reinaortega $
  *  @desc       Test System module for oneM2M
  *
  */
@@ -17,6 +17,7 @@ module OneM2M_TestSystem {
 	import from OneM2M_TypesAndValues all;
 	import from LibCommon_Time {modulepar all};
 	import from OneM2M_Ports all;
+	import from OneM2M_Pixits all;
 
 /* ***************************************
  * 		Test System Components 
@@ -31,6 +32,8 @@ module OneM2M_TestSystem {
 		var Configurations vc_config;
 		var MyResourcesList vc_resourcesList;
 		var IntegerList vc_resourcesIndexToBeDeleted := {};
+		var PrimitiveScope vc_primitiveScope := PX_PRIMITIVE_SCOPE;
+		var AddressingMethod vc_addressingMethod := PX_ADDRESSING_METHOD;
 	}
 		
 	type component CseTester extends Tester {
diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn
index e1b33b97651ff840312cb5ee980e061c9f02896d..1c457afc31abeb257e3f48c7dff8545703fd52bf 100644
--- a/LibOneM2M/OneM2M_Types.ttcn
+++ b/LibOneM2M/OneM2M_Types.ttcn
@@ -6,8 +6,8 @@
  *  All rights reserved.
  *  
  *  @author     oneM2M
- *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $
- *              $Id: OneM2M_Types.ttcn 297 2017-06-02 14:21:45Z reinaortega $
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $
+ *              $Id: OneM2M_Types.ttcn 298 2017-06-14 07:11:13Z reinaortega $
  *  @desc       OneM2M data types module 
  *
  */
@@ -7734,11 +7734,16 @@ group InvalidTypes {
 		
 		type record of integer IntegerList;
 		
-		type enumerated AddressingFormat {
+		type enumerated PrimitiveScope {
 			e_cseRelative,
 			e_spRelative, 
 			e_absolute
 		}
+		
+		type enumerated AddressingMethod {
+			e_nonHierarchical,
+			e_hierarchical
+		}
 	}
 
 }
@@ -7746,5 +7751,5 @@ with {
   encode "XML";
   variant "namespace as 'http://www.onem2m.org/xml/protocols' prefix 'm2m'";
   variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
-	extension "anytype Resource, URI, Notification, AggregatedNotification, AggregatedResponse, ServiceSubscribedAppRule_optional, charstring, AnyURI, AttributeList, AE, AccessControlPolicy, AccessControlPolicy_optional, AccessControlPolicyAnnc_optional, ACP_update_invalid, AE_optional, AE_update_invalid,AEAnnc_optional, Container_optional, ContainerAnnc_optional, ContentInstanceAnnc_optional, CSEBase_optional, Container_update_invalid, ContentInstance_optional, Group_optional, Group_update_invalid,  GroupAnnc_optional, LocationPolicyAnnc_optional, MgmtObj_optional, MgmtObjAnnc_optional, Node_optional, NodeAnnc_optional, Schedule_optional, ScheduleAnnc_optional,  Schedule_update_invalid, Subscription_optional, Subscription_update_invalid, PollingChannel_optional, PollingChannel_update_invalid, LocationPolicy_optional, LocationPolicy_update_invalid, SemanticDescriptor_optional, FlexContainer_optional, GenericInterworkingOperationInstance_optional"
+	extension "anytype Resource, URI, Notification, AggregatedNotification, AggregatedResponse, ServiceSubscribedAppRule_optional, charstring, AnyURI, AttributeList, AE, AccessControlPolicy, AccessControlPolicy_optional, AccessControlPolicyAnnc_optional, ACP_update_invalid, AE_optional, AE_update_invalid,AEAnnc_optional, Container_optional, ContainerAnnc_optional, ContentInstanceAnnc_optional, CSEBase_optional, Container_update_invalid, ContentInstance_optional, Group_optional, Group_update_invalid,  GroupAnnc_optional, LocationPolicyAnnc_optional, MgmtResource_optional, AnnouncedMgmtResource_optional, Node_optional, NodeAnnc_optional, Schedule_optional, ScheduleAnnc_optional,  Schedule_update_invalid, Subscription_optional, Subscription_update_invalid, PollingChannel_optional, PollingChannel_update_invalid, LocationPolicy_optional, LocationPolicy_update_invalid, SemanticDescriptor_optional, FlexContainerResource_optional, GenericInterworkingOperationInstance_optional"
 }
diff --git a/OneM2M_TestControl.ttcn b/OneM2M_TestControl.ttcn
index 5f23afed323e688ea103e21f31833b867a77ce55..0b2cad97effd0804d9ac0df12eb66eeea7a45e12 100644
--- a/OneM2M_TestControl.ttcn
+++ b/OneM2M_TestControl.ttcn
@@ -6,8 +6,8 @@
  *  All rights reserved.
  *  
  *  @author     oneM2M
- *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $
- *              $Id: OneM2M_TestControl.ttcn 254 2017-05-02 15:55:08Z reinaortega $
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $
+ *              $Id: OneM2M_TestControl.ttcn 299 2017-06-20 12:36:36Z reinaortega $
  *  @desc       Test control module for oneM2M
  *
  */
@@ -244,6 +244,11 @@ module OneM2M_TestControl {
 		execute(TC_CSE_GMG_BV_022_03());
 		execute(TC_CSE_GMG_BV_022_04());
 		execute(TC_CSE_DIS_BV_001());
+		execute(TC_CSE_DIS_BV_003());
+		execute(TC_CSE_DIS_BV_004());
+		execute(TC_CSE_DIS_BO_005());
+		execute(TC_CSE_DIS_BO_006());
+		execute(TC_CSE_DIS_BI_007());
 		execute(TC_CSE_SUB_BV_001_01());
 		execute(TC_CSE_SUB_BV_001_02());
 		execute(TC_CSE_SUB_BV_002());
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index d6cea887e2c51aa35b9fc42e05c3a02d3722c195..74eeba57b16edbab8f2665e6a50dbcff6e008df8 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -6,8 +6,8 @@
  *  All rights reserved.
  *  
  *  @author     oneM2M
- *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 297 2017-06-02 14:21:45Z reinaortega $
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
+ *              $Id: OneM2M_Testcases.ttcn 299 2017-06-20 12:36:36Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -3694,7 +3694,9 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_request;
 						
 						var integer v_aeIndex := -1;
-						var XSD.ID v_resourceId := "nonexisting";
+						var XSD.ID v_resourceId := "nonExistingId";
+						var XSD.ID v_resourceName := "nonExistingName";
+						var XSD.ID v_targetResourceAddress;
     										   
 						// Test control
     				
@@ -3707,11 +3709,15 @@ module OneM2M_Testcases {
 						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); 		
 						
 						// Test Body
-						if(PX_UNSTRUCTURED and (PX_ADDRESSING_FORMAT == e_cseRelative)) {
-							mcaPort.send(m_request(m_retrieveResource(v_resourceId, f_getOriginator(v_aeIndex))));
+						if((vc_addressingMethod == e_nonHierarchical) and (vc_primitiveScope == e_cseRelative)) {
+							v_targetResourceAddress := v_resourceId;
+						} else if (vc_addressingMethod == e_nonHierarchical) {
+							v_targetResourceAddress := f_getResourceAddress() & "/" & v_resourceId;
 						} else {
-							mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId, f_getOriginator(v_aeIndex))));
+							v_targetResourceAddress := f_getResourceAddress(v_aeIndex) & "/" & v_resourceName;
 						}
+						
+						mcaPort.send(m_request(m_retrieveResource(v_targetResourceAddress, f_getOriginator(v_aeIndex))));
 
 						tc_ac.start;
 						alt {
@@ -10537,12 +10543,19 @@ module OneM2M_Testcases {
         	group g_CSE_DIS_BV_001{
         		testcase TC_CSE_DIS_BV_001() runs on CseTester system CseSystem {
         			// Local variables
+<<<<<<< HEAD
 					var MsgIn v_response;
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
 					var RequestPrimitive v_request;
 					var CseTester v_notifyHandler;
 					var integer v_ae2Index := -1;
+=======
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request;
+					var integer v_childResourceIndex := -1;
+>>>>>>> master
 					const ResourceType c_containerResourceType := int3; 
 					
 					// Test control
@@ -10556,11 +10569,16 @@ module OneM2M_Testcases {
 					v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
 					
 					v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
+<<<<<<< HEAD
+=======
+					v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
+>>>>>>> master
 					v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
 					mcaPort.send(m_request(v_request));
 					tc_ac.start;
 					alt {
 						
+<<<<<<< HEAD
 						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response {
 							tc_ac.stop;
 							if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){
@@ -10570,6 +10588,15 @@ module OneM2M_Testcases {
 							{
 							  setverdict(pass, testcasename() & ": URI List Representation available");
 							}
+=======
+						[] mcaPort.receive(mw_response(mw_responseDiscovery)){
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": URI List Representation available");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { 
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource");
+>>>>>>> master
 						}
 						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 							tc_ac.stop;
@@ -10597,8 +10624,12 @@ module OneM2M_Testcases {
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
 					var RequestPrimitive v_request;
+<<<<<<< HEAD
 					var CseTester v_notifyHandler;
 					var integer v_ae2Index := -1;
+=======
+					var integer v_childResourceIndex := -1;
+>>>>>>> master
 					const ResourceType c_containerResourceType := int3; 
 				
 					// Test control
@@ -10612,21 +10643,41 @@ module OneM2M_Testcases {
 					v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
 				
 					v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
+<<<<<<< HEAD
+=======
+					v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
+>>>>>>> master
 					v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
 					mcaPort.send(m_request(v_request));
 					tc_ac.start;
 					alt {
 					
+<<<<<<< HEAD
 						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response {
 							tc_ac.stop;
 							if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){
+=======
+						[] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response {
+							tc_ac.stop;
+							if(sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList) == 0){
+>>>>>>> master
 							  setverdict(pass, testcasename() & ": No Content is present");	
 							}
 							else
 							{
+<<<<<<< HEAD
 							  setverdict(fail, testcasename() & ": Content available");
 							}
 						}
+=======
+							  setverdict(fail, testcasename() & ": Wrong content available in URIList element");
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { 
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource");
+						}
+>>>>>>> master
 						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 							tc_ac.stop;
 							setverdict(fail, testcasename() & ": Error while retrieving resource");
@@ -10652,8 +10703,12 @@ module OneM2M_Testcases {
 					var integer v_aeIndex := -1;
 					var integer v_resourceIndex := -1;
 					var RequestPrimitive v_request;
+<<<<<<< HEAD
 					var CseTester v_notifyHandler;
 					var integer v_ae2Index := -1;
+=======
+					var integer v_childResourceIndex := -1;
+>>>>>>> master
 					const ResourceType c_containerResourceType := int3; 
 					
 					// Test control
@@ -10667,11 +10722,16 @@ module OneM2M_Testcases {
 					v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
 					
 					v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
+<<<<<<< HEAD
+=======
+					v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
+>>>>>>> master
 					v_request := valueof(m_retrieveResourceDiscResTypeFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int2, int1));
 					mcaPort.send(m_request(v_request));
 					tc_ac.start;
 					alt {
 						
+<<<<<<< HEAD
 						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response {
 							tc_ac.stop;
 							if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){
@@ -10682,6 +10742,20 @@ module OneM2M_Testcases {
 						      setverdict(pass, testcasename() & ": URI List Representation containing unstructured addresses available");
 							}
 						}
+=======
+						[] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response {
+							tc_ac.stop;
+							if (f_isNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[0])) {
+							  setverdict(pass, testcasename() & ": Non-hierarchical address form present in URIList element");
+							} else {
+							  setverdict(fail, testcasename() & ": Non-hierarchical address form absent in URIList representation"); 
+							}
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { 
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource");
+						}
+>>>>>>> master
 						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 							tc_ac.stop;
 							setverdict(fail, testcasename() & ": Error while retrieving resource");
@@ -10700,6 +10774,67 @@ module OneM2M_Testcases {
 				
         	} //end group g_CSE_DIS_BV_004
         	
+<<<<<<< HEAD
+=======
+			group g_CSE_DIS_BO_005{
+				testcase TC_CSE_DIS_BO_005() runs on CseTester system CseSystem {
+					// Local variables
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex := -1;
+					var RequestPrimitive v_request;
+					var integer v_childResourceIndex := -1;
+					var integer v_acpAuxIndex := -1;
+					const ResourceType c_containerResourceType := int3; 
+					
+					// Test control
+					if(not(PICS_ACP_SUPPORT)) {
+						log(testcasename() & ":AccessControlPolicy support is required for executing this test case");
+						stop;
+					}
+
+					// Test component configuration
+					f_cf01Up();
+
+					// Test adapter configuration
+
+					// Preamble
+					v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int31);//c_CRUDN)
+					
+					v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});//AE1 is registred;
+					
+					v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
+					v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
+					v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
+					mcaPort.send(m_request(v_request));
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) {
+							tc_ac.stop;
+							setverdict(pass, testcasename() & ": Access denied to discovery operation for resource " & f_getResourceAddress(v_resourceIndex));
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Wrong response status code while discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, testcasename() & ": Discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, testcasename() & ": No answer while discovering resource");
+						}
+					 }	
+    								
+					// Postamble
+					f_cse_postamble_deleteResources();
+					
+					// Tear down
+					f_cf01Down();
+				} // end TC_CSE_DIS_BO_005
+        		
+			} //end group g_CSE_DIS_BO_005
+        	
+>>>>>>> master
 			group g_CSE_DIS_BO_006
 			{
 					testcase TC_CSE_DIS_BO_006() runs on CseTester system CseSystem {
@@ -10708,9 +10843,14 @@ module OneM2M_Testcases {
 						var integer v_aeIndex := -1;
 						var integer v_resourceIndex := -1;
 						var RequestPrimitive v_request;
+<<<<<<< HEAD
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
 						const ResourceType c_containerResourceType := int3; 
+=======
+						const ResourceType c_containerResourceType := int3; 
+						var XSD.ID v_resourceId := "nonexisting";
+>>>>>>> master
 					
 						// Test control
 
@@ -10721,8 +10861,18 @@ module OneM2M_Testcases {
 
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
+<<<<<<< HEAD
 					
 						v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
+=======
+						
+						if(PX_ADDRESSING_METHOD == e_nonHierarchical and (PX_PRIMITIVE_SCOPE == e_cseRelative)) {
+							v_request := valueof(m_retrieveResourceFilterUsageOption(v_resourceId, f_getOriginator(v_aeIndex), int1));
+						} else {
+							v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId, f_getOriginator(v_resourceIndex), int1));
+						}
+					
+>>>>>>> master
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -10733,7 +10883,15 @@ module OneM2M_Testcases {
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 								tc_ac.stop;
+<<<<<<< HEAD
 								setverdict(fail, testcasename() & ": Error while retrieving resource");
+=======
+								setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { 
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Wrong response while retrieving resource");
+>>>>>>> master
 							}
 							[] tc_ac.timeout {
 								setverdict(fail, testcasename() & ": No answer while retrieving resource");
@@ -10759,6 +10917,10 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_request;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
+<<<<<<< HEAD
+=======
+						var integer v_childResourceIndex := -1;
+>>>>>>> master
 						const ResourceType c_containerResourceType := int3; 
 					
 						// Test control
@@ -10771,7 +10933,12 @@ module OneM2M_Testcases {
 						// Preamble
 						v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
 					    
+<<<<<<< HEAD
 						v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); 
+=======
+						v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
+						v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); 
+>>>>>>> master
 						v_request := valueof(m_retrieveResourceInvalidFormatOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
@@ -10783,7 +10950,15 @@ module OneM2M_Testcases {
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
 								tc_ac.stop;
+<<<<<<< HEAD
 								setverdict(fail, testcasename() & ": Error while retrieving resource");
+=======
+								setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { 
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Wrong response while retrieving resource");
+>>>>>>> master
 							}
 							[] tc_ac.timeout {
 								setverdict(fail, testcasename() & ": No answer while retrieving resource");