OFFLINE
Customer: - Max TPS: - Max Nodes: - Expiry: -
Active UEs: 0 Sessions: 0 Elapsed: 0s

Scenario Library

Loading scenarios...

Scenario Inspector

Click a scenario to inspect its definition

Active Scenario Execution

Trigger a scenario to begin load orchestration

Transaction Chart

Live Event Console Stream

[SYSTEM] Connecting to live event feed...

Active Agent Worker Grid

No active agents registered

System Configuration (system.json)


        

Product Overview & Architecture

The 5G Load Generator & Emulator is a carrier-grade performance validation platform. It is designed to simulate high-scale control-plane and user-plane traffic to evaluate the capacity, liveness, and performance bounds of 5G Core (5GC) and IP Multimedia Subsystem (IMS) Core network elements.

High-Scale Telemetry

The system utilizes a distributed signaling and user-plane media architecture that allows operators to generate tens of thousands of concurrent subscriber sessions and benchmark packets-per-second (PPS) and signaling metrics.

Functional Architecture

The platform separates test coordination logic from the execution plane to ensure clean horizontal scalability:

+-------------------------------------------------------------+
|                        MANAGER NODE                         |
|                                                             |
|   +------------------+     +----------------------------+   |
|   | Web HUD Console  | < > |  Northbound REST API       |   |
|   +------------------+     +----------------------------+   |
|                                         |                   |
|                                         v                   |
|                            +----------------------------+   |
|                            |      Test Coordinator      |   |
|                            +----------------------------+   |
+-----------------------------------------|-------------------+
                                          |
                         Orchestration    | (Control Loop)
                         +----------------+-----------------+
                         |                                   |
                         v                                   v
+------------------------+-----------+    +------------------+----------------+
|             LOAD AGENT             |    |             LOAD AGENT             |
|   - 5GMM / 5GSM state container    |    |   - 5GMM / 5GSM state container    |
|   - GTP-U User-plane engine        |    |   - GTP-U User-plane engine        |
|   - Dynamic Scenario runner        |    |   - Dynamic Scenario runner        |
+------------------------------------+    +------------------------------------+
  • Manager Node: The centralized control hub. It parses scenario configurations, schedules ramp-up flows, coordinates active Load Agents, and aggregates real-time performance KPI metrics into the dashboard.
  • Load Agent Node: The high-performance traffic generation worker. Agents run the virtual UE state containers, manage raw socket allocations, encapsulate user-plane data, and drive dynamic SIP/IMS call flows.

Standards Conformity

All signaling layers are implemented directly against 3GPP and IETF specifications to guarantee compliance with live core network standards:

  • 5G Core Control Plane: TS 24.501 (5GS Non-Access-Stratum signaling) and TS 38.413 (NG Application Protocol).
  • IMS Core Signaling: TS 24.229 (IP Multimedia Call Control Protocol), RFC 3261 (SIP), and RFC 4566 (SDP).

Deployment Models

The platform supports modular deployment options to accommodate diverse testing topologies - ranging from small-scale software verification labs to large-scale hardware benchmarking infrastructures.

Supported Platforms

  • Containerized Environments: Deploying Manager and Agent nodes as lightweight containers (Docker or Podman). This is the standard method for local validation and functional sanity tests.
  • Kubernetes Clusters: Deploying the platform across orchestration grids. Load Agents are spawned as distributed pods to benchmark core networks at maximum capacity.
  • Virtual Machines (VMs): Installing components on dedicated enterprise hypervisors (e.g., KVM or VMware ESXi) to match carrier-grade staging environments.
  • Bare-Metal Deployments: Running directly on native physical OS installations. This model is recommended to maximize packet processing throughput and bypass hypervisor I/O bottlenecks.

Shared Workspace Mounts

Regardless of the deployment model, host systems and guest engines must configure shared storage volumes. This ensures that scenario JSON files, execution logs, and diagnostic capture files are synchronized dynamically and are instantly available to the host operating system or version control.

Cryptographic Licensing System

The Manager Node enforces capacity controls dynamically at runtime via a cryptographically signed license file (typically named license.key). License checks operate in a fully offline model to prevent dependency on external licensing servers in secure laboratory networks.

Offline Validation Model

When the Manager Node initializes, it reads the license file and verifies its digital signature using an embedded public key (ECDSA signature validation). If the signature is invalid or fails verification, the Manager Node immediately halts startup.

License Key Properties

The verified license contains the following parameters enforced at runtime:

