PR #5 adds a PFCP/N4 integration test suite for the UPF. Against a freshly restarted UPF it
reports 22 failing checks across 12 of its 16 scenarios, reproducing the nine defects
below. --tag smoke exits 0, so the harness itself is healthy — these failures are the
suite doing its job.
Descriptions here are deliberately brief. Each scenario file opens with a
Scenario / Expected behaviour / Expected output docstring that says what it does, what a
correct UPF would do, and what a passing run prints — that is the fuller description.
To reproduce any of them:
cd ci-scripts/tests
sudo ./setup_env.sh # brings up the UPF and preflights
./run_scenarios.py --scenario <name> -v
Restart the UPF before comparing runs (docker compose -f docker-compose.yaml restart upf).
Deleted sessions leak their HTB classes and class ids are a hash of (SEID, QFI), so a dirty
UPF can let qos_rate_change pass by luck.
Related: PR #5 (the test suite).
PR #5 adds a PFCP/N4 integration test suite for the UPF. Against a freshly restarted UPF it
reports 22 failing checks across 12 of its 16 scenarios, reproducing the nine defects
below.
--tag smokeexits 0, so the harness itself is healthy — these failures are thesuite doing its job.
Descriptions here are deliberately brief. Each scenario file opens with a
Scenario / Expected behaviour / Expected outputdocstring that says what it does, what acorrect UPF would do, and what a passing run prints — that is the fuller description.
To reproduce any of them:
Restart the UPF before comparing runs (
docker compose -f docker-compose.yaml restart upf).Deleted sessions leak their HTB classes and class ids are a hash of (SEID, QFI), so a dirty
UPF can let
qos_rate_changepass by luck.Related: PR #5 (the test suite).