Skip to content

Standardise to DUT in integration tests#3536

Draft
snuffy22 wants to merge 17 commits into
ipspace:devfrom
snuffy22:dut-standardise
Draft

Standardise to DUT in integration tests#3536
snuffy22 wants to merge 17 commits into
ipspace:devfrom
snuffy22:dut-standardise

Conversation

@snuffy22

Copy link
Copy Markdown
Contributor

Make it slightly less guess work sometimes to identify which are the DUT by consistently naming them.

@snuffy22

Copy link
Copy Markdown
Contributor Author

Please note I am still yet to run all tests to confirm I have not broken anything.

@ipspace

ipspace commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Nice project, thank you! Please tell me when you're done, and I'll run FRR integration tests.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR standardizes “device under test” naming across integration topologies by renaming key nodes/groups/links to dut (and variants like dut_s1, dut_a, dut_c1) to make it easier to identify DUT roles consistently in test definitions.

Changes:

  • Renamed DUT nodes across many integration YAML topologies (VXLAN, VLAN, LAG/MLAG, EVPN, EIGRP, DHCP, initial scenarios).
  • Updated link endpoints and validation plugin references to match the new DUT node names.
  • Added a new VLAN integration plugin (31-dut_s2-native.py) to adjust native VLAN handling for a renamed probe/DUT scenario.

Reviewed changes

Copilot reviewed 44 out of 45 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
tests/integration/vxlan/02-vxlan-bridging-multinode.yml Rename DUT switches to dut_s1/dut_s2 and update VLAN links and OSPF validation references
tests/integration/vlan/70-vlan-1-trunk.yml Rename DUT switch from s1 to dut and update VLAN/link references
tests/integration/vlan/63-vlan-mixed-native.yml Rename DUT switch from s1 to dut and update VLAN/link and OSPF validation references
tests/integration/vlan/62-vlan-mixed-trunk.yml Rename DUT switch from s1 to dut and update VLAN/link and OSPF validation references
tests/integration/vlan/61-vlan-routed-native.yml Rename router-on-stick node from ros to dut and update validation references
tests/integration/vlan/52-vlan-vrf-lite.yml Rename DUT routers to dut_a/dut_b and update VLAN/link and validation references
tests/integration/vlan/51-vlan-routed-trunk.yml Rename router-on-stick node from ros to dut and update validation references
tests/integration/vlan/42-vlan-irb-native.yml Rename DUT switch from s1 to dut and update VLAN/link and validation references
tests/integration/vlan/41-vlan-bridge-native.yml Rename DUT switch from s1 to dut and update VLAN/link references
tests/integration/vlan/33-vlan-irb-trunk.yml Rename DUT switch from s1 to dut and update VLAN/link and validation references
tests/integration/vlan/32-vlan-bridge-trunk-router.yml Rename DUT switches to dut_s1/dut_s2 and update VLAN/link references
tests/integration/vlan/31-vlan-bridge-trunk.yml Rename DUT switches to dut_s1/dut_s2, update probe membership, and update VLAN/link references
tests/integration/vlan/31-dut_s2-native.py New integration plugin to modify trunk/native VLAN behavior for the renamed DUT/probe setup
tests/integration/vlan/23-vlan-mixed-multiple.yml Rename DUT switch from s1 to dut and update VLAN/link references
tests/integration/vlan/22-vlan-irb-multiple.yml Rename DUT switch from s1 to dut and update VLAN/link references
tests/integration/vlan/21-vlan-irb-single.yml Rename DUT switch from s1 to dut and update IDs, links, and validation references
tests/integration/vlan/02-vlan-bridge-multiple.yml Rename DUT switch from s1 to dut and update VLAN/link references
tests/integration/vlan/01-vlan-bridge-single.yml Rename DUT switch from s1 to dut and update VLAN/link references
tests/integration/lag/x-12-mlag-dual-cross.yml Rename MLAG DUT switches to dut_s1/dut_s2 and update LAG member links
tests/integration/lag/11-mlag-anycast.yml Rename MLAG DUT switches to dut_s1/dut_s2 and update LAG member links
tests/integration/lag/10-mlag.yml Rename MLAG DUT switches to dut_s1/dut_s2 and update LAG member links
tests/integration/initial/07-router.yml Rename single router node from r to dut and update links
tests/integration/initial/03-unnumbered.yml Rename router node from r to dut and update links
tests/integration/initial/02-loopback.yml Rename router node from r to dut and update routing static next-hop and links
tests/integration/initial/01-interfaces.yml Rename router node from r to dut and update routing static next-hop and links
tests/integration/evpn/x-03-vxlan-symmetric-irb-same-vendor.yml Rename EVPN/VXLAN DUT switches to dut_s1/dut_s2 and update validation references
tests/integration/evpn/41-vxlan-ipv6-bridging.yml Rename EVPN/VXLAN DUT switches to dut_s1/dut_s2 and update links and validation references
tests/integration/evpn/20-vxlan-irb-ospf.yml Rename EVPN/VXLAN DUT switches to dut_s1/dut_s2 and update VLAN links and nodes list
tests/integration/evpn/15-vxlan-ebgp-unnumbered.yml Rename DUT nodes to dut_l1/dut_spine and update EBGP validation references
tests/integration/evpn/14-vxlan-ebgp-ebgp.yml Rename DUT nodes to dut_l1/dut_spine and update multihop sessions and validation references
tests/integration/evpn/12-vxlan-ibgp-ebgp.yml Rename DUT nodes to dut_l1/dut_spine and update links and validation references
tests/integration/evpn/04-vxlan-central-routing.yml Rename DUT leaf/spine nodes to dut_l1/dut_l2/dut_spine and update validation references
tests/integration/evpn.multihoming/02-esi-lag-auto-id.yml Rename DUT switches to dut_s1/dut_s2 and update ESI-LAG links
tests/integration/evpn.multihoming/01-esi-lag.yml Rename DUT switches to dut_s1/dut_s2 and update ESI-LAG links
tests/integration/eigrp/02-eigrp-ipv6.yml Rename one router DUT from r1 to dut and update links/message
tests/integration/eigrp/01-eigrp-ipv4.yml Rename one router DUT from r1 to dut and update links/message
tests/integration/dhcp/32-ipv6-client-ospf.yml Rename DHCP client DUT nodes to dut_c1/dut_c2 and update link endpoints
tests/integration/dhcp/31-ipv4-client-ospf.yml Rename DHCP client DUT nodes to dut_c1/dut_c2 and update link endpoints
tests/integration/dhcp/21-ipv4-relay-vrf-global.yml Rename DHCP relay DUT node from relay to dut and update links
tests/integration/dhcp/12-ipv6-relay.yml Rename DHCP relay DUT node from relay to dut and update links
tests/integration/dhcp/11-ipv4-relay.yml Rename DHCP relay DUT node from relay to dut and update links
tests/integration/dhcp/04-ipv6-server.yml Rename DHCP server DUT node from server to dut and update link endpoints
tests/integration/dhcp/03-ipv4-server.yml Rename DHCP server DUT node from server to dut and update link endpoints
tests/integration/dhcp/02-ipv6-client.yml Rename DHCP client DUT nodes to dut_c1/dut_c2 and update node/link endpoints
tests/integration/dhcp/01-ipv4-client.yml Rename DHCP client DUT nodes to dut_c1/dut_c2 and update node/link endpoints

