Warning | ||
---|---|---|
| ||
This page is deprecated and may be removed in a near future. |
TestOn is the testing framework used at ONLAB to run nightly test of ONOS. This page details describes the tests developed to make sure ran over the Segment Routing application under a few failure scenarios.
To install TestOn follow this link on the wiki.
A connectivity test is currently running nightly. The test consists of 3 Steps:
...
- 2x2 Leaf-Spine
- 4x4 Leaf-Spine
The following are ideas for tests to Should be implemented:
- Connectivity in a fish topology
- Controller's recovery functionality in a fish topology
- Verifying tunnels and policies
- Verifying tunnels and policies with auto generated adjacencySid
- Verifying tunnels and policies with adjacencySid with multiple ports
- Restarts the controller in a linear 3-node topology
- Restarts the controller in a ring topology
- Restarts the controller in 10 switch topology
- Link failure on Fabric topology
- Test VLAN crossconnect
- Linear 2 node topology
- In-Rack Forwarding
- Subnet Forwarding
Here we have a few comments about each test idea.
Default connectivity in a fish topology
In this test a fish topology is used. Onos configures the segment routing application and the test framework tests connectivity by making hosts ping each other.
Link failure in Leaf-spine
In this test we test ONOS recovery mechanism. We bring down a switch of the topology and verify if we can still achieve full connectivity
In-Rack forwarding
In this test, we test forwarding between elements in the same rack, this is already tested in the basic leaf-spine connectivity, and we would only add this new one to have more visibility in the details.
Vlan Crossconnect
In this test, we test port forwarding based on the vlan field.
Linear 2 nodes topology
In this test we test IP forwarding on a 2 node topology. This would be necessary having in mind that we may not have a spine all the times.
Controller dataplane's recovery in a fish topology
In this test, we test ONOS recovery mechanism by bringing down links s1-s2, s3-s4, and s5-s6.
Tunnels and policies
In this test we test the creation of tunnels and policies. A tunnel is tested by checking if its groups were properly installed. Finally connectivity is tested using the tunnels and policies.
Tunnels and policies with auto generated adjacency Sid
The current Segment Routing application doesn't implement with adjacency Sids
Controller restart in linear 3 node topology
- [2/2] Full connectivity test (SRSanity)
- [1/1] VLAN cross-connect configuration (Xconnect)
- [0/5] Multicast
- [0/5] vRouter integration
- [0/4] Dynamic configuration of Xconnect and Hosts
- [3/6] Control plane resilience
- [3/6] Data plane resilence
Below we describe these tests in detail
CASE101: Completed but not being executed
- Description: Full connectivity test
- Topology: 2x2 Leaf-Spine Fabric
- Configuration: openflow
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall twice.
- Expect: All pings succeed
CASE102: Completed and Running (SRSanity)
- Description: Full connectivity test
- Topology: 2x2 Leaf-Spine Fabric
- Configuration: openflow-base, etc.
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall twice.
- Expect: All pings succeed
CASE201 : Completed (Xconnect)
- Description: VLAN crossconnect connectivity
- Topology: Single Switch with qinq hosts
- Configuration: openflow-base, etc
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall
- Expect: All pings succeed
CASE301
- Description: Multicast connectivity
- Topology: Single Switch with multicast src and dst hosts
- Configuration: openflow-base, etc
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, send multicast traffic, expect traffic at end hosts
- Expect: All pings succeed
CASE302
- Description: Multicast connectivity on 2x2 fabric
- Topology: 2x2 Leaf-Spine with src and dst hosts
- Configuration: openflow-base, etc
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, send multicast traffic, expect traffic at end hosts
- Expect: All pings succeed
CASE401
- Description: VRouter integration
- Topology: Single Switch chained to quagga and host
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, ping 8.8.8.8
- Expect: All pings succeed
CASE402
- Description: 2x2 Fabric VRouter integration
- Topology: 2x2 Leaf-spine chained to quagga and host
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, ping 8.8.8.8,
- Expect: All pings succeed
CASE405 - Not implemented yet
- Description: Fabric-VRouter integration + quagga link failover
- Topology: Single switch connected to redundant quaggas
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, ping 8.8.8.8, shut down a random quagga link , execute pingall
- Expect: All pings succeed
CASE401
- Description: Dynamically add a host that doesn't belong to an existing subnet
- Topology: single switch
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall, add a host via REST interface, execute pingall
- Expect: All pings succeed
CASE402
- Description: Dynamically add a host that belongs to an existing subnet
- Topology: single switch
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall, add a host via REST interface, execute pingall
- Expect: All pings succeed
CASE503
- Description: Dynamically add a host that doesn't belong to an existing subnet
- Topology: 2x2 Leaf-spine
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall, add a host via REST interface, execute pingall
- Expect: All pings succeed
CASE504
- Description: Dynamically add a host that belongs to an existing subnet
- Topology: 2x2 Leaf-spine
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall, add a host via REST interface, execute pingall
- Expect: All pings succeed
CASE601 : Completed (SRCLusterSanity)
- Description: Bring up LS connected to three controllers
- Topology: 2x2 Leaf-spine
- Configuration: default
- Expect flow count
- Do: Start topology, execute pingall
- Expect:Ping successfull
CASE602: Completed (SingleInstanceRestart)
- Description: Bring up LS connected to three controllers
- Topology: 2x2 Leaf-spine
- Configuration: default
- Expect flow count
- Do: Start topology, execute pingall, bring down a controller, pingall
- Expect:Ping successfull
CASE603: Completed
- Description: Bring up LS connected to three controllers
- Topology: 2x2 Leaf-spine
- Configuration: default
- Expect flow count
- Do: Start topology, execute pingall, bring down a controller and a node, pingall
- Expect:Ping successfull
CASE604:
- Description: Bring up LS connected to three controllers
- Topology: 2x2 Leaf-spine
- Configuration: default
- Expect flow count
- Do: Start topology, execute pingall, bring down a controller, pingall
- Expect:Ping successfull
CASE605
- Description: 2x2 Fabric VRouter integration + ONOS failover
- Topology: 2x2 Leaf-spine chained to quagga and host
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, ping 8.8.8.8, shut down a random spine link , execute pingall
- Expect: All pings succeed
CASE606
- Description: Fabric-VRouter integration + clyuster restart
- Topology: 2x2 Leaf-spine chained to quagga and host
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, ping 8.8.8.8, shut down a random spine , execute pingall
- Expect: All pings succeed
CASE701: Partially completed (LinkDown)
- Description: Link failover test on 2x2 fabric
- Topology: 2x2 Leaf-Spine Fabric
- Configuration: openflow-base, etc
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall, shut down a random spine link , execute pingall
- Expect: All pings succeed
- Needs inclusion of xconnect
CASE702 : Partially completed (NodeDown)
- Description: Node failover test on 2x2 fabric
- Topology: 2x2 Leaf-Spine Fabric
- Configuration: openflow-base, etc
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, execute pingall, shutdown a random spine, execute pingall, restart spine execute pingall
- Expect: All pings succeed
- Needs inclusion of xconnect
CASE703:
- Description: Multicast on fabric + Node failover test
- Topology: 2x2 Leaf-Spine with src and dst hosts
- Configuration: openflow-base, etc
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, send multicast traffic, expect traffic at end hosts, shut down a random spine , execute pingall
- Expect: All pings succeed
CASE704
- Description: Multicast on fabric + Link failover test
- Topology: 2x2 Leaf-Spine with src and dst hosts
- Configuration: openflow-base, etc
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, send multicast traffic, expect traffic at end hosts, shut down a random spine link , execute pingall
- Expect: All pings succeed
CASE705
- Description: 2x2 Fabric VRouter integration + link failover
- Topology: 2x2 Leaf-spine chained to quagga and host
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, ping 8.8.8.8, shut down a random spine link , execute pingall
- Expect: All pings succeed
CASE706
- Description: Fabric-VRouter integration + node failover
- Topology: 2x2 Leaf-spine chained to quagga and host
- Configuration: default
- Expect: flow count: undetermined group count: undetermined
- Do: Start topology, ping 8.8.8.8, shut down a random spine , execute pingall
- Expect: All pings succeed
...