blob: 4e6a8ac9df942a89cea23a71f7c58c52af3e510c [file] [log] [blame]
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>`_