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