For XOS Tutorial
diff --git a/xos/configurations/cord-pod/Makefile b/xos/configurations/cord-pod/Makefile
index 2d869a4..49a1c98 100644
--- a/xos/configurations/cord-pod/Makefile
+++ b/xos/configurations/cord-pod/Makefile
@@ -14,6 +14,9 @@
 	sudo docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/fixtures.yaml
 	sudo docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/cord-vtn-vsg.yaml
 
+exampleservice:
+	sudo docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/pod-exampleservice.yaml 
+
 cord-ceilometer: ceilometer_custom_images cord
 	sudo docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/ceilometer.yaml
 
diff --git a/xos/configurations/cord-pod/README-Tutorial.md b/xos/configurations/cord-pod/README-Tutorial.md
new file mode 100644
index 0000000..759950c
--- /dev/null
+++ b/xos/configurations/cord-pod/README-Tutorial.md
@@ -0,0 +1,173 @@
+# Setting up the XOS Tutorial
+
+The XOS Tutorial demonstrates how to add a new subscriber-facing
+service to CORD.  
+
+## Prepare the development POD
+
+Follow steps 1-3 under the **How to Bring up CORD** heading in the
+[README.md](./README.md) file.  For best results, use on a clean Ubuntu 14.04
+LTS installation on a server with at least 48GB RAM and 12 CPU cores.
+
+For step 1, use the single-node POD setup described at
+https://github.com/open-cloud/openstack-cluster-setup.  If you like, you can run
+[this script](https://raw.githubusercontent.com/open-cloud/openstack-cluster-setup/master/scripts/single-node-pod.sh) to perform steps 1 and 2:
+
+```
+ubuntu@pod:~$ wget https://raw.githubusercontent.com/open-cloud/openstack-cluster-setup/master/scripts/single-node-pod.sh
+ubuntu@pod:~$ bash single-node-pod.sh
+```
+
+For step 3, in place of the `compute-ext-net.sh` script, run
+[this script](https://github.com/open-cloud/openstack-cluster-setup/scripts/compute-ext-net-tutorial.sh)
+inside the nova-compute VM.  It enables routing packets between the ExampleService and vSG subnets on a
+single-node POD.
+
+```
+ubuntu@pod:~$ ssh ubuntu@nova-compute
+ubuntu@nova-compute:~$ wget https://github.com/open-cloud/openstack-cluster-setup/scripts/compute-ext-net-tutorial.sh
+ubuntu@nova-compute:~$ sudo bash compute-ext-net-tutorial.sh
+```
+
+## Include ExampleService in XOS
+
+On the POD, SSH into the XOS VM: `$ ssh ubuntu@xos`.  You will see the XOS repository
+checked out under `~/xos/`
+
+Change the XOS code as described in the
+[ExampleService Tutorial](http://guide.xosproject.org/devguide/exampleservice/)
+under the **Install the Service in Django** heading, and rebuild the XOS containers as
+described in that Tutorial:
+
+```
+ubuntu@xos:~$ cd xos/xos/configurations/devel
+ubuntu@xos:~/xos/xos/configurations/devel$ make containers
+```
+
+Change directories to `../cord-pod`.  
+Modify the `docker-compose.yml` file in this directory to include the synchronizer
+for ExampleService:
+
+```yaml
+xos_synchronizer_exampleservice:
+    image: xosproject/xos-synchronizer-openstack
+    command: bash -c "sleep 120; python /opt/xos/synchronizers/exampleservice/exampleservice-synchronizer.py -C /root/setup/files/exampleservice_config"
+    labels:
+        org.xosproject.kind: synchronizer
+        org.xosproject.target: exampleservice
+    links:
+        - xos_db
+    volumes:
+        - .:/root/setup:ro
+        - ../common/xos_common_config:/opt/xos/xos_configuration/xos_common_config:ro
+        - ./id_rsa:/opt/xos/synchronizers/exampleservice/exampleservice_private_key:ro
+```
+
+## Bring up XOS
+
+Under the `cord-pod` configuration, edit file `make-vtn-networkconfig-json.sh`.
+Change the definition of `"publicGateways"` so that it looks like this (adding
+  a second gatewayIp and gatewayMac):
+
+```
+"publicGateways": [
+    {
+        "gatewayIp": "10.168.0.1",
+        "gatewayMac": "02:42:0a:a8:00:01"
+    },
+    {
+        "gatewayIp": "10.168.1.1",
+        "gatewayMac": "02:42:0a:a8:00:01"
+    }
+],
+```
+
+Now run the `make` commands described in the [README.md](./README.md) file:
+
+```
+ubuntu@xos:~/xos/xos/configurations/cord-pod$ make
+ubuntu@xos:~/xos/xos/configurations/cord-pod$ make vtn
+ubuntu@xos:~/xos/xos/configurations/cord-pod$ make cord
+```
+
+The first `make` command initializes XOS and configures it to talk to OpenStack.
+After running it you should be able to login to the XOS UI at http://xos
+using credentials padmin@vicci.org/letmein.
+
+The `make vtn` tells XOS to start and configure the ONOS VTN app.  The `make cord`
+installs the CORD services in XOS and configures a sample subscriber; the end
+result is that XOS will spin up the subscriber's vSG.
+
+## Configure ExampleService in XOS
+
+The TOSCA file `pod-exampleservice.yaml` contains the service declaration.
+Tell XOS to process it by running:
+
+```
+ubuntu@xos:~/xos/xos/configurations/cord-pod$ make exampleservice
+```
+
+In the XOS UI, create an ExampleTenant. Go to the <Services> page,
+select ExampleService, select Administration, select ExampleTenant,
+then add and save a tenant.  This will cause an Instance to be created
+in the ExampleTenant slice.
+
+## Set up a Subscriber Device
+
+The single-node POD does not include a virtual OLT, but a device at the
+subscriber’s premises can be simulated by an LXC container running on the
+nova-compute node.
+
+In the nova-compute VM:
+
+```
+ubuntu@nova-compute:~$ sudo apt-get install lxc
+```
+
+Next edit `/etc/lxc/default.conf` and change the default bridge name:
+
+```
+  lxc.network.link = databr
+```
+
+Create the client container and attach to it:
+
+```
+ubuntu@nova-compute:~$ lxc-create -t ubuntu -n testclient
+ubuntu@nova-compute:~$ lxc-start -n testclient
+ubuntu@nova-compute:~$ lxc-attach -n testclient
+```
+
+(The lxc-start command may throw an error but it seems to be unimportant.)
+
+Finally, inside the container set up an interface so that outgoing traffic
+is tagged with the s-tag (222) and c-tag (111) configured for the
+sample subscriber:
+
+```
+root@testclient:~# ip link add link eth0 name eth0.222 type vlan id 222
+root@testclient:~# ip link add link eth0.222 name eth0.222.111 type vlan id 111
+root@testclient:~# ifconfig eth0.222 up
+root@testclient:~# ifconfig eth0.222.111 up
+root@testclient:~# dhclient eth0.222.111
+```
+
+If the vSG is up and everything is working correctly, the eth0.222.111
+interface should acquire an IP address via DHCP and have external connectivity.
+
+## Access ExampleService from the Subscriber Device
+
+To test that the subscriber device can access the ExampleService, find the IP
+address of the ExampleService Instance in the XOS GUI, and then curl this
+address from inside the testclient container:
+
+```
+root@testclient:~# sudo apt-get install curl
+root@testclient:~# curl 10.168.1.3
+ExampleService
+ Service Message: "service_message"
+ Tenant Message: "tenant_message"
+```
+
+Hooray!  This shows that the subscriber (1) has external connectivity, and
+(2) can access the new service via the vSG.