Register a UE and open a session
Drive a simulated gNB through the lab core to perform NGSetup, register a UE with 5G-AKA, and establish a PDU session.
With the lab core up, the next step is to put a gNB in front of it and watch a UE come on the network. dflux TinyCore uses dflux Runner as the gNB simulator: it speaks real NGAP over SCTP to the DMF on N2, runs a UE through the 5G-AKA authentication exchange, and asks for a PDU session. For the protocol background, see Registration and authentication and PDU sessions.
dmf still resolve.1. Identities must match on both sides
Authentication only succeeds if the UE the gNB simulator presents is one the core actually knows, with the same secret keys. There are two sources of truth, and they are kept in sync deliberately:
- The DPF seed. The lab DPF runs with
-seed, which loads five test subscribers (imsi-001010000000001throughimsi-001010000000005) using the canonical open5gs test vectors — key465B5CE8B199B49FAA5F0A2EE238A6BC, OPcE8ED289DEBA952E4283B54E88E6183CA, PLMN001/01. Subscribers 1–4 authenticate with 5G-AKA; subscriber 5 is provisioned for EAP-AKA′. - The gNB simulator subscribers.
deploy/lab/config/lab-subscribers.yamldeclares the first three of those SUPIs (in dashed formimsi-001-01-0000000001through…0003) with the same key/OPc, so the UE dflux Runner drives presents credentials the DPF can verify.
The PLMN, TAC, and slice must line up too. The DMF is started with -plmn 001-01 -tac 000001 -sst 1, and deploy/lab/config/lab-gnb.yaml advertises exactly that PLMN/TAC/slice and dials the DMF by its Compose service name on N2:
lab-subscribers.yaml without provisioning the same
subscriber in the DPF and authentication fails. Change the PLMN/TAC/slice in
lab-gnb.yaml away from the DMF flags and NGSetup or registration is rejected before
you ever reach 5G-AKA. To add your own subscribers, see
Provisioning subscribers.2. Run a registration with dflux Runner
Point dflux Runner at the lab gNB config and a seeded subscriber. The registration flow drives NGSetup, UE registration, 5G-AKA, and PDU session establishment. Join the lab Compose network so the peer address dmf in lab-gnb.yaml resolves:
If you run Runner as a container on the lab bridge, mount the same config directory and pass the same flags. The gNB config's peers entry uses the Compose DNS name dmf on port 38412; a native DMF instead wants 127.0.0.1:38412 — see Connect a gNB.
3. What to watch
Read the Runner output for the pass/fail of each step. Then tail the DMF to follow the flow from the core's side — you will see the NGSetup handshake, the UE's registration request, the authentication challenge and response (5G-AKA), and the PDU session establishment that hands off to the UPF over PFCP:
A seeded SUPI such as imsi-001010000000001 (compact form; the same digits as imsi-001-01-0000000001 in the Runner YAML) should complete registration and leave an active PDU session on the stub UPF.
Where to go next
At this point a UE has authenticated and the core has set up a PDU session — but in the default lab the UPF datapath is a stub, so no real packets move. To make the UPF forward traffic, see Forward user-plane traffic. To connect a real gNB instead of the simulator, see Connecting a gNB.