Network functions
The four core dflux TinyCore processes (plus optional NSSF and SMSF), the 3GPP functions each one combines, and the interfaces it owns.
DMF — Management Function (AMF + SMF)
The DMF combines the AMF (Access and Mobility Management Function) and the SMF (Session Management Function) in one process. The AMF↔SMF interface (N11 / Namf-Nsmf) is an in-process call, not a wire protocol.
- Owns: UE registration and connection management, NAS signaling, NGAP toward the gNB, and the full PDU session lifecycle (create/modify/release), including UPF control.
- Interfaces: N1 (NAS, with the UE), N2 (NGAP/SCTP, with the gNB), N4 (PFCP, to the UPF), and SBI toward the DPF and NRF.
- Default ports: SBI
:8081, N2/SCTP:38412, N4/PFCP:8805/udp. - Consumes: Nausf (authentication), Nudm (subscription / UE context), and Npcf (policy) from the DPF.
See Registration & authentication, PDU sessions, and the d3x-core-dmf CLI reference.
DPF — Policy Function (AUSF + UDM + UDR + PCF)
The DPF combines the AUSF (Authentication Server), UDM (Unified Data Management), UDR (Unified Data Repository), and PCF (Policy Control Function). The interfaces between them — N8, N10, N12, N13 — are in-process; UDM and PCF read subscriber data from the UDR directly.
- Owns: UE authentication (5G-AKA), subscriber data and the subscription store, UE context management, and policy for PDU sessions. It is the source of truth for who is allowed on the network.
- Interfaces: SBI toward the DMF (Nausf, Nudm, Npcf) and the NRF.
- Default port:
:8082(HTTP/2 cleartext). - Stores: in-memory, SQLite, or Postgres. Test subscribers can be seeded on startup.
See Subscribers, Provisioning subscribers, and the d3x-core-dpf CLI reference.
NRF — Network Repository Function
The NRF is standalone. It is the registry every other NF registers with at startup and queries to discover its peers.
- Owns: NF registration, discovery, heartbeats, and notification subscriptions for the DMF, DPF, and any external NFs. It can also issue OAuth2 access tokens for SBI calls.
- Interfaces: Nnrf over SBI to all other NFs.
- Default port:
:8080(HTTP). Optional TLS and mTLS. - Stores: in-memory, SQLite, or Postgres.
See NF discovery and the d3x-core-nrf CLI reference.
UPF — User Plane Function
The UPF is standalone and carries user traffic. It is programmed by the SMF over N4 and is the only NF in the data path once a session is up.
- Owns: packet forwarding between the radio side (N3/GTP-U) and the data network (N6), UE IP-address allocation from its pools, and per-DNN routing.
- Interfaces: N4 (PFCP, from the SMF), N3 (GTP-U, from the gNB), N6 (to the data network, via a TUN in the userspace datapath).
- Default ports / settings: N4/PFCP
:8805/udp, metrics:9095, N3/GTP-U:2152(userspace datapath), node-idupf.local, default DNNinternet, default UE pool10.45.0.0/16.
See User plane, UPF datapath, and the d3x-core-upf CLI reference.
Optional NFs — NSSF and SMSF
Beyond the four core processes, dflux TinyCore ships two optional network functions you can add to a lab when you need them. Both run as their own process, register with the NRF, and are discovered like any other producer.
- NSSF — Network Slice Selection Function (default port
:8084). Resolves the allowed and configured NSSAI for a UE so the AMF can select the right slice at registration; it registers with the NRF and reads subscribed-NSSAI from the UDR. See the d3x-core-nssf CLI reference. - SMSF — SMS Function (default port
:8083). Delivers SMS over NAS: it registers with the NRF, registers itself in the UDM (Nudm_UECM), and drives mobile-terminated delivery through the AMF over Namf N1N2. See the d3x-core-smsf CLI reference.