| Control Plane Testing |
| ********************* |
| |
| 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>`_ |