Partner Training

PureLoad 5G Core Training

Partner training materials for testing 5G Service-Based Interfaces. Learn to simulate AMF, UDM, AUSF with HTTP/2 and TLS.

Quick Start (15-Minute Demo)

New to PureLoad? Start with our guided demo that walks through a complete AMF/UDM/AUSF authentication flow with TLS encryption.

What You'll Learn

  • 5G Core SBA basics (HTTP/2 + TLS)
  • Simulating AMF as client
  • AUSF/UDM as servers
  • 5G-AKA authentication flow

Demo Environment

SSH: pureload@192.168.122.10

API: http://192.168.122.10:8089

VM Specs: 40GB RAM, 30GB disk, KVM

Full Training Course (60 Minutes)

ModuleDurationContent
5G Core SBA Overview5 minHTTP/2, TLS, Service-Based Interfaces vs 4G SS7/Diameter
Live Demo15 minRun AMF/UDM/AUSF simulation, analyze results
Hands-On Exercise20 minModify IMSI, add delays, re-run tests
Scale Testing15 minLoad testing with 5,000 parallel flows
Integration5 minREST API and CI/CD integration

AMF/UDM/AUSF Authentication Flow

Simulate a complete 5G-AKA authentication with TLS encryption on all HTTP/2 connections.

Network Functions

  • AMF (Client) — initiates authentication on 172.16.178.10
  • AUSF (Server, port 29509) — handles 5G-AKA authentication
  • UDM (Server, port 29503) — provides subscriber NSSAI data

Call Flow Diagram

┌─────────┐         TLS:29509          ┌─────────┐         TLS:29503          ┌─────────┐
│   AMF   │  ═══════════════════════════►│  AUSF   │                              │   UDM   │
│ (Client)│  ◄═══════════════════════════│ (Server)│                              │ (Server)│
│172.16.  │                              │172.16.  │                              │172.16.  │
│178.10   │                              │178.10   │                              │178.10   │
└────┬────┘                              └─────────┘                              └────┬────┘
     │                                                                                  │
     │  1. POST /nausf-auth/v1/ue-authentications                                       │
     │     Body: {supiOrSuci, servingNetworkName}                                       │
     │  ═══════════════════════════════════════════►                                     │
     │                                                                                  │
     │  ◄═══════════════════════════════════════════                                    │
     │     200 OK {authResult, kseaf}                                                   │
     │                                                                                  │
     │  2. PUT /nausf-auth/v1/ue-authentications/{suci}/5g-aka-confirmation             │
     │     Body: {resStar}                                                              │
     │  ════════════════════════════════════════════►                                    │
     │                                                                                  │
     │  ◄════════════════════════════════════════════                                   │
     │     200 OK {authResult, supi, kseaf}                                             │
     │                                                                                  │
     │  3. GET /nudm-sdm/v1/imsi-2089300007487/nssai?plmnid=20893                       │
     │  ═══════════════════════════════════════════════════════════════════════════════►  │
     │                                                                                  │
     │  ◄══════════════════════════════════════════════════════════════════════════════  │
     │     200 OK {deliveryStatus: "DELIVERED_TO_UE"}                                   │

Authentication Details

ParameterValue
SUCIsuci-0-208-93-0-0-0-00007487
SUPI/IMSIimsi-2089300007487
PLMN20893 (MCC=208, MNC=93)
Serving Network5G:mnc093.mcc208.3gppnetwork.org
RES*d242094fcb1394c2d2856ea0a60f3d1f
KSEAF058758e6b642d35042058016c673a8318c2c031c5d4cdbef19ef1df36a213ba8

Simulation Results

Overall Statistics

MetricValueStatus
Tasks Executed10
Success Rate100% (10/10)
Failed Tasks0
Timeout Tasks0
Tasks/Second0.88
Transactions4 (3 auth + 1 SDM)
Transactions/Second0.35
Data Volume10.5 kbits

Per-Scenario Breakdown

NFResponse TimeTransactionsRole
AMF832 ms3Client (initiates requests)
UDM7,059 ms1Server (SDM responses)
AUSF11,316 ms0Server (auth responses)

REST API Integration

Create and Run Simulation

