Merge "Adding initial trouble shooting E-CORD guide"
diff --git a/docs/README.md b/docs/README.md
index 505eceb..3121dbf 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,9 +1,38 @@
 # E-CORD Profile
 
-This repository is intended to host the E-CORD documentation, XOS Models definitions and XOS GUI Extensions that are horizontal to the profile and not tied to a single service.
+The E-CORD (Enterprise CORD) profile is `Official` as of 4.1.
 
-It contains an overview of E-CORD and an installation guide that outlines step by step how to deploy an end to end E-CORD solution.
+## Service Manifest 
+E-CORD includes two service manifests: 
 
-It contains models and GUIs for both `ecord-local` and `ecord-global` profiles.
+#### [ecord-global](https://github.com/opencord/platform-install/blob/master/profile_manifest s/ecord-global.yml)
+
+| Service              | Source Code         |
+|-------------|---------------|
+| vNaaS                | https://github.com/opencord/vnaas |
+| ONOS                | https://github.com/opencord/onos-service |
+
+#### [ecord-local](https://github.com/opencord/platform-install/blob/master/profile_manifest s/ecord.yml)
+
+| Service              | Source Code         |
+|--------------|---------------|
+| vEE                     | https://github.com/opencord/vee |
+| vEG                     | https://github.com/opencord/veg |
+| vRouter               | https://github.com/opencord/vrouter |
+| AddressManager | https://github.com/opencord/addressmanager |
+| VTN                    | https://github.com/opencord/vtn |
+| Fabric                 | https://github.com/opencord/fabric |
+| OpenStack          | https://github.com/opencord/openstack |
+| ONOS                 | https://github.com/opencord/onos-service |
+
+## Model Extensions 
+E-CORD does not extend CORD's core models.
+
+## GUI Extensions 
+E-CORD includes two GUI extension:
+
+* [vnaas](https://github.com/opencord/vnaas/tree/master/xos/gui)
+* [veestat](https://github.com/opencord/vEE/tree/master/xos/veestat)
+
 
 
diff --git a/docs/installation_guide.md b/docs/installation_guide.md
index 7bebfaf..b664799 100644
--- a/docs/installation_guide.md
+++ b/docs/installation_guide.md
@@ -1,25 +1,30 @@
-# Installation guide
+# Installation Guide
 
-The paragraph describes how to install and configure the E-CORD global node and the local sites on a phsyical POD.
+Installing E-CORD is based on the standard CORD
+[installation process](https://guide.opencord.org/install_physical.html). This
+section describes the additional steps required.
 
-## Hardware requirements (BOM)
+## Hardware Requirements (BOM)
+
 Following is a list of hardware needed to create a typical E-CORD deployment. References will be often made to the generic CORD BOM.
  
-**NOTE**: The hardware suggested is a reference implementation. Hardware listed have been usually used by ONF and its community for lab trials and deployments to validate the platform and demonstrate it's capabilities. You’re very welcome to replace any of the components and bring in yours into the ecosystem. As a community, we would be happy to acknowledge your contribution and put new tested devices in the BOM as well.
+> The hardware suggested is a reference implementation. Hardware listed have been usually used by ONF and its community for lab trials and deployments to validate the platform and demonstrate it's capabilities. You’re very welcome to replace any of the components and bring in yours into the ecosystem. As a community, we would be happy to acknowledge your contribution and put new tested devices in the BOM as well.
 
-Following the suggested hardware list is reported.
+The following suggests specific hardware.
 
-### Global node
+### Global Node
+
 * 1x development machine - same model used for a [generic CORD POD](https://guide.opencord.org/install_physical.html#bill-of-materials-bom--hardware-requirements)
 * 1x compute node (server) - same model used for a [generic CORD POD](https://guide.opencord.org/install_physical.html#bill-of-materials-bom--hardware-requirements)
 
-### Local site (POD)
-The hardware listed is needed for each POD.
+### Local Site (POD)
+
+The following hardware is required for each POD.
 
 * Everything listed in the BOM of a generic CORD POD
 
-**WARNING** Currently E-CORD does not support more than 1 fabric switch per 
-POD. While soon will be possible to use more than one fabric switch, it is useless now to buy more than a fabric switch per local site.
+> **WARNING**: Currently E-CORD does not support more than 1 fabric switch per 
+> POD. While soon will be possible to use more than one fabric switch, it is useless now to buy more than a fabric switch per local site.
 
 * 1x Centec v350, used as “Ethernet Edge switch”
 * 1x CPE, composed by
@@ -28,10 +33,14 @@
 * 1x fiber cable (or DAC) 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 get users’ 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.
+> **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.
 
-## Local site connectivity diagram
-The main CORD physical POD [installation guide](https://guide.opencord.org/install_physical.html#connectivity-requirements) already provides a basic POD connectivity diagram. These connections are anyway needed to bring up an E-CORD local site. Please, carefully review them before going through this section.
+## Local Site Connectivity
+
+The main CORD physical POD
+[installation guide](https://guide.opencord.org/install_physical.html#connectivity-requirements)
+already provides a basic POD connectivity diagram. These connections
+are also needed to bring up an E-CORD local site. Carefully review them before going through this section.
 
 <img src="static/images/connectivity-diagram.png" alt="E-CORD connectivity diagram" style="width: 800px;"/>
 
@@ -61,33 +70,33 @@
 
 A letter, plus "N" represents a generic port on a specific device.
 
-### References and informations needed: letters and numbers in the diagram
-Some informations are needed to
-* Properly configure E-CORD, following in the guide.
-* Have a reference when debugging an installation
+## Installing the Global Node
 
-## Installing the global node
-To install the global orchestrator on a physical node, you should follow the steps described in the main [physical POD installation](https://guide.opencord.org/install_physical.html).
+To install the global node, you should follow the steps described in
+the main
+[physical POD installation](https://guide.opencord.org/install_physical.html). At
+a high level, bootstrap the development machine and download the code.
 
-At a high level, bootstrap the development machine and download the code.
+### Global Node Configuration File
 
-### Global node configuration file
 When it’s time to write your POD configuration, use the [physical-example.yml](https://github.com/opencord/cord/blob/master/podconfig/physical-example.yml) file as a template. Either modify it or make a copy of it in the same directory.
 Fill in the configuration with your own head node data.
 
-As cord_scenario, use *single*. This won’t install OpenStack and other software, which are not needed on the global node.
+As `cord_scenario`, use `single`. This won’t install OpenStack and other software, which are not needed on the global node.
 
-As cord_profile, use *ecord-global*.
+As `cord_profile`, use `ecord-global`.
 
 ### POD Build
-Continue the installation as described in the guide by running the make build target:
+
+Continue the installation as described in the standard installation guide by running the make build target:
 
 ```
 make build
 ```
 
-### DNS Services restart
-As soon as the procedure is finished you need to restart two services on the pod.
+### DNS Services Restart
+
+As soon as the procedure is finished you need to restart two services on the POD.
 
 ```
 sudo service nsd restart
@@ -96,51 +105,67 @@
 
 Now your global node is ready to be connected to the local sites.
 
-## Installing an E-CORD local site
-To install the local node you should follow the steps described in the main [physical POD installation](https://guide.opencord.org/install_physical.html). Bootstrap the development machine and download the code.
-When it’s time to write your pod configuration, use the [physical-example.yml](https://github.com/opencord/cord/blob/master/podconfig/physical-example.yml) file as a template. Either modify it or make a copy of it in the same directory.
+## Installing an E-CORD Local Site
+
+To install each local site you should follow the steps described in the
+main
+[physical POD installation](https://guide.opencord.org/install_physical.html). Bootstrap
+the development machine and download the code.
+
+When it’s time to write your POD configuration, use the [physical-example.yml](https://github.com/opencord/cord/blob/master/podconfig/physical-example.yml) file as a template. Either modify it or make a copy of it in the same directory.
 Fill in the configuration with your own head node data.
 
-As cord_scenario use *cord*.
+As `cord_scenario` use `cord`.
 
-As cord_profile use *ecord*.
+As `cord_profile` use `ecord`.
 
-## Configure the Global node
-It’s essential to configure the global node properly, in order to instruct it about the existing local sites, have them connected and coordinated.
-Configuring the global node consists of two parts, an XOS/Tosca configuration and an ONOS/JSON.
+## Configure the Global Node
+
+It is essential to configure the global node properly, in order to
+instruct it about the existing local sites, have them connected and
+coordinated. Configuring the global node consists of two parts, an
+XOS/Tosca configuration and an ONOS/JSON.
 
 ### Configuring XOS (Tosca Configuration)
-The first part consists of instructing the XOS running on the global node about the other XOS instances, orchestrating the local sites.
- 
-To configure your XOS instance, do the following:
-* Create your TOSCA file, using as template the file on your development/management machine, under *CORD_ROOT/orchestration/profiles/ecord/examples/vnaasglobal-service-reference.yaml* (available also online, [here](https://github.com/opencord/ecord/blob/master/examples/vnaasglobal-service-reference.yaml))
-* Save it on the global node.
-* SSH into your global node
-* On the global node, run the following command
 
+The first part consists of instructing XOS running on the global node
+about the set of local sites. To configure your XOS instance, do the following:
+ 
+* Create your TOSCA file, using as template the file on your
+  development/management machine, under
+  *CORD_ROOT/orchestration/profiles/ecord/examples/vnaasglobal-service-reference.yaml*
+  (available also online,
+  [here](https://github.com/opencord/ecord/blob/master/examples/vnaasglobal-service-reference.yaml)).
+  
+  * Save it on the global node.
+  
+  * SSH into your global node.
+  
+  * On the global node, run the following command:
 ```
 python /opt/cord/build/platform-install/scripts/run_tosca.py 9000 xosadmin@opencord.org YOUR_XOS_PASSWORD PATH_TO_YOUR_TOSCA FILE
 ```
 
-**NOTE**: If the XOS password has been auto-generated, you can find it on the global node, in 
+>**NOTE**: If the XOS password has been auto-generated, you can find it on the global node, in 
 ```
 /opt/credentials/xosadmin@opencord.org
 ```
 
-### Configuring ONOS (JSON configuration)
+### Configuring ONOS (JSON Configuration)
+
 To configure ONOS on the global node:
-* SSH into the global node
-* Login to ONOS_CORD: *ssh -p 8102 onos@onos-cord*
-* In the ONOS CLI (*onos>*) verify that apps are loaded by executing: *apps -a -s*
+* SSH into the global node.
+* Login to ONOS_CORD: *ssh -p 8102 onos@onos-cord*.
+* In the ONOS CLI (*onos>*) verify that apps are loaded by executing: `apps -a -s`
     The following applications should be enabled:
     ```
     org.onosproject.drivers
     org.opencord.ce-api
     org.opencord.ce.global
     ```
-    If one or more apps mentioned above are not present in the list, they can be activated with *app activate APP-NAME*
+    If one or more apps mentioned above are not present in the list, they can be activated with `app activate APP-NAME`.
 * Logout from ONOS (CTRL+D or exit)
-* Anywhere, either on the global node itself, or on any machine able to reach the global node, write your ONOS configuration file. The following is an example configuration for a global node that communicates with two local sites, with domain names site1 and site2.
+* Anywhere, either on the global node itself or on any machine able to reach the global node, write your ONOS configuration file. The following is an example configuration for a global node that communicates with two local sites, with domain names site1 and site2.
     
     ```
     {
@@ -200,33 +225,36 @@
     }
     ```
     
-    **NOTE** Under the key “topics” you can specify as many topics (string of your choice) as you prefer for sake of load balancing the communication with the underlying (local-site) controllers among the instance of the global ONOS cluster. For each domain you also have to specify one of these topics.
+> **NOTE** Under the key “topics” you can specify as many topics (string of your choice) as you prefer for sake of load balancing the communication with the underlying (local-site) controllers among the instance of the global ONOS cluster. For each domain you also have to specify one of these topics.
     
-    **NOTE**: If the XOS password has been auto-generated, you can find it on the global node, in /opt/credentials/xosadmin@opencord.org
+> **NOTE**: If the XOS password has been auto-generated, you can find it on the global node, in /opt/credentials/xosadmin@opencord.org
 
 * Use CURL to push your file:
     ```
     curl -X POST -H "content-type:application/json"  http://YOUR-GLOBAL-NODE-IP:8182/onos/v1/network/configuration -d @YOUR-JSON-FILE.json --user onos:rocks
     ```
 
-## Configure the local sites
+## Configure the Local Sites
+
 Local sites configuration consists of four parts:
 * Ethernet Edge (Centec V350) configuration
-* **Optional** Fabric Breakout configuration
+* Fabric Breakout configuration (optional)
 * ONOS_Fabric configuration
 * The ONOS_CORD configuration
 
 ### Configure the Ethernet Edge device - B - (Centec v350)
+
 The steps below assume that
 * The Centec device to an A(Access)-leaf fabric switch
 * ONOS_CORD is running
 
 Follow the steps below to assign an IP address to the Ethernet Edge device and connect it to ONOS_CORD.
 
-#### Set a management IP address on the switch OOB interface
+#### Set a Management IP Address on the Switch OOB Interface
+
 The switch management interface should be set with a static IP address (DHCP not supported yet), in the same subnet of the POD internal/management network (by default 10.6.0.0/24).
 
-**NOTE**: Please, use high values for the IP last octet, since lower values are usually allocated first by the MAAS DHCP server running on the head node.
+> **NOTE**: Please, use high values for the IP last octet, since lower values are usually allocated first by the MAAS DHCP server running on the head node.
 
 To configure the static IP address, do the following:
 * Log into the CLI of the Centec switch (through SSH or console cable)
@@ -235,21 +263,26 @@
 * *end*
 * *show management ip address*
 
-### **Optional** Configure the breakout cable on the fabric switch
-If you use a fabric switch with 40G interfaces and a 4 x 10G breakout cable to go to the Centec Etherned Edge you need to properly configure the interface on which the breakout cable is connected.
-By default, all 32 ports are running in 1 x 40G mode. The */etc/accton/ofdpa.conf* needs to be modified if we want to break out 1 x 40G into 4 x 10G.
+### **Optional** Configure the Breakout Cable on the Fabric Switch
+
+If you use a fabric switch with 40G interfaces and a 4 x 10G breakout
+cable to connect to the Centec Etherned Edge, you need to properly configure
+the interface on which the breakout cable is connected.
+
+By default, all 32 ports are running in 1 x 40G mode. The `/etc/accton/ofdpa.conf` needs to be modified to break out 1 x 40G into 4 x 10G.
 Do the following:
 * ssh into the fabric switch (username and password are usually root/onl)
-* *vi /etc/accton/ofdpa.conf*
-* uncomment this line *port_mode_1=4x10g    # front port 1* for the prot you have the breakout cable connected to
+* `vi /etc/accton/ofdpa.conf`
+* uncomment this line `port_mode_1=4x10g    # front port 1` for the port you have the breakout cable connected to
 * save the file and exit from it. 
-* *cd ~*
-* *./killit*
-* *./connect -bg*
+* `cd ~`
+* `./killit`
+* `./connect -bg`
 
 For any more reference you can go to this particular step [Fabric configuration guide](https://wiki.opencord.org/display/CORD/Hardware+Switch+Installation+Guide#HardwareSwitchInstallationGuide-C3)
 
-### Set ONOS-CORD as the Openflow controller
+### Set ONOS-CORD as the Openflow Controller
+
 To set ONOS-CORD as the default switch OpenFlow controller and verify the configuration:
 * Log into the CLI of the Centec switch (through SSH or console cable)
 * *configure terminal*
@@ -259,13 +292,14 @@
  
 The local site configurations explained below need to happen on the head nodes of all local sites.
 
-### ONOS_fabric configuration
+### ONOS_Fabric Configuration
+
 ONOS_Fabric manages the underlay network (the connectivity between the fabric switches).
 
 To configure ONOS_Fabric do the following:
 * SSH on the local site head node
-* Log into ONOS_Fabric: *ssh -p 8101 onos@onos-fabric*
-* In the ONOS CLI (*onos>*) verify that apps are loaded: *apps -a -s*
+* Log into ONOS_Fabric: `ssh -p 8101 onos@onos-fabric`
+* In the ONOS CLI (*onos>*) verify that apps are loaded: `apps -a -s`
     The list of applications enabled should include:
     ```
     org.onosproject.segmentrouting
@@ -274,15 +308,15 @@
     org.opencord.ce.local.channel.http
     org.opencord.ce.local.fabric
     ```
-    If one or more apps mentioned above are not present in the list, they can be activated with *app activate APP-NAME*
+    If one or more apps mentioned above are not present in the list, they can be activated with `app activate APP-NAME`
     * Check that the site domain id is correctly set in ONOS, running
     ```
     cfg get org.opencord.ce.local.bigswitch.BigSwitchManager
     ```
-    The value should be *YOUR-HEAD-NODE-IP-fabric-onos*
+    The value should be `YOUR-HEAD-NODE-IP-fabric-onos`
 * Check that the fabric switch is connected to onos typing devices. If no devices are there, make sure your fabric switch is connected to ONOS and go through the [Fabric configuration guide](https://guide.opencord.org/appendix_basic_config.html#connect-the-fabric-switches-to-onos).
 * Logout from ONOS (CTRL+D or exit)
-* Anywhere, either on the head node itself, or on any machine able to reach the head node, write your ONOS configuration file.
+* Anywhere, either on the head node itself or on any machine able to reach the head node, write your ONOS configuration file.
     Following, is an example configuration for a local site.
     
     ```
@@ -330,28 +364,38 @@
     curl -X POST -H "content-type:application/json"  http://YOUR-LOCAL-HEAD-NODE-IP:8181/onos/v1/network/configuration -d @YOUR-JSON-FILE.json --user onos:rocks
     ```
 
-#### The MEF ports
-Under the key “mefPorts” there is the list of physical ports that have to be exposed to the global node. These ports represent MEF ports and can belong to different physical devices, but they will be part of a single abstract “bigswitch” in the topology of the global ONOS (see [E-CORD topology abstraction](https://guide.opencord.org/profiles/ecord/overview.html#e-cord-topology-abstraction)). These ports represent also the boundary between physical topologies controlled by different ONOS controllers.
+#### MEF Ports
+
+Under the key `mefPorts` there is the list of physical ports that have to be exposed to the global node. These ports represent MEF ports and can belong to different physical devices, but they will be part of a single abstract “bigswitch” in the topology of the global ONOS (see [E-CORD topology abstraction](https://guide.opencord.org/profiles/ecord/overview.html#e-cord-topology-abstraction)). These ports represent also the boundary between physical topologies controlled by different ONOS controllers.
 
 In the Json above:
 * *of:C-DPID/C1* is the DPID and the port of the fabric device where the Ethernet Edge Device is connected to. 
 * *of:C-DPID/C4* is the DPID and the port of the fabric device where the transport network is connected to (in the example fabric switches are connected together). 
 
-This is hinted through the interlinkId.
+This is hinted through the `interlinkId` value.
 
-#### The topic attribute
-The *topic* attribute under the *org.opencord.ce.local.channel.http* is a string of your choice. It is used to run an election in an ONOS cluster to choose the ONOS instance that interacts with the global node.
+#### Topic Attribute
 
-### ONOS_CORD configuration
-ONOS_CORD manages the overlay network. It controls both the users' CPEs and the Ethernet Edge devices.
-The programmable microsemi SFP -part of your emulated CPE- is configured and managed through Netconf (more information about NETCONF and ONOS can be found [here](https://wiki.onosproject.org/display/ONOS/NETCONF)).  
-The Ethernet Edge device is managed through OpenFlow.  
-Both the devices, at the end of the configuration procedure should show up in ONOS_CORD, which can be confirmed by typing *devices* in the ONOS CLI (*onos>*).
+The `topic` attribute under the `org.opencord.ce.local.channel.http` is a string of your choice. It is used to run an election in an ONOS cluster to choose the ONOS instance that interacts with the global node.
+
+### ONOS_CORD Configuration
+
+ONOS_CORD manages the overlay network. It controls both the users'
+CPEs and the Ethernet Edge devices.
+
+The programmable microsemi SFP -part of your emulated CPE- is
+configured and managed through Netconf (more information about NETCONF
+and ONOS can be found
+[here](https://wiki.onosproject.org/display/ONOS/NETCONF)).
+
+The Ethernet Edge device is managed through OpenFlow.
+Both the devices, at the end of the configuration procedure should
+show up in ONOS_CORD, which can be confirmed by typing `devices` in the ONOS CLI (*onos>*).
 
 To configure ONOS_CORD do the following:
 * SSH into the head node
-* Login to onos-cord: *ssh -p 8102 onos@onos-cord*
-* At the ONOS CLI verify that apps are loaded: *apps -a -s*
+* Login to onos-cord: `ssh -p 8102 onos@onos-cord`
+* At the ONOS CLI verify that apps are loaded: `apps -a -s`
     The following applications should be enabled:
     ```
     org.onosproject.drivers.microsemi
@@ -425,20 +469,20 @@
     curl -X POST -H "content-type:application/json" http://YOUR-LOCAL-SITE-HEAD-IP:8182/onos/v1/network/configuration -d @YOUR-JSON-FILE.json --user onos:rocks
     ```
 
-**Warning** The JSON above tries to configure devices and links at the same time. It may happen that ONOS denies your request of link creation, since it does not find devices present (because their creation is still in progress). If this happens, just wait few seconds and try to push again the same configuration, using the *curl* command above.
+> **Warning** The JSON above tries to configure devices and links at the same time. It may happen that ONOS denies your request of link creation, since it does not find devices present (because their creation is still in progress). If this happens, just wait few seconds and try to push again the same configuration, using the *curl* command above.
 
 # Done!
 After the global node and the local sites are properly configured, the global node should maintain an abstract view of the topology and you should see UNIs distributed on the map of the XoS GUI. You can start requests to setup Ethernet Virtual Circuit (EVC) from XoS.
 
-# Demo: create an E-Line through the UI
+# Demo: Create an E-Line Using the GUI
 
 * SSH into global node
 * From */opt/credentials/xosadmin@opencord.org* copy the XOS password
 * From a computer, able to reach the global node, open a browser and go to *http://YOUR_GLOBAL_NODE_IP/xos*
 * Use the following username/password to access:
-    * Username: *xosadmin@opencord.org*
+    * Username: `xosadmin@opencord.org`
     * Password: YOUR_PASSWORD_COPIED_AT_THE_STEP_BEFORE
-* From the left menu of the XOS UI, choose *VNaaS GUI*
+* From the left menu of the XOS UI, choose `VNaaS GUI`
 * You should see CORD symbols on the map (your UNIs / end-points)
     * Click on one of them
     * Choose “Create connection”
@@ -452,8 +496,12 @@
 
 A line should appear between the two icons, meaning that a request to connect the two end-points has been saved. The line should become green in few seconds. Green lines are good signs of a working environment.
 
-## End-points communication
-You should now be able to let communicate together the two end-points connected to the CPEs. Each of the two end-points need to be configured to send-out packets tagged with the same VLAN Id(s).  
+## End-Point Communication
+
+You should now be able to let communicate together the two end-points
+connected to the CPEs. Each of the two end-points need to be
+configured to send-out packets tagged with the same VLAN Id(s).
+
 Assuming you just configured VLAN id 100 in the UI, and that the two end-points will communicate together using the 192.168.1.0/24 subnet, on each head do the following:
 * *apt-get install vlan*
 * *sudo modprobe 8021q*
@@ -469,5 +517,5 @@
 * Save
 * Bring up the interface with *sudo ifup YOUR_INTERFACE_CONNECTED_TO_THE_CPE.100*
 
-## Success, Ping!
+## Success: Ping!
 If everything works fine, the two hosts should be able to ping one each other.
diff --git a/docs/overview.md b/docs/overview.md
index 5c59139..5bbbda1 100644
--- a/docs/overview.md
+++ b/docs/overview.md
@@ -1,100 +1,110 @@
 # What is E-CORD?
 
-Enterprise CORD (E-CORD) is a CORD use-case that offers enterprise connectivity services over metro and wide area networks, using open source software and commodity hardware.
+Enterprise CORD (E-CORD) is a CORD use case that offers enterprise connectivity services over metro and wide area networks, using open source software and commodity hardware.
 
 <img src="static/images/overview.png" alt="E-CORD overview" style="width: 800px;"/>
 
-E-CORD builds on the CORD infrastructure to support enterprise customers, and allows Service Providers to offer enterprise connectivity services (L2 and L3VPN).
-It can go far beyond these simple connectivity services, as it includes Virtual Network Functions (VNFs) and service composition capabilities to support disruptive cloud-­based enterprise services.
-In turn, enterprise customers can use E-CORD to rapidly create on-­demand networks between any number of endpoints or company branches. These networks are dynamically configurable, implying connection attributes and SLAs can be specified and provisioned on the fly. Furthermore, enterprise customers may choose to run network functions such as firewalls, WAN accelerators, traffic analytic tools, virtual routers, etc. as on­-demand services that are provisioned and maintained inside the service provider network.
+E-CORD builds on the CORD platform to support enterprise customers, and allows Service Providers to offer enterprise connectivity services (L2 and L3VPN).
+It can also go beyond these simple connectivity services to include Virtual Network Functions (VNFs) and service composition capabilities to support disruptive cloud-based enterprise services.
+
+Enterprise customers can use E-CORD to rapidly create on-demand networks between any number of endpoints or company branches. These networks are dynamically configurable, implying connection attributes and SLAs can be specified and provisioned on the fly. Furthermore, enterprise customers may choose to run network functions such as firewalls, WAN accelerators, traffic analytic tools, virtual routers, etc. as on-demand services that are provisioned and maintained inside the service provider network.
 
 # Glossary
 
 The section provides a list of the basic terms used in E-CORD
  
-* **CO/Local POD**: Each local CORD POD (also identified in the guide as an E-CORD site) is a standard CORD POD equipped with specific access equipment, such as the “Enterprise Edge”. It is usually located in the Service Provider’s Central Offices and is mainly used to: 1) connect the enterprise user to the Service Provider network; b) run value added user services at the edge of the network, closed to the user, such as firewalls, traffic analytic tools or WAN accelerators. Upstream, the POD usually connects to the Service Provider metro/transport network or to the public internet.
-* **Global Node**: The global node is a single machine running either in the cloud, or in any other part of the Service Provider network, used as general orchestrator that coordinates between all the local PODs of the E-CORD deployment. It is composed by an instance of XOS and one of ONOS.
+ * **Local POD**: Each local CORD POD (also identified in the guide as an E-CORD site) is a standard CORD POD equipped with specific access equipment. It is usually located in the Service Provider’s Central Offices and is mainly used to: 1) connect the enterprise user to the Service Provider network; and 2) run value added user services (e.g., firewalls, traffic analytic tools, WAN accelerators) at the edge of the network, close to the enterprise sites. Upstream, the POD usually connects to the Service Provider metro/transport network or to the public internet.
+ 
+* **Global Node**: The global node is a single machine running either in the cloud, or in any other part of the Service Provider network, used to coordinate connectivity and services among all the local PODs of the E-CORD deployment. It consists of an instance of XOS (global orchestrator) and ONOS (controlling the transport network interconnecting edge sites).
 
-# System overview
+# System Overview
 
-A typical E-CORD deployment is made of one orchestrator “global node” and multiple (min 2) CORD sites (PODs), connected to the same transport network.
+A typical E-CORD deployment is made of one global node and multiple (minimum two) CORD sites (PODs), connected to the same transport network.
 
 <img src="static/images/ecord-dataplane.png" alt="E-CORD dataplane" style="width: 800px;"/>
 
-Each site is a “typical” CORD POD comprised of one or more compute nodes, and one or more fabric switches (see here for details).
-The transport network provides connectivity between the CORD sites. It can be anything from a converged packet-optical network, to a single packet switch. The transport network can be composed of white-box switches, legacy equipment, or a mix of both. The minimum requirement in order to deploy E-CORD is to provide Layer 2 connectivity between the PODs, specifically between the leaf fabric switches, facing the upstream/metro network of the COs. 
+Each site is a standard CORD POD comprised of one or more compute nodes, and one or more fabric switches. The transport network provides connectivity between the CORD sites. It can be anything from a converged packet-optical network, to a single packet switch for demo purposes. The transport network can be composed of white-box switches, legacy equipment, or a mix of both. The minimum requirement in order to deploy E-CORD is to provide Layer 2 connectivity between the PODs, specifically between the leaf fabric switches that face the upstream/metro network of the COs. 
 
-**INFO** Usually, for lab trials, the leaf switches of the two sites (PODs) are connected directly through a cable, or through a legacy L2 switch.
+> Usually, for lab trials, the leaf switches of the two sites (PODs) are connected directly through a cable, or through a legacy L2 switch.
 
-## The E-CORD global node
-The global node is responsible for orchestrating users’ requests and to manage the connectivity and the services provisioning.
- 
-It runs only an instance of the orchestrator, XOS, and an instance of ONOS, in specific the ONOS_CORD one.
- 
-The ONOS instance (ONOS_CORD) manages the end-to-end traffic forwarding between the sites.
+## Global Node
+
+The global node is responsible for orchestrating users’ requests and to manage the connectivity and the services provisioning. It runs only an instance of XOS and an instance of ONOS (specifically ONOS_CORD). The ONOS instance (ONOS_CORD) manages the end-to-end traffic forwarded between the sites.
  
 The global ONOS is composed of three modules:
-* **Carrier Ethernet Orchestrator** application, exposing a NB REST interface to receive requests to create Ethernet Virtual Circuits (EVCs).
-* **Virtual Provider**, that manages the abstract view of the local E-CORD sites topologies.
-* **Global HTTP channel** for the communication with the underlying local sites. 
 
-## The E-CORD local sites
-Local sites are responsible for collecting users’ traffic and forward it either to other local sites or to Internet.
-Each local site comes with two ONOS controllers that are part of the reference architecture of CORD: ONOS_CORD and ONOS_Fabric.
+* **Carrier Ethernet Orchestrator**: Exposes a Northbound REST interface to receive requests to create Ethernet Virtual Circuits (EVCs).
+
+* **Virtual Provider**: Manages the abstract view of the local E-CORD sites topologies.
+
+* **Global HTTP Channel**: Supports communication with the local sites. 
+
+## Local Sites
+
+Local sites are responsible for collecting users’ traffic and forwarding it either to other local sites or to the Internet. Each local site comes with two ONOS controllers that are part of the reference architecture of CORD: ONOS_CORD and ONOS_Fabric. The Carrier Ethernet application of E-CORD uses both controllers to provision the physical network:
  
-The Carrier Ethernet application of E-CORD uses both controllers to provision the physical network:
-* **ONOS_CORD** runs the application that controls the edge access: the CPE devices and the Ethernet Edge (EE) devices.
-* **ONOS_Fabric** runs the application configuring the cross connections within the fabric of CORD (Trellis), to bridge the CPEs to the transport network and to the remote sites. 
+ * **ONOS_CORD**: Runs the application that controls the edge access, including the CPE devices and the Ethernet Edge (EE) devices.
  
-The added components to ONOS_CORD  ONOS are these applications: 
+* **ONOS_Fabric**: Runs the application configuring the cross connections within the fabric of CORD, to bridge the CPEs to the transport network and to the remote sites. 
+ 
+The following components are added to ONOS_CORD: 
 * CE-API
 * Bigswitch service
 * HTTP channel 
 * CE-VEE
  
-The added components to ONOS_Fabric ONOS are these applications: 
+The following components are added to ONOS_Fabric: 
 * CE-API
 * Bigswitch service
 * HTTP channel 
 * CE-fabric
  
-The CE-API, the bigswitch service and the HTTP channel are common to both ONOS_CORD and ONOS_Fabric. They are used to put in communication the ONOS running on the global node  and the ones running on the local sites.
-The local sites abstract their network topology and expose it to the global node, they receive requests from the global ONOS, and provision the network for the EVCs setup. 
-
-## XOS service chain
-XOS is the default CORD orchestrator. More info about it can be found here.
+The CE-API, the bigswitch service, and the HTTP channel are common to both ONOS_CORD and ONOS_Fabric. They are used to put in communication the ONOS running on the global node  and the ones running on the local sites.
  
-The Global pod only implements a single service called **vNaaS**, **virtual Network as a Service** that is responsible for orchestrating the end to end connectivity between the PODs.
- 
-E-CORD local sites implement multiple services -wired together- that control the underlying hardware and software, and are thus able to connect the Enterprise Subscriber from the edge of the Central Office to the upstream network.
- 
-A representation of the default E-CORD local site service chain is shown in the picture below.
+The local sites abstract their network topology and expose it to the global node. They receive requests from the global ONOS, and provision the network for the EVCs setup. 
 
-<img src="static/images/xos-service-chain.png" alt="XOS Service Chain" style="width: 600px;"/>
+## Service Graph
 
-The local chain comprises of 5 different services with different responsibilities each. 
+The global node implements a single service called **vNaaS** (**virtual Network as a Service**) that is responsible for controlling end-to-end connectivity between the PODs.
  
-* **vCPE (virtual Customer Premise Equipment)** inserts an 802.1ad (QinQ) header to the upstream packets of an Enterprise Subscriber and removes it for downstream flows. Packets are tagged with a vlanId (the Service Provider tag, s-tag) and then forwarded to the Ethernet Edge. The s-tag is associated with one or more c-tag (customer tags, the vlanId of the 802.1q protocol) to isolate the traffic within the Service Provider network. The vCPE function is very similar to that of vOLT in R-CORD.
-* **vEE (virtual Ethernet Edge)** aggregates traffic from multiple customers with CPEs and applies policing and forwarding to the fabric. The vEE is also responsible for making routing decisions on the traffic. The vEE filters the traffic meant for the enterprise network and sends it through pseudo-wire in the fabric directly to the transport network and the other enterprise branch. If the vEE recognizes that the traffic is instead meant for the public Internet, it will send it to the vEG and then to the vRouter.
-* **vEG (virtual Enterprise Gateway)** runs the subscriber desired VNFs, such as bandwidth metering, firewall, diagnostics etc, and possibly forwards the traffic to the vRouter.
-* **vRouter (virtual Router)** is responsible for sending traffic out of the CORD POD to the public Internet. It is the same service that is present in the R-CORD service chain. More information about it can be found [here](https://guide.opencord.org/vrouter.html#connecting-to-upstream-networks-using-vrouter)
-* **PWaaS enables a “pass-through”** in the leaf-spine fabric (Trellis), allowing traffic to directly go out to the metro network. This is done through a configuration of the segment routing application. 
+Each local site implements multiple services that collectively control the underlying hardware and software, and are thus able to connect the Enterprise Subscriber from the edge of the Central Office to the upstream network.
+ 
+A representation of the default E-CORD local site service graph is shown below.
 
-## E-CORD Topology Abstraction
-The global node maintains an abstract view of the underlying topology for the sake of scalability and to separate domain-specific and domain-agnostic concerns. Note that in a single CORD PODs there are two independent ONOS controllers: ONOS_CORD and ONOS_Fabric. For each local site, the E-CORD application exposes two abstract devices to the global node: one is exposed by the ONOS_CORD and the other by the ONOS_Fabric. They represent an aggregation of the real network elements that compose the topology of a local site.
+<img src="static/images/xos-service-chain.png" alt="XOS Service Graph" style="width: 600px;"/>
+
+The local graph consists of five different services with different responsibilities.
+ 
+ * **vCPE (Virtual Customer Premise Equipment)**: Inserts an 802.1ad (QinQ) header to the upstream packets of an Enterprise Subscriber and removes it for downstream flows. Packets are tagged with a vlanId (the Service Provider tag, s-tag) and then forwarded to the Ethernet Edge. The s-tag is associated with one or more c-tag (customer tags, the vlanId of the 802.1q protocol) to isolate the traffic within the Service Provider network. The vCPE function is very similar to that of vOLT in R-CORD.
+ 
+ * **vEE (Virtual Ethernet Edge)**: Aggregates traffic from multiple customers with CPEs and applies policing and forwarding to the fabric. The vEE is also responsible for making routing decisions on the traffic. The vEE filters the traffic meant for the enterprise network and sends it through pseudo-wire in the fabric directly to the transport network and the other enterprise branch. If the vEE recognizes that the traffic is instead meant for the public Internet, it will send it to the vEG and then to the vRouter.
+ 
+ * **vEG (Virtual Enterprise Gateway)**: Runs selected VNFs, such as bandwidth metering, firewall, diagnostics etc, and possibly forwards the traffic to the vRouter.
+ 
+ * **vRouter (Virtual Router)**: Responsible for sending traffic out of the CORD POD to the public Internet. It is the same service that is present in the R-CORD service chain. More information about it can be found [here](https://guide.opencord.org/vrouter.html#connecting-to-upstream-networks-using-vrouter).
+ 
+* **PWaaS**: Enables a “pass-through”** in the leaf-spine fabric, allowing traffic to directly go out to the metro network. This is done through a configuration of the segment routing application. 
+
+## Topology Abstraction
+
+The global node maintains an abstract view of the underlying topology for the sake of scalability and to separate domain-specific and domain-agnostic concerns. Note that in a single CORD POD there are two independent ONOS controllers: ONOS_CORD and ONOS_Fabric. For each local site, the E-CORD application exposes two abstract devices to the global node: one is exposed by the ONOS_CORD and the other by the ONOS_Fabric. They represent an aggregation of the real network elements that compose the topology of a local site.
 
 The picture below shows how the two topologies get abstracted and exposed to the ONOS instance running on the global node.
 
-<img src="static/images/topology-abstraction-01.png" alt="XOS Service Chain" style="width: 600px;"/>
+<img src="static/images/topology-abstraction-01.png" alt="Topology Abstraction" style="width: 600px;"/>
 
-This way, the global ONOS has fewer devices and link data structures to deal with. Path computation will involve only these aggregated items, while the actual network provisioning will be achieved by the local site controllers.
+In this way, the global ONOS has fewer devices and link data structures to deal with. Path computation involves only these aggregated items, while the actual network provisioning is achieved by the local site controllers.
  
 The relevant topology information for the global node include
-* **User-to-Network Interfaces (UNIs)** - see [MEF specs](https://www.mef.net/resources/technical-specifications)
-* **Network-to-Network Interfaces (NNIs)** see see [MEF specs](https://www.mef.net/resources/technical-specifications)
-* **Associated bandwidth capacities** for admission control
- 
-The NNI ports are annotated with an interlinkId so that the global node can understand which ports are at the ends of which inter-domain links.
-An inter-domain link, from now on simply called  interlink, is a link that connects to devices controlled by different ONOS controllers at local level (see the ONOS_FABRIC and ONOS_CORD json configuration sections in the installation guide for more examples).
 
-<img src="static/images/topology-abstraction-02.png" alt="XOS Service Chain" style="width: 600px;"/>
+* **User-to-Network Interfaces (UNIs)**: See [MEF specs](https://www.mef.net/resources/technical-specifications).
+
+* **Network-to-Network Interfaces (NNIs)**: See [MEF specs](https://www.mef.net/resources/technical-specifications).
+
+* **Associated bandwidth capacities**: For admission control.
+ 
+The NNI ports are annotated with an inter-link identifier (`interlinkId`) so that the global node can understand which ports are at the ends of which inter-domain links.
+ 
+The inter-domain link connects to devices controlled by different ONOS controllers at local level. See the ONOS_FABRIC and ONOS_CORD json configuration sections in the installation guide for more examples,
+
+<img src="static/images/topology-abstraction-02.png" alt="Topology Abstraction" style="width: 600px;"/>