Property Description Enforcement Policy
customer_name Name of the licensed entity/organization. Displayed on the Web HUD dashboard for compliance tracking.
max_tps The maximum Transaction Per Second signaling rate allowed globally. If a scenario workflow configures a target rate higher than this value, the Manager rejects the run with a Forbidden error.
max_nodes The maximum number of parallel Load Agent workers allowed to register. Any additional Load Agent attempting to register beyond this node limit is blocked from joining the active cluster.
expiry The expiration date and timestamp of the license key. If the current system time exceeds this timestamp, the Manager disables scenario initiation and marks the license status as expired.

Binary Self-Signature Verification

For enhanced security when running in production mode, the Manager Node performs a strict self-integrity check on startup. It calculates the SHA-256 hash of its own executable and validates it against a cryptographically signed signature file (named <executable_name>.sig) using the embedded public key. If the signature is missing or verification fails, the binary halts immediately with exit status 9.

Licensing Command-Line Configuration

To start the Manager Node with a specific license key file, run the binary with the license flag:

# Start Manager Node with a custom license key
./manager -license /path/to/my_license.key

5G Control Plane Simulation

The signaling engine emulates the complete Non-Access-Stratum (NAS) and NG Application Protocol (NGAP) stacks to register virtual User Equipments (UEs) with the Access and Mobility Management Function (AMF).

1. NGAP Base Station Emulation

The Load Agent acts as a gNodeB base station, establishing physical Stream Control Transmission Protocol (SCTP) associations with target AMFs (standard port 38412). The SCTP engine binds to a single local IP address to establish standard 1-to-1 associations.

2. NAS 5GMM Mobility Management

Each virtual UE tracks its independent 5G Mobility Management state machine, progressing through the following states:

  • Idle: The UE session is unattached. No SCTP binding or NAS context exists.
  • Registering: The UE has initiated registration and is completing the handshake.
  • Authenticated: The 5G-AKA authentication challenge has been computed and answered successfully.
  • SecurityActive: Security Mode Control (SMC) has completed, and the NAS security context is active.
  • Registered: The UE has successfully established a security context and completed registration.
  • PduSessionRequested: PDU session establishment request has been transmitted.
  • PduSessionActive: PDU session has been established, and user-plane data paths are active.

The control plane handler coordinates sequential message exchanges, including Registration Request, handling the AMF's Authentication Challenge, executing Security Mode Control, and responding with Registration Complete.

3. 5G-AKA Security & Cryptography

To attach to commercial cores, the platform implements robust security standards:

  • SUCI/SUPI Structuring: Formulates the Subscription Concealed Identifier (SUCI) using the 3GPP Null-scheme protection profile (Scheme ID 0x00), forwarding the SUPI in plaintext inside the SUCI payload container for testing compliance.
  • Milenage Algorithm Suite: Calculates authentication responses (RES*), integrity keys (IK), and ciphering keys (CK) using Milenage parameters ($K$, $OPc$, and $AMF$) matching the simulated USIM configuration.
  • NAS Security Context: ciphers and integrity-protects subsequent NAS messages using 128-bit encryption (NEA2) and integrity (NIA2) algorithms.

Traffic Routing Modes (TUN vs. User Space)

The platform features two distinct traffic routing modes. This choice determines whether user-plane data routes through the host operating system kernel or executes entirely in user space.

KERNEL TUNNELED MODE (enable_tun: true)
+-----------------------+      +------------------+      +-------------------------+
| Sockets / Application | ---> |  TUN Interface   | ---> | Load Agent User-space   |
|   (e.g., Ping, Curl)  |      | (tun0000, 1520B) |      | (GTP-U Encapsulation)   |
+-----------------------+      +------------------+      +------------|------------+
                                                                      | (UDP 2152)
                                                                      v
                                                         [ Physical Network / N3 ]

USER-SPACE TUNNEL-LESS MODE (enable_tun: false)
+-------------------------------------------------+      +-------------------------+
| Dynamic Scenario Engine / Virtual Socket        | ---> | Load Agent User-space   |
|   (Inline UDP & TCP parsing in dynamic memory)  |      | (GTP-U Encapsulation)   |
+-------------------------------------------------+      +------------|------------+
                                                                      | (UDP 2152)
                                                                      v
                                                         [ Physical Network / N3 ]

1. Kernel Tunneled Mode (enable_tun: true)

In this mode, the Load Agent requests the operating system kernel to configure virtual network interfaces and Policy-Based Routing tables:

  • TUN Device Allocation: The agent creates a dedicated virtual TUN interface (e.g., tun0000 or ims0000) for each active subscriber PDU session, assigning it the IP address received from the core network.
  • Policy-Based Routing (PBR): To support scaling to thousands of concurrent UEs accessing identical destinations (e.g., the same P-CSCF IP or external web servers), the agent configures PBR. It runs shell commands to add source-based routing rules and default route tables:
    # Rule: Route traffic originating from the UE's IP through its custom routing table
    ip rule add from <UE_IP_ADDRESS> table <TABLE_ID>
    
    # Route: Default gateway for this custom table points to the UE's TUN interface
    ip route add default dev <TUN_INTERFACE_NAME> table <TABLE_ID>
  • Usage: Required when testing connectivity using external command line utilities (such as running ping or curl bound directly to the interface name).

