Added instructions to load Trellis apps from external repo

Also added device configuration for Stratum devices

Change-Id: Idcccb531ff3d45d7285085c6212fd5234479dc9c
diff --git a/configuration/device-config.rst b/configuration/device-config.rst
index 9a55895..1b635b8 100644
--- a/configuration/device-config.rst
+++ b/configuration/device-config.rst
@@ -63,6 +63,40 @@
       ``driver`` entirely as the correct driver configuration will be set
       automatically by ONOS
 
+
+Additional Device Configuration for Stratum Switches
+====================================================
+
+When using Stratum switches, following **additional** configurations need
+to be added to the ``basic`` section of device config.
+
+.. code-block:: json
+
+    {
+      "devices" : {
+        "device:montara1" : {
+          "segmentrouting" : {
+            "...": "...",
+          },
+          "basic" : {
+            "...": "...",
+            "managementAddress": "grpc://192.168.0.1:9339?device_id=1",
+            "driver": "stratum-tofino",
+            "pipeconf": "org.opencord.fabric.tofino.montara_sde_9_0_0"
+          }
+        }
+      }
+    }
+
+- ``managementAddress``: gRPC endpoint of the Stratum device and a numerical device ID.
+  The IP address can be replaced by domain name as well.
+
+- ``driver``: ``stratum-bmv2`` or ``stratum-tofino``, depending on which switch this is.
+
+- ``pipeconf``: A list of available pipeconfs can be dumped by running ``pipeconfs`` in ONOS CLI.
+  Select the pipeconf you would like to use for this device.
+
+
 .. caution::
     We should avoid using reserved MPLS labels for ``ipv4NodeSid`` and
     ``ipv6NodeSid``.  Please check here for the reserved values:
diff --git a/installation.rst b/installation.rst
index f96483d..9160fb4 100644
--- a/installation.rst
+++ b/installation.rst
@@ -1,4 +1,4 @@
-.. |onos_version| replace:: 1.12.2
+.. |onos_version| replace:: 2.2.3
 
 Installation Guide
 ******************
@@ -25,7 +25,7 @@
 
 
 Download ONOS |onos_version|
----------------------------------
+----------------------------
 
 Trellis currently is released as part of ONOS and therefore it follows ONOS
 version number.  This document is written based on ONOS |onos_version|.
@@ -59,7 +59,7 @@
     export OC1=10.128.0.216
     export OC2=10.128.0.217
     export OC3=10.128.0.218
-    export ONOS_APPS=drivers,gui,openflow,segmentrouting,fpm,dhcprelay,routeradvertisement,hostprobingprovider,t3
+    export ONOS_APPS=drivers,gui,hostprovider,lldpprovider,fpm,dhcprelay,routeradvertisement,hostprobingprovider,netcfghostprovider
     export ONOS_USER=admin
     export ONOS_GROUP=admin
     export ONOS_USE_SSH=true
@@ -76,10 +76,9 @@
 
     - ``gui`` enables graphic user interface. Highly recommended.
 
-    - ``openflow`` is a meta app that loads ``openflow-base``, ``lldpprovider``
-      and ``hostprovider``. Always required.
+    - ``hostprovider`` discovers hosts via ARP and NDP
 
-    - ``segmentrouting`` controls forwarding in the fabric. Always required.
+    - ``lldpprovider`` discovers links via LLDP
 
     - ``fpm`` (Forwarding Plane Manager) exchanges forwarding information with
       Quagga. Required if connecting to external router.
@@ -93,8 +92,8 @@
     - ``hostprobingprovider`` probes and verifies locations of dual-homed
       hosts. Required if using dual-homing feature with paired switches
 
-    - ``t3`` (Trellis Troubleshooting Tool) is very useful for debugging.
-      Highly recommended.
+    - ``netcfghostprovider`` reads hosts information from network config and add them to the host service.
+      Required if we want to statically configure some hosts.
 
 - ``ONOS_USER`` is used to login to the target machines, and the password is
   not required as you have setup the target machines for password-less access
@@ -226,6 +225,67 @@
         $ onos-log $OC1
 
 
+Install Trellis apps
+====================
+
+Starting from ONOS 2.5, Trellis apps have been extracted from ONOS repo.
+Therefore, those apps needs to be installed and activated additionally.
+
+trellis-control
+---------------
+
+``segmentrouting`` forwards the traffic in the fabric. **Mandatory**.
+
+For details, check the README at `trellis-control repo
+<https://github.com/opennetworkinglab/trellis-control>`_.
+
+
+trellis-t3
+----------
+
+``t3`` (Trellis Troubleshooting Tool) is very useful for debugging. **Optional** but highly recommended.
+
+For details, check the README at `trellis-t3 repo
+<https://github.com/opennetworkinglab/trellis-t3>`_.
+
+
+Install switch-sepcific apps
+============================
+
+There are a few switch-specific apps that need to be installed and activated additionally
+based on the type of switch you are using.
+It is possible to support a hybrid deployment in which you have different switch types.
+In that case, simply enable the apps required by each type of switches.
+
+OF-DPA and OVS
+--------------
+
+.. code-block:: console
+
+    app activate org.onosproject.openflow
+
+
+BMV2 with Stratum
+-----------------
+
+.. code-block:: console
+
+    app activate org.onosproject.drivers.bmv2
+    app activate org.onosproject.pipelines.fabric
+
+Tofino with Stratum
+-------------------
+
+.. code-block:: console
+
+    app activate org.onosproject.drivers.barefoot
+
+In addition, we need to build, install and activate ``fabric-tofino`` app, which is hosted in a separate repo.
+
+For details, check the README at `fabric-tofino repo
+<https://github.com/opencord/fabric-tofino>`_.
+
+
 Install Switch OS - ONL
 =======================