Added control plane testing
Change-Id: I2fd8c4cb986261c6c35a0a8b45517528de6a6ea1
diff --git a/testing/control-plane-testing.rst b/testing/control-plane-testing.rst
index b7dc161..f1c94c7 100644
--- a/testing/control-plane-testing.rst
+++ b/testing/control-plane-testing.rst
@@ -1,5 +1,100 @@
Control Plane Testing
*********************
-.. note::
- We are updating this page. More coming soon.
\ No newline at end of file
+TestON Setup
+============
+
+Setup ONOS Cluster
+------------------
+Follow instructions in `Install ONOS Controller <../installation.html#install-controller-onos>`_ to setup and run ONOS cluster
+
+
+Setup Mininet Environment
+-------------------------
+- Clone Mininet and run the install script
+
+ .. code-block:: console
+
+ $ cd ~
+ $ git clone https://github.com/jhall11/mininet.git # Clone the repository
+ $ cd mininet
+ $ git branch -v -a # Show all the remote repositories
+ $ git checkout -b dynamic_topo origin/dynamic_topo # Checkout the dynamic_topo repository
+ $ cd util
+ $ sudo ./install.sh -3fvn # Install OpenFlow 1.3, Open Vswitch and Mininet dependencies
+
+- Follow `Trellis in a Box <https://github.com/opennetworkinglab/routing/tree/master/trellis>`_ to install Trellis dependencies, such as DHCP server and Quagga.
+
+ .. note::
+ If DHCP server does not properly run because of a permission error, please see `this <https://help.ubuntu.com/community/isc-dhcp-server#Permission_issues_with_ISC-DHCP_server>`_ to solve the problem.
+
+- Set environment variables as described in `Create a Cell File <../installation.html#create-a-cell-file>`_
+
+
+Setup Test Station
+------------------
+- Follow `TestON installation guide <https://wiki.onosproject.org/display/ONOS/Installation>`_ to install TestON
+- (Optional) Add ``OnosSystemTest/TestON/bin`` to ``$PATH`` for convenience
+
+
+Run Tests
+=========
+
+Before you run any test, it is recommended to run cleanup script to kill any TestON, ssh, and Mininet sessions that are running.
+
+.. code-block:: console
+
+ cd ~/OnosSystemTest/TestON/bin
+ ./cleanup.sh
+
+Fabric-related tests are located in ``OnosSystemTest/TestON/tests/USECASE/SegmentRouting/``.
+Each individual test can be run by executing ``cli.py`` script with test name. For example:
+
+.. code-block:: console
+
+ cd ~/OnosSystemTest/TestON/bin
+ ./cli.py run SRSanity
+
+
+Test Plan
+=========
+
+Topology
+--------
+- 0x1 single ToR
+- 0x2 dual-homed ToR
+- 2x2 leaf-spine
+- 2x4 leaf-spine with dual-homed ToR
+- 2x3 leaf-spine with dual-homed ToR on one leaf
+- 2x5 topology with spines S0 and S1, and leafs L0, L1, L2, L3, L4
+
+ - L1+L2 and L3+L4 are paired switches.
+ - All spine links with L1-4 are double links.
+ - Hosts take ips with dhcp and there exist 2 external routers.
+ - Hosts can use ipv4 or ipv6.
+ - We configure untagged/tagged single/dual home hosts in order to test every possible combination.
+ - Most of the hosts reside in different ip subnets.
+
+Tests Steps
+-----------
+- Configure and install ONOS
+- Start mininet and check flow state
+- Test connectivity
+
+ - pingall
+ - (Optional) ``ping 10.0.99.2`` to check external IPv4 connectivity
+ - (Optional) ``ping6 2000:9902`` to check external IPv6 connectivity
+- Additional actions and tests defined in each individual test case
+
+
+Test Cases
+----------
+.. csv-table::
+ :file: ../tables/testing-plan.csv
+ :widths: 1, 2, 6, 1, 1, 2, 1
+ :header-rows: 1
+
+Test Results
+============
+ONF runs all Mininet based Trellis tests nightly.
+Test results are automatically published `here <https://wiki.onosproject.org/display/ONOS/1.12-Segment+Routing>`_
\ No newline at end of file