diff --git a/test/case/ietf_hardware/usb/Readme.adoc b/test/case/ietf_hardware/usb/Readme.adoc index 5bd4c61a..ae32c841 120000 --- a/test/case/ietf_hardware/usb/Readme.adoc +++ b/test/case/ietf_hardware/usb/Readme.adoc @@ -1 +1 @@ -usb.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_hardware/usb/usb.adoc b/test/case/ietf_hardware/usb/test.adoc similarity index 99% rename from test/case/ietf_hardware/usb/usb.adoc rename to test/case/ietf_hardware/usb/test.adoc index 6b5b0ebc..991aaa50 100644 --- a/test/case/ietf_hardware/usb/usb.adoc +++ b/test/case/ietf_hardware/usb/test.adoc @@ -1,7 +1,9 @@ +=== USB configuration + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_hardware/usb] -=== USB configuration ==== Description + This test checks if the configuration is consistent with hardware state, and verifies whether the USB ports are correctly _locked_ (restricted from use) and _unlocked_ (available for use) when they should. It also verifies @@ -13,9 +15,11 @@ If this pass you can be certain that the configuration of the USB port is handled correctly. ==== Topology + image::topology.svg[USB configuration topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Unlock all USB ports . Verify that all USB ports are unlocked diff --git a/test/case/ietf_hardware/usb_two_ports/Readme.adoc b/test/case/ietf_hardware/usb_two_ports/Readme.adoc index ee076aa2..ae32c841 120000 --- a/test/case/ietf_hardware/usb_two_ports/Readme.adoc +++ b/test/case/ietf_hardware/usb_two_ports/Readme.adoc @@ -1 +1 @@ -usb_two_ports.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_hardware/usb_two_ports/usb_two_ports.adoc b/test/case/ietf_hardware/usb_two_ports/test.adoc similarity index 99% rename from test/case/ietf_hardware/usb_two_ports/usb_two_ports.adoc rename to test/case/ietf_hardware/usb_two_ports/test.adoc index 49fbf02e..b9579f37 100644 --- a/test/case/ietf_hardware/usb_two_ports/usb_two_ports.adoc +++ b/test/case/ietf_hardware/usb_two_ports/test.adoc @@ -1,14 +1,18 @@ +=== USB configuration with two USB ports + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_hardware/usb_two_ports] -=== USB configuration with two USB ports ==== Description + Test that the USB locked/unlocked configuration is consistent when having two USB ports. ==== Topology + image::topology.svg[USB configuration with two USB ports topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Lock the first USB port and unlock the second USB port . Verify that the correct port is locked and the correct one is unlocked diff --git a/test/case/ietf_interfaces/bridge_basic/Readme.adoc b/test/case/ietf_interfaces/bridge_basic/Readme.adoc index f038bcf7..ae32c841 120000 --- a/test/case/ietf_interfaces/bridge_basic/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_basic/Readme.adoc @@ -1 +1 @@ -bridge_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/bridge_basic/bridge_basic.adoc b/test/case/ietf_interfaces/bridge_basic/test.adoc similarity index 99% rename from test/case/ietf_interfaces/bridge_basic/bridge_basic.adoc rename to test/case/ietf_interfaces/bridge_basic/test.adoc index ebb51830..89c130a2 100644 --- a/test/case/ietf_interfaces/bridge_basic/bridge_basic.adoc +++ b/test/case/ietf_interfaces/bridge_basic/test.adoc @@ -1,7 +1,9 @@ +=== Bridge basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_basic] -=== Bridge basic ==== Description + Test basic connectivity to a bridge .... @@ -13,9 +15,11 @@ Test basic connectivity to a bridge .... ==== Topology + image::topology.svg[Bridge basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure single bridge with a single physical port, bridge @ IP 10.0.0.2 . Verify ping 10.0.0.2 is possible from host:data diff --git a/test/case/ietf_interfaces/bridge_fwd_dual_dut/Readme.adoc b/test/case/ietf_interfaces/bridge_fwd_dual_dut/Readme.adoc index 52ecd5f1..ae32c841 120000 --- a/test/case/ietf_interfaces/bridge_fwd_dual_dut/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_fwd_dual_dut/Readme.adoc @@ -1 +1 @@ -bridge_fwd_dual_dut.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/bridge_fwd_dual_dut/bridge_fwd_dual_dut.adoc b/test/case/ietf_interfaces/bridge_fwd_dual_dut/test.adoc similarity index 99% rename from test/case/ietf_interfaces/bridge_fwd_dual_dut/bridge_fwd_dual_dut.adoc rename to test/case/ietf_interfaces/bridge_fwd_dual_dut/test.adoc index 5bf4755f..a597fd0a 100644 --- a/test/case/ietf_interfaces/bridge_fwd_dual_dut/bridge_fwd_dual_dut.adoc +++ b/test/case/ietf_interfaces/bridge_fwd_dual_dut/test.adoc @@ -1,7 +1,9 @@ +=== Bridge forwarding dual DUTs + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_fwd_dual_dut] -=== Bridge forwarding dual DUTs ==== Description + Ping through two bridges on two different DUTs. .... @@ -25,9 +27,11 @@ Ping through two bridges on two different DUTs. .... ==== Topology + image::topology.svg[Bridge forwarding dual DUTs topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure a bridge with triple physical port . Verify ping 10.0.0.3 and 10.0.0.4 from host:data11 diff --git a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc index 96cc4f22..ae32c841 120000 --- a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc @@ -1 +1 @@ -bridge_fwd_sgl_dut.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/bridge_fwd_sgl_dut.adoc b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/test.adoc similarity index 99% rename from test/case/ietf_interfaces/bridge_fwd_sgl_dut/bridge_fwd_sgl_dut.adoc rename to test/case/ietf_interfaces/bridge_fwd_sgl_dut/test.adoc index 10a64222..a7092895 100644 --- a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/bridge_fwd_sgl_dut.adoc +++ b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/test.adoc @@ -1,7 +1,9 @@ +=== Bridge forwarding single DUTs + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_fwd_sgl_dut] -=== Bridge forwarding single DUTs ==== Description + Tests forwarding through a DUT with two bridged interfaces on one DUT. .... @@ -25,9 +27,11 @@ Tests forwarding through a DUT with two bridged interfaces on one DUT. .... ==== Topology + image::topology.svg[Bridge forwarding single DUTs topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure a bridge with dual physical port . Verify ping from host:data1 to 10.0.0.2 diff --git a/test/case/ietf_interfaces/bridge_stp_basic/Readme.adoc b/test/case/ietf_interfaces/bridge_stp_basic/Readme.adoc index 0bae050f..ae32c841 120000 --- a/test/case/ietf_interfaces/bridge_stp_basic/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_stp_basic/Readme.adoc @@ -1 +1 @@ -bridge_stp_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/bridge_stp_basic/bridge_stp_basic.adoc b/test/case/ietf_interfaces/bridge_stp_basic/test.adoc similarity index 99% rename from test/case/ietf_interfaces/bridge_stp_basic/bridge_stp_basic.adoc rename to test/case/ietf_interfaces/bridge_stp_basic/test.adoc index a217fc8a..8ef9ecaa 100644 --- a/test/case/ietf_interfaces/bridge_stp_basic/bridge_stp_basic.adoc +++ b/test/case/ietf_interfaces/bridge_stp_basic/test.adoc @@ -1,7 +1,9 @@ +=== Bridge STP Basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_stp_basic] -=== Bridge STP Basic ==== Description + First, verify that a fully connected mesh of 4 DUTs is pruned to a spanning tree. @@ -14,9 +16,11 @@ that a spanning tree rooted at A is formed, with B, C, and D all directly connected to A. ==== Topology + image::topology.svg[Bridge STP Basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure a bridge with spanning tree eneabled on dut a, b, c, and d . Add an IP address to each host interface in the 10.0.0.0/24 subnet diff --git a/test/case/ietf_interfaces/bridge_veth/Readme.adoc b/test/case/ietf_interfaces/bridge_veth/Readme.adoc index f22ad7df..ae32c841 120000 --- a/test/case/ietf_interfaces/bridge_veth/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_veth/Readme.adoc @@ -1 +1 @@ -bridge_veth.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/bridge_veth/bridge_veth.adoc b/test/case/ietf_interfaces/bridge_veth/test.adoc similarity index 99% rename from test/case/ietf_interfaces/bridge_veth/bridge_veth.adoc rename to test/case/ietf_interfaces/bridge_veth/test.adoc index cb2c82d7..4625012b 100644 --- a/test/case/ietf_interfaces/bridge_veth/bridge_veth.adoc +++ b/test/case/ietf_interfaces/bridge_veth/test.adoc @@ -1,7 +1,9 @@ +=== Bridge with a physical port and a veth + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_veth] -=== Bridge with a physical port and a veth ==== Description + This tests the possibility to add software added interfaces, in this case VETH and bridge it with a physical interface @@ -15,9 +17,11 @@ PING --> br0 .... ==== Topology + image::topology.svg[Bridge with a physical port and a veth topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure bridged eth port and veth pair with IP 10.0.0.2 . Verify ping from host:data to 10.0.0.2 diff --git a/test/case/ietf_interfaces/bridge_vlan/Readme.adoc b/test/case/ietf_interfaces/bridge_vlan/Readme.adoc index 8e63bba6..ae32c841 120000 --- a/test/case/ietf_interfaces/bridge_vlan/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_vlan/Readme.adoc @@ -1 +1 @@ -bridge_vlan.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/bridge_vlan/bridge_vlan.adoc b/test/case/ietf_interfaces/bridge_vlan/test.adoc similarity index 99% rename from test/case/ietf_interfaces/bridge_vlan/bridge_vlan.adoc rename to test/case/ietf_interfaces/bridge_vlan/test.adoc index 71fee0ae..a6deb7cb 100644 --- a/test/case/ietf_interfaces/bridge_vlan/bridge_vlan.adoc +++ b/test/case/ietf_interfaces/bridge_vlan/test.adoc @@ -1,7 +1,9 @@ +=== Bridge VLAN + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_vlan] -=== Bridge VLAN ==== Description + Verify VLAN filtering bridge, with a VLAN trunk to a neighboring device, which in turn untags one VLAN outisde a non-VLAN filtering bridge. @@ -9,9 +11,11 @@ which in turn untags one VLAN outisde a non-VLAN filtering bridge. image::bridge-vlan.svg[align=center, scaledwidth=75%] ==== Topology + image::topology.svg[Bridge VLAN topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure DUTs . Verify ping from host:data to 10.0.0.2 and 10.0.0.3 diff --git a/test/case/ietf_interfaces/bridge_vlan_separation/Readme.adoc b/test/case/ietf_interfaces/bridge_vlan_separation/Readme.adoc index 239034ef..ae32c841 120000 --- a/test/case/ietf_interfaces/bridge_vlan_separation/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_vlan_separation/Readme.adoc @@ -1 +1 @@ -bridge_vlan_separation.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/bridge_vlan_separation/bridge_vlan_separation.adoc b/test/case/ietf_interfaces/bridge_vlan_separation/test.adoc similarity index 99% rename from test/case/ietf_interfaces/bridge_vlan_separation/bridge_vlan_separation.adoc rename to test/case/ietf_interfaces/bridge_vlan_separation/test.adoc index d3120cc3..12d6aab7 100644 --- a/test/case/ietf_interfaces/bridge_vlan_separation/bridge_vlan_separation.adoc +++ b/test/case/ietf_interfaces/bridge_vlan_separation/test.adoc @@ -1,7 +1,9 @@ +=== Bridge VLAN separation + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_vlan_separation] -=== Bridge VLAN separation ==== Description + Test that two VLANs are correctly separated in the bridge .... @@ -24,9 +26,11 @@ Test that two VLANs are correctly separated in the bridge .... ==== Topology + image::topology.svg[Bridge VLAN separation topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure DUTs . Verify ping 10.0.0.3 from host:data10 diff --git a/test/case/ietf_interfaces/dual_bridge/Readme.adoc b/test/case/ietf_interfaces/dual_bridge/Readme.adoc index 8add916e..ae32c841 120000 --- a/test/case/ietf_interfaces/dual_bridge/Readme.adoc +++ b/test/case/ietf_interfaces/dual_bridge/Readme.adoc @@ -1 +1 @@ -dual_bridge.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/dual_bridge/dual_bridge.adoc b/test/case/ietf_interfaces/dual_bridge/test.adoc similarity index 99% rename from test/case/ietf_interfaces/dual_bridge/dual_bridge.adoc rename to test/case/ietf_interfaces/dual_bridge/test.adoc index e66019af..3e9f03e1 100644 --- a/test/case/ietf_interfaces/dual_bridge/dual_bridge.adoc +++ b/test/case/ietf_interfaces/dual_bridge/test.adoc @@ -1,7 +1,9 @@ +=== Dual bridges on one device + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/dual_bridge] -=== Dual bridges on one device ==== Description + Verify that it is possible to ping through a bridge to another bridge via a VETH pair connected to both. @@ -12,9 +14,11 @@ PC - target:data veth0a - veth0b .... ==== Topology + image::topology.svg[Dual bridges on one device topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure two bridges linked and a veth pair . Verify ping from host:data to 10.0.0.2 diff --git a/test/case/ietf_interfaces/iface_enable_disable/Readme.adoc b/test/case/ietf_interfaces/iface_enable_disable/Readme.adoc index a892dfe7..ae32c841 120000 --- a/test/case/ietf_interfaces/iface_enable_disable/Readme.adoc +++ b/test/case/ietf_interfaces/iface_enable_disable/Readme.adoc @@ -1 +1 @@ -iface_enable_disable.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/iface_enable_disable/iface_enable_disable.adoc b/test/case/ietf_interfaces/iface_enable_disable/test.adoc similarity index 99% rename from test/case/ietf_interfaces/iface_enable_disable/iface_enable_disable.adoc rename to test/case/ietf_interfaces/iface_enable_disable/test.adoc index b88560bd..da3fff3e 100644 --- a/test/case/ietf_interfaces/iface_enable_disable/iface_enable_disable.adoc +++ b/test/case/ietf_interfaces/iface_enable_disable/test.adoc @@ -1,16 +1,20 @@ +=== Interface status + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/iface_enable_disable] -=== Interface status ==== Description + Verify interface status properly propagate changes when an interface is disabled and then re-enabled. Both admin-status and oper-status are verified. ==== Topology + image::topology.svg[Interface status topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure bridge and associated interfaces in target1 . Disable interface in target2 diff --git a/test/case/ietf_interfaces/iface_phys_address/Readme.adoc b/test/case/ietf_interfaces/iface_phys_address/Readme.adoc index 0a5e97b6..ae32c841 120000 --- a/test/case/ietf_interfaces/iface_phys_address/Readme.adoc +++ b/test/case/ietf_interfaces/iface_phys_address/Readme.adoc @@ -1 +1 @@ -iface_phys_address.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/iface_phys_address/iface_phys_address.adoc b/test/case/ietf_interfaces/iface_phys_address/test.adoc similarity index 99% rename from test/case/ietf_interfaces/iface_phys_address/iface_phys_address.adoc rename to test/case/ietf_interfaces/iface_phys_address/test.adoc index 1e982623..31101b38 100644 --- a/test/case/ietf_interfaces/iface_phys_address/iface_phys_address.adoc +++ b/test/case/ietf_interfaces/iface_phys_address/test.adoc @@ -1,15 +1,19 @@ +=== Custom MAC address on interface + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/iface_phys_address] -=== Custom MAC address on interface ==== Description + Verify support for setting and removing a custom MAC address on interfaces. Both static MAC address and derived from the chassis MAC with, or without, an offset applied. ==== Topology + image::topology.svg[Custom MAC address on interface topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set target:data static MAC address '02:01:00:c0:ff:ee' . Verify target:data has MAC address '02:01:00:c0:ff:ee' diff --git a/test/case/ietf_interfaces/ifalias/Readme.adoc b/test/case/ietf_interfaces/ifalias/Readme.adoc index de7cff80..ae32c841 120000 --- a/test/case/ietf_interfaces/ifalias/Readme.adoc +++ b/test/case/ietf_interfaces/ifalias/Readme.adoc @@ -1 +1 @@ -ifalias.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/ifalias/ifalias.adoc b/test/case/ietf_interfaces/ifalias/test.adoc similarity index 99% rename from test/case/ietf_interfaces/ifalias/ifalias.adoc rename to test/case/ietf_interfaces/ifalias/test.adoc index e00264df..0f8062a7 100644 --- a/test/case/ietf_interfaces/ifalias/ifalias.adoc +++ b/test/case/ietf_interfaces/ifalias/test.adoc @@ -1,14 +1,18 @@ +=== Interface Description (ifAlias) + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/ifalias] -=== Interface Description (ifAlias) ==== Description + Verify interface description (ifAlias) can be set on an interface and then be read back from the operational datastore. ==== Topology + image::topology.svg[Interface Description (ifAlias) topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set up interface target:data with description . Verify description can be read back from operational diff --git a/test/case/ietf_interfaces/igmp_basic/Readme.adoc b/test/case/ietf_interfaces/igmp_basic/Readme.adoc index d1e426bf..ae32c841 120000 --- a/test/case/ietf_interfaces/igmp_basic/Readme.adoc +++ b/test/case/ietf_interfaces/igmp_basic/Readme.adoc @@ -1 +1 @@ -igmp_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/igmp_basic/igmp_basic.adoc b/test/case/ietf_interfaces/igmp_basic/test.adoc similarity index 99% rename from test/case/ietf_interfaces/igmp_basic/igmp_basic.adoc rename to test/case/ietf_interfaces/igmp_basic/test.adoc index 56e41145..976c110e 100644 --- a/test/case/ietf_interfaces/igmp_basic/igmp_basic.adoc +++ b/test/case/ietf_interfaces/igmp_basic/test.adoc @@ -1,7 +1,9 @@ +=== IGMP basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/igmp_basic] -=== IGMP basic ==== Description + Verify that all multicast get flooded when no IGMP join exists in the system and the flooding stops as soon a join arrives @@ -19,9 +21,11 @@ the flooding stops as soon a join arrives HOST ==== Topology + image::topology.svg[IGMP basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure device . Start multicast sender on host:data0, group 224.1.1.1 diff --git a/test/case/ietf_interfaces/igmp_vlan/Readme.adoc b/test/case/ietf_interfaces/igmp_vlan/Readme.adoc index af62b041..ae32c841 120000 --- a/test/case/ietf_interfaces/igmp_vlan/Readme.adoc +++ b/test/case/ietf_interfaces/igmp_vlan/Readme.adoc @@ -1 +1 @@ -igmp_vlan.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/igmp_vlan/igmp_vlan.adoc b/test/case/ietf_interfaces/igmp_vlan/test.adoc similarity index 99% rename from test/case/ietf_interfaces/igmp_vlan/igmp_vlan.adoc rename to test/case/ietf_interfaces/igmp_vlan/test.adoc index 6cfa8056..56fcc737 100644 --- a/test/case/ietf_interfaces/igmp_vlan/igmp_vlan.adoc +++ b/test/case/ietf_interfaces/igmp_vlan/test.adoc @@ -1,7 +1,9 @@ +=== IGMP VLAN + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/igmp_vlan] -=== IGMP VLAN ==== Description + Test tagged IGMP control traffic and that VLAN separation is respected for multicast .... @@ -22,9 +24,11 @@ Test tagged IGMP control traffic and that VLAN separation is respected for multi .... ==== Topology + image::topology.svg[IGMP VLAN topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure device . Start multicast sender on host:data11, group 224.2.2.2 diff --git a/test/case/ietf_interfaces/ipv4_address/Readme.adoc b/test/case/ietf_interfaces/ipv4_address/Readme.adoc index e252c2ab..ae32c841 120000 --- a/test/case/ietf_interfaces/ipv4_address/Readme.adoc +++ b/test/case/ietf_interfaces/ipv4_address/Readme.adoc @@ -1 +1 @@ -ipv4_address.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/ipv4_address/ipv4_address.adoc b/test/case/ietf_interfaces/ipv4_address/test.adoc similarity index 99% rename from test/case/ietf_interfaces/ipv4_address/ipv4_address.adoc rename to test/case/ietf_interfaces/ipv4_address/test.adoc index a28556c6..5d9ed8b3 100644 --- a/test/case/ietf_interfaces/ipv4_address/ipv4_address.adoc +++ b/test/case/ietf_interfaces/ipv4_address/test.adoc @@ -1,13 +1,17 @@ +=== Interface with IPv4 + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/ipv4_address] -=== Interface with IPv4 ==== Description + Test that it is possible to set and remove the IPv4 address on an interface ==== Topology + image::topology.svg[Interface with IPv4 topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure IPv4 address 10.10.10.20/24 on target:mgmt . Verify '10.10.10.20/24' exists on target:mgmt diff --git a/test/case/ietf_interfaces/ipv4_autoconf/Readme.adoc b/test/case/ietf_interfaces/ipv4_autoconf/Readme.adoc index ee7471c8..ae32c841 120000 --- a/test/case/ietf_interfaces/ipv4_autoconf/Readme.adoc +++ b/test/case/ietf_interfaces/ipv4_autoconf/Readme.adoc @@ -1 +1 @@ -ipv4_autoconf.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/ipv4_autoconf/ipv4_autoconf.adoc b/test/case/ietf_interfaces/ipv4_autoconf/test.adoc similarity index 99% rename from test/case/ietf_interfaces/ipv4_autoconf/ipv4_autoconf.adoc rename to test/case/ietf_interfaces/ipv4_autoconf/test.adoc index 3ee10250..32943a63 100644 --- a/test/case/ietf_interfaces/ipv4_autoconf/ipv4_autoconf.adoc +++ b/test/case/ietf_interfaces/ipv4_autoconf/test.adoc @@ -1,15 +1,19 @@ +=== IPv4 link-local + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/ipv4_autoconf] -=== IPv4 link-local ==== Description + Verifies that link-local (IPv4LL/ZeroConf) address assignment work as expected. Checks random address, the request-address setting, and address removal on autoconf disable. ==== Topology + image::topology.svg[IPv4 link-local topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure interface target:data with IPv4 ZeroConf IP . Verify link-local address exist on target:data diff --git a/test/case/ietf_interfaces/ipv6_address/Readme.adoc b/test/case/ietf_interfaces/ipv6_address/Readme.adoc index aad67e46..ae32c841 120000 --- a/test/case/ietf_interfaces/ipv6_address/Readme.adoc +++ b/test/case/ietf_interfaces/ipv6_address/Readme.adoc @@ -1 +1 @@ -ipv6_address.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/ipv6_address/ipv6_address.adoc b/test/case/ietf_interfaces/ipv6_address/test.adoc similarity index 99% rename from test/case/ietf_interfaces/ipv6_address/ipv6_address.adoc rename to test/case/ietf_interfaces/ipv6_address/test.adoc index d2b7e021..de19c0ef 100644 --- a/test/case/ietf_interfaces/ipv6_address/ipv6_address.adoc +++ b/test/case/ietf_interfaces/ipv6_address/test.adoc @@ -1,14 +1,18 @@ +=== Interface IPv6 autoconf for bridges + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/ipv6_address] -=== Interface IPv6 autoconf for bridges ==== Description + Verify IPv6 autoconf on a bridge is properly set up for global prefix. See issue #473 for details. ==== Topology + image::topology.svg[Interface IPv6 autoconf for bridges topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Setting up bridge with IPv6 SLAAC for global prefix on target:data . Verify using sysctl that 'net.ipv6.conf.br0.autoconf' is 1 on target diff --git a/test/case/ietf_interfaces/lag_basic/Readme.adoc b/test/case/ietf_interfaces/lag_basic/Readme.adoc index ae7efc4b..ae32c841 120000 --- a/test/case/ietf_interfaces/lag_basic/Readme.adoc +++ b/test/case/ietf_interfaces/lag_basic/Readme.adoc @@ -1 +1 @@ -lag_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/lag_basic/lag_basic.adoc b/test/case/ietf_interfaces/lag_basic/test.adoc similarity index 99% rename from test/case/ietf_interfaces/lag_basic/lag_basic.adoc rename to test/case/ietf_interfaces/lag_basic/test.adoc index 903b6ce7..9985f2a3 100644 --- a/test/case/ietf_interfaces/lag_basic/lag_basic.adoc +++ b/test/case/ietf_interfaces/lag_basic/test.adoc @@ -1,7 +1,9 @@ +=== Ling Aggregation Basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/lag_basic] -=== Ling Aggregation Basic ==== Description + Verify communication over a link aggregate in static and LACP operating modes during basic failure scenarios. @@ -12,9 +14,11 @@ The host verifies connectivity with dut2 via dut1 over the aggregate for each test step using the `mon` interface. ==== Topology + image::topology.svg[Ling Aggregation Basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Set up LACP link aggregate, lag0, on dut1 and dut2 . Verify failure modes for lacp mode diff --git a/test/case/ietf_interfaces/lag_failure/Readme.adoc b/test/case/ietf_interfaces/lag_failure/Readme.adoc index ede0d845..ae32c841 120000 --- a/test/case/ietf_interfaces/lag_failure/Readme.adoc +++ b/test/case/ietf_interfaces/lag_failure/Readme.adoc @@ -1 +1 @@ -lag_failure.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/lag_failure/lag_failure.adoc b/test/case/ietf_interfaces/lag_failure/test.adoc similarity index 99% rename from test/case/ietf_interfaces/lag_failure/lag_failure.adoc rename to test/case/ietf_interfaces/lag_failure/test.adoc index 8e42e5e9..d50a375a 100644 --- a/test/case/ietf_interfaces/lag_failure/lag_failure.adoc +++ b/test/case/ietf_interfaces/lag_failure/test.adoc @@ -1,7 +1,9 @@ +=== LACP Aggregate w/ Degraded Link + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/lag_failure] -=== LACP Aggregate w/ Degraded Link ==== Description + Verify communication over an LACP link aggregate when individual member links stop forwarding traffic, without carrier loss. @@ -12,9 +14,11 @@ The host verifies connectivity with dut2 via dut1 over the aggregate for each failure mode step using the `mon` interface. ==== Topology + image::topology.svg[LACP Aggregate w/ Degraded Link topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Set up link aggregate, lag0, between dut1 and dut2 . Initial connectivity check ... diff --git a/test/case/ietf_interfaces/routing_basic/Readme.adoc b/test/case/ietf_interfaces/routing_basic/Readme.adoc index f0fde0f7..ae32c841 120000 --- a/test/case/ietf_interfaces/routing_basic/Readme.adoc +++ b/test/case/ietf_interfaces/routing_basic/Readme.adoc @@ -1 +1 @@ -routing_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/routing_basic/routing_basic.adoc b/test/case/ietf_interfaces/routing_basic/test.adoc similarity index 99% rename from test/case/ietf_interfaces/routing_basic/routing_basic.adoc rename to test/case/ietf_interfaces/routing_basic/test.adoc index aea73537..facaab42 100644 --- a/test/case/ietf_interfaces/routing_basic/routing_basic.adoc +++ b/test/case/ietf_interfaces/routing_basic/test.adoc @@ -1,14 +1,18 @@ +=== Routing basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/routing_basic] -=== Routing basic ==== Description + Verify routing between interfaces is possible. That enable/disable routing in configuration has the expected result. ==== Topology + image::topology.svg[Routing basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Setup host . Enable forwarding on target:data1 and target:data2 diff --git a/test/case/ietf_interfaces/speed_duplex_copper/Readme.adoc b/test/case/ietf_interfaces/speed_duplex_copper/Readme.adoc index 22d678f6..ae32c841 120000 --- a/test/case/ietf_interfaces/speed_duplex_copper/Readme.adoc +++ b/test/case/ietf_interfaces/speed_duplex_copper/Readme.adoc @@ -1 +1 @@ -speed_duplex_copper.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/speed_duplex_copper/speed_duplex_copper.adoc b/test/case/ietf_interfaces/speed_duplex_copper/test.adoc similarity index 99% rename from test/case/ietf_interfaces/speed_duplex_copper/speed_duplex_copper.adoc rename to test/case/ietf_interfaces/speed_duplex_copper/test.adoc index 6b7c48f5..c4fbbd9b 100644 --- a/test/case/ietf_interfaces/speed_duplex_copper/speed_duplex_copper.adoc +++ b/test/case/ietf_interfaces/speed_duplex_copper/test.adoc @@ -1,7 +1,9 @@ +=== Interface Speed Duplex (Copper) + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/speed_duplex_copper] -=== Interface Speed Duplex (Copper) ==== Description + Verify that the interface operates at the expected speed/duplex in two scenarios: 1. Fixed configuration – host and target are both manually set to a specific speed/duplex @@ -9,9 +11,11 @@ Verify that the interface operates at the expected speed/duplex in two scenarios to the highest common speed/duplex. ==== Topology + image::topology.svg[Interface Speed Duplex (Copper) topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Enable target interface . Verify fixed 10/full diff --git a/test/case/ietf_interfaces/static_multicast_filters/Readme.adoc b/test/case/ietf_interfaces/static_multicast_filters/Readme.adoc index d7139d5f..ae32c841 120000 --- a/test/case/ietf_interfaces/static_multicast_filters/Readme.adoc +++ b/test/case/ietf_interfaces/static_multicast_filters/Readme.adoc @@ -1 +1 @@ -static_multicast_filters.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/static_multicast_filters/static_multicast_filters.adoc b/test/case/ietf_interfaces/static_multicast_filters/test.adoc similarity index 99% rename from test/case/ietf_interfaces/static_multicast_filters/static_multicast_filters.adoc rename to test/case/ietf_interfaces/static_multicast_filters/test.adoc index e916fb9e..9ffa6c28 100644 --- a/test/case/ietf_interfaces/static_multicast_filters/static_multicast_filters.adoc +++ b/test/case/ietf_interfaces/static_multicast_filters/test.adoc @@ -1,7 +1,9 @@ +=== Static multicast filters + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/static_multicast_filters] -=== Static multicast filters ==== Description + Verify that static multicast filters work (remember that snooping needs to enabled when using static multicast filters) @@ -21,9 +23,11 @@ enabled when using static multicast filters) .... ==== Topology + image::topology.svg[Static multicast filters topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure device without static filter . Start multicast sender on host:data1, group 224.1.1.1 diff --git a/test/case/ietf_interfaces/tunnel_basic/Readme.adoc b/test/case/ietf_interfaces/tunnel_basic/Readme.adoc index 5f0d3e9b..08628abf 100644 --- a/test/case/ietf_interfaces/tunnel_basic/Readme.adoc +++ b/test/case/ietf_interfaces/tunnel_basic/Readme.adoc @@ -1,10 +1,10 @@ -include::gre_basic.adoc[] +include::gre.adoc[] <<< -include::gretap_basic.adoc[] +include::gretap.adoc[] <<< -include::vxlan_basic.adoc[] +include::vxlan.adoc[] diff --git a/test/case/ietf_interfaces/tunnel_basic/gre_basic.adoc b/test/case/ietf_interfaces/tunnel_basic/gre_basic.adoc deleted file mode 100644 index 5daba855..00000000 --- a/test/case/ietf_interfaces/tunnel_basic/gre_basic.adoc +++ /dev/null @@ -1,17 +0,0 @@ -ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/tunnel_basic] - -=== GRE point-to-point -==== Description -Test setting up gre tunnels using IPv4 and IPv6, -and ends with a connectivity test. - -==== Topology -image::topology.svg[GRE point-to-point topology, align=center, scaledwidth=75%] - -==== Sequence -. Set up topology and attach to target DUTs -. Configure DUTs -. Verify connectivity host:data to 10.0.0.2 -. Verify connectivity host:data to 2001:db8::c0a8:0a02 - - diff --git a/test/case/ietf_interfaces/tunnel_basic/gretap_basic.adoc b/test/case/ietf_interfaces/tunnel_basic/gretap_basic.adoc deleted file mode 100644 index 3cfcf9ee..00000000 --- a/test/case/ietf_interfaces/tunnel_basic/gretap_basic.adoc +++ /dev/null @@ -1,17 +0,0 @@ -ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/tunnel_basic] - -=== GRETAP point-to-point -==== Description -Test setting up gretap tunnels using IPv4 and IPv6, -and ends with a connectivity test. - -==== Topology -image::topology.svg[GRETAP point-to-point topology, align=center, scaledwidth=75%] - -==== Sequence -. Set up topology and attach to target DUTs -. Configure DUTs -. Verify connectivity host:data to 10.0.0.2 -. Verify connectivity host:data to 2001:db8::c0a8:0a02 - - diff --git a/test/case/ietf_interfaces/tunnel_basic/vxlan_basic.adoc b/test/case/ietf_interfaces/tunnel_basic/vxlan_basic.adoc deleted file mode 100644 index e4d2f720..00000000 --- a/test/case/ietf_interfaces/tunnel_basic/vxlan_basic.adoc +++ /dev/null @@ -1,17 +0,0 @@ -ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/tunnel_basic] - -=== VXLAN point-to-point -==== Description -Test setting up vxlan tunnels using IPv4 and IPv6, -and ends with a connectivity test. - -==== Topology -image::topology.svg[VXLAN point-to-point topology, align=center, scaledwidth=75%] - -==== Sequence -. Set up topology and attach to target DUTs -. Configure DUTs -. Verify connectivity host:data to 10.0.0.2 -. Verify connectivity host:data to 2001:db8::c0a8:0a02 - - diff --git a/test/case/ietf_interfaces/tunnel_bridged/Readme.adoc b/test/case/ietf_interfaces/tunnel_bridged/Readme.adoc index 894975a1..f021948e 100644 --- a/test/case/ietf_interfaces/tunnel_bridged/Readme.adoc +++ b/test/case/ietf_interfaces/tunnel_bridged/Readme.adoc @@ -1,6 +1,6 @@ -include::gretap_bridged.adoc[] +include::gretap.adoc[] <<< -include::vxlan_bridged.adoc[] +include::vxlan.adoc[] diff --git a/test/case/ietf_interfaces/tunnel_bridged/gretap_bridged.adoc b/test/case/ietf_interfaces/tunnel_bridged/gretap_bridged.adoc deleted file mode 100644 index 6764f18b..00000000 --- a/test/case/ietf_interfaces/tunnel_bridged/gretap_bridged.adoc +++ /dev/null @@ -1,15 +0,0 @@ -ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/tunnel_bridged] - -=== GRETAP bridged with physical interface -==== Description -Test that gretap works as it should and that it possible to bridge it. - -==== Topology -image::topology.svg[GRETAP bridged with physical interface topology, align=center, scaledwidth=75%] - -==== Sequence -. Set up topology and attach to target DUTs -. Configure DUTs -. Test connectivity host:data to right:gretap0 at 192.168.10.2 - - diff --git a/test/case/ietf_interfaces/tunnel_bridged/vxlan_bridged.adoc b/test/case/ietf_interfaces/tunnel_bridged/vxlan_bridged.adoc deleted file mode 100644 index 78bb2a6b..00000000 --- a/test/case/ietf_interfaces/tunnel_bridged/vxlan_bridged.adoc +++ /dev/null @@ -1,15 +0,0 @@ -ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/tunnel_bridged] - -=== VXLAN bridged with physical interface -==== Description -Test that vxlan works as it should and that it possible to bridge it. - -==== Topology -image::topology.svg[VXLAN bridged with physical interface topology, align=center, scaledwidth=75%] - -==== Sequence -. Set up topology and attach to target DUTs -. Configure DUTs -. Test connectivity host:data to right:vxlan0 at 192.168.10.2 - - diff --git a/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc b/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc index fe419baa..ae32c841 120000 --- a/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc +++ b/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc @@ -1 +1 @@ -verify_all_interface_types.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/verify_all_interface_types/verify_all_interface_types.adoc b/test/case/ietf_interfaces/verify_all_interface_types/test.adoc similarity index 99% rename from test/case/ietf_interfaces/verify_all_interface_types/verify_all_interface_types.adoc rename to test/case/ietf_interfaces/verify_all_interface_types/test.adoc index 69437577..5392a3bb 100644 --- a/test/case/ietf_interfaces/verify_all_interface_types/verify_all_interface_types.adoc +++ b/test/case/ietf_interfaces/verify_all_interface_types/test.adoc @@ -1,7 +1,9 @@ +=== Verify that all interface types can be created + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/verify_all_interface_types] -=== Verify that all interface types can be created ==== Description + This test verifies that all interface types can be created and also checks the configuration when applied sequentially. This method takes slightly longer than sending the entire configuration at once. @@ -17,9 +19,11 @@ slightly longer than sending the entire configuration at once. .... ==== Topology + image::topology.svg[Verify that all interface types can be created topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure an empty bridge br-0 . Configure bridge br-X and associated interfaces diff --git a/test/case/ietf_interfaces/veth_delete/Readme.adoc b/test/case/ietf_interfaces/veth_delete/Readme.adoc index 7892befc..ae32c841 120000 --- a/test/case/ietf_interfaces/veth_delete/Readme.adoc +++ b/test/case/ietf_interfaces/veth_delete/Readme.adoc @@ -1 +1 @@ -veth_delete.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/veth_delete/veth_delete.adoc b/test/case/ietf_interfaces/veth_delete/test.adoc similarity index 99% rename from test/case/ietf_interfaces/veth_delete/veth_delete.adoc rename to test/case/ietf_interfaces/veth_delete/test.adoc index 9cd0999e..0053ae6a 100644 --- a/test/case/ietf_interfaces/veth_delete/veth_delete.adoc +++ b/test/case/ietf_interfaces/veth_delete/test.adoc @@ -1,7 +1,9 @@ +=== Verify that VETH pairs can be deleted + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/veth_delete] -=== Verify that VETH pairs can be deleted ==== Description + ``` veth0b veth0a data1 data2 `---------' @@ -11,9 +13,11 @@ Each test step to create, add address, or delete an interace is distinct from any other step. This to trigger a new configuration "generation". ==== Topology + image::topology.svg[Verify that VETH pairs can be deleted topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Create VETH pair . Verify interfaces 'veth0a' and 'veth0b' exist diff --git a/test/case/ietf_interfaces/vlan_iface_termination/Readme.adoc b/test/case/ietf_interfaces/vlan_iface_termination/Readme.adoc index b986458d..ae32c841 120000 --- a/test/case/ietf_interfaces/vlan_iface_termination/Readme.adoc +++ b/test/case/ietf_interfaces/vlan_iface_termination/Readme.adoc @@ -1 +1 @@ -vlan_iface_termination.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/vlan_iface_termination/vlan_iface_termination.adoc b/test/case/ietf_interfaces/vlan_iface_termination/test.adoc similarity index 99% rename from test/case/ietf_interfaces/vlan_iface_termination/vlan_iface_termination.adoc rename to test/case/ietf_interfaces/vlan_iface_termination/test.adoc index 9cd71692..ed1a8939 100644 --- a/test/case/ietf_interfaces/vlan_iface_termination/vlan_iface_termination.adoc +++ b/test/case/ietf_interfaces/vlan_iface_termination/test.adoc @@ -1,7 +1,9 @@ +=== VLAN Interface Termination + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/vlan_iface_termination] -=== VLAN Interface Termination ==== Description + Verify that VLANs stacked on top of an interfaces that are also attached to a VLAN filtering bridge are always locally terminated. @@ -28,9 +30,11 @@ both `data1` and `data2`, _bridging_ of packets from one to the other must _not_ be allowed. ==== Topology + image::topology.svg[VLAN Interface Termination topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target . Configure bridge and VLAN interfaces on target . Configure IP addresses and VLAN interfaces on host diff --git a/test/case/ietf_interfaces/vlan_ping/Readme.adoc b/test/case/ietf_interfaces/vlan_ping/Readme.adoc index bdc22d63..ae32c841 120000 --- a/test/case/ietf_interfaces/vlan_ping/Readme.adoc +++ b/test/case/ietf_interfaces/vlan_ping/Readme.adoc @@ -1 +1 @@ -vlan_ping.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/vlan_ping/vlan_ping.adoc b/test/case/ietf_interfaces/vlan_ping/test.adoc similarity index 99% rename from test/case/ietf_interfaces/vlan_ping/vlan_ping.adoc rename to test/case/ietf_interfaces/vlan_ping/test.adoc index ade470d4..fb2f10e6 100644 --- a/test/case/ietf_interfaces/vlan_ping/vlan_ping.adoc +++ b/test/case/ietf_interfaces/vlan_ping/test.adoc @@ -1,13 +1,17 @@ +=== VLAN ping connectivity + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/vlan_ping] -=== VLAN ping connectivity ==== Description + Very basic test if the VLAN interface configuration works. ==== Topology + image::topology.svg[VLAN ping connectivity topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set up VLAN interface on host:data with IP 10.0.0.1 . Configure VLAN 10 interface on target:data with IP 10.0.0.2 diff --git a/test/case/ietf_interfaces/vlan_qos/Readme.adoc b/test/case/ietf_interfaces/vlan_qos/Readme.adoc index a298e055..ae32c841 120000 --- a/test/case/ietf_interfaces/vlan_qos/Readme.adoc +++ b/test/case/ietf_interfaces/vlan_qos/Readme.adoc @@ -1 +1 @@ -vlan_qos.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_interfaces/vlan_qos/vlan_qos.adoc b/test/case/ietf_interfaces/vlan_qos/test.adoc similarity index 99% rename from test/case/ietf_interfaces/vlan_qos/vlan_qos.adoc rename to test/case/ietf_interfaces/vlan_qos/test.adoc index 924544d3..e8993e4d 100644 --- a/test/case/ietf_interfaces/vlan_qos/vlan_qos.adoc +++ b/test/case/ietf_interfaces/vlan_qos/test.adoc @@ -1,7 +1,9 @@ +=== VLAN Interface Ingress/Egress QoS + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/vlan_qos] -=== VLAN Interface Ingress/Egress QoS ==== Description + Inject different packets from the host and verify that the VLAN priority is handled correctly for traffic ingressing and egressing a VLAN interface. @@ -17,9 +19,11 @@ correctly to PCP on egress ('from internal priority' or static '0..7'). { "id": 6, "pcp": 6, "ingress": "from-pcp", "egress": "from-priority", "expect": 6 }, ==== Topology + image::topology.svg[VLAN Interface Ingress/Egress QoS topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Apply initial config without priority mapping . Setup host VLANs diff --git a/test/case/ietf_interfaces/vlan_qos/topology.dot b/test/case/ietf_interfaces/vlan_qos/topology.dot index 4efe0fee..07e11a52 100644 --- a/test/case/ietf_interfaces/vlan_qos/topology.dot +++ b/test/case/ietf_interfaces/vlan_qos/topology.dot @@ -22,4 +22,4 @@ graph "1x3" { host:mgmt -- target:mgmt [requires="mgmt", color=lightgrey] host:data0 -- target:data0 [color=black, fontcolor=black, fontsize=12, taillabel="(vlan10) 192.168.10.2/24", headlabel="192.168.10.1/24 (vlan10)"] host:data1 -- target:data1 [color=black, fontcolor=black, fontsize=12, taillabel="(vlan11) 192.168.11.2/24", headlabel="192.168.11.1/24 (vlan11)"] -} \ No newline at end of file +} diff --git a/test/case/ietf_routing/ospf_basic/Readme.adoc b/test/case/ietf_routing/ospf_basic/Readme.adoc index 2c6367ac..ae32c841 120000 --- a/test/case/ietf_routing/ospf_basic/Readme.adoc +++ b/test/case/ietf_routing/ospf_basic/Readme.adoc @@ -1 +1 @@ -ospf_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/ospf_basic/ospf_basic.adoc b/test/case/ietf_routing/ospf_basic/test.adoc similarity index 99% rename from test/case/ietf_routing/ospf_basic/ospf_basic.adoc rename to test/case/ietf_routing/ospf_basic/test.adoc index 772bfb2c..a9842a28 100644 --- a/test/case/ietf_routing/ospf_basic/ospf_basic.adoc +++ b/test/case/ietf_routing/ospf_basic/test.adoc @@ -1,14 +1,18 @@ +=== OSPF Basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/ospf_basic] -=== OSPF Basic ==== Description + Very basic OSPF test just test that OSPF sends HELLO packets between the DUTs and that they exchange routes, ending with a simple connectivity check. ==== Topology + image::topology.svg[OSPF Basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure targets . Wait for OSPF routes diff --git a/test/case/ietf_routing/ospf_bfd/Readme.adoc b/test/case/ietf_routing/ospf_bfd/Readme.adoc index a6c7dd03..ae32c841 120000 --- a/test/case/ietf_routing/ospf_bfd/Readme.adoc +++ b/test/case/ietf_routing/ospf_bfd/Readme.adoc @@ -1 +1 @@ -ospf_bfd.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/ospf_bfd/ospf_bfd.adoc b/test/case/ietf_routing/ospf_bfd/test.adoc similarity index 99% rename from test/case/ietf_routing/ospf_bfd/ospf_bfd.adoc rename to test/case/ietf_routing/ospf_bfd/test.adoc index e4e832b9..d55bae3b 100644 --- a/test/case/ietf_routing/ospf_bfd/ospf_bfd.adoc +++ b/test/case/ietf_routing/ospf_bfd/test.adoc @@ -1,7 +1,9 @@ +=== OSPF BFD + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/ospf_bfd] -=== OSPF BFD ==== Description + Verify that a router running OSPF, with Bidirectional Forwarding Detection (BFD) enabled, will detect link faults even when the physical layer is still operational. @@ -11,9 +13,11 @@ perspective, is made up of multiple physical links containing media converters without link fault forwarding. ==== Topology + image::topology.svg[OSPF BFD topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Setup TPMR between R1fast and R2fast . Configure R1 and R2 diff --git a/test/case/ietf_routing/ospf_default_route_advertise/Readme.adoc b/test/case/ietf_routing/ospf_default_route_advertise/Readme.adoc index 66314470..ae32c841 120000 --- a/test/case/ietf_routing/ospf_default_route_advertise/Readme.adoc +++ b/test/case/ietf_routing/ospf_default_route_advertise/Readme.adoc @@ -1 +1 @@ -ospf_default_route_advertise.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/ospf_default_route_advertise/ospf_default_route_advertise.adoc b/test/case/ietf_routing/ospf_default_route_advertise/test.adoc similarity index 99% rename from test/case/ietf_routing/ospf_default_route_advertise/ospf_default_route_advertise.adoc rename to test/case/ietf_routing/ospf_default_route_advertise/test.adoc index 64aef70f..4e92ae63 100644 --- a/test/case/ietf_routing/ospf_default_route_advertise/ospf_default_route_advertise.adoc +++ b/test/case/ietf_routing/ospf_default_route_advertise/test.adoc @@ -1,7 +1,9 @@ +=== OSPF Default route advertise + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/ospf_default_route_advertise] -=== OSPF Default route advertise ==== Description + Verify _default-route-advertising_ in OSPF, sometimes called 'redistribute origin'. Verify both always (regardless if a local default route exist or not) and only redistribute when local default route exist. @@ -30,9 +32,11 @@ unless _always_ is set for _default-route-advertising_. .... ==== Topology + image::topology.svg[OSPF Default route advertise topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure targets . Verify R2 has a default route and 192.168.100.1/32 from OSPF diff --git a/test/case/ietf_routing/ospf_multiarea/Readme.adoc b/test/case/ietf_routing/ospf_multiarea/Readme.adoc index 417502b8..ae32c841 120000 --- a/test/case/ietf_routing/ospf_multiarea/Readme.adoc +++ b/test/case/ietf_routing/ospf_multiarea/Readme.adoc @@ -1 +1 @@ -ospf_multiarea.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/ospf_multiarea/ospf_multiarea.adoc b/test/case/ietf_routing/ospf_multiarea/test.adoc similarity index 99% rename from test/case/ietf_routing/ospf_multiarea/ospf_multiarea.adoc rename to test/case/ietf_routing/ospf_multiarea/test.adoc index b908f2eb..e1ed2945 100644 --- a/test/case/ietf_routing/ospf_multiarea/ospf_multiarea.adoc +++ b/test/case/ietf_routing/ospf_multiarea/test.adoc @@ -1,7 +1,9 @@ +=== OSPF with multiple areas + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/ospf_multiarea] -=== OSPF with multiple areas ==== Description + This test evaluates various OSPF features across three areas (one NSSA area, with no summary) to ensure that route distribution is deterministic (based on cost). It also tests link failures using BFD, though BFD is not yet implemented in test framework (Infamy). @@ -25,9 +27,11 @@ explicit router-id. .... ==== Topology + image::topology.svg[OSPF with multiple areas topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure targets . Wait for all neighbors to peer diff --git a/test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc b/test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc index ef814f1d..ae32c841 120000 --- a/test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc +++ b/test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc @@ -1 +1 @@ -ospf_unnumbered_interface.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/ospf_unnumbered_interface/ospf_unnumbered_interface.adoc b/test/case/ietf_routing/ospf_unnumbered_interface/test.adoc similarity index 99% rename from test/case/ietf_routing/ospf_unnumbered_interface/ospf_unnumbered_interface.adoc rename to test/case/ietf_routing/ospf_unnumbered_interface/test.adoc index 129074fa..26b0f7cd 100644 --- a/test/case/ietf_routing/ospf_unnumbered_interface/ospf_unnumbered_interface.adoc +++ b/test/case/ietf_routing/ospf_unnumbered_interface/test.adoc @@ -1,7 +1,9 @@ +=== OSPF unnumbered interfaces + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/ospf_unnumbered_interface] -=== OSPF unnumbered interfaces ==== Description + This test that a configuration expecting unnumbered interfaces get that also in OSPF. Also verify that passive interface in the configuration gets activated in OSPF. @@ -10,9 +12,11 @@ When this test pass, you can expect unnumbered interfaces, interface type configuration and passive to function ==== Topology + image::topology.svg[OSPF unnumbered interfaces topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure targets . Wait for OSPF routes diff --git a/test/case/ietf_routing/route_pref_255/Readme.adoc b/test/case/ietf_routing/route_pref_255/Readme.adoc index d9c6d3c2..ae32c841 120000 --- a/test/case/ietf_routing/route_pref_255/Readme.adoc +++ b/test/case/ietf_routing/route_pref_255/Readme.adoc @@ -1 +1 @@ -route_pref_255.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/route_pref_255/route_pref_255.adoc b/test/case/ietf_routing/route_pref_255/test.adoc similarity index 99% rename from test/case/ietf_routing/route_pref_255/route_pref_255.adoc rename to test/case/ietf_routing/route_pref_255/test.adoc index fde49c9e..076e3678 100644 --- a/test/case/ietf_routing/route_pref_255/route_pref_255.adoc +++ b/test/case/ietf_routing/route_pref_255/test.adoc @@ -1,16 +1,20 @@ +=== Route preference: Static Route Activation and Maximum Distance + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/route_pref_255] -=== Route preference: Static Route Activation and Maximum Distance ==== Description + This test configures a device with a static route to a destination with a moderate routing preference (254), verifying that it becomes active. Then, the routing preference is increased to the maximum value (255), which should prevent the route from becoming active. ==== Topology + image::topology.svg[Route preference: Static Route Activation and Maximum Distance topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure targets with active static route . Verify that static route with preference 254 is active diff --git a/test/case/ietf_routing/route_pref_dhcp/Readme.adoc b/test/case/ietf_routing/route_pref_dhcp/Readme.adoc index 80ec01bb..ae32c841 120000 --- a/test/case/ietf_routing/route_pref_dhcp/Readme.adoc +++ b/test/case/ietf_routing/route_pref_dhcp/Readme.adoc @@ -1 +1 @@ -route_pref_dhcp.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/route_pref_dhcp/route_pref_dhcp.adoc b/test/case/ietf_routing/route_pref_dhcp/test.adoc similarity index 99% rename from test/case/ietf_routing/route_pref_dhcp/route_pref_dhcp.adoc rename to test/case/ietf_routing/route_pref_dhcp/test.adoc index bdbb9ad4..20b3add8 100644 --- a/test/case/ietf_routing/route_pref_dhcp/route_pref_dhcp.adoc +++ b/test/case/ietf_routing/route_pref_dhcp/test.adoc @@ -1,7 +1,9 @@ +=== Route preference: DHCP vs Static + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/route_pref_dhcp] -=== Route preference: DHCP vs Static ==== Description + This test configures a device with both a DHCP-acquired route on a dedicated interface and a static route to the same destination on another interface. @@ -11,9 +13,11 @@ route takes precedence by adjusting the routing preference value to the one lower than DHCP. ==== Topology + image::topology.svg[Route preference: DHCP vs Static topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure targets. Assign higher priority to the dhcp route . Wait for DHCP and static routes diff --git a/test/case/ietf_routing/route_pref_ospf/Readme.adoc b/test/case/ietf_routing/route_pref_ospf/Readme.adoc index 65bc4ceb..ae32c841 120000 --- a/test/case/ietf_routing/route_pref_ospf/Readme.adoc +++ b/test/case/ietf_routing/route_pref_ospf/Readme.adoc @@ -1 +1 @@ -route_pref_ospf.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/route_pref_ospf/route_pref_ospf.adoc b/test/case/ietf_routing/route_pref_ospf/test.adoc similarity index 99% rename from test/case/ietf_routing/route_pref_ospf/route_pref_ospf.adoc rename to test/case/ietf_routing/route_pref_ospf/test.adoc index 53ca3cb4..78cb7ccf 100644 --- a/test/case/ietf_routing/route_pref_ospf/route_pref_ospf.adoc +++ b/test/case/ietf_routing/route_pref_ospf/test.adoc @@ -1,7 +1,9 @@ +=== Route preference: OSPF vs Static + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/route_pref_ospf] -=== Route preference: OSPF vs Static ==== Description + This test configures a device with both an OSPF-acquired route on a dedicated interface and a static route to the same destination on another interface. The static route has a higher preference value than @@ -11,9 +13,11 @@ Initially, the device should prefer the OSPF route; if the OSPF route becomes unavailable, the static route should take over. ==== Topology + image::topology.svg[Route preference: OSPF vs Static topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Set up TPMR between R1ospf and R2ospf . Configure targets diff --git a/test/case/ietf_routing/static_routing/Readme.adoc b/test/case/ietf_routing/static_routing/Readme.adoc index 0e8f8830..ae32c841 120000 --- a/test/case/ietf_routing/static_routing/Readme.adoc +++ b/test/case/ietf_routing/static_routing/Readme.adoc @@ -1 +1 @@ -static_routing.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_routing/static_routing/static_routing.adoc b/test/case/ietf_routing/static_routing/test.adoc similarity index 99% rename from test/case/ietf_routing/static_routing/static_routing.adoc rename to test/case/ietf_routing/static_routing/test.adoc index 9dc0b01a..c3f83258 100644 --- a/test/case/ietf_routing/static_routing/static_routing.adoc +++ b/test/case/ietf_routing/static_routing/test.adoc @@ -1,14 +1,18 @@ +=== Static routing + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/static_routing] -=== Static routing ==== Description + Verify that it is possible to add static routes, both IPv4 and IPv6, and that data forwarding works as expected via an intermediate device. ==== Topology + image::topology.svg[Static routing topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure targets . Wait for routes diff --git a/test/case/ietf_syslog/basic/Readme.adoc b/test/case/ietf_syslog/basic/Readme.adoc index 885dcc59..ae32c841 120000 --- a/test/case/ietf_syslog/basic/Readme.adoc +++ b/test/case/ietf_syslog/basic/Readme.adoc @@ -1 +1 @@ -basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_syslog/basic/basic.adoc b/test/case/ietf_syslog/basic/test.adoc similarity index 99% rename from test/case/ietf_syslog/basic/basic.adoc rename to test/case/ietf_syslog/basic/test.adoc index 0d864a38..c02d26e8 100644 --- a/test/case/ietf_syslog/basic/basic.adoc +++ b/test/case/ietf_syslog/basic/test.adoc @@ -1,13 +1,17 @@ +=== Syslog Basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_syslog/basic] -=== Syslog Basic ==== Description + Add syslog actions to log to local files, then verify new log files have been created. ==== Topology + image::topology.svg[Syslog Basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure syslog on DUT to log to files '/log/bar.log' (absolute path) and 'foo' (non-absolute). . Verify log files /var/log/foo and /var/log/bar.log have been created diff --git a/test/case/ietf_syslog/remote/Readme.adoc b/test/case/ietf_syslog/remote/Readme.adoc index 4c41fe25..ae32c841 120000 --- a/test/case/ietf_syslog/remote/Readme.adoc +++ b/test/case/ietf_syslog/remote/Readme.adoc @@ -1 +1 @@ -remote.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_syslog/remote/remote.adoc b/test/case/ietf_syslog/remote/test.adoc similarity index 99% rename from test/case/ietf_syslog/remote/remote.adoc rename to test/case/ietf_syslog/remote/test.adoc index c8e3f712..c7b7069b 100644 --- a/test/case/ietf_syslog/remote/remote.adoc +++ b/test/case/ietf_syslog/remote/test.adoc @@ -1,13 +1,17 @@ +=== Remote syslog + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_syslog/remote] -=== Remote syslog ==== Description + Verify logging to remote, acting as a remote, and RFC5424 log format. ==== Topology + image::topology.svg[Remote syslog topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to client and server DUTs . Configure client DUT as syslog client with server DUT as remote, and configure server DUT as syslog server . Send security:notice log message from client diff --git a/test/case/ietf_syslog/remote/topology.dot b/test/case/ietf_syslog/remote/topology.dot index 3ba42e6a..f1be10c2 100644 --- a/test/case/ietf_syslog/remote/topology.dot +++ b/test/case/ietf_syslog/remote/topology.dot @@ -1,7 +1,7 @@ graph "2x2" { layout="neato"; overlap="false"; - esep="+60"; + esep="+80"; node [shape=record, fontname="DejaVu Sans Mono, Book"]; edge [color="cornflowerblue", penwidth="2", fontname="DejaVu Serif, Book"]; diff --git a/test/case/ietf_syslog/remote/topology.svg b/test/case/ietf_syslog/remote/topology.svg index b07f7f68..3405b44e 100644 --- a/test/case/ietf_syslog/remote/topology.svg +++ b/test/case/ietf_syslog/remote/topology.svg @@ -3,57 +3,57 @@ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> - - + + 2x2 - + host - -host - -mgmt1 - -mgmt2 + +host + +mgmt1 + +mgmt2 client - -mgmt - -link - -client + +mgmt + +link + +client host:mgmt1--client:mgmt - + server - -link - -mgmt - -server + +link + +mgmt + +server host:mgmt2--server:mgmt - + client:link--server:link - -10.0.0.1/24 -10.0.0.2/24 + +10.0.0.1/24 +10.0.0.2/24 diff --git a/test/case/ietf_system/add_delete_user/Readme.adoc b/test/case/ietf_system/add_delete_user/Readme.adoc index 385fa57d..ae32c841 120000 --- a/test/case/ietf_system/add_delete_user/Readme.adoc +++ b/test/case/ietf_system/add_delete_user/Readme.adoc @@ -1 +1 @@ -add_delete_user.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_system/add_delete_user/add_delete_user.adoc b/test/case/ietf_system/add_delete_user/test.adoc similarity index 99% rename from test/case/ietf_system/add_delete_user/add_delete_user.adoc rename to test/case/ietf_system/add_delete_user/test.adoc index c3bd19dc..0d63e98f 100644 --- a/test/case/ietf_system/add_delete_user/add_delete_user.adoc +++ b/test/case/ietf_system/add_delete_user/test.adoc @@ -1,14 +1,18 @@ +=== Add/delete user + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/add_delete_user] -=== Add/delete user ==== Description + Verify that it is possible to add/delete a user. The user password is hashed with yescrypt. ==== Topology + image::topology.svg[Add/delete user topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Add new user 'newuser01' with password 'newuser01password' . Verify user 'newuser01' exist in operational diff --git a/test/case/ietf_system/hostname/Readme.adoc b/test/case/ietf_system/hostname/Readme.adoc index 8f64235d..ae32c841 120000 --- a/test/case/ietf_system/hostname/Readme.adoc +++ b/test/case/ietf_system/hostname/Readme.adoc @@ -1 +1 @@ -hostname.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_system/hostname/hostname.adoc b/test/case/ietf_system/hostname/test.adoc similarity index 63% rename from test/case/ietf_system/hostname/hostname.adoc rename to test/case/ietf_system/hostname/test.adoc index a1300550..f0f28699 100644 --- a/test/case/ietf_system/hostname/hostname.adoc +++ b/test/case/ietf_system/hostname/test.adoc @@ -1,19 +1,20 @@ +=== Set hostname + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/hostname] -=== Set hostname ==== Description -Verify that it is possible to change hostname both normal -and using format %h-%m. -The %h-%m format expands to -, -where MAC is the last three bytes of the base MAC address. - -e.g. ix-01-01-01. +Verify that it is possible to set hostname using both regular text and +format specificers, like '%h-%m'. These format specifiers expand to +'-', where MAC is the last three bytes of the +base MAC address. E.g., ix-01-01-01. ==== Topology + image::topology.svg[Set hostname topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set hostname to 'h0stn4m3' . Verify new hostname 'h0stn4m3' diff --git a/test/case/ietf_system/ntp_client/Readme.adoc b/test/case/ietf_system/ntp_client/Readme.adoc index 0ef39de7..ae32c841 120000 --- a/test/case/ietf_system/ntp_client/Readme.adoc +++ b/test/case/ietf_system/ntp_client/Readme.adoc @@ -1 +1 @@ -ntp_client.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_system/ntp_client/ntp_client.adoc b/test/case/ietf_system/ntp_client/test.adoc similarity index 99% rename from test/case/ietf_system/ntp_client/ntp_client.adoc rename to test/case/ietf_system/ntp_client/test.adoc index 70597971..1bb4c3ec 100644 --- a/test/case/ietf_system/ntp_client/ntp_client.adoc +++ b/test/case/ietf_system/ntp_client/test.adoc @@ -1,13 +1,17 @@ +=== Basic NTP client test + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/ntp_client] -=== Basic NTP client test ==== Description + Verify NTP client with multiple servers, ensure one get selected. ==== Topology + image::topology.svg[Basic NTP client test topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure NTP client on 'target' . Verify one source is in 'selected' state on 'target' diff --git a/test/case/ietf_system/timezone/Readme.adoc b/test/case/ietf_system/timezone/Readme.adoc index a27be4c4..ae32c841 120000 --- a/test/case/ietf_system/timezone/Readme.adoc +++ b/test/case/ietf_system/timezone/Readme.adoc @@ -1 +1 @@ -timezone.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_system/timezone/timezone.adoc b/test/case/ietf_system/timezone/test.adoc similarity index 99% rename from test/case/ietf_system/timezone/timezone.adoc rename to test/case/ietf_system/timezone/test.adoc index da3d797c..ecc5c692 100644 --- a/test/case/ietf_system/timezone/timezone.adoc +++ b/test/case/ietf_system/timezone/test.adoc @@ -1,13 +1,17 @@ +=== Set timezone using timezone name + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/timezone] -=== Set timezone using timezone name ==== Description + Verify that it is possible to set timezone using timezone names. ==== Topology + image::topology.svg[Set timezone using timezone name topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set timezone to Australia/Perth . Verify timezone is Australia/Perth diff --git a/test/case/ietf_system/timezone_utc_offset/Readme.adoc b/test/case/ietf_system/timezone_utc_offset/Readme.adoc index 23d00aaf..ae32c841 120000 --- a/test/case/ietf_system/timezone_utc_offset/Readme.adoc +++ b/test/case/ietf_system/timezone_utc_offset/Readme.adoc @@ -1 +1 @@ -timezone_utc_offset.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_system/timezone_utc_offset/timezone_utc_offset.adoc b/test/case/ietf_system/timezone_utc_offset/test.adoc similarity index 99% rename from test/case/ietf_system/timezone_utc_offset/timezone_utc_offset.adoc rename to test/case/ietf_system/timezone_utc_offset/test.adoc index 66bbbc1a..f2048815 100644 --- a/test/case/ietf_system/timezone_utc_offset/timezone_utc_offset.adoc +++ b/test/case/ietf_system/timezone_utc_offset/test.adoc @@ -1,13 +1,17 @@ +=== Set timezone with UTC offset + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/timezone_utc_offset] -=== Set timezone with UTC offset ==== Description + Verify that it is possible to set timezone using UTC offset ==== Topology + image::topology.svg[Set timezone with UTC offset topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set timezone UTC offset to +12 . Verify current timezone is UTC+12:00 diff --git a/test/case/ietf_system/upgrade/Readme.adoc b/test/case/ietf_system/upgrade/Readme.adoc index d15b94f0..ae32c841 120000 --- a/test/case/ietf_system/upgrade/Readme.adoc +++ b/test/case/ietf_system/upgrade/Readme.adoc @@ -1 +1 @@ -upgrade.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_system/upgrade/upgrade.adoc b/test/case/ietf_system/upgrade/test.adoc similarity index 70% rename from test/case/ietf_system/upgrade/upgrade.adoc rename to test/case/ietf_system/upgrade/test.adoc index 7d973370..81ab81db 100644 --- a/test/case/ietf_system/upgrade/upgrade.adoc +++ b/test/case/ietf_system/upgrade/test.adoc @@ -1,13 +1,17 @@ +=== System upgrade + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/upgrade] -=== Upgrade ==== Description -Verify it is possible to upgrade. + +Verify system upgrade functionality. ==== Topology -image::topology.svg[Upgrade topology, align=center, scaledwidth=75%] + +image::topology.svg[System upgrade topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Start installation of selected package . Wait for upgrade to finish diff --git a/test/case/ietf_system/user_admin/Readme.adoc b/test/case/ietf_system/user_admin/Readme.adoc index aa61466b..ae32c841 120000 --- a/test/case/ietf_system/user_admin/Readme.adoc +++ b/test/case/ietf_system/user_admin/Readme.adoc @@ -1 +1 @@ -user_admin.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/ietf_system/user_admin/user_admin.adoc b/test/case/ietf_system/user_admin/test.adoc similarity index 99% rename from test/case/ietf_system/user_admin/user_admin.adoc rename to test/case/ietf_system/user_admin/test.adoc index 5759e7a2..148f2b2e 100644 --- a/test/case/ietf_system/user_admin/user_admin.adoc +++ b/test/case/ietf_system/user_admin/test.adoc @@ -1,14 +1,18 @@ +=== Add admin user + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/user_admin] -=== Add admin user ==== Description + Test that a non-admin user is not an admin in Linux, and check that it when added as admin it is also the case in Linux. ==== Topology + image::topology.svg[Add admin user topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Add new user 'jacky' with no NACM access . Verify regular user jacky exists diff --git a/test/case/infix_containers/container_basic/Readme.adoc b/test/case/infix_containers/container_basic/Readme.adoc index 895abdfa..ae32c841 120000 --- a/test/case/infix_containers/container_basic/Readme.adoc +++ b/test/case/infix_containers/container_basic/Readme.adoc @@ -1 +1 @@ -container_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_basic/container_basic.adoc b/test/case/infix_containers/container_basic/test.adoc similarity index 99% rename from test/case/infix_containers/container_basic/container_basic.adoc rename to test/case/infix_containers/container_basic/test.adoc index 86f87099..8205adbb 100644 --- a/test/case/infix_containers/container_basic/container_basic.adoc +++ b/test/case/infix_containers/container_basic/test.adoc @@ -1,7 +1,9 @@ +=== Container basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_basic] -=== Container basic ==== Description + Verify that a simple web server container can be configured to run with host networking, on port 80. Operation is verified using a simple GET request for index.html and checking for a key phrase. @@ -9,9 +11,11 @@ simple GET request for index.html and checking for a key phrase. The RPC actions: stop + start, and restart are also verified. ==== Topology + image::topology.svg[Container basic topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set hostname to 'container-host' . Create container 'web' from bundled OCI image diff --git a/test/case/infix_containers/container_bridge/Readme.adoc b/test/case/infix_containers/container_bridge/Readme.adoc index eccc28dc..ae32c841 120000 --- a/test/case/infix_containers/container_bridge/Readme.adoc +++ b/test/case/infix_containers/container_bridge/Readme.adoc @@ -1 +1 @@ -container_bridge.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_bridge/container_bridge.adoc b/test/case/infix_containers/container_bridge/test.adoc similarity index 99% rename from test/case/infix_containers/container_bridge/container_bridge.adoc rename to test/case/infix_containers/container_bridge/test.adoc index 1ba899ce..faf9160f 100644 --- a/test/case/infix_containers/container_bridge/container_bridge.adoc +++ b/test/case/infix_containers/container_bridge/test.adoc @@ -1,7 +1,9 @@ +=== Container with bridge network + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_bridge] -=== Container with bridge network ==== Description + Verify connectivity with a simple web server container from behind a docker0 bridge. As an added twist, this test also verifies content mounts, i.e., custom index.html from running-config. @@ -10,9 +12,11 @@ This also verifies port forwarding from container internal port to a port accessed from the host. ==== Topology + image::topology.svg[Container with bridge network topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Create httpd container from bundled OCI image . Verify container has started diff --git a/test/case/infix_containers/container_enabled/Readme.adoc b/test/case/infix_containers/container_enabled/Readme.adoc index 867ff7a3..ae32c841 120000 --- a/test/case/infix_containers/container_enabled/Readme.adoc +++ b/test/case/infix_containers/container_enabled/Readme.adoc @@ -1 +1 @@ -container_enabled.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_enabled/container_enabled.adoc b/test/case/infix_containers/container_enabled/test.adoc similarity index 99% rename from test/case/infix_containers/container_enabled/container_enabled.adoc rename to test/case/infix_containers/container_enabled/test.adoc index b411077f..047b08c8 100644 --- a/test/case/infix_containers/container_enabled/container_enabled.adoc +++ b/test/case/infix_containers/container_enabled/test.adoc @@ -1,7 +1,9 @@ +=== Container enabled/disabled + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_enabled] -=== Container enabled/disabled ==== Description + Verify that a container can be enabled and disabled via configuration. Tests the 'enabled' leaf functionality by: @@ -12,9 +14,11 @@ Tests the 'enabled' leaf functionality by: Uses operational datastore to verify container running status. ==== Topology + image::topology.svg[Container enabled/disabled topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set hostname to 'container-host' . Create enabled container from bundled OCI image diff --git a/test/case/infix_containers/container_environment/Readme.adoc b/test/case/infix_containers/container_environment/Readme.adoc index acda1027..ae32c841 120000 --- a/test/case/infix_containers/container_environment/Readme.adoc +++ b/test/case/infix_containers/container_environment/Readme.adoc @@ -1 +1 @@ -container_environment.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_environment/container_environment.adoc b/test/case/infix_containers/container_environment/test.adoc similarity index 99% rename from test/case/infix_containers/container_environment/container_environment.adoc rename to test/case/infix_containers/container_environment/test.adoc index 9fabaaab..5e67da5a 100644 --- a/test/case/infix_containers/container_environment/container_environment.adoc +++ b/test/case/infix_containers/container_environment/test.adoc @@ -1,7 +1,9 @@ +=== Container environment variables + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_environment] -=== Container environment variables ==== Description + Verify that environment variables can be set in container configuration and are available inside the running container. @@ -10,9 +12,11 @@ and are available inside the running container. 3. Verify served content against environment variables ==== Topology + image::topology.svg[Container environment variables topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure data interface with static IPv4 . Set up container with environment variables diff --git a/test/case/infix_containers/container_firewall_basic/Readme.adoc b/test/case/infix_containers/container_firewall_basic/Readme.adoc index d52fc4b5..ae32c841 120000 --- a/test/case/infix_containers/container_firewall_basic/Readme.adoc +++ b/test/case/infix_containers/container_firewall_basic/Readme.adoc @@ -1 +1 @@ -container_firewall_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_firewall_basic/container_firewall_basic.adoc b/test/case/infix_containers/container_firewall_basic/test.adoc similarity index 99% rename from test/case/infix_containers/container_firewall_basic/container_firewall_basic.adoc rename to test/case/infix_containers/container_firewall_basic/test.adoc index 6cdb4c79..45d288ab 100644 --- a/test/case/infix_containers/container_firewall_basic/container_firewall_basic.adoc +++ b/test/case/infix_containers/container_firewall_basic/test.adoc @@ -1,7 +1,9 @@ +=== Basic Firewall Container + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_firewall_basic] -=== Basic Firewall Container ==== Description + Verify that an nftables container can be used for IP masquerading and port forwarding to another container running a basic web server. @@ -28,9 +30,11 @@ phrase, is only reachable from the public interface `ext0`, on 192.168.0.1:8080. ==== Topology + image::topology.svg[Basic Firewall Container topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set hostname to 'container-host' . Create VETH pair for web server container diff --git a/test/case/infix_containers/container_host_commands/Readme.adoc b/test/case/infix_containers/container_host_commands/Readme.adoc index 8195248c..ae32c841 120000 --- a/test/case/infix_containers/container_host_commands/Readme.adoc +++ b/test/case/infix_containers/container_host_commands/Readme.adoc @@ -1 +1 @@ -container_host_commands.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_host_commands/container_host_commands.adoc b/test/case/infix_containers/container_host_commands/test.adoc similarity index 99% rename from test/case/infix_containers/container_host_commands/container_host_commands.adoc rename to test/case/infix_containers/container_host_commands/test.adoc index 4caf4a8b..d6f88d8a 100644 --- a/test/case/infix_containers/container_host_commands/container_host_commands.adoc +++ b/test/case/infix_containers/container_host_commands/test.adoc @@ -1,15 +1,19 @@ +=== Host Command Execution from Container + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_host_commands] -=== Host Command Execution from Container ==== Description + This test verifies that a container running on Infix can execute commands that affect the host system. Specifically, it confirms that the container can change the hostname of the host. ==== Topology + image::topology.svg[Host Command Execution from Container topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set initial hostname . Verify initial hostname in operational diff --git a/test/case/infix_containers/container_phys/Readme.adoc b/test/case/infix_containers/container_phys/Readme.adoc index f4db88d3..ae32c841 120000 --- a/test/case/infix_containers/container_phys/Readme.adoc +++ b/test/case/infix_containers/container_phys/Readme.adoc @@ -1 +1 @@ -container_phys.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_phys/container_phys.adoc b/test/case/infix_containers/container_phys/test.adoc similarity index 99% rename from test/case/infix_containers/container_phys/container_phys.adoc rename to test/case/infix_containers/container_phys/test.adoc index 499d304a..977854bc 100644 --- a/test/case/infix_containers/container_phys/container_phys.adoc +++ b/test/case/infix_containers/container_phys/test.adoc @@ -1,14 +1,18 @@ +=== Container with physical interface + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_phys] -=== Container with physical interface ==== Description + Verify connectivity with a simple web server container that's been given a physical interface instead of an end of a VETH pair. ==== Topology + image::topology.svg[Container with physical interface topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Create httpd container from bundled OCI image . Verify container has started diff --git a/test/case/infix_containers/container_veth/Readme.adoc b/test/case/infix_containers/container_veth/Readme.adoc index 360cb99a..ae32c841 120000 --- a/test/case/infix_containers/container_veth/Readme.adoc +++ b/test/case/infix_containers/container_veth/Readme.adoc @@ -1 +1 @@ -container_veth.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_veth/container_veth.adoc b/test/case/infix_containers/container_veth/test.adoc similarity index 99% rename from test/case/infix_containers/container_veth/container_veth.adoc rename to test/case/infix_containers/container_veth/test.adoc index ecc4a5ec..fa4edc70 100644 --- a/test/case/infix_containers/container_veth/container_veth.adoc +++ b/test/case/infix_containers/container_veth/test.adoc @@ -1,7 +1,9 @@ +=== Container with VETH pair + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_veth] -=== Container with VETH pair ==== Description + Verify connectivity with a simple web server container from behind a regular bridge, a VETH pair connects the container to the bridge. @@ -16,9 +18,11 @@ regular bridge, a VETH pair connects the container to the bridge. .... ==== Topology + image::topology.svg[Container with VETH pair topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Create 'web-br0-veth' container from bundled OCI image . Verify container 'web-br0-veth' has started diff --git a/test/case/infix_containers/container_volume/Readme.adoc b/test/case/infix_containers/container_volume/Readme.adoc index 9beaf0a3..ae32c841 120000 --- a/test/case/infix_containers/container_volume/Readme.adoc +++ b/test/case/infix_containers/container_volume/Readme.adoc @@ -1 +1 @@ -container_volume.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_containers/container_volume/container_volume.adoc b/test/case/infix_containers/container_volume/test.adoc similarity index 99% rename from test/case/infix_containers/container_volume/container_volume.adoc rename to test/case/infix_containers/container_volume/test.adoc index d3841854..e56587a7 100644 --- a/test/case/infix_containers/container_volume/container_volume.adoc +++ b/test/case/infix_containers/container_volume/test.adoc @@ -1,15 +1,19 @@ +=== Container Volume Persistence + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_containers/container_volume] -=== Container Volume Persistence ==== Description + Verify that a container created from a local OCI archive, with a volume for persistent content, can be upgraded at runtime, without losing the content in the volume on restart. ==== Topology + image::topology.svg[Container Volume Persistence topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Create container with volume from bundled OCI image . Verify container has started diff --git a/test/case/infix_dhcp/client_basic/Readme.adoc b/test/case/infix_dhcp/client_basic/Readme.adoc index 85034254..ae32c841 120000 --- a/test/case/infix_dhcp/client_basic/Readme.adoc +++ b/test/case/infix_dhcp/client_basic/Readme.adoc @@ -1 +1 @@ -client_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_dhcp/client_basic/client_basic.adoc b/test/case/infix_dhcp/client_basic/test.adoc similarity index 98% rename from test/case/infix_dhcp/client_basic/client_basic.adoc rename to test/case/infix_dhcp/client_basic/test.adoc index fe9d641e..439c6ad6 100644 --- a/test/case/infix_dhcp/client_basic/client_basic.adoc +++ b/test/case/infix_dhcp/client_basic/test.adoc @@ -1,15 +1,19 @@ +=== DHCP Basic + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_dhcp/client_basic] -=== DHCP Basic ==== Description + This is a very basic DHCP test that requests an IPv4 lease from a DHCP server and checks that the lease is set on the interface. ==== Topology + image::topology.svg[DHCP Basic topology, align=center, scaledwidth=75%] ==== Sequence + . Initialize . Verify client lease for 10.0.0.42 diff --git a/test/case/infix_dhcp/client_default_gw/Readme.adoc b/test/case/infix_dhcp/client_default_gw/Readme.adoc index 227eac89..ae32c841 120000 --- a/test/case/infix_dhcp/client_default_gw/Readme.adoc +++ b/test/case/infix_dhcp/client_default_gw/Readme.adoc @@ -1 +1 @@ -client_default_gw.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_dhcp/client_default_gw/dhcp_router.adoc b/test/case/infix_dhcp/client_default_gw/dhcp_router.adoc deleted file mode 100644 index 719563f4..00000000 --- a/test/case/infix_dhcp/client_default_gw/dhcp_router.adoc +++ /dev/null @@ -1,24 +0,0 @@ -=== DHCP router -==== Description -Verify that the DHCP client receives default gateway (DHCP option 3, router) -and that route exists in operational datastore. - -==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/dhcp_router/topology.svg[DHCP router topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::dhcp_router/topology.svg[DHCP router topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP router topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence -. Initialize -. Verify client to set up default route via 192.168.0.254 - - -<<< - diff --git a/test/case/infix_dhcp/client_default_gw/client_default_gw.adoc b/test/case/infix_dhcp/client_default_gw/test.adoc similarity index 85% rename from test/case/infix_dhcp/client_default_gw/client_default_gw.adoc rename to test/case/infix_dhcp/client_default_gw/test.adoc index 10b040c6..1174f16c 100644 --- a/test/case/infix_dhcp/client_default_gw/client_default_gw.adoc +++ b/test/case/infix_dhcp/client_default_gw/test.adoc @@ -1,16 +1,20 @@ +=== DHCP Router + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_dhcp/client_default_gw] -=== DHCP router ==== Description + Verify that the DHCP client receives default gateway (DHCP option 3, router) and that route exists in operational datastore. The DHCP server runs at 192.168.0.1 but should hand out option 3 to clients with address 192.168.0.254. ==== Topology -image::topology.svg[DHCP router topology, align=center, scaledwidth=75%] + +image::topology.svg[DHCP Router topology, align=center, scaledwidth=75%] ==== Sequence + . Initialize . Set up DHCP server as 192.168.0.1, option 3: 192.168.0.254 . Verify DHCP client has default route via 192.168.0.254 diff --git a/test/case/infix_dhcp/client_routes/Readme.adoc b/test/case/infix_dhcp/client_routes/Readme.adoc index 519faece..ae32c841 120000 --- a/test/case/infix_dhcp/client_routes/Readme.adoc +++ b/test/case/infix_dhcp/client_routes/Readme.adoc @@ -1 +1 @@ -client_routes.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_dhcp/client_routes/dhcp_routes.adoc b/test/case/infix_dhcp/client_routes/dhcp_routes.adoc deleted file mode 100644 index 1ccf2b59..00000000 --- a/test/case/infix_dhcp/client_routes/dhcp_routes.adoc +++ /dev/null @@ -1,38 +0,0 @@ -=== DHCP option 121 vs option 3 -==== Description -Verify that DHCP option 121 (classless static routes) is used over the -older option 3 (default gateway) in the DHCP client, when both are sent -by the server, see RFC3442. Use the routing RIB in the operational -datastore to verify. - -Installing routes from a DHCP server should not affect already existing -(static) routes. To verify this, a static canary route (20.0.0.0/24 via -192.168.0.2) is installed before starting the DHCP client. As a twist, -this canary route has a next-hop (192.168.0.2) which is not reachable -until a DHCP lease has been acquired. - -The DHCP server is set up to hand out both a default router (option 3) -via 192.168.0.1 and a default route (option 121) via 192.168.0.254. - -==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/dhcp_routes/topology.svg[DHCP option 121 vs option 3 topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::dhcp_routes/topology.svg[DHCP option 121 vs option 3 topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP option 121 vs option 3 topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence -. Setting up canary route, 20.0.0.0/24 via 192.168.0.2 -. Enabling DHCP client, allow option 3 and 121 -. Verify 'client' has a route 10.0.0.0/24 via 192.168.0.254 (option 121) -. Verify 'client' has default route via 192.168.0.254 (not use option 3) -. Verify 'client' still has canary route to 20.0.0.0/24 via 192.168.0.2 - - -<<< - diff --git a/test/case/infix_dhcp/client_routes/client_routes.adoc b/test/case/infix_dhcp/client_routes/test.adoc similarity index 99% rename from test/case/infix_dhcp/client_routes/client_routes.adoc rename to test/case/infix_dhcp/client_routes/test.adoc index ac5682b7..a4f288e1 100644 --- a/test/case/infix_dhcp/client_routes/client_routes.adoc +++ b/test/case/infix_dhcp/client_routes/test.adoc @@ -1,7 +1,9 @@ +=== DHCP option 121 vs option 3 + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_dhcp/client_routes] -=== DHCP option 121 vs option 3 ==== Description + Verify that DHCP option 121 (classless static routes) is used over the older option 3 (default gateway) in the DHCP client, when both are sent by the server, see RFC3442. Use the routing RIB in the operational @@ -17,9 +19,11 @@ The DHCP server is set up to hand out both a default router (option 3) via 192.168.0.1 and a default route (option 121) via 192.168.0.254. ==== Topology + image::topology.svg[DHCP option 121 vs option 3 topology, align=center, scaledwidth=75%] ==== Sequence + . Setting up canary route, 20.0.0.0/24 via 192.168.0.2 . Enabling DHCP client, allow option 3 and 121 . Verify client has route 10.0.0.0/24 via 192.168.0.254 (option 121) diff --git a/test/case/infix_dhcp/server_basic/Readme.adoc b/test/case/infix_dhcp/server_basic/Readme.adoc index 56baf679..ae32c841 120000 --- a/test/case/infix_dhcp/server_basic/Readme.adoc +++ b/test/case/infix_dhcp/server_basic/Readme.adoc @@ -1 +1 @@ -server_basic.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_dhcp/server_basic/dhcp_server.adoc b/test/case/infix_dhcp/server_basic/dhcp_server.adoc deleted file mode 100644 index 135e9766..00000000 --- a/test/case/infix_dhcp/server_basic/dhcp_server.adoc +++ /dev/null @@ -1,26 +0,0 @@ -=== DHCP Server -==== Description -Verify basic DHCP server functionality. - -==== Topology -ifdef::topdoc[] -image::../../test/case/infix_dhcp/dhcp_server/topology.svg[DHCP Server topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::dhcp_server/topology.svg[DHCP Server topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP Server topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence -. Set up topology and attach to client and server DUTs -. Configure DHCP client and server DUTs -. Verify DHCP client original hostname -. Verify DHCP client lease -. Verify DHCP client new hostname - - -<<< - diff --git a/test/case/infix_dhcp/server_basic/server_basic.adoc b/test/case/infix_dhcp/server_basic/test.adoc similarity index 87% rename from test/case/infix_dhcp/server_basic/server_basic.adoc rename to test/case/infix_dhcp/server_basic/test.adoc index 48f1e80d..e4a82c7e 100644 --- a/test/case/infix_dhcp/server_basic/server_basic.adoc +++ b/test/case/infix_dhcp/server_basic/test.adoc @@ -1,7 +1,9 @@ +=== DHCP Server + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_dhcp/server_basic] -=== DHCP Server Basic ==== Description + Verify basic DHCP server functionality. The server is set up to only hand out leases from a pool of a single address. A single DHCP option, hostname, is to be handed out with the lease to the client. Ensure no @@ -9,9 +11,11 @@ other options are sent by checking, e.g., that the client has not set up a default route to the server. ==== Topology -image::topology.svg[DHCP Server Basic topology, align=center, scaledwidth=75%] + +image::topology.svg[DHCP Server topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to client and server DUTs . Configure DHCP server and client . Verify DHCP client's original hostname diff --git a/test/case/infix_dhcp/server_host/Readme.adoc b/test/case/infix_dhcp/server_host/Readme.adoc index 922c6354..ae32c841 120000 --- a/test/case/infix_dhcp/server_host/Readme.adoc +++ b/test/case/infix_dhcp/server_host/Readme.adoc @@ -1 +1 @@ -server_host.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_dhcp/server_host/server_host.adoc b/test/case/infix_dhcp/server_host/test.adoc similarity index 99% rename from test/case/infix_dhcp/server_host/server_host.adoc rename to test/case/infix_dhcp/server_host/test.adoc index e52d9e09..f2f699f7 100644 --- a/test/case/infix_dhcp/server_host/server_host.adoc +++ b/test/case/infix_dhcp/server_host/test.adoc @@ -1,15 +1,19 @@ +=== DHCP Server Static Host + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_dhcp/server_host] -=== DHCP Server Static Host ==== Description + Verify DHCP server can hand out static host leases based on client-id, both hexadecimal and a very long string, ensuring no pool address is handed out instead. ==== Topology + image::topology.svg[DHCP Server Static Host topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to client and server DUTs . Configure DHCP client and server DUTs . Verify DHCP client1 static lease diff --git a/test/case/infix_dhcp/server_subnets/Readme.adoc b/test/case/infix_dhcp/server_subnets/Readme.adoc index fdf35ad8..ae32c841 120000 --- a/test/case/infix_dhcp/server_subnets/Readme.adoc +++ b/test/case/infix_dhcp/server_subnets/Readme.adoc @@ -1 +1 @@ -server_subnets.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_dhcp/server_subnets/server_subnets.adoc b/test/case/infix_dhcp/server_subnets/test.adoc similarity index 99% rename from test/case/infix_dhcp/server_subnets/server_subnets.adoc rename to test/case/infix_dhcp/server_subnets/test.adoc index 688341f2..b545553d 100644 --- a/test/case/infix_dhcp/server_subnets/server_subnets.adoc +++ b/test/case/infix_dhcp/server_subnets/test.adoc @@ -1,7 +1,9 @@ +=== DHCP Server Multiple Subnets + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_dhcp/server_subnets] -=== DHCP Server Multiple Subnets ==== Description + Verify that the DHCP server is capble of acting on more than one subnet, handing out leases from a pool and static host lease, ensuring global, subnet, and host-specific options are honored and do not leak between @@ -22,9 +24,11 @@ The test is concluded by the server trying to reach each client using ping of the hostname. ==== Topology + image::topology.svg[DHCP Server Multiple Subnets topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to client and server DUTs . Configure DHCP server and clients . Verify DHCP client1 get correct lease diff --git a/test/case/infix_services/lldp/lldp_admin_status/Readme.adoc b/test/case/infix_services/lldp/lldp_admin_status/Readme.adoc index 68ed7348..ae32c841 120000 --- a/test/case/infix_services/lldp/lldp_admin_status/Readme.adoc +++ b/test/case/infix_services/lldp/lldp_admin_status/Readme.adoc @@ -1 +1 @@ -lldp_admin_status.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_services/lldp/lldp_admin_status/lldp_admin_status.adoc b/test/case/infix_services/lldp/lldp_admin_status/test.adoc similarity index 99% rename from test/case/infix_services/lldp/lldp_admin_status/lldp_admin_status.adoc rename to test/case/infix_services/lldp/lldp_admin_status/test.adoc index 25db2e79..68c0a76f 100644 --- a/test/case/infix_services/lldp/lldp_admin_status/lldp_admin_status.adoc +++ b/test/case/infix_services/lldp/lldp_admin_status/test.adoc @@ -1,13 +1,17 @@ +=== LLDP admin status + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/lldp/lldp_admin_status] -=== LLDP admin status ==== Description + Verify that LLDP admin status is set properly by lldpd ==== Topology + image::topology.svg[LLDP admin status topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Enable target interface and enable LLDP . Verify admin-status: 'rx-only' diff --git a/test/case/infix_services/lldp/lldp_enable_disable/Readme.adoc b/test/case/infix_services/lldp/lldp_enable_disable/Readme.adoc index 218d38b9..ae32c841 120000 --- a/test/case/infix_services/lldp/lldp_enable_disable/Readme.adoc +++ b/test/case/infix_services/lldp/lldp_enable_disable/Readme.adoc @@ -1 +1 @@ -lldp_enable_disable.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_services/lldp/lldp_enable_disable/lldp_enable_disable.adoc b/test/case/infix_services/lldp/lldp_enable_disable/test.adoc similarity index 74% rename from test/case/infix_services/lldp/lldp_enable_disable/lldp_enable_disable.adoc rename to test/case/infix_services/lldp/lldp_enable_disable/test.adoc index 383c18a1..7d547b20 100644 --- a/test/case/infix_services/lldp/lldp_enable_disable/lldp_enable_disable.adoc +++ b/test/case/infix_services/lldp/lldp_enable_disable/test.adoc @@ -1,14 +1,18 @@ +=== LLDP enable/disable + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/lldp/lldp_enable_disable] -=== LLDP enable disable ==== Description -Verify that LLDP can be enabled and disabled. + +Verify that LLDP can be enabled and disabled. Operation and non-operation are confirmed using tcpdump. ==== Topology -image::topology.svg[LLDP enable disable topology, align=center, scaledwidth=75%] + +image::topology.svg[LLDP enable/disable topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Enable target interface and disable LLDP . Enable LLDP diff --git a/test/case/infix_services/lldp/lldp_ieee_group_forward/Readme.adoc b/test/case/infix_services/lldp/lldp_ieee_group_forward/Readme.adoc index f718858e..ae32c841 120000 --- a/test/case/infix_services/lldp/lldp_ieee_group_forward/Readme.adoc +++ b/test/case/infix_services/lldp/lldp_ieee_group_forward/Readme.adoc @@ -1 +1 @@ -lldp_ieee_group_forward.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_services/lldp/lldp_ieee_group_forward/lldp_ieee_group_forward.adoc b/test/case/infix_services/lldp/lldp_ieee_group_forward/test.adoc similarity index 99% rename from test/case/infix_services/lldp/lldp_ieee_group_forward/lldp_ieee_group_forward.adoc rename to test/case/infix_services/lldp/lldp_ieee_group_forward/test.adoc index 8be24012..33e3585b 100644 --- a/test/case/infix_services/lldp/lldp_ieee_group_forward/lldp_ieee_group_forward.adoc +++ b/test/case/infix_services/lldp/lldp_ieee_group_forward/test.adoc @@ -1,14 +1,18 @@ +=== LLDP IEEE Group Forward + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/lldp/lldp_ieee_group_forward] -=== LLDP IEEE Group Forward ==== Description + Verify that LLDP packets can be flooded to all ports on a bridge. Operation and non-operation are confirmed using tcpdump. ==== Topology + image::topology.svg[LLDP IEEE Group Forward topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure interfaces and disable LLDP daemon . Verify LLDP absence on host:data2 diff --git a/test/case/infix_services/mdns/mdns_allow_deny/Readme.adoc b/test/case/infix_services/mdns/mdns_allow_deny/Readme.adoc index fd21b3d9..ae32c841 120000 --- a/test/case/infix_services/mdns/mdns_allow_deny/Readme.adoc +++ b/test/case/infix_services/mdns/mdns_allow_deny/Readme.adoc @@ -1 +1 @@ -mdns_allow_deny.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_services/mdns/mdns_allow_deny/mdns_allow_deny.adoc b/test/case/infix_services/mdns/mdns_allow_deny/test.adoc similarity index 99% rename from test/case/infix_services/mdns/mdns_allow_deny/mdns_allow_deny.adoc rename to test/case/infix_services/mdns/mdns_allow_deny/test.adoc index e53e6398..6c63b8b2 100644 --- a/test/case/infix_services/mdns/mdns_allow_deny/mdns_allow_deny.adoc +++ b/test/case/infix_services/mdns/mdns_allow_deny/test.adoc @@ -1,7 +1,9 @@ +=== mDNS allow/deny interfaces + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/mdns/mdns_allow_deny] -=== mDNS allow/deny interfaces ==== Description + Verify the mDNS responder interface allow/deny configuration. Both settings can be used independently and in concert. We verify operation with three scenarios: @@ -11,9 +13,11 @@ with three scenarios: 3. Allow p1 and p3, deny p2 and p3, traffic only on p1 ==== Topology + image::topology.svg[mDNS allow/deny interfaces topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Configure device . Allow mDNS on a single interface: p2 diff --git a/test/case/infix_services/mdns/mdns_enable_disable/Readme.adoc b/test/case/infix_services/mdns/mdns_enable_disable/Readme.adoc index ca4d53b2..ae32c841 120000 --- a/test/case/infix_services/mdns/mdns_enable_disable/Readme.adoc +++ b/test/case/infix_services/mdns/mdns_enable_disable/Readme.adoc @@ -1 +1 @@ -mdns_enable_disable.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_services/mdns/mdns_enable_disable/mdns_enable_disable.adoc b/test/case/infix_services/mdns/mdns_enable_disable/test.adoc similarity index 77% rename from test/case/infix_services/mdns/mdns_enable_disable/mdns_enable_disable.adoc rename to test/case/infix_services/mdns/mdns_enable_disable/test.adoc index 7ef044e7..b0eee10c 100644 --- a/test/case/infix_services/mdns/mdns_enable_disable/mdns_enable_disable.adoc +++ b/test/case/infix_services/mdns/mdns_enable_disable/test.adoc @@ -1,14 +1,18 @@ +=== mDNS enable/disable + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/mdns/mdns_enable_disable] -=== mDNS enable disable ==== Description -Verify that mDNS can be enabled and disabled. + +Verify that mDNS can be enabled and disabled. Operation and non-operation are confirmed using tcpdump. ==== Topology -image::topology.svg[mDNS enable disable topology, align=center, scaledwidth=75%] + +image::topology.svg[mDNS enable/disable topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Set IPv4 address 10.0.0.10/24 on target:data and disable mDNS . Enable mDNS diff --git a/test/case/infix_services/ssh/ssh_key_authentication/Readme.adoc b/test/case/infix_services/ssh/ssh_key_authentication/Readme.adoc index 1819df3a..ae32c841 120000 --- a/test/case/infix_services/ssh/ssh_key_authentication/Readme.adoc +++ b/test/case/infix_services/ssh/ssh_key_authentication/Readme.adoc @@ -1 +1 @@ -ssh_key_authentication.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_services/ssh/ssh_key_authentication/ssh_key_authentication.adoc b/test/case/infix_services/ssh/ssh_key_authentication/test.adoc similarity index 99% rename from test/case/infix_services/ssh/ssh_key_authentication/ssh_key_authentication.adoc rename to test/case/infix_services/ssh/ssh_key_authentication/test.adoc index 138722bf..09e59b22 100644 --- a/test/case/infix_services/ssh/ssh_key_authentication/ssh_key_authentication.adoc +++ b/test/case/infix_services/ssh/ssh_key_authentication/test.adoc @@ -1,13 +1,17 @@ +=== Generate ssh key pair + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/ssh/ssh_key_authentication] -=== Generate ssh key pair ==== Description + Verify that 'guest' user can fetch data using only the 'public' key ==== Topology + image::topology.svg[Generate ssh key pair topology, align=center, scaledwidth=75%] ==== Sequence + . Connect to the target device . Create a guest user on the target device . Wait until SSH server is ready to accept connections diff --git a/test/case/infix_services/ssh/ssh_server_config/Readme.adoc b/test/case/infix_services/ssh/ssh_server_config/Readme.adoc index d7c2e770..ae32c841 120000 --- a/test/case/infix_services/ssh/ssh_server_config/Readme.adoc +++ b/test/case/infix_services/ssh/ssh_server_config/Readme.adoc @@ -1 +1 @@ -ssh_server_config.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/infix_services/ssh/ssh_server_config/ssh_server_config.adoc b/test/case/infix_services/ssh/ssh_server_config/test.adoc similarity index 99% rename from test/case/infix_services/ssh/ssh_server_config/ssh_server_config.adoc rename to test/case/infix_services/ssh/ssh_server_config/test.adoc index d7eb730a..0e41b1f1 100644 --- a/test/case/infix_services/ssh/ssh_server_config/ssh_server_config.adoc +++ b/test/case/infix_services/ssh/ssh_server_config/test.adoc @@ -1,16 +1,20 @@ +=== SSH server configuration + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/ssh/ssh_server_config] -=== SSH server configuration ==== Description + Test SSH server functionality with pre-defined key pair: 1. Enable/Disable SSH service. 2. Configure listen address and port. 3. Validate connectivity using static key pair. ==== Topology + image::topology.svg[SSH server configuration topology, align=center, scaledwidth=75%] ==== Sequence + . Setup topology and attach to the target . Configure SSH server . Wait until SSH server is ready to accept connections diff --git a/test/case/misc/operational_all/Readme.adoc b/test/case/misc/operational_all/Readme.adoc index 2c4ebf82..ae32c841 120000 --- a/test/case/misc/operational_all/Readme.adoc +++ b/test/case/misc/operational_all/Readme.adoc @@ -1 +1 @@ -operational_all.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/misc/operational_all/operational_all.adoc b/test/case/misc/operational_all/test.adoc similarity index 99% rename from test/case/misc/operational_all/operational_all.adoc rename to test/case/misc/operational_all/test.adoc index 0baa6a21..c4e26396 100644 --- a/test/case/misc/operational_all/operational_all.adoc +++ b/test/case/misc/operational_all/test.adoc @@ -1,13 +1,17 @@ +=== Get operational + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/misc/operational_all] -=== Get operational ==== Description + Basic test just to get operational from test-config without errors. ==== Topology + image::topology.svg[Get operational topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUT . Copy test-config to running configuration . Get all Operational data from 'target', verify there are no errors diff --git a/test/case/use_case/ospf_container/Readme.adoc b/test/case/use_case/ospf_container/Readme.adoc index 4a180a39..ae32c841 120000 --- a/test/case/use_case/ospf_container/Readme.adoc +++ b/test/case/use_case/ospf_container/Readme.adoc @@ -1 +1 @@ -ospf_container.adoc \ No newline at end of file +test.adoc \ No newline at end of file diff --git a/test/case/use_case/ospf_container/ospf_container.adoc b/test/case/use_case/ospf_container/test.adoc similarity index 99% rename from test/case/use_case/ospf_container/ospf_container.adoc rename to test/case/use_case/ospf_container/test.adoc index 8907ddd4..34df1695 100644 --- a/test/case/use_case/ospf_container/ospf_container.adoc +++ b/test/case/use_case/ospf_container/test.adoc @@ -1,7 +1,9 @@ +=== OSPF Container + ifdef::topdoc[:imagesdir: {topdoc}../../test/case/use_case/ospf_container] -=== OSPF Container ==== Description + This use-case test verifies connectivity in an OSPF network to services running as hosted containers inside each router. @@ -56,9 +58,11 @@ image::internal-network.svg[Internal networks] will have a unique hostname derived from the chassis MAC address ==== Topology + image::topology.svg[OSPF Container topology, align=center, scaledwidth=75%] ==== Sequence + . Set up topology and attach to target DUTs . Configure DUTs . Wait for all routers to peer