mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 05:51:15 +02:00
test(e2e): live coverage for the switch cascade kernel datapath
Two switches cascaded through the link-owned veth pair, two c7200 routers per switch, real ICMP crossing both bridges: the pair is born UP with exactly one end per switch bridge, a dot1q trunk cascade carries two VLANs at once, the symmetric access/trunk mode flip on the cascade ends isolates and revives a VLAN in place (asymmetric flips are semantically broken — the access side egresses untagged into the far trunk's native PVID), a delay filter lands as netem on both ends (one per direction, RTT ~= 2x delay), suspend admin-downs both ends, and a link delete/re-create retires the whole pair and mints a new one under the new link id — zero host residue after the project goes.
This commit is contained in:
4 files changed
+304
No files matched your search
@@ -148,6 +148,17 @@ plus scripted reproduction rounds over the REST API):
|
||||
relay TAPs likewise stay enslaved across VLAN changes, with a real ping
|
||||
proving isolation and recovery.
|
||||
|
||||
The cascade has its own in-repo e2e
|
||||
(`tests/e2e/test_ethernet_switch_cascade.py`): two switches joined by the
|
||||
link-owned veth pair, two c7200 routers per switch, real ICMP crossing both
|
||||
bridges — the pair is born UP with exactly one end per bridge, a dot1q
|
||||
trunk cascade carries two VLANs at once, the symmetric access/trunk mode
|
||||
flip on the cascade ends isolates and revives a VLAN in place, a `delay`
|
||||
filter lands as netem on both ends (one per direction, RTT ≈ 2×delay),
|
||||
suspend admin-downs both ends, and a link delete/re-create retires the whole
|
||||
pair and mints a new one under the new link id — with zero host residue
|
||||
after the project goes.
|
||||
|
||||
The host-side checks throughout are the kernel's own view: bridge
|
||||
membership under `/sys/class/net/<bridge>/brif/`, the `master` link
|
||||
attribute, `bridge vlan show`, and live pings where the peer allows it.
|
||||
|
||||
Reference in new issue
Block a user