diff --git a/test/case/ietf_hardware/usb/usb.adoc b/test/case/ietf_hardware/usb/usb.adoc index 67fe2468..6b5b0ebc 100644 --- a/test/case/ietf_hardware/usb/usb.adoc +++ b/test/case/ietf_hardware/usb/usb.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_hardware/usb] + === USB configuration ==== Description This test checks if the configuration is consistent with hardware state, @@ -11,18 +13,9 @@ If this pass you can be certain that the configuration of the USB port is handled correctly. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_hardware/usb/topology.svg[USB configuration topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::usb/topology.svg[USB configuration topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[USB configuration topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -36,5 +29,3 @@ endif::topdoc[] . Verify USB port remain unlocked after reboot -<<< - diff --git a/test/case/ietf_hardware/usb_two_ports/usb_two_ports.adoc b/test/case/ietf_hardware/usb_two_ports/usb_two_ports.adoc index 74584330..49fbf02e 100644 --- a/test/case/ietf_hardware/usb_two_ports/usb_two_ports.adoc +++ b/test/case/ietf_hardware/usb_two_ports/usb_two_ports.adoc @@ -1,21 +1,14 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_hardware/usb_two_ports/topology.svg[USB configuration with two USB ports topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::usb_two_ports/topology.svg[USB configuration with two USB ports topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[USB configuration with two USB ports topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -23,5 +16,3 @@ endif::topdoc[] . Verify that the correct port is locked and the correct one is unlocked -<<< - diff --git a/test/case/ietf_interfaces/bridge.yaml b/test/case/ietf_interfaces/bridge.yaml index 7d28f375..0eb215b7 100644 --- a/test/case/ietf_interfaces/bridge.yaml +++ b/test/case/ietf_interfaces/bridge.yaml @@ -15,6 +15,9 @@ - name: bridge_basic case: bridge_basic/test.py +- name: dual_bridge + case: dual_bridge/test.py + - name: bridge_veth case: bridge_veth/test.py diff --git a/test/case/ietf_interfaces/bridge_basic/bridge_basic.adoc b/test/case/ietf_interfaces/bridge_basic/bridge_basic.adoc index a9851ece..ebb51830 100644 --- a/test/case/ietf_interfaces/bridge_basic/bridge_basic.adoc +++ b/test/case/ietf_interfaces/bridge_basic/bridge_basic.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/bridge_basic] + === Bridge basic ==== Description Test basic connectivity to a bridge @@ -11,22 +13,11 @@ Test basic connectivity to a bridge .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_basic/topology.svg[Bridge basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_basic/topology.svg[Bridge basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Bridge basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/bridge_fwd_dual_dut.adoc b/test/case/ietf_interfaces/bridge_fwd_dual_dut/bridge_fwd_dual_dut.adoc index ec99b4fb..5bf4755f 100644 --- a/test/case/ietf_interfaces/bridge_fwd_dual_dut/bridge_fwd_dual_dut.adoc +++ b/test/case/ietf_interfaces/bridge_fwd_dual_dut/bridge_fwd_dual_dut.adoc @@ -1,3 +1,5 @@ +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. @@ -23,22 +25,11 @@ Ping through two bridges on two different DUTs. .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_fwd_dual_dut/topology.svg[Bridge forwarding dual DUTs topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_fwd_dual_dut/topology.svg[Bridge forwarding dual DUTs topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Bridge forwarding dual DUTs topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/bridge_fwd_sgl_dut.adoc b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/bridge_fwd_sgl_dut.adoc index a54fc271..10a64222 100644 --- a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/bridge_fwd_sgl_dut.adoc +++ b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/bridge_fwd_sgl_dut.adoc @@ -1,3 +1,5 @@ +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. @@ -23,22 +25,11 @@ Tests forwarding through a DUT with two bridged interfaces on one DUT. .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.svg[Bridge forwarding single DUTs topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_fwd_sgl_dut/topology.svg[Bridge forwarding single DUTs topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Bridge forwarding single DUTs topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/bridge_stp_basic.adoc b/test/case/ietf_interfaces/bridge_stp_basic/bridge_stp_basic.adoc index bcbde6d5..a217fc8a 100644 --- a/test/case/ietf_interfaces/bridge_stp_basic/bridge_stp_basic.adoc +++ b/test/case/ietf_interfaces/bridge_stp_basic/bridge_stp_basic.adoc @@ -1,3 +1,5 @@ +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 @@ -12,18 +14,9 @@ that a spanning tree rooted at A is formed, with B, C, and D all directly connected to A. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_stp_basic/topology.svg[Bridge STP Basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_stp_basic/topology.svg[Bridge STP Basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Bridge STP Basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -35,5 +28,3 @@ endif::topdoc[] . Verify that host:a can reach host:{b,c,d} -<<< - diff --git a/test/case/ietf_interfaces/bridge_veth/bridge_veth.adoc b/test/case/ietf_interfaces/bridge_veth/bridge_veth.adoc index 935e2aa8..cb2c82d7 100644 --- a/test/case/ietf_interfaces/bridge_veth/bridge_veth.adoc +++ b/test/case/ietf_interfaces/bridge_veth/bridge_veth.adoc @@ -1,3 +1,5 @@ +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 @@ -13,22 +15,11 @@ PING --> br0 .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_veth/topology.svg[Bridge with a physical port and a veth topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_veth/topology.svg[Bridge with a physical port and a veth topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Bridge with a physical port and a veth topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/bridge_vlan.adoc b/test/case/ietf_interfaces/bridge_vlan/bridge_vlan.adoc index 913f75e5..71fee0ae 100644 --- a/test/case/ietf_interfaces/bridge_vlan/bridge_vlan.adoc +++ b/test/case/ietf_interfaces/bridge_vlan/bridge_vlan.adoc @@ -1,38 +1,19 @@ +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. .Logical network setup -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_vlan/bridge-vlan.svg[] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_vlan/bridge-vlan.svg[] -endif::testgroup[] -ifndef::testgroup[] -image::bridge-vlan.svg[] -endif::testgroup[] -endif::topdoc[] +image::bridge-vlan.svg[align=center, scaledwidth=75%] ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_vlan/topology.svg[Bridge VLAN topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_vlan/topology.svg[Bridge VLAN topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Bridge VLAN topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/test.py b/test/case/ietf_interfaces/bridge_vlan/test.py index 5a2e58c4..d722ff0e 100755 --- a/test/case/ietf_interfaces/bridge_vlan/test.py +++ b/test/case/ietf_interfaces/bridge_vlan/test.py @@ -6,7 +6,7 @@ Verify VLAN filtering bridge, with a VLAN trunk to a neighboring device, which in turn untags one VLAN outisde a non-VLAN filtering bridge. .Logical network setup -image::bridge-vlan.svg[] +image::bridge-vlan.svg[align=center, scaledwidth=75%] """ import infamy diff --git a/test/case/ietf_interfaces/bridge_vlan_separation/bridge_vlan_separation.adoc b/test/case/ietf_interfaces/bridge_vlan_separation/bridge_vlan_separation.adoc index 2d3816c9..d3120cc3 100644 --- a/test/case/ietf_interfaces/bridge_vlan_separation/bridge_vlan_separation.adoc +++ b/test/case/ietf_interfaces/bridge_vlan_separation/bridge_vlan_separation.adoc @@ -1,3 +1,5 @@ +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 @@ -22,18 +24,9 @@ Test that two VLANs are correctly separated in the bridge .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/bridge_vlan_separation/topology.svg[Bridge VLAN separation topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::bridge_vlan_separation/topology.svg[Bridge VLAN separation topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Bridge VLAN separation topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -45,5 +38,3 @@ endif::topdoc[] . Verify broadcast is NOT received on host:data11 and host:data21 -<<< - diff --git a/test/case/ietf_interfaces/dual_bridge/dual_bridge.adoc b/test/case/ietf_interfaces/dual_bridge/dual_bridge.adoc index 00d08f40..e66019af 100644 --- a/test/case/ietf_interfaces/dual_bridge/dual_bridge.adoc +++ b/test/case/ietf_interfaces/dual_bridge/dual_bridge.adoc @@ -1,6 +1,9 @@ +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 VETH interfaces. +Verify that it is possible to ping through a bridge to another bridge +via a VETH pair connected to both. .... PING --> br0 br1 10.0.0.2 @@ -9,22 +12,11 @@ PC - target:data veth0a - veth0b .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/dual_bridge/topology.svg[Dual bridges on one device topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::dual_bridge/topology.svg[Dual bridges on one device topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Dual bridges on one device topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/dual_bridge/test.py b/test/case/ietf_interfaces/dual_bridge/test.py index 93cbdfa7..49782c27 100755 --- a/test/case/ietf_interfaces/dual_bridge/test.py +++ b/test/case/ietf_interfaces/dual_bridge/test.py @@ -1,16 +1,15 @@ #!/usr/bin/env python3 -# +"""Dual bridges on one device -""" -Dual bridges on one device - -Verify that it is possible to ping through a bridge to another bridge via VETH interfaces. +Verify that it is possible to ping through a bridge to another bridge +via a VETH pair connected to both. .... PING --> br0 br1 10.0.0.2 / \\ / PC - target:data veth0a - veth0b .... + """ import infamy diff --git a/test/case/ietf_interfaces/iface_enable_disable/iface_enable_disable.adoc b/test/case/ietf_interfaces/iface_enable_disable/iface_enable_disable.adoc index 7b76870c..b88560bd 100644 --- a/test/case/ietf_interfaces/iface_enable_disable/iface_enable_disable.adoc +++ b/test/case/ietf_interfaces/iface_enable_disable/iface_enable_disable.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/iface_enable_disable] + === Interface status ==== Description Verify interface status properly propagate changes when an interface @@ -6,18 +8,9 @@ is disabled and then re-enabled. Both admin-status and oper-status are verified. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/iface_enable_disable/topology.svg[Interface status topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::iface_enable_disable/topology.svg[Interface status topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Interface status topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -27,5 +20,3 @@ endif::topdoc[] . Verify it is possible to ping the interface -<<< - diff --git a/test/case/ietf_interfaces/iface_phys_address/iface_phys_address.adoc b/test/case/ietf_interfaces/iface_phys_address/iface_phys_address.adoc index de35542d..1e982623 100644 --- a/test/case/ietf_interfaces/iface_phys_address/iface_phys_address.adoc +++ b/test/case/ietf_interfaces/iface_phys_address/iface_phys_address.adoc @@ -1,3 +1,5 @@ +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. @@ -5,18 +7,9 @@ Both static MAC address and derived from the chassis MAC with, or without, an offset applied. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/iface_phys_address/topology.svg[Custom MAC address on interface topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::iface_phys_address/topology.svg[Custom MAC address on interface topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Custom MAC address on interface topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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' @@ -30,5 +23,3 @@ endif::topdoc[] . Verify target:data MAC address is reset to default -<<< - diff --git a/test/case/ietf_interfaces/ifalias/ifalias.adoc b/test/case/ietf_interfaces/ifalias/ifalias.adoc index 6fa679e9..e00264df 100644 --- a/test/case/ietf_interfaces/ifalias/ifalias.adoc +++ b/test/case/ietf_interfaces/ifalias/ifalias.adoc @@ -1,25 +1,16 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/ifalias/topology.svg[Interface Description (ifAlias) topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ifalias/topology.svg[Interface Description (ifAlias) topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Interface Description (ifAlias) topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/igmp_basic.adoc b/test/case/ietf_interfaces/igmp_basic/igmp_basic.adoc index ce8554c8..56e41145 100644 --- a/test/case/ietf_interfaces/igmp_basic/igmp_basic.adoc +++ b/test/case/ietf_interfaces/igmp_basic/igmp_basic.adoc @@ -1,3 +1,5 @@ +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 @@ -17,18 +19,9 @@ the flooding stops as soon a join arrives HOST ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/igmp_basic/topology.svg[IGMP basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::igmp_basic/topology.svg[IGMP basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[IGMP basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -38,5 +31,3 @@ endif::topdoc[] . Verify that the group 224.1.1.1 is no longer received on host:data3 -<<< - diff --git a/test/case/ietf_interfaces/igmp_vlan/igmp_vlan.adoc b/test/case/ietf_interfaces/igmp_vlan/igmp_vlan.adoc index 230f2ece..6cfa8056 100644 --- a/test/case/ietf_interfaces/igmp_vlan/igmp_vlan.adoc +++ b/test/case/ietf_interfaces/igmp_vlan/igmp_vlan.adoc @@ -1,3 +1,5 @@ +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 @@ -20,18 +22,9 @@ Test tagged IGMP control traffic and that VLAN separation is respected for multi .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/igmp_vlan/topology.svg[IGMP VLAN topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::igmp_vlan/topology.svg[IGMP VLAN topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[IGMP VLAN topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -45,5 +38,3 @@ endif::topdoc[] . Verify group 224.1.1.1 is forwarded to host:data12 -<<< - diff --git a/test/case/ietf_interfaces/ipv4_address/ipv4_address.adoc b/test/case/ietf_interfaces/ipv4_address/ipv4_address.adoc index 4e75f8d0..a28556c6 100644 --- a/test/case/ietf_interfaces/ipv4_address/ipv4_address.adoc +++ b/test/case/ietf_interfaces/ipv4_address/ipv4_address.adoc @@ -1,20 +1,13 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/ipv4_address/topology.svg[Interface with IPv4 topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ipv4_address/topology.svg[Interface with IPv4 topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Interface with IPv4 topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -22,5 +15,3 @@ endif::topdoc[] . Verify target:mgmt no longer has the address 10.10.10.20 -<<< - diff --git a/test/case/ietf_interfaces/ipv4_autoconf/ipv4_autoconf.adoc b/test/case/ietf_interfaces/ipv4_autoconf/ipv4_autoconf.adoc index f64cc6de..3ee10250 100644 --- a/test/case/ietf_interfaces/ipv4_autoconf/ipv4_autoconf.adoc +++ b/test/case/ietf_interfaces/ipv4_autoconf/ipv4_autoconf.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/ipv4_autoconf] + === IPv4 link-local ==== Description Verifies that link-local (IPv4LL/ZeroConf) address assignment work as @@ -5,18 +7,9 @@ expected. Checks random address, the request-address setting, and address removal on autoconf disable. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/ipv4_autoconf/topology.svg[IPv4 link-local topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ipv4_autoconf/topology.svg[IPv4 link-local topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[IPv4 link-local topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -26,5 +19,3 @@ endif::topdoc[] . Verify link-local addresses has been removed from target:data -<<< - diff --git a/test/case/ietf_interfaces/ipv6_address/ipv6_address.adoc b/test/case/ietf_interfaces/ipv6_address/ipv6_address.adoc index 511e19ef..d2b7e021 100644 --- a/test/case/ietf_interfaces/ipv6_address/ipv6_address.adoc +++ b/test/case/ietf_interfaces/ipv6_address/ipv6_address.adoc @@ -1,25 +1,16 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/ipv6_address/topology.svg[Interface IPv6 autoconf for bridges topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ipv6_address/topology.svg[Interface IPv6 autoconf for bridges topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Interface IPv6 autoconf for bridges topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/lag_basic.adoc b/test/case/ietf_interfaces/lag_basic/lag_basic.adoc index f5d73866..903b6ce7 100644 --- a/test/case/ietf_interfaces/lag_basic/lag_basic.adoc +++ b/test/case/ietf_interfaces/lag_basic/lag_basic.adoc @@ -1,37 +1,20 @@ +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. .Internal network setup, PC verifies connectivity with dut2 via dut1 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/lag_basic/lag-basic.svg[Internal networks] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::lag_basic/lag-basic.svg[Internal networks] -endif::testgroup[] -ifndef::testgroup[] -image::lag-basic.svg[Internal networks] -endif::testgroup[] -endif::topdoc[] +image::lag-basic.svg[align=center, scaledwidth=75%] The host verifies connectivity with dut2 via dut1 over the aggregate for each test step using the `mon` interface. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/lag_basic/topology.svg[Ling Aggregation Basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::lag_basic/topology.svg[Ling Aggregation Basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Ling Aggregation Basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -39,5 +22,3 @@ endif::topdoc[] . Verify failure modes for static mode -<<< - diff --git a/test/case/ietf_interfaces/lag_basic/test.py b/test/case/ietf_interfaces/lag_basic/test.py index 7bb01045..0e646462 100755 --- a/test/case/ietf_interfaces/lag_basic/test.py +++ b/test/case/ietf_interfaces/lag_basic/test.py @@ -5,7 +5,7 @@ Verify communication over a link aggregate in static and LACP operating modes during basic failure scenarios. .Internal network setup, PC verifies connectivity with dut2 via dut1 -image::lag-basic.svg[Internal networks] +image::lag-basic.svg[align=center, scaledwidth=75%] The host verifies connectivity with dut2 via dut1 over the aggregate for each test step using the `mon` interface. diff --git a/test/case/ietf_interfaces/lag_failure/lag_failure.adoc b/test/case/ietf_interfaces/lag_failure/lag_failure.adoc index c0caa57c..8e42e5e9 100644 --- a/test/case/ietf_interfaces/lag_failure/lag_failure.adoc +++ b/test/case/ietf_interfaces/lag_failure/lag_failure.adoc @@ -1,42 +1,23 @@ +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. .Logical network setup, link breakers (lb1 & lb2) here managed by host PC -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/lag_failure/lag-failure.svg[] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::lag_failure/lag-failure.svg[] -endif::testgroup[] -ifndef::testgroup[] -image::lag-failure.svg[] -endif::testgroup[] -endif::topdoc[] +image::lag-failure.svg[align=center, scaledwidth=75%] The host verifies connectivity with dut2 via dut1 over the aggregate for each failure mode step using the `mon` interface. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/lag_failure/topology.svg[LACP Aggregate w/ Degraded Link topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::lag_failure/topology.svg[LACP Aggregate w/ Degraded Link topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[LACP Aggregate w/ Degraded Link topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 ... . Verify failure modes -<<< - diff --git a/test/case/ietf_interfaces/lag_failure/test.py b/test/case/ietf_interfaces/lag_failure/test.py index a5ee002b..fa86381f 100755 --- a/test/case/ietf_interfaces/lag_failure/test.py +++ b/test/case/ietf_interfaces/lag_failure/test.py @@ -5,7 +5,7 @@ Verify communication over an LACP link aggregate when individual member links stop forwarding traffic, without carrier loss. .Logical network setup, link breakers (lb1 & lb2) here managed by host PC -image::lag-failure.svg[] +image::lag-failure.svg[align=center, scaledwidth=75%] The host verifies connectivity with dut2 via dut1 over the aggregate for each failure mode step using the `mon` interface. diff --git a/test/case/ietf_interfaces/routing_basic/routing_basic.adoc b/test/case/ietf_interfaces/routing_basic/routing_basic.adoc index 0e6179ec..aea73537 100644 --- a/test/case/ietf_interfaces/routing_basic/routing_basic.adoc +++ b/test/case/ietf_interfaces/routing_basic/routing_basic.adoc @@ -1,21 +1,14 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/routing_basic/topology.svg[Routing basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::routing_basic/topology.svg[Routing basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Routing basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -25,5 +18,3 @@ endif::topdoc[] . Verify ping does not work host:data1 to 10.0.0.10 and host:data2 to 192.168.0.10 -<<< - diff --git a/test/case/ietf_interfaces/speed_duplex_copper/speed_duplex_copper.adoc b/test/case/ietf_interfaces/speed_duplex_copper/speed_duplex_copper.adoc index 4e8d6c20..6b7c48f5 100644 --- a/test/case/ietf_interfaces/speed_duplex_copper/speed_duplex_copper.adoc +++ b/test/case/ietf_interfaces/speed_duplex_copper/speed_duplex_copper.adoc @@ -1,3 +1,5 @@ +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: @@ -7,18 +9,9 @@ Verify that the interface operates at the expected speed/duplex in two scenarios to the highest common speed/duplex. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/speed_duplex_copper/topology.svg[Interface Speed Duplex (Copper) topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::speed_duplex_copper/topology.svg[Interface Speed Duplex (Copper) topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Interface Speed Duplex (Copper) topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -34,5 +27,3 @@ endif::topdoc[] . Verify auto-negotiation to 10/half + 10/full + 100/half + 100/full + 1000/full -<<< - diff --git a/test/case/ietf_interfaces/static_multicast_filters/static_multicast_filters.adoc b/test/case/ietf_interfaces/static_multicast_filters/static_multicast_filters.adoc index e0b3b694..e916fb9e 100644 --- a/test/case/ietf_interfaces/static_multicast_filters/static_multicast_filters.adoc +++ b/test/case/ietf_interfaces/static_multicast_filters/static_multicast_filters.adoc @@ -1,3 +1,5 @@ +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 @@ -19,18 +21,9 @@ enabled when using static multicast filters) .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/static_multicast_filters/topology.svg[Static multicast filters topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::static_multicast_filters/topology.svg[Static multicast filters topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Static multicast filters topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -45,5 +38,3 @@ endif::topdoc[] . Verify that the MAC group is no longer forwarded to host:data3 -<<< - diff --git a/test/case/ietf_interfaces/tunnel_basic/Readme.adoc b/test/case/ietf_interfaces/tunnel_basic/Readme.adoc index 79d3c027..5f0d3e9b 100644 --- a/test/case/ietf_interfaces/tunnel_basic/Readme.adoc +++ b/test/case/ietf_interfaces/tunnel_basic/Readme.adoc @@ -1,6 +1,10 @@ include::gre_basic.adoc[] +<<< + include::gretap_basic.adoc[] +<<< + include::vxlan_basic.adoc[] diff --git a/test/case/ietf_interfaces/tunnel_basic/gre_basic.adoc b/test/case/ietf_interfaces/tunnel_basic/gre_basic.adoc index c1ec9746..5daba855 100644 --- a/test/case/ietf_interfaces/tunnel_basic/gre_basic.adoc +++ b/test/case/ietf_interfaces/tunnel_basic/gre_basic.adoc @@ -1,26 +1,17 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/tunnel_basic/topology.svg[GRE point-to-point topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::tunnel_basic/topology.svg[GRE point-to-point topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[GRE point-to-point topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 index 2ca105f6..3cfcf9ee 100644 --- a/test/case/ietf_interfaces/tunnel_basic/gretap_basic.adoc +++ b/test/case/ietf_interfaces/tunnel_basic/gretap_basic.adoc @@ -1,26 +1,17 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/tunnel_basic/topology.svg[GRETAP point-to-point topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::tunnel_basic/topology.svg[GRETAP point-to-point topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[GRETAP point-to-point topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 index b413c0e5..e4d2f720 100644 --- a/test/case/ietf_interfaces/tunnel_basic/vxlan_basic.adoc +++ b/test/case/ietf_interfaces/tunnel_basic/vxlan_basic.adoc @@ -1,26 +1,17 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/tunnel_basic/topology.svg[VXLAN point-to-point topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::tunnel_basic/topology.svg[VXLAN point-to-point topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[VXLAN point-to-point topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 cab52edf..894975a1 100644 --- a/test/case/ietf_interfaces/tunnel_bridged/Readme.adoc +++ b/test/case/ietf_interfaces/tunnel_bridged/Readme.adoc @@ -1,4 +1,6 @@ include::gretap_bridged.adoc[] +<<< + include::vxlan_bridged.adoc[] diff --git a/test/case/ietf_interfaces/tunnel_bridged/gretap_bridged.adoc b/test/case/ietf_interfaces/tunnel_bridged/gretap_bridged.adoc index 8b24dc12..6764f18b 100644 --- a/test/case/ietf_interfaces/tunnel_bridged/gretap_bridged.adoc +++ b/test/case/ietf_interfaces/tunnel_bridged/gretap_bridged.adoc @@ -1,24 +1,15 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/tunnel_bridged/topology.svg[GRETAP bridged with physical interface topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::tunnel_bridged/topology.svg[GRETAP bridged with physical interface topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[GRETAP bridged with physical interface topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 index 92647592..78bb2a6b 100644 --- a/test/case/ietf_interfaces/tunnel_bridged/vxlan_bridged.adoc +++ b/test/case/ietf_interfaces/tunnel_bridged/vxlan_bridged.adoc @@ -1,24 +1,15 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/tunnel_bridged/topology.svg[VXLAN bridged with physical interface topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::tunnel_bridged/topology.svg[VXLAN bridged with physical interface topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[VXLAN bridged with physical interface topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/verify_all_interface_types.adoc b/test/case/ietf_interfaces/verify_all_interface_types/verify_all_interface_types.adoc index 298a3bec..69437577 100644 --- a/test/case/ietf_interfaces/verify_all_interface_types/verify_all_interface_types.adoc +++ b/test/case/ietf_interfaces/verify_all_interface_types/verify_all_interface_types.adoc @@ -1,3 +1,5 @@ +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 @@ -15,18 +17,9 @@ slightly longer than sending the entire configuration at once. .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/verify_all_interface_types/topology.svg[Verify that all interface types can be created topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::verify_all_interface_types/topology.svg[Verify that all interface types can be created topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Verify that all interface types can be created topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -44,5 +37,3 @@ endif::topdoc[] . Verify VxLAN interfaces 'vxlan-v4' and 'vxlan-v6' -<<< - diff --git a/test/case/ietf_interfaces/veth_delete/veth_delete.adoc b/test/case/ietf_interfaces/veth_delete/veth_delete.adoc index 1cefb4c0..9cd0999e 100644 --- a/test/case/ietf_interfaces/veth_delete/veth_delete.adoc +++ b/test/case/ietf_interfaces/veth_delete/veth_delete.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/veth_delete] + === Verify that VETH pairs can be deleted ==== Description ``` @@ -9,18 +11,9 @@ 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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/veth_delete/topology.svg[Verify that VETH pairs can be deleted topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::veth_delete/topology.svg[Verify that VETH pairs can be deleted topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Verify that VETH pairs can be deleted topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -31,5 +24,3 @@ endif::topdoc[] . Verify VETH pair have been removed -<<< - diff --git a/test/case/ietf_interfaces/vlan_iface_termination/vlan_iface_termination.adoc b/test/case/ietf_interfaces/vlan_iface_termination/vlan_iface_termination.adoc index cc955c6b..9cd71692 100644 --- a/test/case/ietf_interfaces/vlan_iface_termination/vlan_iface_termination.adoc +++ b/test/case/ietf_interfaces/vlan_iface_termination/vlan_iface_termination.adoc @@ -1,3 +1,5 @@ +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 @@ -26,18 +28,9 @@ both `data1` and `data2`, _bridging_ of packets from one to the other must _not_ be allowed. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/vlan_iface_termination/topology.svg[VLAN Interface Termination topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::vlan_iface_termination/topology.svg[VLAN Interface Termination topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[VLAN Interface Termination topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -47,5 +40,3 @@ endif::topdoc[] . Verify that host:data2 can reach target on VLAN 10 -<<< - diff --git a/test/case/ietf_interfaces/vlan_ping/vlan_ping.adoc b/test/case/ietf_interfaces/vlan_ping/vlan_ping.adoc index 38e45dc7..ade470d4 100644 --- a/test/case/ietf_interfaces/vlan_ping/vlan_ping.adoc +++ b/test/case/ietf_interfaces/vlan_ping/vlan_ping.adoc @@ -1,20 +1,13 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_interfaces/vlan_ping] + === VLAN ping connectivity ==== Description Very basic test if the VLAN interface configuration works. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/vlan_ping/topology.svg[VLAN ping connectivity topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::vlan_ping/topology.svg[VLAN ping connectivity topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[VLAN ping connectivity topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -24,5 +17,3 @@ endif::topdoc[] . Verify that host:data can no longer reach 10.0.0.2 -<<< - diff --git a/test/case/ietf_interfaces/vlan_qos/vlan_qos.adoc b/test/case/ietf_interfaces/vlan_qos/vlan_qos.adoc index ab485e66..924544d3 100644 --- a/test/case/ietf_interfaces/vlan_qos/vlan_qos.adoc +++ b/test/case/ietf_interfaces/vlan_qos/vlan_qos.adoc @@ -1,3 +1,5 @@ +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 @@ -15,18 +17,9 @@ 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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_interfaces/vlan_qos/topology.svg[VLAN Interface Ingress/Egress QoS topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::vlan_qos/topology.svg[VLAN Interface Ingress/Egress QoS topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[VLAN Interface Ingress/Egress QoS topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -38,5 +31,3 @@ endif::topdoc[] . Verify that packet with id=6 egressed with pcp=6 -<<< - diff --git a/test/case/ietf_routing/ospf_basic/ospf_basic.adoc b/test/case/ietf_routing/ospf_basic/ospf_basic.adoc index d260f6df..772bfb2c 100644 --- a/test/case/ietf_routing/ospf_basic/ospf_basic.adoc +++ b/test/case/ietf_routing/ospf_basic/ospf_basic.adoc @@ -1,26 +1,17 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/ospf_basic/topology.svg[OSPF Basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_basic/topology.svg[OSPF Basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[OSPF Basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 . Test connectivity from PC:data to 192.168.200.1 -<<< - diff --git a/test/case/ietf_routing/ospf_bfd/ospf_bfd.adoc b/test/case/ietf_routing/ospf_bfd/ospf_bfd.adoc index 70809484..e4e832b9 100644 --- a/test/case/ietf_routing/ospf_bfd/ospf_bfd.adoc +++ b/test/case/ietf_routing/ospf_bfd/ospf_bfd.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/ospf_bfd] + === OSPF BFD ==== Description Verify that a router running OSPF, with Bidirectional Forwarding @@ -9,18 +11,9 @@ perspective, is made up of multiple physical links containing media converters without link fault forwarding. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/ospf_bfd/topology.svg[OSPF BFD topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_bfd/topology.svg[OSPF BFD topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[OSPF BFD topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -31,5 +24,3 @@ endif::topdoc[] . Verify connectivity from PC:src to PC:dst via slow link -<<< - 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/ospf_default_route_advertise.adoc index 04df9f7b..64aef70f 100644 --- a/test/case/ietf_routing/ospf_default_route_advertise/ospf_default_route_advertise.adoc +++ b/test/case/ietf_routing/ospf_default_route_advertise/ospf_default_route_advertise.adoc @@ -1,3 +1,5 @@ +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 @@ -28,18 +30,9 @@ unless _always_ is set for _default-route-advertising_. .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/ospf_default_route_advertise/topology.svg[OSPF Default route advertise topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_default_route_advertise/topology.svg[OSPF Default route advertise topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[OSPF Default route advertise topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -53,5 +46,3 @@ endif::topdoc[] . Verify connectivity from PC:data2 to 10.10.10.10 -<<< - diff --git a/test/case/ietf_routing/ospf_multiarea/ospf_multiarea.adoc b/test/case/ietf_routing/ospf_multiarea/ospf_multiarea.adoc index bc68de2c..b908f2eb 100644 --- a/test/case/ietf_routing/ospf_multiarea/ospf_multiarea.adoc +++ b/test/case/ietf_routing/ospf_multiarea/ospf_multiarea.adoc @@ -1,3 +1,5 @@ +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) @@ -23,18 +25,9 @@ explicit router-id. .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/ospf_multiarea/topology.svg[OSPF with multiple areas topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_multiarea/topology.svg[OSPF with multiple areas topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[OSPF with multiple areas topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -49,5 +42,3 @@ endif::topdoc[] . Verify that the route to 10.0.0.3 from PC:data4, go through 10.0.24.1 -<<< - diff --git a/test/case/ietf_routing/ospf_unnumbered_interface/ospf_unnumbered_interface.adoc b/test/case/ietf_routing/ospf_unnumbered_interface/ospf_unnumbered_interface.adoc index 8c2ecd31..129074fa 100644 --- a/test/case/ietf_routing/ospf_unnumbered_interface/ospf_unnumbered_interface.adoc +++ b/test/case/ietf_routing/ospf_unnumbered_interface/ospf_unnumbered_interface.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_routing/ospf_unnumbered_interface] + === OSPF unnumbered interfaces ==== Description This test that a configuration expecting unnumbered interfaces @@ -8,18 +10,9 @@ When this test pass, you can expect unnumbered interfaces, interface type configuration and passive to function ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/ospf_unnumbered_interface/topology.svg[OSPF unnumbered interfaces topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_unnumbered_interface/topology.svg[OSPF unnumbered interfaces topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[OSPF unnumbered interfaces topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -28,5 +21,3 @@ endif::topdoc[] . Test connectivity from PC:data to 192.168.200.1 -<<< - diff --git a/test/case/ietf_routing/route_pref_255/route_pref_255.adoc b/test/case/ietf_routing/route_pref_255/route_pref_255.adoc index a5875051..fde49c9e 100644 --- a/test/case/ietf_routing/route_pref_255/route_pref_255.adoc +++ b/test/case/ietf_routing/route_pref_255/route_pref_255.adoc @@ -1,3 +1,5 @@ +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 @@ -6,18 +8,9 @@ Then, the routing preference is increased to the maximum value (255), which should prevent the route from becoming active. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/route_pref_255/topology.svg[Route preference: Static Route Activation and Maximum Distance topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::route_pref_255/topology.svg[Route preference: Static Route Activation and Maximum Distance topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Route preference: Static Route Activation and Maximum Distance topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -25,5 +18,3 @@ endif::topdoc[] . Verify that high-preference static route (255) does not become active -<<< - diff --git a/test/case/ietf_routing/route_pref_dhcp/route_pref_dhcp.adoc b/test/case/ietf_routing/route_pref_dhcp/route_pref_dhcp.adoc index 7f416eaf..bdbb9ad4 100644 --- a/test/case/ietf_routing/route_pref_dhcp/route_pref_dhcp.adoc +++ b/test/case/ietf_routing/route_pref_dhcp/route_pref_dhcp.adoc @@ -1,3 +1,5 @@ +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 @@ -9,18 +11,9 @@ route takes precedence by adjusting the routing preference value to the one lower than DHCP. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/route_pref_dhcp/topology.svg[Route preference: DHCP vs Static topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::route_pref_dhcp/topology.svg[Route preference: DHCP vs Static topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Route preference: DHCP vs Static topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -29,5 +22,3 @@ endif::topdoc[] . Verify connectivity from PC:data12 to R2:lo via static route -<<< - diff --git a/test/case/ietf_routing/route_pref_ospf/route_pref_ospf.adoc b/test/case/ietf_routing/route_pref_ospf/route_pref_ospf.adoc index 3e7c7ad7..53ca3cb4 100644 --- a/test/case/ietf_routing/route_pref_ospf/route_pref_ospf.adoc +++ b/test/case/ietf_routing/route_pref_ospf/route_pref_ospf.adoc @@ -1,3 +1,5 @@ +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 @@ -9,18 +11,9 @@ Initially, the device should prefer the OSPF route; if the OSPF route becomes unavailable, the static route should take over. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/route_pref_ospf/topology.svg[Route preference: OSPF vs Static topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::route_pref_ospf/topology.svg[Route preference: OSPF vs Static topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Route preference: OSPF vs Static topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -31,5 +24,3 @@ endif::topdoc[] . Verify connectivity via static route after OSPF failover -<<< - diff --git a/test/case/ietf_routing/static_routing/static_routing.adoc b/test/case/ietf_routing/static_routing/static_routing.adoc index 26b047a8..9dc0b01a 100644 --- a/test/case/ietf_routing/static_routing/static_routing.adoc +++ b/test/case/ietf_routing/static_routing/static_routing.adoc @@ -1,21 +1,14 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_routing/static_routing/topology.svg[Static routing topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::static_routing/topology.svg[Static routing topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Static routing topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +image::topology.svg[Static routing topology, align=center, scaledwidth=75%] + +==== Sequence . Set up topology and attach to target DUTs . Configure targets . Wait for routes @@ -26,5 +19,3 @@ endif::topdoc[] . Verify R2 is no longer reachable on either IPv4 or IPv6 from PC:data -<<< - diff --git a/test/case/ietf_syslog/basic/basic.adoc b/test/case/ietf_syslog/basic/basic.adoc index d57e4067..0d864a38 100644 --- a/test/case/ietf_syslog/basic/basic.adoc +++ b/test/case/ietf_syslog/basic/basic.adoc @@ -1,24 +1,15 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_syslog/basic/topology.svg[Syslog Basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::basic/topology.svg[Syslog Basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Syslog Basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/remote.adoc b/test/case/ietf_syslog/remote/remote.adoc index 9a21eb79..c8e3f712 100644 --- a/test/case/ietf_syslog/remote/remote.adoc +++ b/test/case/ietf_syslog/remote/remote.adoc @@ -1,25 +1,16 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_syslog/remote/topology.svg[Remote syslog topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::remote/topology.svg[Remote syslog topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Remote syslog topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 . Verify reception of client log message, incl. sorting to /log/security on server -<<< - diff --git a/test/case/ietf_system/add_delete_user/add_delete_user.adoc b/test/case/ietf_system/add_delete_user/add_delete_user.adoc index 55378b00..c3bd19dc 100644 --- a/test/case/ietf_system/add_delete_user/add_delete_user.adoc +++ b/test/case/ietf_system/add_delete_user/add_delete_user.adoc @@ -1,21 +1,14 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_system/add_delete_user/topology.svg[Add/delete user topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::add_delete_user/topology.svg[Add/delete user topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Add/delete user topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -25,5 +18,3 @@ endif::topdoc[] . Verify that 'newuser01' is removed from /etc/passwd -<<< - diff --git a/test/case/ietf_system/hostname/hostname.adoc b/test/case/ietf_system/hostname/hostname.adoc index 69b2e2c9..a1300550 100644 --- a/test/case/ietf_system/hostname/hostname.adoc +++ b/test/case/ietf_system/hostname/hostname.adoc @@ -1,3 +1,5 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/hostname] + === Set hostname ==== Description Verify that it is possible to change hostname both normal @@ -9,18 +11,9 @@ where MAC is the last three bytes of the base MAC address. e.g. ix-01-01-01. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_system/hostname/topology.svg[Set hostname topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::hostname/topology.svg[Set hostname topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Set hostname topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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' @@ -29,5 +22,3 @@ endif::topdoc[] . Verify hostname format in operational -<<< - diff --git a/test/case/ietf_system/ntp_client/ntp_client.adoc b/test/case/ietf_system/ntp_client/ntp_client.adoc index 4353a8d0..70597971 100644 --- a/test/case/ietf_system/ntp_client/ntp_client.adoc +++ b/test/case/ietf_system/ntp_client/ntp_client.adoc @@ -1,25 +1,16 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_system/ntp_client/topology.svg[Basic NTP client test topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ntp_client/topology.svg[Basic NTP client test topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Basic NTP client test topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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' . Verify three sources exist in NTP client on 'target' -<<< - diff --git a/test/case/ietf_system/timezone/timezone.adoc b/test/case/ietf_system/timezone/timezone.adoc index af76d503..da3d797c 100644 --- a/test/case/ietf_system/timezone/timezone.adoc +++ b/test/case/ietf_system/timezone/timezone.adoc @@ -1,24 +1,15 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_system/timezone/topology.svg[Set timezone using timezone name topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::timezone/topology.svg[Set timezone using timezone name topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Set timezone using timezone name topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/timezone_utc_offset.adoc b/test/case/ietf_system/timezone_utc_offset/timezone_utc_offset.adoc index 8f2daefb..66bbbc1a 100644 --- a/test/case/ietf_system/timezone_utc_offset/timezone_utc_offset.adoc +++ b/test/case/ietf_system/timezone_utc_offset/timezone_utc_offset.adoc @@ -1,24 +1,15 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_system/timezone_utc_offset/topology.svg[Set timezone with UTC offset topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::timezone_utc_offset/topology.svg[Set timezone with UTC offset topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Set timezone with UTC offset topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/upgrade.adoc b/test/case/ietf_system/upgrade/upgrade.adoc index a94cba31..7d973370 100644 --- a/test/case/ietf_system/upgrade/upgrade.adoc +++ b/test/case/ietf_system/upgrade/upgrade.adoc @@ -1,20 +1,13 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/ietf_system/upgrade] + === Upgrade ==== Description Verify it is possible to upgrade. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_system/upgrade/topology.svg[Upgrade topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::upgrade/topology.svg[Upgrade topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Upgrade topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +image::topology.svg[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 @@ -22,5 +15,3 @@ endif::topdoc[] . Verify that the partition is the booted -<<< - diff --git a/test/case/ietf_system/user_admin/user_admin.adoc b/test/case/ietf_system/user_admin/user_admin.adoc index 6b9d1387..5759e7a2 100644 --- a/test/case/ietf_system/user_admin/user_admin.adoc +++ b/test/case/ietf_system/user_admin/user_admin.adoc @@ -1,21 +1,14 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/ietf_system/user_admin/topology.svg[Add admin user topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::user_admin/topology.svg[Add admin user topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Add admin user topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -29,5 +22,3 @@ endif::topdoc[] . Verify user jacky can log in with SSH -<<< - diff --git a/test/case/infix_containers/container_basic/container_basic.adoc b/test/case/infix_containers/container_basic/container_basic.adoc index b1a032dd..86f87099 100644 --- a/test/case/infix_containers/container_basic/container_basic.adoc +++ b/test/case/infix_containers/container_basic/container_basic.adoc @@ -1,3 +1,5 @@ +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 @@ -7,18 +9,9 @@ simple GET request for index.html and checking for a key phrase. The RPC actions: stop + start, and restart are also verified. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_basic/topology.svg[Container basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_basic/topology.svg[Container basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Container basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -30,5 +23,3 @@ endif::topdoc[] . Verify container 'web' is reachable on http://container-host.local:91 -<<< - diff --git a/test/case/infix_containers/container_bridge/container_bridge.adoc b/test/case/infix_containers/container_bridge/container_bridge.adoc index 9c86bf06..1ba899ce 100644 --- a/test/case/infix_containers/container_bridge/container_bridge.adoc +++ b/test/case/infix_containers/container_bridge/container_bridge.adoc @@ -1,3 +1,5 @@ +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 @@ -8,18 +10,9 @@ This also verifies port forwarding from container internal port to a port accessed from the host. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_bridge/topology.svg[Container with bridge network topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_bridge/topology.svg[Container with bridge network topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Container with bridge network topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -27,5 +20,3 @@ endif::topdoc[] . Verify container is reachable on http://10.0.0.2:8080 -<<< - diff --git a/test/case/infix_containers/container_enabled/container_enabled.adoc b/test/case/infix_containers/container_enabled/container_enabled.adoc index 69b698fa..b411077f 100644 --- a/test/case/infix_containers/container_enabled/container_enabled.adoc +++ b/test/case/infix_containers/container_enabled/container_enabled.adoc @@ -1,3 +1,5 @@ +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. @@ -10,28 +12,16 @@ Tests the 'enabled' leaf functionality by: Uses operational datastore to verify container running status. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_enabled/topology.svg[Container enabled/disabled topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_enabled/topology.svg[Container enabled/disabled topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Container enabled/disabled topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 . Verify container has started -. Let container settle . Disable container . Verify container has stopped . Re-enable container . Verify container has started again -<<< - diff --git a/test/case/infix_containers/container_environment/container_environment.adoc b/test/case/infix_containers/container_environment/container_environment.adoc index d7050ef4..9fabaaab 100644 --- a/test/case/infix_containers/container_environment/container_environment.adoc +++ b/test/case/infix_containers/container_environment/container_environment.adoc @@ -1,36 +1,23 @@ +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. Tests the 'env' list -functionality by: +and are available inside the running container. -1. Creating a container with multiple environment variables -2. Using a custom script to extract env vars and serve them via HTTP -3. Fetching the served content to verify environment variables are set correctly - -Uses the nftables container image with custom rc.local script. +1 Set up a container config with multiple environment variables +2. Serve variables back to host using a CGI script in container +3. Verify served content against environment variables ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_environment/topology.svg[Container environment variables topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_environment/topology.svg[Container environment variables topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Container environment variables topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 -. Create container with environment variables +. Set up container with environment variables . Verify container has started -. Verify environment variables are available via HTTP . Verify basic connectivity to data interface -. Verify environment variables in HTTP response +. Verify environment variables in CGI response -<<< - diff --git a/test/case/infix_containers/container_firewall_basic/container_firewall_basic.adoc b/test/case/infix_containers/container_firewall_basic/container_firewall_basic.adoc index 075fba77..6cdb4c79 100644 --- a/test/case/infix_containers/container_firewall_basic/container_firewall_basic.adoc +++ b/test/case/infix_containers/container_firewall_basic/container_firewall_basic.adoc @@ -1,3 +1,5 @@ +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 @@ -26,18 +28,9 @@ phrase, is only reachable from the public interface `ext0`, on 192.168.0.1:8080. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_firewall_basic/topology.svg[Basic Firewall Container topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_firewall_basic/topology.svg[Basic Firewall Container topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Basic Firewall Container topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -50,5 +43,3 @@ endif::topdoc[] . Verify 'web' is reachable on http://container-host.local:8080 -<<< - diff --git a/test/case/infix_containers/container_host_commands/container_host_commands.adoc b/test/case/infix_containers/container_host_commands/container_host_commands.adoc index 032fd214..4caf4a8b 100644 --- a/test/case/infix_containers/container_host_commands/container_host_commands.adoc +++ b/test/case/infix_containers/container_host_commands/container_host_commands.adoc @@ -1,3 +1,5 @@ +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 @@ -5,18 +7,9 @@ that affect the host system. Specifically, it confirms that the container can change the hostname of the host. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_host_commands/topology.svg[Host Command Execution from Container topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_host_commands/topology.svg[Host Command Execution from Container topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Host Command Execution from Container topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -25,5 +18,3 @@ endif::topdoc[] . Verify the new hostname set by the container -<<< - diff --git a/test/case/infix_containers/container_phys/container_phys.adoc b/test/case/infix_containers/container_phys/container_phys.adoc index eb02a4cb..499d304a 100644 --- a/test/case/infix_containers/container_phys/container_phys.adoc +++ b/test/case/infix_containers/container_phys/container_phys.adoc @@ -1,21 +1,14 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_phys/topology.svg[Container with physical interface topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_phys/topology.svg[Container with physical interface topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Container with physical interface topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -25,5 +18,3 @@ endif::topdoc[] . Verify server is restarted and returns new content -<<< - diff --git a/test/case/infix_containers/container_veth/container_veth.adoc b/test/case/infix_containers/container_veth/container_veth.adoc index 819c00d2..ecc4a5ec 100644 --- a/test/case/infix_containers/container_veth/container_veth.adoc +++ b/test/case/infix_containers/container_veth/container_veth.adoc @@ -1,3 +1,5 @@ +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 @@ -14,18 +16,9 @@ regular bridge, a VETH pair connects the container to the bridge. .... ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_veth/topology.svg[Container with VETH pair topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_veth/topology.svg[Container with VETH pair topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Container with VETH pair topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -33,5 +26,3 @@ endif::topdoc[] . Verify container 'web-br0-veth' is reachable on http://10.0.0.2:91 -<<< - diff --git a/test/case/infix_containers/container_volume/container_volume.adoc b/test/case/infix_containers/container_volume/container_volume.adoc index 20fbfc05..d3841854 100644 --- a/test/case/infix_containers/container_volume/container_volume.adoc +++ b/test/case/infix_containers/container_volume/container_volume.adoc @@ -1,3 +1,5 @@ +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 @@ -5,18 +7,9 @@ for persistent content, can be upgraded at runtime, without losing the content in the volume on restart. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_containers/container_volume/topology.svg[Container Volume Persistence topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::container_volume/topology.svg[Container Volume Persistence topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Container Volume Persistence topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -26,5 +19,3 @@ endif::topdoc[] . Verify container volume content survived upgrade -<<< - diff --git a/test/case/infix_dhcp/client_basic/client_basic.adoc b/test/case/infix_dhcp/client_basic/client_basic.adoc index 9ae2e12c..fe9d641e 100644 --- a/test/case/infix_dhcp/client_basic/client_basic.adoc +++ b/test/case/infix_dhcp/client_basic/client_basic.adoc @@ -1,3 +1,5 @@ +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 @@ -5,21 +7,10 @@ from a DHCP server and checks that the lease is set on the interface. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/client_basic/topology.svg[DHCP Basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::client_basic/topology.svg[DHCP Basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP Basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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_basic/dhcp_basic.adoc b/test/case/infix_dhcp/client_basic/dhcp_basic.adoc deleted file mode 100644 index e4c203fe..00000000 --- a/test/case/infix_dhcp/client_basic/dhcp_basic.adoc +++ /dev/null @@ -1,25 +0,0 @@ -=== 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 -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/dhcp_basic/topology.svg[DHCP Basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::dhcp_basic/topology.svg[DHCP Basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP Basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence -. Initialize -. Verify client get DHCP lease for 10.0.0.42 on client:data - - -<<< - diff --git a/test/case/infix_dhcp/client_default_gw/client_default_gw.adoc b/test/case/infix_dhcp/client_default_gw/client_default_gw.adoc index 630f28e2..10b040c6 100644 --- a/test/case/infix_dhcp/client_default_gw/client_default_gw.adoc +++ b/test/case/infix_dhcp/client_default_gw/client_default_gw.adoc @@ -1,3 +1,5 @@ +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, @@ -6,22 +8,11 @@ server runs at 192.168.0.1 but should hand out option 3 to clients with address 192.168.0.254. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/client_default_gw/topology.svg[DHCP router topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::client_default_gw/topology.svg[DHCP router topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP router topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/client_routes.adoc b/test/case/infix_dhcp/client_routes/client_routes.adoc index 031ffbe7..ac5682b7 100644 --- a/test/case/infix_dhcp/client_routes/client_routes.adoc +++ b/test/case/infix_dhcp/client_routes/client_routes.adoc @@ -1,3 +1,5 @@ +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 @@ -15,18 +17,9 @@ 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/client_routes/topology.svg[DHCP option 121 vs option 3 topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::client_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 +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) @@ -34,5 +27,3 @@ endif::topdoc[] . Verify client still has canary route to 20.0.0.0/24 via 192.168.0.2 -<<< - diff --git a/test/case/infix_dhcp/server_basic/server_basic.adoc b/test/case/infix_dhcp/server_basic/server_basic.adoc index 4bfe1620..48f1e80d 100644 --- a/test/case/infix_dhcp/server_basic/server_basic.adoc +++ b/test/case/infix_dhcp/server_basic/server_basic.adoc @@ -1,3 +1,5 @@ +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 @@ -7,18 +9,9 @@ other options are sent by checking, e.g., that the client has not set up a default route to the server. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/server_basic/topology.svg[DHCP Server Basic topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::server_basic/topology.svg[DHCP Server Basic topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP Server Basic topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +image::topology.svg[DHCP Server Basic 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 @@ -27,5 +20,3 @@ endif::topdoc[] . Verify DHCP client has no default route -<<< - diff --git a/test/case/infix_dhcp/server_host/server_host.adoc b/test/case/infix_dhcp/server_host/server_host.adoc index b6adf5ea..e52d9e09 100644 --- a/test/case/infix_dhcp/server_host/server_host.adoc +++ b/test/case/infix_dhcp/server_host/server_host.adoc @@ -1,3 +1,5 @@ +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, @@ -5,18 +7,9 @@ both hexadecimal and a very long string, ensuring no pool address is handed out instead. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/server_host/topology.svg[DHCP Server Static Host topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::server_host/topology.svg[DHCP Server Static Host topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP Server Static Host topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -27,5 +20,3 @@ endif::topdoc[] . Verify DHCP client2 has default gateway -<<< - diff --git a/test/case/infix_dhcp/server_subnets/server_subnets.adoc b/test/case/infix_dhcp/server_subnets/server_subnets.adoc index 99c1a865..688341f2 100644 --- a/test/case/infix_dhcp/server_subnets/server_subnets.adoc +++ b/test/case/infix_dhcp/server_subnets/server_subnets.adoc @@ -1,3 +1,5 @@ +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, @@ -6,17 +8,7 @@ subnet, and host-specific options are honored and do not leak between subnets. .Internal network setup, client2 and client3 are on the same LAN -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/server_subnets/dhcp-subnets.svg[Internal networks] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::server_subnets/dhcp-subnets.svg[Internal networks] -endif::testgroup[] -ifndef::testgroup[] -image::dhcp-subnets.svg[Internal networks] -endif::testgroup[] -endif::topdoc[] +image::dhcp-subnets.svg[align=center, scaledwidth=75%] To verify isolation of subnet settings, a few "decoys" are added to the configuration of each subnet. These are then checked for on each of the @@ -30,18 +22,9 @@ The test is concluded by the server trying to reach each client using ping of the hostname. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_dhcp/server_subnets/topology.svg[DHCP Server Multiple Subnets topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::server_subnets/topology.svg[DHCP Server Multiple Subnets topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[DHCP Server Multiple Subnets topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -55,5 +38,3 @@ endif::topdoc[] . Verify DHCP client3 has correct DNS and NTP server(s) -<<< - diff --git a/test/case/infix_dhcp/server_subnets/test.py b/test/case/infix_dhcp/server_subnets/test.py index 7b342cad..d7b380e4 100755 --- a/test/case/infix_dhcp/server_subnets/test.py +++ b/test/case/infix_dhcp/server_subnets/test.py @@ -7,7 +7,7 @@ subnet, and host-specific options are honored and do not leak between subnets. .Internal network setup, client2 and client3 are on the same LAN -image::dhcp-subnets.svg[Internal networks] +image::dhcp-subnets.svg[align=center, scaledwidth=75%] To verify isolation of subnet settings, a few "decoys" are added to the configuration of each subnet. These are then checked for on each of the diff --git a/test/case/infix_services/lldp/lldp_admin_status/lldp_admin_status.adoc b/test/case/infix_services/lldp/lldp_admin_status/lldp_admin_status.adoc index 24d351fe..25db2e79 100644 --- a/test/case/infix_services/lldp/lldp_admin_status/lldp_admin_status.adoc +++ b/test/case/infix_services/lldp/lldp_admin_status/lldp_admin_status.adoc @@ -1,20 +1,13 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_services/lldp/lldp_admin_status/topology.svg[LLDP admin status topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::lldp/lldp_admin_status/topology.svg[LLDP admin status topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[LLDP admin status topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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' @@ -23,5 +16,3 @@ endif::topdoc[] . Verify admin-status: 'tx-and-rx' -<<< - diff --git a/test/case/infix_services/lldp/lldp_enable_disable/lldp_enable_disable.adoc b/test/case/infix_services/lldp/lldp_enable_disable/lldp_enable_disable.adoc index 1884dedc..383c18a1 100644 --- a/test/case/infix_services/lldp/lldp_enable_disable/lldp_enable_disable.adoc +++ b/test/case/infix_services/lldp/lldp_enable_disable/lldp_enable_disable.adoc @@ -1,21 +1,14 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/lldp/lldp_enable_disable] + === LLDP enable disable ==== Description Verify that LLDP can be enabled and disabled. Operation and non-operation are confirmed using tcpdump. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_services/lldp/lldp_enable_disable/topology.svg[LLDP enable disable topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::lldp/lldp_enable_disable/topology.svg[LLDP enable disable topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[LLDP enable disable topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -24,5 +17,3 @@ endif::topdoc[] . Verify no LLDP packets on host:data -<<< - 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/lldp_ieee_group_forward.adoc index 7d9df613..8be24012 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/lldp_ieee_group_forward.adoc @@ -1,21 +1,14 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_services/lldp/lldp_ieee_group_forward/topology.svg[LLDP IEEE Group Forward topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::lldp/lldp_ieee_group_forward/topology.svg[LLDP IEEE Group Forward topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[LLDP IEEE Group Forward topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -23,5 +16,3 @@ endif::topdoc[] . Verify LLDP arrival on host:data2 -<<< - diff --git a/test/case/infix_services/mdns/mdns_allow_deny/mdns_allow_deny.adoc b/test/case/infix_services/mdns/mdns_allow_deny/mdns_allow_deny.adoc index 6fcb2732..e53e6398 100644 --- a/test/case/infix_services/mdns/mdns_allow_deny/mdns_allow_deny.adoc +++ b/test/case/infix_services/mdns/mdns_allow_deny/mdns_allow_deny.adoc @@ -1,3 +1,5 @@ +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 @@ -9,18 +11,9 @@ with three scenarios: 3. Allow p1 and p3, deny p2 and p3, traffic only on p1 ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_services/mdns/mdns_allow_deny/topology.svg[mDNS allow/deny interfaces topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::mdns/mdns_allow_deny/topology.svg[mDNS allow/deny interfaces topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[mDNS allow/deny interfaces topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -28,5 +21,3 @@ endif::topdoc[] . Allow mDNS on p1, p3 deny on p2, p3 -<<< - diff --git a/test/case/infix_services/mdns/mdns_enable_disable/mdns_enable_disable.adoc b/test/case/infix_services/mdns/mdns_enable_disable/mdns_enable_disable.adoc index 9a7b7ae0..7ef044e7 100644 --- a/test/case/infix_services/mdns/mdns_enable_disable/mdns_enable_disable.adoc +++ b/test/case/infix_services/mdns/mdns_enable_disable/mdns_enable_disable.adoc @@ -1,21 +1,14 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/infix_services/mdns/mdns_enable_disable] + === mDNS enable disable ==== Description Verify that mDNS can be enabled and disabled. Operation and non-operation are confirmed using tcpdump. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_services/mdns/mdns_enable_disable/topology.svg[mDNS enable disable topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::mdns/mdns_enable_disable/topology.svg[mDNS enable disable topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[mDNS enable disable topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -24,5 +17,3 @@ endif::topdoc[] . Verify on host:data there are no packets from 10.0.0.10:5354 (mDNS) -<<< - diff --git a/test/case/infix_services/ssh/ssh_key_authentication/ssh_key_authentication.adoc b/test/case/infix_services/ssh/ssh_key_authentication/ssh_key_authentication.adoc index 188121fb..138722bf 100644 --- a/test/case/infix_services/ssh/ssh_key_authentication/ssh_key_authentication.adoc +++ b/test/case/infix_services/ssh/ssh_key_authentication/ssh_key_authentication.adoc @@ -1,20 +1,13 @@ +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 -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_services/ssh/ssh_key_authentication/topology.svg[Generate ssh key pair topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ssh/ssh_key_authentication/topology.svg[Generate ssh key pair topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Generate ssh key pair topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -22,5 +15,3 @@ endif::topdoc[] . Verify it is possible to fetch syslog data using public key -<<< - diff --git a/test/case/infix_services/ssh/ssh_server_config/ssh_server_config.adoc b/test/case/infix_services/ssh/ssh_server_config/ssh_server_config.adoc index e5890611..d7eb730a 100644 --- a/test/case/infix_services/ssh/ssh_server_config/ssh_server_config.adoc +++ b/test/case/infix_services/ssh/ssh_server_config/ssh_server_config.adoc @@ -1,3 +1,5 @@ +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: @@ -6,18 +8,9 @@ Test SSH server functionality with pre-defined key pair: 3. Validate connectivity using static key pair. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/infix_services/ssh/ssh_server_config/topology.svg[SSH server configuration topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ssh/ssh_server_config/topology.svg[SSH server configuration topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[SSH server configuration topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -26,5 +19,3 @@ endif::topdoc[] . Disable SSH server -<<< - diff --git a/test/case/misc/operational_all/operational_all.adoc b/test/case/misc/operational_all/operational_all.adoc index e6c8e164..0baa6a21 100644 --- a/test/case/misc/operational_all/operational_all.adoc +++ b/test/case/misc/operational_all/operational_all.adoc @@ -1,24 +1,15 @@ +ifdef::topdoc[:imagesdir: {topdoc}../../test/case/misc/operational_all] + === Get operational ==== Description Basic test just to get operational from test-config without errors. ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/misc/operational_all/topology.svg[Get operational topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::operational_all/topology.svg[Get operational topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[Get operational topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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/ospf_container.adoc b/test/case/use_case/ospf_container/ospf_container.adoc index 09c9a60b..8907ddd4 100644 --- a/test/case/use_case/ospf_container/ospf_container.adoc +++ b/test/case/use_case/ospf_container/ospf_container.adoc @@ -1,3 +1,5 @@ +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 @@ -9,17 +11,7 @@ PC, which can act as a link breaker. .Use-case overview. [#img-overview] -ifdef::topdoc[] -image::{topdoc}../../test/case/use_case/ospf_container/overview.svg[] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_container/overview.svg[] -endif::testgroup[] -ifndef::testgroup[] image::overview.svg[] -endif::testgroup[] -endif::topdoc[] The DUTs are connected in a routed topology inside their own OSPF area. A single area border router (ABR) is used to access the controller @@ -50,17 +42,7 @@ second bridge, `br1`, only use IPv6 link-local addresses. .Internal network setup, here router R1 on subnet 10.1.1.1/24. [#img-setup] -ifdef::topdoc[] -image::{topdoc}../../test/case/use_case/ospf_container/internal-network.svg[Internal networks] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_container/internal-network.svg[Internal networks] -endif::testgroup[] -ifndef::testgroup[] image::internal-network.svg[Internal networks] -endif::testgroup[] -endif::topdoc[] - *Container A* runs a very basic web server, it runs on port 80 inside the container, and `br0`, but is accessible outside on port 8080. @@ -74,18 +56,9 @@ endif::topdoc[] will have a unique hostname derived from the chassis MAC address ==== Topology -ifdef::topdoc[] -image::{topdoc}../../test/case/use_case/ospf_container/topology.svg[OSPF Container topology] -endif::topdoc[] -ifndef::topdoc[] -ifdef::testgroup[] -image::ospf_container/topology.svg[OSPF Container topology] -endif::testgroup[] -ifndef::testgroup[] -image::topology.svg[OSPF Container topology] -endif::testgroup[] -endif::topdoc[] -==== Test sequence +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 @@ -94,5 +67,3 @@ endif::topdoc[] . Verify ABR:data can access container A on R3 (10.1.3.101) -<<< - diff --git a/test/spec/generate_spec.py b/test/spec/generate_spec.py index c557ce34..918b6b3e 100755 --- a/test/spec/generate_spec.py +++ b/test/spec/generate_spec.py @@ -12,32 +12,6 @@ from pathlib import Path import graphviz -def replace_image_tag(text, test_dir): - """ - Convert images added in the description and replace with the required ifdefs to work - generating the test specifcation as well. - """ - - pattern = r"image::(?P\S+)\[(?P