Skip to content

TEST · Runik

One YAML flow. CI-shaped results.

On-prem binary that drives 5G SA procedures. Same flow in the lab and in CI. Unsigned community floor: NGAP, SBI, REST, and JUnit, up to 1000 UE. PFCP and load are licensed — not on the unsigned binary. Runik workers are daemons that attach to a lab host.

1000
UE unsigned floor
JUnit
CI reports
YAML
declarative FSM
R16–18
3GPP

The problem

Testing the core is fragmented.

Most teams arrive with scripts, a load tool, and an appliance — each covering a slice, none living where the code does.

Hand-rolled scripts drift

Socket scripts give control but no structure. Reporting is reinvented per test, and NGAP and Diameter suites slowly stop agreeing.

Load vs conformance tools disagree

A conformance harness proves one UE took the right path; a load tool proves the AMF survives a thousand. Different tools mean different code paths.

Vendor appliances stay lab-only

Appliances cover what they ship, live behind a GUI, and never land in a PR or CI runner. Gaps need authoring you cannot do.

What it does

One model for every test.

A declarative state machine drives the wire. The same YAML runs in the lab and in CI. Load is licensed.

01

Declarative YAML flows

Each flow is a protocol FSM — states wait, transitions check, extract, then send. Six action types, fourteen check operators, schema-enforced at load.

02

Same flow in the lab and in CI

Same YAML for a single-UE check in the lab and in the pipeline. Load (high-rate bursts) is a licensed capability, not the unsigned floor.

03

Community wire protocols

NGAP, NAS, SBI, REST, plus GTP-U on the unsigned binary. PFCP is licensed — not a peer on the community floor.

04

Suites for composed tests

Ordered flow steps as one cycle: provision, run, tear down. stop_on_failure gates the cycle; always_run cleans up even on failure.

05

CI-shaped output

run-flow and run-suite exit 0 on pass, non-zero otherwise. Gate on exit code, or capture JSON/JUnit with -output.

06

GTP-U user plane

After PDU session setup, uplane_start arms N3 traffic and measures packets, bytes, RTT, jitter, and drop. Userspace or embedded DPDK.

Wire protocols

Community protocols, plus licensed PFCP.

Real 3GPP and IETF stacks, driven by the same FSM dispatcher. PFCP is licensed — not on the unsigned binary.

NGAPNASSBIRESTGTP-UPFCP · licensed

Next step

Put dflux Runik in your pipeline

Tell us what you're testing — or read the docs and run your first flow in about ten minutes.