Work in progress
Test Cases
ID | Feature | Scenario | # of ONOS instances | Topology | Pass Criteria | Implemented/ Status |
---|---|---|---|---|---|---|
BRIDGING01 | L2 Bridging | Connectivity between two untagged hosts (Ports are configured as vlan-untagged) | 1 | 0x1 | All pings succeed | Implemented |
BRIDGING02 | 1 | 0x2 | All pings succeed | Implemented | ||
BRIDGING03 | 1 | 2x2 | All pings succeed | Implemented | ||
BRIDGING04 | 1 | 2x4 | All pings succeed | Implemented | ||
BRIDGING05 | 3 | 0x1 | All pings succeed | Implemented | ||
BRIDGING06 | 3 | 0x2 | All pings succeed | Implemented | ||
BRIDGING07 | 3 | 2x2 | All pings succeed | Implemented | ||
BRIDGING08 | 3 | 2x4 | All pings succeed | Implemented | ||
BRIDGING11~18 | Connectivity between two tagged hosts (Ports are configured as vlan-tagged) | All pings succeed | Implemented | |||
BRIDGING21~28 | Connectivity between two untagged hosts (Ports are configured as vlan-native with vlan-tagged) | All pings succeed | Implemented | |||
BRIDGING31~38 | Connectivity between two untagged hosts (Ports are configured as vlan-native with vlan-tagged, and vlan-untagged) | All pings succeed | Implemented | |||
BRIDGING41~48 | Connectivity between untagged host and tagged host (Ports are configured as vlan-untagged and vlan-tagged with same vlan id, respectively) | All pings succeed | Implemented | |||
BRIDGING51~58 | Connectivity between two untagged hosts with different vlan id (Ports are configured as vlan-untagged 10 and 20, respectively) | All pings fail | Implemented | |||
BRIDGING61~68 | Connectivity between two tagged hosts with different vlan id (Ports are configured as vlan-tagged 10 and 20, respectively) | All pings fail | Implemented | |||
BRIDGING71~78 | Connectivity between untagged and tagged hosts with different vlan id (Ports are configured as vlan-untagged 10 and vlan-tagged 20, respectively) | All pings fail | Implemented | |||
ROUTING001 | Routing v4/v6 | IPv4 pingall between all the hosts in the topology. (All routing tests also check IP address assignment to hosts and specific number of flows and groups in the switches) | 3 | 2x5 | For all routing tests: All pings succeed; Host IP addresses are expected; Flow/group numbers are expected | Implemented |
ROUTING002 | IPv6 pingall between all the hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING003 | All IPv4 hosts ping each other and all IPv6 hosts ping each other. | 3 | 2x5 | Implemented | ||
ROUTING004 | IPv4 pingall between all the hosts in the topology. IPv4 ping from internal hosts to external hosts. | 3 | 2x5 | Implemented | ||
ROUTING005 | IPv6 pingall between all the hosts in the topology. IPv6 ping from internal hosts to external hosts. | 3 | 2x5 | Implemented | ||
ROUTING006 | All IPv4 hosts ping each other and all IPv6 hosts ping each other. IPv4 and IPv6 ping from internal hosts to external hosts. | 3 | 2x5 | Implemented | ||
ROUTING007 | Ping between ipv4 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING008 | Ping between ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING009 | Ping between ipv4 and ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING101 | Kill and recover links. Ping between all ipv4 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING102 | Kill and recover links. Ping between all ipv6 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING103 | Kill and recover links. Ping between all ipv4 and ipv6 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING104 | Kill and recover links Ping between all ipv4 hosts in the topology and check connectivity to external ipv4 hosts | 3 | 2x5 | Implemented | ||
ROUTING105 | Kill and recover links Ping between all ipv6 hosts in the topology and check connectivity to external ipv6 hosts | 3 | 2x5 | Implemented | ||
ROUTING106 | Kill and recover links Ping between all ipv4 and ipv6 hosts in the topology and check connectivity to external ipv4 and ipv6 hosts | 3 | 2x5 | Implemented | ||
ROUTING107 | Kill and recover links Ping between ipv4 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING108 | Kill and recover links Ping between ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING109 | Kill and recover links Ping between ipv4/ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING201 | Kill and recover spine switches. Ping between all ipv4 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING202 | Kill and recover spine switches. Ping between all ipv6 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING203 | Kill and recover spine switches. Ping between all ipv4 and ipv6 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING204 | Kill and recover spine switches Ping between all ipv4 hosts in the topology and check connectivity to external ipv4 hosts | 3 | 2x5 | Implemented | ||
ROUTING205 | Kill and recover spine switches Ping between all ipv6 hosts in the topology and check connectivity to external ipv6 hosts | 3 | 2x5 | Implemented | ||
ROUTING206 | Kill and recover spine switches Ping between all ipv4 and ipv6 hosts in the topology and check connectivity to external ipv4 and ipv6 hosts | 3 | 2x5 | Implemented | ||
ROUTING207 | Kill and recover spine switches Ping between ipv4 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING208 | Kill and recover spine switches Ping between ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING209 | Kill and recover spine switches Ping between ipv4/ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING301 | Kill and recover ONOS nodes Ping between all ipv4 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING302 | Kill and recover ONOS nodes Ping between all ipv6 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING303 | Kill and recover ONOS nodes Ping between all ipv4 and ipv6 hosts in the topology. | 3 | 2x5 | Implemented | ||
ROUTING304 | Kill and recover ONOS nodes Ping between all ipv4 hosts in the topology and check connectivity to external ipv4 hosts | 3 | 2x5 | Implemented | ||
ROUTING305 | Kill and recover ONOS nodes Ping between all ipv6 hosts in the topology and check connectivity to external ipv6 hosts | 3 | 2x5 | Implemented | ||
ROUTING306 | Kill and recover ONOS nodes Ping between all ipv4 and ipv6 hosts in the topology and check connectivity to external ipv4 and ipv6 hosts | 3 | 2x5 | Implemented | ||
ROUTING307 | Kill and recover ONOS nodes Ping between ipv4 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING308 | Kill and recover ONOS nodes Ping between ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
ROUTING309 | Kill and recover ONOS nodes Ping between ipv4/ipv6 hosts and an external host that is not configured in external router config, but reachable through the use of route-add command | 3 | 2x5 | Implemented | ||
DHCP relay test | DHCP relay v4/v6 (Work in progress) | Clients gets IP or IPv6 address from DHCP server The host store and router store should includes specific hosts and routes. Only one switch in DHCP relay test | ||||
DHCPRELAY01 | DHCP v4 tests Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp4-1 | find 4+1 hosts from host store with correct information All hosts should get IP address | Implemented | |
DHCPRELAY02 | DHCP v4 tests Client: 4 clients attached to switch directly Server: 1 server attached to switch indirectly (via gateway) | 3 | dhcp4-2 | find 4+1 hosts from host store with correct information All hosts should get IP address | Implemented (test is failing) | |
DHCPRELAY03 | DHCP v4 tests Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via normal DHCP relay) Server: 1 server attached to switch directly | 3 | dhcp4-3 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IP address | Implemented (test is failing) | |
DHCPRELAY04 | DHCP v4 tests Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via normal DHCP relay) Server: 1 server attached to switch indirectly (via gateway) | 3 | dhcp4-4 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IP address | Implemented (test is failing) | |
DHCPRELAY05 | Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via normal DHCP relay) Server: 1 server attached to switch directly for direct connected host another server attached to switch directly for indirect connected host | 3 | dhcp4-5 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IP address | Implemented (test is failing) | |
DHCPRELAY06 | DHCP v4 tests Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via special DHCP relay) Server: 1 server attached to switch directly for direct connected host another server attached to switch directly for indirect connected host "DhcpRelayAgentIp" address should be configured for indirect hosts | 3 | dhcp4-6 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IP address | Implemented (test is failing) | |
DHCPRELAY11 | DHCP v6 tests Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp6-1 | find 4+1 hosts from host store with correct information All hosts should get IPv6 address | Implemented | |
DHCPRELAY12 | DHCP v6 tests Client: 4 clients attached to switch directly Server: 1 server attached to switch indirectly (via gateway) | 3 | dhcp6-2 | find 4+1 hosts from host store with correct information All hosts should get IPv6 address | Implemented (test is failing) | |
DHCPRELAY13 | DHCP v6 tests Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via normal DHCP relay) Server: 1 server attached to switch directly | 3 | dhcp6-3 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IPv6 address | Implemented (test is failing) | |
DHCPRELAY14 | DHCP v6 tests Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via normal DHCP relay) Server: 1 server attached to switch indirectly (via gateway) | 3 | dhcp6-4 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IPv6 address | Implemented (test is failing) | |
DHCPRELAY15 | DHCP v6 tests Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via normal DHCP relay) Server: 1 server attached to switch directly for direct connected host another server attached to switch directly for indirect connected host | 3 | dhcp6-5 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IPv6 address | Implemented (test is failing) | |
DHCPRELAY16 | DHCP v6 tests Client: 2 clients attached to switch directly, 2 clients attached to switch indirectly (via special DHCP relay) Server: 1 server attached to switch directly for direct connected host another server attached to switch directly for indirect connected host "DhcpRelayAgentIp" address should be configured for indirect hosts | 3 | dhcp6-6 | find 2+1 hosts from host store with correct information find 2 routes from host store with correct information All hosts should get IPv6 address | Implemented (test is failing) | |
DHCPRELAY21 | DHCP v4 tests with tagged hosts Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp4-1 | find 4+1 hosts from host store with correct information All hosts should get IP address | Implemented | |
DHCPRELAY22 | DHCP v4 tests with tagged hosts Client: 4 clients attached to switch directly Server: 1 server attached to switch indirectly (via gateway) | 3 | dhcp4-2 | find 4+1 hosts from host store with correct information All hosts should get IP address | Implemented | |
DHCPRELAY31 | DHCP v6 tests with tagged hosts Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp6-1 | find 4+1 hosts from host store with correct information All hosts should get IPv6 address | Implemented (test is failing) | |
DHCPRELAY41 | DHCP v4 tests with dual-homed hosts Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp4-7 | find 4+1 hosts from host store with correct information All hosts should get IP address | Implemented | |
DHCPRELAY51 | DHCP v6 tests with dual-homed hosts Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp6-7 | find 4+1 hosts from host store with correct information All hosts should get IPv6 address | Implemented | |
DHCPRELAY61 | DHCP v4 tests with dual-homed tagged hosts Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp4-7 | find 4+1 hosts from host store with correct information All hosts should get IP address | Implemented | |
DHCPRELAY71 | DHCP v6 tests with dual-homed tagged hosts Client: 4 clients attached to switch directly Server: 1 server attached to switch directly | 3 | dhcp6-7 | find 4+1 hosts from host store with correct information All hosts should get IPv6 address | Implemented (test is failing) | |
MCAST1 | Multicast v4/v6 (Work in progress) | Start 2x2 topology of hardware switches | 3 | 2x2 | All switches are up and discovered by ONOS | Implemented |
MCAST01 | Sink and source on the same dual-tor leaf | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded Flows and groups are removed | Implemented | |
MCAST02 | Sink and source on different dual-tor leaves | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded Flows and groups are removed | Implemented | |
MCAST03 | Sink and source on different leaves (sink on single-tor) | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded Flows and groups are removed | Implemented | |
MCAST04 | Combines MCAST01 and MCAST02 | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded Flows and groups are removed | Implemented | |
MCAST05 | Combines MCAST02 and MCAST03 | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded Flows and groups are removed | Implemented | |
MCAST06 | Combines MCAST01 and MCAST03 | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded Flows and groups are removed | Implemented | |
MCAST07 | Combines MCAST01, MCAST02 and MCAST03 | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded Flows and groups are removed | Implemented | |
MCAST08 | Combines MCAST07 with route removal | 3 | 2x5 | Flows and groups are removed | Implemented | |
MCAST101 | Combines MCAST07 with a link failure (link ingress-spine) | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded | Implemented | |
MCAST102 | Combines MCAST07 with a link failure (link spine-egress-dt-leaf) | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded | Implemented | |
MCAST103 | Combines MCAST07 with a link failure (link spine-egress-st-leaf) | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded | Implemented | |
MCAST201 | Combines MCAST07 with spine failure | 3 | 2x5 | Flows and groups are installed Traffic is properly forwarded | Implemented | |
MCAST202 | Combines MCAST07 with ingress failure and recovery | 3 | 2x5 | Flows and groups are removed (failure) Flows and groups are installed (recovery) Traffic is properly forwarded (recovery) | Implemented | |
MCAST203 | Combines MCAST07 with egress-dt-leaf failure and recovery | 3 | 2x5 | Flows and groups are removed for the failing sink (failure) Traffic is properly forwarded on remaining sinks (failure) | Implemented | |
MCAST204 | Combines MCAST07 with egress-st-leaf failure and recovery | 3 | 2x5 | Flows and groups are removed for the failing sink (failure) Traffic is properly forwarded on remaining sinks (failure) Flows and groups are installed (recovery) Traffic is properly forwarded (recovery) | Implemented | |
MCAST205 | Combines MCAST07 with egress leaves failure and recovery | 3 | 2x5 | Flows and groups are removed for the failing sinks (failure) Traffic is properly forwarded on remaining sink (failure) Flows and groups are installed (recovery) Traffic is properly forwarded (recovery) | Implemented | |
MCAST301 | Combines MCAST07 with ONOS failure and recovery | 3 | 2x5 | Flows and groups are installed (failure) Traffic is properly forwarded (failure) Flows and groups are installed (recovery) Traffic is properly forwarded (recovery) | Implemented | |
DYNAMIC01 | Dynamic Interface Configuration (Work in progress) | P1: untagged 10 --> tagged 10 | 3 | 0x1 | Ping succeeds between:
| Implemented |
DYNAMIC02 | P1: untagged 10 --> untagged 20 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC03 | P1, P2: untagged 10 --> untagged 110 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC04 | P1: untagged 10 --> tagged 20 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC05 | P1: untagged 10 --> tagged 20, native 10 (P2: untagged 10, P3 and P4: untagged 20) (h1-h4: not configured) | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC06 | P1 and P2: untagged 10 --> tagged 120, native 110 (P3 and P4: untagged 20) (h1-h4: not configured) | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC07 | P1: tagged 10 --> untagged 10 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC08 | P1: tagged 20 --> tagged 20, native 10 (P2: untagged 10, P3 and P4: untagged 20) (h1-h4: not configured) | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC09 | P1, P2: tagged 10 --> tagged 120, native 110 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC10 | P1: tagged 10, native 20 --> untagged 20 (P2: tagged 10, native 20, P3 and P4: untagged 20) (h1-h4: not configured) | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC11 | P1: tagged 20, native 10 --> tagged 20 (P2: tagged 20, native 10, P3 and P4: untagged 20) (h1-h4: not configured) | 3 | 2x2 | Ping fails between:
| Implemented | |
DYNAMIC12 | P1, P2: tagged 20, native 10 --> tagged 20, native 110 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC13 | P1: tagged 20, native 10 --> tagged 120, native 10 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC14 | P1: untagged 10 --> tagged 20 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC15 | P1: untagged 10 --> tagged 120 (P2: untagged 10, P3 and P4: untagged 20) (h1: VLAN ID 20, h2-h4: not configured) | 3 | 2x2 | Ping fails between:
| Implemented | |
DYNAMIC16 | P1: untagged 10 --> tagged 20, native 10 | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC17 | P1: tagged 20 --> tagged 120 (P2: untagged 10, P3 and P4: tagged 20) (h1, h3, h4: VLAN ID 20, h2: not configured) | 3 | 2x2 | Ping fails between:
| Implemented | |
DYNAMIC18 | P1: tagged 20 --> tagged 20, native 10 (P2: untagged 10, P3 and P4: tagged 20) (h1, h3, h4: VLAN ID 20, h2: not configured) | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC19 | P1: tagged 20, native 10 --> untagged 20 (P2: untagged 10, P3 and P4: tagged 20) (h1, h3, h4: VLAN ID 20, h2: not configured) | 3 | 2x2 | Ping fails between:
| Implemented | |
DYNAMIC20 | P1: tagged 20, native 10 --> tagged 20 (P2: untagged 10, P3 and P4: tagged 20) (h1, h3, h4: VLAN ID 20, h2: not configured) | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC21 | P1: tagged 20, native 10 --> tagged 20, native 110 (P2: untagged 10, P3 and P4: tagged 20) (h1, h3, h4: VLAN ID 20, h2: not configured) | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC22 | P1: tagged 20, native 10 --> tagged 120, native 10 (P2: untagged 10, P3 and P4: tagged 20) (h1, h3, h4: VLAN ID 20, h2: not configured) | 3 | 2x2 | Ping fails between:
| Implemented | |
DYNAMIC23 | Consecutive configuration changes: | 3 | 2x2 | Ping succeeds between:
| Implemented | |
DYNAMIC24 | Changing a subnet | 3 | 2x2 | Ping succeeds between:
| Implemented | |
Host config | ||||||
Router advertisement v6 |
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
Common configuration
ONOS_APPS: drivers,openflow,segmentrouting,fpm,dhcprelay,netcfghostprovider,routeradvertisement,t3,hostprobingprovider
Driver: ofdpa-ovs