Merge "Adding E-CORD developer guide"
diff --git a/docs/cfm.md b/docs/cfm.md
new file mode 100644
index 0000000..edb9014
--- /dev/null
+++ b/docs/cfm.md
@@ -0,0 +1,128 @@
+# Configuring CFM
+This guide describes how to configure CFM monitoring for an E-Line generated in a local E-CORD POD. 
+This monitoring will then be viewable in the “Delay and Jitter” link in the CORD UI. 
+It assumes that your POD already has a global E-CORD node and at least 2 local E-CORD instances, with each local E-CORD having a CFM capable device (e.g. Microsemi EA1000) connected.  
+It is assumed that these devices are already detected and connected in ONOS as per [the guide](https://guide.opencord.org/profiles/ecord/installation_guide.html]).
+
+The guide acceses an ONOS_CORD instance at onos-cord, which has the ssh port 8102 and the web port 8182. Change the IP adddresses to your own, and if these ports have been forwarded for some reason on your setup, make sure to accommodate as necessary.
+
+This guide describes a minimal CFM setup, with a single MD (maintenance domain) and MA (maintenance association), two MEPs (measurement endpoints), and one DM (delay measurement).
+
+You can also find a [Postman](https://www.getpostman.com/) JSON collection that contains the JSON necessary to setup CFM under `cord/orchestration/profiles/ecord/examples/`.
+
+Detailed information on the CFM application itself can be found on the [ONOS Wiki](https://wiki.onosproject.org/display/ONOS/Layer+2+Monitoring+with+CFM+and+Services+OAM).
+## Creating an MD
+Post the following JSON file to `onos-cord:8182/onos/cfm/md/` on your local instances. Make sure you have a header with basic authorization set to username “onos” and password “rocks”.
+
+NOTE: MDs and MAs are stored in a distributed store within the same cluster. In our testing setup, ONOS_CORD and ONOS_Fabric exist on two separate clusters. If you see the MD on the ONOS_Fabric (i.e. the MD shows up after running cfm-md-list) after instantiating it on the first instance, do not push the JSON on the second nodd. Otherwise, feel free to push.
+
+If you are creating more than one MD, they must have different mdNumericIds. Be aware that devices will only be able to take delay measurements from those on the same MD.
+
+```json
+{"md": {
+    "mdName": "Microsemi",
+    "mdNameType": "CHARACTERSTRING",
+    "mdLevel": "LEVEL3",
+    "mdNumericId": 1
+   }
+}
+```
+## Creating an MA
+The MAs created should be a part of a pre-defined MD. We defined an MD called Microsemi, so we post the following JSON to `onos-cord:8182/onos/cfm/md/Microsemi/`.
+
+NOTE: MAs are also stored in a distributed store. See the previous note in “Setting up MDs” for possible consequences.
+
+If you are creating more than one MA, they must have different maNumericIds and vids. The `rmep-list` defines the list of MEP IDs that can be associated with this vlan, so if you need more than 2 MEPs you will need to add them to the `rmep-list` .
+
+```json
+{
+  "ma": {
+    "maName": "ma-vlan-1",
+    "maNameType": "CHARACTERSTRING",
+    "maNumericId": 1,
+    "ccm-interval": "INTERVAL_1S",
+    "component-list": [
+      { "component": {
+        "component-id":"1",
+        "tag-type": "VLAN_STAG",
+        "vid-list": [
+          {"vid":1}
+        ]
+        }
+      }
+    ],
+    "rmep-list": [
+      { "rmep":10 },
+      { "rmep":20 }
+    ]
+  }
+}
+```
+## Creating a MEP
+A measurement endpoint (MEP) is associated with a Microsemi device, and one must be created for each one. A MEP can only be created for the device connected to the current local node, and must be associated with an MA. The MEP ID must already exist on that MA’s `rmep-list` and must not already be in use by another node.
+
+With our MD set to Microsemi, and MA set to ma-vlan-1, we post the following JSON to `onos-cord:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep`
+
+```json
+{
+  "mep": {
+    "mepId": 10,
+    "deviceId": "netconf:10.6.0.160:830",
+    "port": 0,
+    "direction": "DOWN_MEP",
+    "mdName": "Microsemi",
+    "maName": "ma-vlan-1",
+    "primary-vid": 1,
+    "administrative-state": true,
+    "ccm-ltm-priority": 4,
+    "cci-enabled" :true
+  }
+}
+```
+
+Since we have 2 Microsemi devices, we will also need to post MEP creation JSON to our second local instance, making sure to change the `mepId` and `deviceId`. In our example, we defined two MEP IDs, 10 and 20, to be used with our first and second local nodes. Both MEPs must be set up correctly in order to create a delay measurement (DM).
+
+## Creating a DM
+Check the `remote_mep_state` of your created meps to ensure that they have a value of `RMEP_OK` before creating delay measurements. You can do so by performing a GET; in our case, we would perform a GET on `onos-cord:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/10` on our first local instance, and on `onos-cord:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/20` on our second local instance.
+
+DMs are associated with a single MEP, and a maximum of 2 can exist on a single MEP.
+
+IMPORTANT: The `measurementsEnabled` in the sample JSON below are required for the CFM stat UI to function properly.
+
+To create a DM on our first local instance, the following JSON is submitted by POST to `onos-cord:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/10`. Notice that the remoteMepId is set to 20 because we are trying to get the delay measurement to 20 from 10.
+
+```json
+{
+  "dm": {
+        "remoteMepId":20,
+        "dmCfgType": "DMDMM",
+        "version": "Y17312008",
+        "priority": "PRIO1",
+        "messagePeriodMs": 100,
+        "startTime": {
+          "immediate":true
+        },
+        "stopTime": {
+          "none":true
+        },
+        "frameSize": 1500,
+        "measurementIntervalMins": 1,
+        "measurementsEnabled": [
+            "INTER_FRAME_DELAY_VARIATION_TWO_WAY_AVERAGE",
+            "INTER_FRAME_DELAY_VARIATION_TWO_WAY_MAX",
+            "INTER_FRAME_DELAY_VARIATION_TWO_WAY_MIN",
+            "INTER_FRAME_DELAY_VARIATION_TWO_WAY_BINS",
+            "FRAME_DELAY_TWO_WAY_AVERAGE",
+            "FRAME_DELAY_TWO_WAY_MAX",
+            "FRAME_DELAY_TWO_WAY_MIN",
+            "FRAME_DELAY_TWO_WAY_BINS"
+        ]
+  }
+}
+```
+
+We don’t need to create a DM on the second local instance for this DM to work. Make sure that you aren’t setting the `remoteMepId` equal to the mepId you are trying to create the DM on.
+
+## Viewing Delay and Jitter
+
+At this point, we are done configuring CFM and can now view delay and jitter statistics in the CORD UI under “Delay and Jitter”. Login into the CORD UI at `onos-cord/xos` with the username `xosadmin@opencord.org`, and the password generated in the local node under `/opt/credentials/xosadmin@opencord.org`. The "Delay and Jitter" link will be on the left navigation panel once you have successfully logged in.
diff --git a/docs/installation_guide.md b/docs/installation_guide.md
index b664799..ac1356e 100644
--- a/docs/installation_guide.md
+++ b/docs/installation_guide.md
@@ -30,7 +30,11 @@
 * 1x CPE, composed by
     * 1x 2-port TP-Link Gigabit SFP Media converter, model MC220L(UN)
     * 1x Microsemi EA1000 programmable SFP
-* 1x fiber cable (or DAC) to connect the CPE to the Ethernet Edge switch
+* 1x Gigabit SFP transceiver, to be plugged into Ethernet Edge
+  switch. Please ensure the wavelength of this SFP matches the
+  Microsemi SFP; in our case this is 1310nm.
+  In our rack we use the following [device](https://www.amazon.com/gp/product/B00U8PN0NQ/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1)
+* 1x single mode fiber cable to connect the CPE to the Ethernet Edge switch
 * 1x 40G to 4x10G  QSFP+ module to connect the Ethernet Edge switch to the access leaf fabric switch (EdgeCore QSFP to 4x SFP+ DAC, model ET6402-10DAC-3M, part M0OEC6402T06Z)
  
 > **NOTE**: The role of the CPE is to receive end-user traffic, tag it with a VLAN id, and forward it to the Ethernet Edge switch. Additionally, the CPE sends and receives OAM probes to let CORD monitor the status of the network. For lab trials, a combination of two components has been used to emulate the CPE functionalities: a media converter, used to collect users’ traffic from an Ethernet CAT5/6 interface (where a traditional host, like a laptop, is connected) and send it out from its other SFP interface; a programmable SFP (plugged into the SFP port of the media converter), that a) tags the traffic with a specific VLAN id and forwards it to the Ethernet Edge switch; b) sends and receives OEM probes to let CORD monitor the network. The programmable SFP is currently configured through NETCONF, using the ONOS Flow Rule abstraction translated into NETCONF XML for the drivers, and the ONOS-based CarrierEthernet application to generate the Flow Rules based on requests.
@@ -174,8 +178,7 @@
           "xos" : {
             "username" : "xosadmin@opencord.org",
             "password" : "YOUR_XOS_PASSWORD (see note below)",
-            "address" : "YOUR_GLOBAL_NODE_IP",
-            "resource" : "/xosapi/v1/vnaas/usernetworkinterfaces/"
+            "endpoint" : "YOUR_GLOBAL_NODE_IP:80/xosapi/v1/vnaas/usernetworkinterfaces"
           }
         },
         "org.opencord.ce.global.channel.http" : {
diff --git a/examples/CFM JSON.postman_collection.json b/examples/CFM JSON.postman_collection.json
new file mode 100644
index 0000000..52ae960
--- /dev/null
+++ b/examples/CFM JSON.postman_collection.json
@@ -0,0 +1,1534 @@
+{
+	"info": {
+		"name": "CFM JSON",
+		"_postman_id": "9b3b65ff-5a9b-7411-ba8f-5378608f2f20",
+		"description": "This collection contains JSON files that can be used to setup CFM on your E-CORD POD.",
+		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+	},
+	"item": [
+		{
+			"name": "POST Requests (Setup)",
+			"description": "",
+			"item": [
+				{
+					"name": "Create MD Microsemi on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\"md\": {\n    \"mdName\": \"Microsemi\",\n    \"mdNameType\": \"CHARACTERSTRING\",\n    \"mdLevel\": \"LEVEL3\",\n    \"mdNumericId\": 1\n   }\n}"
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Create MD Microsemi on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\"md\": {\n    \"mdName\": \"Microsemi\",\n    \"mdNameType\": \"CHARACTERSTRING\",\n    \"mdLevel\": \"LEVEL3\",\n    \"mdNumericId\": 1\n   }\n}"
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Create MA ma-vlan-1 on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\n  \"ma\": {\n    \"maName\": \"ma-vlan-1\",\n    \"maNameType\": \"CHARACTERSTRING\",\n    \"maNumericId\": 1,\n    \"ccm-interval\": \"INTERVAL_1S\",\n    \"component-list\": [\n      { \"component\": {\n        \"component-id\":\"1\",\n        \"tag-type\": \"VLAN_STAG\",\n        \"vid-list\": [\n          {\"vid\":1}\n        ]\n        }\n      }\n    ],\n    \"rmep-list\": [\n      { \"rmep\":10 },\n      { \"rmep\":20 }\n    ]\n  }\n}"
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Create MA ma-vlan-1 on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\n  \"ma\": {\n    \"maName\": \"ma-vlan-1\",\n    \"maNameType\": \"CHARACTERSTRING\",\n    \"maNumericId\": 1,\n    \"ccm-interval\": \"INTERVAL_1S\",\n    \"component-list\": [\n      { \"component\": {\n        \"component-id\":\"1\",\n        \"tag-type\": \"VLAN_STAG\",\n        \"vid-list\": [\n          {\"vid\":1}\n        ]\n        }\n      }\n    ],\n    \"rmep-list\": [\n      { \"rmep\":10 },\n      { \"rmep\":20 }\n    ]\n  }\n}"
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi/ma",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Create MEP 10 on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\n  \"mep\": {\n    \"mepId\": 10,\n    \"deviceId\": \"netconf:10.6.0.161:830\",\n    \"port\": 0,\n    \"direction\": \"DOWN_MEP\",\n    \"mdName\": \"Microsemi\",\n    \"maName\": \"ma-vlan-1\",\n    \"primary-vid\": 1,\n    \"administrative-state\": true,\n    \"ccm-ltm-priority\": 4,\n    \"cci-enabled\" :true\n  }\n}"
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Create MEP 20 on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\n  \"mep\": {\n    \"mepId\": 20,\n    \"deviceId\": \"netconf:10.6.0.162:830\",\n    \"port\": 0,\n    \"direction\": \"DOWN_MEP\",\n    \"mdName\": \"Microsemi\",\n    \"maName\": \"ma-vlan-1\",\n    \"primary-vid\": 1,\n    \"administrative-state\": true,\n    \"ccm-ltm-priority\": 4,\n    \"cci-enabled\" :true\n  }\n}"
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Create DM from 10 to 20",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\n  \"dm\": {\n        \"remoteMepId\":20,\n        \"dmCfgType\": \"DMDMM\",\n        \"version\": \"Y17312008\",\n        \"priority\": \"PRIO1\",\n        \"messagePeriodMs\": 100,\n        \"startTime\": {\n          \"immediate\":true\n        },\n        \"stopTime\": {\n          \"none\":true\n        },\n        \"frameSize\": 1500,\n        \"measurementIntervalMins\": 1,\n        \"measurementsEnabled\": [\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_AVERAGE\",\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_MAX\",\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_MIN\",\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_BINS\",\n            \"FRAME_DELAY_TWO_WAY_AVERAGE\",\n            \"FRAME_DELAY_TWO_WAY_MAX\",\n            \"FRAME_DELAY_TWO_WAY_MIN\",\n            \"FRAME_DELAY_TWO_WAY_BINS\"\n        ]\n  }\n}\n"
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/10/dm",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"10",
+								"dm"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Create DM from 20 to 10",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "POST",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							},
+							{
+								"key": "Content-Type",
+								"value": "application/json"
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": "{\n  \"dm\": {\n        \"remoteMepId\":20,\n        \"dmCfgType\": \"DMDMM\",\n        \"version\": \"Y17312008\",\n        \"priority\": \"PRIO1\",\n        \"messagePeriodMs\": 100,\n        \"startTime\": {\n          \"immediate\":true\n        },\n        \"stopTime\": {\n          \"none\":true\n        },\n        \"frameSize\": 1500,\n        \"measurementIntervalMins\": 1,\n        \"measurementsEnabled\": [\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_AVERAGE\",\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_MAX\",\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_MIN\",\n            \"INTER_FRAME_DELAY_VARIATION_TWO_WAY_BINS\",\n            \"FRAME_DELAY_TWO_WAY_AVERAGE\",\n            \"FRAME_DELAY_TWO_WAY_MAX\",\n            \"FRAME_DELAY_TWO_WAY_MIN\",\n            \"FRAME_DELAY_TWO_WAY_BINS\"\n        ]\n  }\n}\n"
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/10/dm",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"10",
+								"dm"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				}
+			]
+		},
+		{
+			"name": "GET Requests",
+			"description": "",
+			"item": [
+				{
+					"name": "Get MDs on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Get MDs on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Get MAs on MD Microsemi on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								""
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Get MAs on MD Microsemi on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi/ma/",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								""
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Get MEPs on MA ma-vlan-1 on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Get MEPs on MA ma-vlan-1 on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "GET DMs on MEP 10 on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/10/dm",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"10",
+								"dm"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "GET DMs on MEP 20 on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/20/dm",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"20",
+								"dm"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				}
+			]
+		},
+		{
+			"name": "DELETE Requests",
+			"description": "",
+			"item": [
+				{
+					"name": "Delete MD Microsemi on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Delete MD Microsemi on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Delete MA ma-vlan-1 on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Delete MA ma-vlan-1 on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Delete MEP 10 on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/10",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"10"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Delete MEP 20 on local 2",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/cfm/md/Microsemi/ma/ma-vlan-1/mep/20",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"20"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Delete DM 1 on local 1",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.50:8182/onos/onos-app-cfm/md/Microsemi/ma/ma-vlan-1/mep/10/dm/1",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"50"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"onos-app-cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"10",
+								"dm",
+								"1"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				},
+				{
+					"name": "Delete DM 2 on local 2 copy",
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "username",
+									"value": "onos",
+									"type": "string"
+								},
+								{
+									"key": "password",
+									"value": "rocks",
+									"type": "string"
+								},
+								{
+									"key": "saveHelperData",
+									"type": "any"
+								},
+								{
+									"key": "showPassword",
+									"value": false,
+									"type": "boolean"
+								}
+							]
+						},
+						"method": "DELETE",
+						"header": [
+							{
+								"key": "Authorization",
+								"value": "Basic b25vczpyb2Nrcw=="
+							}
+						],
+						"body": {
+							"mode": "raw",
+							"raw": ""
+						},
+						"url": {
+							"raw": "http://10.90.1.70:8182/onos/onos-app-cfm/md/Microsemi/ma/ma-vlan-1/mep/20/dm/1",
+							"protocol": "http",
+							"host": [
+								"10",
+								"90",
+								"1",
+								"70"
+							],
+							"port": "8182",
+							"path": [
+								"onos",
+								"onos-app-cfm",
+								"md",
+								"Microsemi",
+								"ma",
+								"ma-vlan-1",
+								"mep",
+								"20",
+								"dm",
+								"1"
+							]
+						},
+						"description": null
+					},
+					"response": []
+				}
+			]
+		}
+	]
+}
\ No newline at end of file
diff --git a/examples/vnaasglobal-service-reference.yaml b/examples/vnaasglobal-service-reference.yaml
index 2d91af7..92fcce6 100644
--- a/examples/vnaasglobal-service-reference.yaml
+++ b/examples/vnaasglobal-service-reference.yaml
@@ -76,33 +76,6 @@
         eir: 10000
         name: platinum
 
-    usernetworkinterface#UserNetworkInterface1:
-      type: tosca.nodes.UserNetworkInterface
-      requirements:
-      properties:
-        tenant: onf
-        name: uni1
-        latlng: [37.973535, -122.531087]
-        cpe_id: domain:10.90.1.30-cord-onos/1
-
-    usernetworkinterface#UserNetworkInterface2:
-      type: tosca.nodes.UserNetworkInterface
-      requirements:
-      properties:
-        tenant: onf
-        name: uni2
-        latlng: [37.773972, -122.431297]
-        cpe_id: domain:10.90.1.50-cord-onos/1
-
-    usernetworkinterface#UserNetworkInterface3:
-      type: tosca.nodes.UserNetworkInterface
-      requirements:
-      properties:
-        tenant: onf
-        name: uni3
-        latlng: [37.871637, -122.259750]
-        cpe_id: domain:10.90.1.70-cord-onos/1
-
     # eline#testeline:
     #   type: tosca.nodes.ELine
     #   requirements: