test(e2e): relay filters shape real traffic on both relay engines

Extend the docker and IOU relay negative controls with the filters the
relay itself supports (delay, frequency_drop, bpf), asserted through real
ICMP — the first live coverage of the relay filter path:

* bridge engine (docker): delay 100 grows the RTT by ~200 ms and comes
  back on clear; frequency_drop 2 kills the round trips (the filter counts
  every packet crossing the bridge, both directions sharing one counter,
  so on an alternating ping stream one whole direction dies; verified
  against uBridge directly), frequency_drop -1 blackholes, and bpf drops
  by libpcap expression ('icmp', then 'greater 150' discriminating by
  frame size).
* iol_bridge engine (IOU): the same delay and frequency_drop effects
  through the port's iol_bridge filter list, plus the available_filters
  spot check.

Docker 33 s, IOU 168 s, both green.
This commit is contained in:
YueGuobin committed 2026-10-06 00:21:10 +08:00
1 parent 4fc0398423
commit 9d937802d5
5 files changed
+94 -11

No files matched your search

+4 -3
View File
@@ -465,9 +465,10 @@ L2-anchor spec §E assertions (no L3 identity, forwarding ports, idle
silence with the guests' links down), the filter matrix one type at a time
(netem core and extensions, cls_bpf match-drop, the eBPF classifier, each
asserted through real traffic), suspend, capture, link delete/re-create,
container stop/start, a relay negative control, and the relay→kernel
upgrade on project reopen (the datapath choice is flipped across a server
restart). The container image is digest-pinned and pulled through the
container stop/start, a relay negative control — whose own filters
(delay/frequency_drop/bpf) are asserted to really shape the relay wire as
uBridge userspace bridge filters — and the relay→kernel upgrade on project
reopen (the datapath choice is flipped across a server restart). The container image is digest-pinned and pulled through the
server's own pull route on a cache miss, so collaborators test the same
bytes.
+2 -1
View File
@@ -148,7 +148,8 @@ IOU routers** (`tests/e2e/test_iou_kernel_datapath.py`, pytest marker
the server's telnet console, driving anchors-born-with-the-node, real ICMP
through the port bridge, netem delay, suspend, capture, link
delete/re-create, node stop/start rewiring, the serial link staying on the
relay, and a relay negative control.
relay, and a relay negative control whose real `delay`/`frequency_drop`
filters ride the port's `iol_bridge add_packet_filter` list.
The uBridge side passed its own 30/30 (`tests/iol/test_tap_anchor.py` in the
fork), including the DOWN-anchor resilience and kernel-bridge interop this