Comment thread tests/integration/vlan/51-vlan-routed-trunk.yml Outdated
Comment thread tests/integration/vlan/61-vlan-routed-native.yml Outdated
Comment thread tests/integration/vlan/52-vlan-vrf-lite.yml Outdated
Comment thread tests/integration/vlan/52-vlan-vrf-lite.yml Outdated
Comment thread tests/integration/vlan/42-vlan-irb-native.yml Outdated
Comment thread tests/integration/vlan/33-vlan-irb-trunk.yml Outdated
Comment thread tests/integration/initial/01-interfaces.yml
Comment thread tests/integration/initial/02-loopback.yml
@snuffy22

Copy link
Copy Markdown
Contributor Author

@ipspace is there a way to run these 6 integration tests locally ?

@ipspace

ipspace commented Jun 30, 2026

Copy link
Copy Markdown
Owner

@ipspace is there a way to run these 6 integration tests locally ?

I have an empty directory with symlinks to various integration test directories. Running a single integration test is thus as easy as:

$ export NETLAB_DEVICE=device
$ export NETLAB_PROVIDER=provider
$ netlab up path/to/test --validate

Obviously, you can also use -p and -d flags.

To run a series of tests for a platform, see https://netlab.tools/dev/integration-tests/#running-an-integration-test-suite

@snuffy22

Copy link
Copy Markdown
Contributor Author

yep , i'm aware of that.. I have made use of the device_module_test as well
I found what I was after.. directly under tests is the 'run-*` scripts to check for yamllint etc
Really need to check my eyes...

@snuffy22

snuffy22 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor Author

I have run all the following tests with FRR as the DUT.

