4. Method

4.1 Suite composition

Twelve suites, 4,668 checks: framework authentication, console dashboard,
security, capacity and cap enforcement, licence API, console UI behaviour, gated
local-AAA admission, simulated CPE (onboarding, traffic, QoS, churn), DORA
in-rush, dataplane, forwarding performance, and unauthenticated admission.

4.2 Pre-flight gate

The run does not start until twelve conditions hold. This is quoted verbatim
from the launch output because reproducibility depends on it:

===== 1/3 licence unit =====
  License state: VALID  (valid: true, 36500 days remaining)
===== 2/3 drain sessions to zero =====
  start: 0        final: 0
===== 3/3 launch gate =====
  OK   licence VALID          OK   grant 25000
  OK   cap 25000              OK   0 sessions
  OK   vpp connected          OK   status ok
  OK   aaa open               OK   Bronze shaped
  OK   pool /17               OK   captive portal set
  OK   access iface           OK   uplink iface
GATE: PASS
  BUNDLE_VERSION=1.4.0-13
  sha=9a12835 dirty=False

Two of these deserve explanation. Sessions are drained to zero explicitly
because a reboot does not clear them — the controller persists sessions and
restores them with their original timestamps, so a previous run's fleet would
silently become this run's starting condition. And the Bronze plan's rates are
verified
because a cancelled run can leave the plan unshaped, which would make
every QoS result in §5.6 meaningless while still looking plausible.

4.3 Parameters

Subscribers 5,000
Requested onboarding rate 200/s (900/s for the in-rush phases)
Success threshold 0.95
Churn duration 300 s
Churn fraction 0.5
Traffic direction bidirectional

4.4 Reproducibility

The platform ran bundle 1.4.0-13 from commit 9a12835 with a clean working
tree. Run 699 used identical parameters to runs 696 and 698 on the same
hardware, which is what makes the three-run comparison in §3.1 meaningful.