Wrote part of configuration chapter

device-config
bridging-unicast
xconnect
pseudowire

Change-Id: Ib393d52e7bdc606c705e1e14dd52c9fcd77c0755
diff --git a/configuration/device-config.rst b/configuration/device-config.rst
new file mode 100644
index 0000000..6bc7e66
--- /dev/null
+++ b/configuration/device-config.rst
@@ -0,0 +1,43 @@
+Device Configuration
+====================
+Each switch in Trellis requires a device config.
+
+.. code-block:: json
+    :linenos:
+
+    {
+      "devices" : {
+        "of:0000000000000001" : {
+          "segmentrouting" : {
+            "ipv4NodeSid" : 101,
+            "ipv4Loopback" : "192.168.0.201",
+            "ipv6NodeSid" : 111,
+            "ipv6Loopback" : "2000::c0a8:0201",
+            "routerMac" : "00:00:00:00:02:01",
+            "isEdgeRouter" : true,
+            "adjacencySids" : []
+          },
+          "basic" : {
+            "name" : "Leaf-R1",
+            "driver" : "ovs-ofdpa"
+          }
+        }
+      }
+    }
+
+- ``of:0000000000000001``: DPID of the device.
+- ``ipv4NodeSid``: IPv4 node segment ID, which is used as an MPLS label in forwarding IPv4 traffic. Can be arbitrary and should be globally unique.
+- ``ipv4Loopback``: IPv4 loopback address. Can be arbitrary, should be globally unique and should not be part of the same subnet(s) defined on the data plane ports (see port config).
+- ``ipv6NodeSid``: IPv6 node segment ID, which is used as an MPLS label in forwarding IPv6 traffic. Can be arbitrary and should be globally unique. Only required when using IPv6.
+- ``ipv6Loopback``: IPv6 loopback address. Can be arbitrary, should be globally unique and should not be part of the same subnet(s) defined on the data plane ports (see port config).
+  Only required when using IPv6.
+- ``routerMac``: Router MAC address. Can be arbitrary and should be globally unique.
+  This MAC address will be used to reply the ARP request for the loopback IP or the Interface IP that will be introduced later.
+  (We recommend using the MAC address of the device's management interface as the router MAC.)
+- ``isEdgeRouter``: True for leaf switches. False for spine switches.
+- ``adjacencySids``: Deprecated.  Just put an empty array for now.
+- ``name``: Name of the device. It is an arbitrary name to identify the device easily.
+- ``driver``: This tells ONOS which OpenFlow driver should be loaded for this device. It overrides the driver selected by ONOS automatically when the device connects.
+
+    - When using OpenvSwitch, set this to ``ovs-ofdpa``
+    - When using hardware switches, set this to ``ofdpa3`` or eliminate ``driver`` entirely as the correct driver configuration will be set automatically by ONOS