diff --git a/Test/E2E/chain/stress.py b/Test/E2E/chain/stress.py index 275946a..5f8cee7 100644 --- a/Test/E2E/chain/stress.py +++ b/Test/E2E/chain/stress.py @@ -134,11 +134,11 @@ def _gate(min_frames=5, marte_rss=512.0, hub_rss=1024.0, zoom_p95=1000.0): # Single source + single hub; the load lands on the UDPStreamer serialise/send # path and is read back through one WS client (proc_perf measures marte). -# size: one float32 array, growing element count → bigger single-datagram packet. +# size: one float32 array, growing element count → bigger packet. _DS_SIZE = [ mk_stress(f"ds_size_{e}", "ds_signal_elements", e, [_source("src", 1, e)], gate=_gate()) - for e in (1000, 4000, 8000, 15000) # 4 KB → 60 KB packets (sub-64 KB cap) + for e in (1000, 4000, 8000, 15000) # 4 KB → 60 KB packets (original single-datagram cases) ] # Multi-fragment size cases: one float32 array large enough that the DATA packet @@ -162,7 +162,7 @@ _DS_SIZE += [ _DS_COUNT = [ mk_stress(f"ds_count_{n}", "ds_signal_count", n, [_source("src", n, 1000)], gate=_gate()) - for n in (1, 4, 8, 15) # 15*4 KB ≈ 60 KB packet (sub-64 KB cap) + for n in (1, 4, 8, 15) # 15*4 KB ≈ 60 KB packet (original single-datagram case) ] # clients (fan-out): one source, M subscriber hubs (ds_fanout shape). The @@ -231,8 +231,9 @@ def validate_case(c): f"(UDPStreamer max unicast clients)") if c["shape"] == "hub" and (st["clients"] < 1): errs.append(f"{c['id']}: hub clients must be >= 1") - # Single-datagram ceiling: keep each source's packet < 64 KB so it never - # needs reassembly (the deliverable-packet cap). + # Enforce 1 MiB deliverable cap (UDPS_CLIENT_MAX_PACKET_BYTES): each source's + # reassembled DATA payload must stay under this. Note: the size axis includes + # multi-fragment cases that intentionally exceed 64 KB (reassembled by UDPSClient). for src in c["sources"]: n_data = sum(1 for s in src["signals"] if not s["is_time"]) elem = max((s["elements"] for s in src["signals"]