2. User-Space Tunnel-less Mode (enable_tun: false or default)

For high-throughput signaling and media load testing, tunnel-less mode bypasses kernel interaction completely:

  • Zero Host Configurations: No Linux TUN interfaces are created on the host OS, and no system routing rules or policy tables are modified.
  • Virtual Socket Management: Sockets inside the Dynamic Scenario Engine are mapped to user-space virtual UDP sockets and TCP streams. Sockets serialize and parse IP packet payloads directly in memory.
  • GTP-U Encapsulation: Outbound payloads are wrapped with GTP-U headers (UDP port 2152) in-process and written directly onto the Agent's shared UDP socket, achieving maximum packet-per-second (PPS) rates by avoiding kernel context switching.

3. 3GPP QoS Rules & QFI Classification

Regardless of the routing mode, the Load Agent inspects 3GPP QoS rules returned during PDU Session negotiation and maps user plane traffic to target QoS Flow Identifiers (QFIs) on the GTP-U header:

  • QFI 1 (5QI 5): Non-GBR (Guaranteed Bit Rate) path used for SIP/IMS control signaling.
  • QFI 2 (5QI 65): GBR high-priority path established dynamically for conversational audio/video media packages.

VoNR & IMS Media Services

The platform emulates VoNR (Voice over New Radio) and ViNR (Video over New Radio) user-plane traffic alongside active call signaling.

1. SIP Gm Interface Security

The agent establishes IPsec Security Associations (SAs) over the Gm interface to secure IMS registrations and calling sessions. SAs are configured via Linux kernel XFRM frameworks, using ESP encapsulation. If administrative permissions are absent, the system falls back to plain SIP-Digest signaling.

2. SDP Negotiation & Call Control

The SIP transaction engine manages dialog lifecycles: REGISTER, INVITE, 180 Ringing, 200 OK, ACK, and BYE. During handshakes, Session Description Protocol (SDP) payloads negotiate media definitions (AMR-WB or AMR-NB voice profiles; H.264 video profiles).

3. RTP/SRTP Media Transmission

Upon call establishment, the media engine initiates bidirectional RTP or SRTP transmission loops. SRTP keys are derived dynamically from IMS-AKA security association keys. To simulate realistic media traffic, the RTP engine sends media packets at fixed intervals matching the codec specifications, maintaining jitter under 2ms.

4. IMS Supplementary Services Emulation

Rather than using hardcoded compiled logic, supplementary services are emulated dynamically inside the DYNAMIC_FLOW engine using flexible SIP message templates and variables:

  • Call Hold / Call Resume: Simulates hold states in active call dialogs (e.g. scenario.hold.resume.json) by transmitting re-INVITE templates with SDP media lines toggled to a=sendonly (to hold) and a=sendrecv (to resume), combined with start_media and stop_media action blocks.
  • Call Forwarding (SIP Redirection): Simulates forwarding unconditional scenarios (e.g. scenario.forward.json) using SIP redirection, where a forwarder UE intercepts the INVITE and returns a 302 Moved Temporarily response, directing the caller to initiate a new call leg.
  • Call Barring: Simulates user-profile restrictions (e.g. scenario.barring.json) by matching call details against local context variables and terminating blocked INVITEs with client failure responses.

Scenario Configuration & Schema

Orchestration runs are defined using structured JSON files. Scenarios specify targets, credentials, workload pacing, and the sequence of workflow steps.

1. Configuration Parsing Priority

The system utilizes a stratified configuration model to resolve settings. Values are loaded in the following order: pre-configured defaults -> JSON scenario parameters -> environment variables (e.g. AMF_ADDR, USIM_K, USIM_OPC).

2. Scenario JSON Structure

A standard scenario file is structured into the following sections:

  • targets: Core network ingress addresses (AMF IP/ports and P-CSCF endpoints).
  • subscribers: Configures IMSI/MSISDN ranges and USIM credentials ($K$, $OPc$, $AMF$).
  • workload: Rate limits (target TPS), concurrent UE limits, run duration limits, and the `enable_tun` toggle.
  • workflow: An ordered list of steps executed independently by each UE session.

3. Workflow Step Dictionary

The top-level workflow supports the following step definitions:

Step Type Parameters Description
5G_REGISTER None Performs 5G SA registration, executing authentication and security mode SMC loops.
5G_DEREGISTER None Detaches the UE from the 5G Core, releasing all session parameters.
PDU_SESSION_ESTABLISH pdu_session_id (int),
dnn (string)
Requests a PDU session. Sets up a TUN interface and PBR rules if enable_tun is true.
PDU_SESSION_RELEASE pdu_session_id (int) Releases the specified PDU session and cleans up routing mappings.
ICMP_PING destination (string),
count (int)
Runs a ping validation through the UE's PDU session (requires enable_tun: true).
HTTP_CURL url (string) Invokes a curl command bound to the UE's TUN interface to verify external HTTP connectivity (requires enable_tun: true).
WAIT duration (string) Pauses step execution for the UE (e.g. "5s", "100ms").
DYNAMIC_FLOW group_size (int),
role_mapping (object),
workflows (object)
Spawns a dynamic, multi-role signaling/media flow (e.g. VoNR calls).

Dynamic Scenarios (DYNAMIC_FLOW)

Dynamic scenarios allow operators to model custom signaling and media call flows using message templates and variables, rather than modifying compile-time code.

1. Orchestration Structure

A DYNAMIC_FLOW step groups UEs into logical clusters (using group_size) and maps them to distinct roles (e.g. one UE acts as the "caller", another as the "callee"). The workflows for each role execute in parallel, using variables to exchange parameters (such as contact URIs, media ports, and tags).

2. Flow Steps

Inside a role's workflow, you can define the following structural steps:

  • send: Transmits a raw message template (e.g. SIP REGISTER or INVITE). Supports dynamic variable interpolation using square brackets (e.g. [domain], [local_ip], [supi]).
  • recv: Blocks until a packet matching specific criteria (like status code 200 or 401) is received. Supports capture rules using regular expressions to extract parameters from headers or the message body and save them as variables.
  • wait: Pauses execution for the current role.
  • if: Evaluates a variable value and branches workflow execution dynamically.
  • comment: Adds text annotations within scenario files.

3. Dynamic Actions Dictionary

The action step executes specialized built-in modules. Below are the supported actions:

Action Name Parameters Description
generate_uuid None Generates a unique UUID and saves it to a specified variable (commonly used to populate Call-ID or branch strings).
generate_sip_auth / calc_auth_header method, uri, nonce, realm, algorithm, www_auth Calculates SIP authorization headers, resolving MD5 or USIM Milenage AKAv1-MD5 challenges.
setup_ipsec nonce, security_server, ipsec_mode Parses security parameters, derives keying material, and installs IPsec Security Associations in the kernel.
cleanup_ipsec None Uninstalls active IPsec SAs from the kernel routing table.
start_media remote_port, codec (AMR-WB / H264), use_srtp (true / false) Launches conversational audio or video media transmission and reception. Under enable_tun: false, traffic is routed through virtual sockets.
stop_media None Tears down all active audio and video media streams for the UE session.
set_variable name, value Binds a static or interpolated value to a local context variable.

Telemetry, Monitoring & Logs

The platform aggregates real-time performance data and offers diagnostic logs to help operators verify system liveness and troubleshoot failures.

1. Manager HUD Console

The Manager Node's web dashboard displays live operational telemetry. Key metrics tracked on the dashboard include:

  • Active UEs: Count of virtual UEs currently attached to the 5G Core.
  • Active Sessions: Count of active, established PDU user-plane sessions.
  • Signaling Rate: Real-time calculation of processed NAS/SIP messages per second (TPS).
  • RTP Throughput: Total volume of sent and received media packets (PPS).

2. Structured JSON Logging

All nodes write structured logs in JSON format to stdout. This enables operators to ingest logs directly into standard log aggregation stacks (e.g. Elasticsearch, Grafana Loki). Each log entry contains a timestamp, level (INFO, WARN, ERROR, DEBUG), component, and a contextual message.

Key logging components include:

  • scenario_runner: Logs overall scenario progress and state transitions.
  • nas: Logs 5G Mobility and Session management packet decoding and states.
  • sip: Logs SIP Gm transaction handshakes, registrations, and calling events.
  • transport: Logs SCTP socket statuses and GTP-U interface events.

3. Network Diagnostics (Packet Capture)

When verifying signaling flows or troubleshooting connection drops, operators can capture traffic directly on the Load Agent interfaces using standard utilities. Capturing files to the shared workspace automatically syncs them back to the host system for analysis:

# Capture SCTP signaling traffic on eth0 and write to a file
tcpdump -i eth0 -w /workspace/loadgen/diagnostics_control.pcap sctp

# Capture GTP-U user plane traffic on eth0
tcpdump -i eth0 -w /workspace/loadgen/diagnostics_media.pcap udp port 2152

Signaling Packet Capture (tcpdump)

Status: IDLE
Target: Load Agent Nodes (Interface: net1/eth0)

Available Capture Files

  • No captures found.