# Create simulation from template
curl -s -X POST -H 'Content-Type: application/json' \
  -d '{"name":"AMF Test","templatePath":"/v1/template/100"}' \
  http://192.168.122.10:8089/v1/simulation

# Start execution
curl -s -X PUT -H 'Content-Type: application/json' \
  -d '{"state":"Running"}' \
  http://192.168.122.10:8089/v1/simulation/100

# Get results
curl -s http://192.168.122.10:8089/v1/simulation/100/resulttotals

Python Integration Example

import requests
import time

def run_amf_auth_test():
    # Create simulation
    response = requests.post(
        'http://192.168.122.10:8089/v1/simulation',
        json={
            'name': 'Automated AMF Test',
            'templatePath': '/v1/template/100'
        }
    )
    sim_id = response.json()['id']
    
    # Start it
    requests.put(
        f'http://192.168.122.10:8089/v1/simulation/{sim_id}',
        json={'state': 'Running'}
    )
    
    # Poll for completion
    while True:
        status = requests.get(
            f'http://192.168.122.10:8089/v1/simulation/{sim_id}'
        ).json()
        if status['state'] == 'Done':
            return requests.get(
                f'http://192.168.122.10:8089/v1/simulation/{sim_id}/resulttotals'
            ).json()
        time.sleep(5)

CI/CD Integration (GitHub Actions)

name: 5G Core Test
on: [push]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Run PureLoad Simulation
        run: |
          RESULT=$(curl -s http://test-env:8089/v1/simulation/100/resulttotals)
          OK_RATE=$(echo $RESULT | jq '.percentageOK')
          if [ "$OK_RATE" != "100" ]; then exit 1; fi

Scale Testing

Same authentication flow, but with 5,000 parallel instances at 100 TPS.

FeatureFunctionalLoad
Instances15,000
Distributionburstrampup
Duration~10 sec60 sec
Rate~1 TPS100 TPS
PurposeValidate flowTest capacity

Proves: PureLoad scales from single requests to thousands. Same PLC logic, different parameters. Production-ready load patterns.

Hands-On Exercises

Exercise 1: Modify IMSI

Change the SUCI/IMSI in the PLC file and re-run.

Before: imsi-2089300007487

After: imsi-2089300009999

Question: Does UDM respond differently? Why?

Exercise 2: Add Delay

Introduce latency to see impact on metrics.

Change: Sleep 10s → 30s in AUSF

Observe: Response time, TPS changes

Verify: Success rate remains 100%

What This Proves to Partners

1. NF Development Testing

Test your AMF against realistic AUSF/UDM without real 5G core deployment.

2. Integration Testing

Connect PureLoad to your real NFs. Validate interfaces before production.

3. Load & Capacity Testing

1 → 5,000 → 50,000 parallel flows. Find breaking points before launch.

4. Failure Scenario Testing

Simulate slow/failing peers. Test retry logic and timeouts.

5G Core Terminology

TermDefinition
AMFAccess and Mobility Management Function
AUSFAuthentication Server Function
UDMUnified Data Management
SBIService-Based Interface (HTTP/2 API between NFs)
SUCISubscription Concealed Identifier (encrypted IMSI)
SUPISubscription Permanent Identifier (IMSI)
5G-AKA5G Authentication and Key Agreement
KSEAFKey for Security Anchor Function
NSSAINetwork Slice Selection Assistance Information
PLCPureLoad Configuration (XML test definition)

Support & Resources

Files from Today's Session

  • PARTNER_TRAINING_KIT.md — 60-minute training guide
  • PARTNER_DEMO_SCRIPT.md — 15-minute demo script
  • PARTNER_PRESENTATION.md — 14-slide deck
  • AMF_UDM_AUSF_KDDIv_Functional_TLS.plc — TLS test (24,190 bytes)
  • AMF_UDM_AUSF_KDDIv_Load.plc — Load test variant

VM Environment

Host: 192.168.122.10

User: pureload

Specs: KVM VM, 40GB RAM, Ubuntu 22.04.5 LTS

Service: simulation-control on port 8089

Training Checklist

  1. Run the 15-minute demo
  2. Complete hands-on exercises
  3. Plan API/CI-CD integration
  4. Schedule advanced training (custom protocols)