(py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test initial

Pre-test cleanup: cleanup(ok)
09:03:22 initial/01-interfaces.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:03:32 initial/01a-scripts.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:03:48 initial/01b-startup-config.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:03:48 initial/02-loopback.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:03:55 initial/03-unnumbered.yml: create(ok) up(ok) config(ok) validate(SKIPPED) cleanup(ok) OK
09:03:59 initial/04-mtu.yml: create(ok) up(FAIL) cleanup(ok)
09:04:00 initial/05-host.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:04:38 initial/06-bridge.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:04:49 initial/07-router.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:04:56 initial/08-ra.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:05:37 initial/10-reload.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK

(py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test vlan

Pre-test cleanup:
09:09:45 vlan/01-vlan-bridge-single.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:09:50 vlan/02-vlan-bridge-multiple.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:10:00 vlan/21-vlan-irb-single.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:10:09 vlan/22-vlan-irb-multiple.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:10:16 vlan/23-vlan-mixed-multiple.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:10:27 vlan/31-vlan-bridge-trunk.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:11:39 vlan/32-vlan-bridge-trunk-router.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:11:44 vlan/33-vlan-irb-trunk.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:12:47 vlan/41-vlan-bridge-native.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:14:02 vlan/42-vlan-irb-native.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:15:05 vlan/51-vlan-routed-trunk.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:16:01 vlan/52-vlan-vrf-lite.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:16:45 vlan/61-vlan-routed-native.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:17:41 vlan/62-vlan-mixed-trunk.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:17:58 vlan/63-vlan-mixed-native.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:18:15 vlan/70-vlan-1-trunk.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK

(py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test vxlan

Pre-test cleanup:
09:19:05 vxlan/01-vxlan-bridging.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:19:21 vxlan/02-vxlan-bridging-multinode.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:19:37 vxlan/03-vxlan-irb.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:19:51 vxlan/04-vxlan-irb-ospf.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:20:48 vxlan/05-vxlan-router-stick.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:21:10 vxlan/07-vxlan-bridging-v6only.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:21:33 vxlan/08-vxlan-alt-vtep.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK

(py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test evpn

Pre-test cleanup:
09:22:39 evpn/01-vxlan-bridging.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:23:06 evpn/02-vxlan-asymmetric-irb.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:23:17 evpn/03-vxlan-symmetric-irb.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:23:40 evpn/04-vxlan-central-routing.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:24:02 evpn/05-vxlan-l3only.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:24:14 evpn/06-vxlan-bridging-vlan-bundle.yml: create(FAIL)
09:24:14 evpn/10-vxlan-rr.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:25:12 evpn/11-vxlan-ebgp.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:25:34 evpn/12-vxlan-ibgp-ebgp.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:25:42 evpn/13-vxlan-ebgp-allowas.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:25:50 evpn/14-vxlan-ebgp-ebgp.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:26:00 evpn/15-vxlan-ebgp-unnumbered.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:26:08 evpn/20-vxlan-irb-ospf.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:27:01 evpn/21-bgp-ce-router.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:27:22 evpn/22-ospf-ce-router.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:27:44 evpn/30-cs-bridging.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:28:05 evpn/41-vxlan-ipv6-bridging.yml: create(ok) up(ok) config(ok) validate(ok) cleanup(ok) OK
09:29:00 evpn/51-mpls-bridging.yml: create(FAIL)
09:29:00 evpn/52-mpls-asymmetric-irb.yml: create(FAIL)
09:29:01 evpn/53-evpn-l3only.yml: create(FAIL)
09:29:01 evpn/54-evpn-l3vpn.yml: create(FAIL)
09:29:01 evpn/61-sr-bridging.yml: create(FAIL)
(py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ 

@ipspace

ipspace commented Jun 30, 2026

Copy link
Copy Markdown
Owner

I have run all the following tests with FRR as the DUT.

Thank you. Just let me know when you're done with the changes, and I'll run the rest of the tests and merge it.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 45 out of 46 changed files in this pull request and generated 3 comments.

Comment on lines +28 to 33
- dut_c1:
ipv4: dhcp
c2:
dut_c2:
ipv4: dhcp
dhcp.client.default: False
server:
Comment on lines +29 to 34
- dut_c1:
ipv4: dhcp
c2:
dut_c2:
ipv4: dhcp
relay:
dhcp.server: server
Comment on lines +29 to 34
- dut_c1:
ipv4: dhcp
c2:
dut_c2:
ipv4: dhcp
relay:
dhcp.server: server
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants