5G Roaming Architecture (SEPP / N32) in 5G NR
How 5G roams — Home-Routed vs Local Breakout, the SEPP and the protected N32 interface between operators, and the N9 user-plane between UPFs.
Roaming is what happens when your phone is served by one operator's network while your subscription lives in another. In 5G that split is not a bolt-on: the core is deliberately carved so that some functions run in the network you are visiting and some stay home, and the two halves talk across a single hardened border interface. Get that border and that split straight and 5G roaming stops being intimidating.
Introduction
Roaming in 5G is the set of architecture and security rules that let a subscriber of one operator (the home network) be served by another operator's network (the visited network) while both keep the guarantees they need — the home operator keeps authority over identity, keys, policy and charging, and the visited operator keeps control of its own radio and infrastructure. It is defined in TS 23.501 for the system architecture and TS 33.501 for the inter-operator security.
It matters because a roaming subscriber touches almost every part of the 5G Core: the visited AMF serves the UE, but authentication reaches back to the home AUSF/UDM, the session may be anchored at home or locally, and every message that crosses the operator boundary passes through a security proxy. Two questions structure the whole topic: where does the user's data break out (the two roaming models), and how do two networks that do not trust each other exchange control signalling safely (the SEPP/N32 border).
The single principle that never bends is that authentication always stays in the home network. Everything else is a design choice. This page walks the two roaming models, the visited/home function split, the guarded border, and the two cross-PLMN mechanisms — authentication and slice mapping — where "home keeps control" becomes concrete.
On this page
- Why 5G roaming is designed this way
- Two networks, one subscriber: VPLMN and HPLMN
- The two roaming models: Home-Routed vs Local Breakout
- Split functions: what runs visited, what stays home
- The SEPP and the N32 interface
- The roaming reference picture
- Authentication across networks and S-NSSAI mapping
- Summary
- Quick Q&A
Why 5G roaming is designed this way
In plain words: roaming is like using your bank card in a shop abroad. The foreign shop (visited network) can take your card and serve you, but it cannot check your PIN itself — it sends the request back to your own bank (home network), which alone knows your secret and approves the transaction. The shop never learns your PIN; it only gets a yes/no and a receipt. 5G builds exactly that separation into the network: the visited operator serves you, but only your home operator can prove who you are.
The reason for the split is asymmetric trust. The visited operator must never hold your long-term key material, because a subscriber's K compromised in one visited country would compromise them everywhere. Equally, the home operator must never lose control of who is allowed on and how they are charged, because it carries the commercial and regulatory liability for the subscription. So 5G draws the architecture along that trust boundary: identity and keys stay home, the radio and mobility anchor sit in the visited network, and everything in between is either kept home (Home-Routed) or delegated locally (Local Breakout) as a deliberate choice.
Two networks, one subscriber: VPLMN and HPLMN
When you roam, two operators are involved. The Home PLMN (HPLMN) is where your subscription lives — it owns your SUPI, your keys, your subscription profile and your policy. The Visited PLMN (VPLMN) is the network you are physically camped on: its radio, its AMF, and — depending on the roaming model — some or all of its user plane. The whole design problem of 5G roaming, defined in TS 23.501 for architecture and TS 33.501 for security, is how to let the VPLMN serve you while the HPLMN keeps ultimate authority over who you are and what you are allowed to do.
A UE registers through the VPLMN's AMF, but that AMF cannot authenticate the UE on its own — it has no keys. It must reach back into the HPLMN's AUSF and UDM to run authentication and fetch the subscription.
The visited operator must never hold your long-term key material, and the home operator must never lose control of authentication, policy and charging. Trust is asymmetric, so the architecture splits functions along that trust boundary.
Control-plane functions are split into visited and home halves (V-SMF/H-SMF, V-PCF/H-PCF) that talk across the inter-PLMN border through a Security Edge Protection Proxy (SEPP) at each network's edge, over the N32 interface.
The visited network is selected by PLMN selection: the UE reads the broadcast PLMN ID (MCC+MNC) in SIB1, compares candidate PLMNs against the operator-controlled and user-controlled roaming lists on the USIM (the preferred-PLMN files), and camps on the highest-priority permitted VPLMN. Only after it camps does it send a Registration Request containing its SUCI (or a stored 5G-GUTI), whose Home Network Identifier tells the visited AMF which HPLMN to reach for authentication.
The single most important principle to carry through this whole page: authentication always stays in the HPLMN. No matter where you roam, your identity is proven against your home operator's AUSF and UDM. Everything else — where your data breaks out, who sets QoS, how charging is done — is a design choice captured by the two roaming models below.
The two roaming models: Home-Routed vs Local Breakout
5G defines two ways to carry a roamer's user plane, and the difference is simply: where does the UE's traffic leave the mobile network and reach the data network?
In Home-Routed (HR) roaming, the user plane is dragged all the way back to the home network. The VPLMN provides the radio and a visited user-plane function (V-UPF), but that V-UPF does not exit to the internet — instead it tunnels the traffic over the inter-PLMN N9 interface to a home user-plane function (H-UPF), which is the true PDU session anchor and the point of exit to the data network. Session management is split: a V-SMF in the visited network handles the local leg and the V-UPF, while an H-SMF in the home network owns the session, allocates the UE's IP address, and selects the H-UPF. This is the model the home operator prefers when it wants to keep policy and charging control in its own hands, because all the traffic passes through equipment it owns.
In Local Breakout (LBO) roaming, the visited network breaks the traffic out to the data network locally. A single V-SMF in the VPLMN manages the whole session and selects a V-UPF that acts as the anchor and exits over N6 right there in the visited country. There is no inter-PLMN N9 and no H-UPF on the data path. Policy in this case is supplied by the V-PCF, which may consult the H-PCF across N32 for the home operator's policy inputs, but the packets themselves never go home. LBO gives lower latency and shorter paths — ideal for local internet access or edge services — at the cost of the home operator giving up direct sight of the user plane.
| Aspect | Home-Routed (HR) | Local Breakout (LBO) |
|---|---|---|
| User-plane exit point | H-UPF in the HPLMN, over N6 at home | V-UPF in the VPLMN, over N6 locally |
| Inter-PLMN user plane | Yes — V-UPF → H-UPF over N9 | None (no N9 between networks) |
Session anchor (PSA) | H-UPF (home) | V-UPF (visited) |
| Session management | Split: V-SMF + H-SMF | Single V-SMF |
| IP address allocation | By H-SMF / H-UPF (home IP) | By V-SMF / V-UPF (visited IP) |
| Policy control | H-PCF retains control via H-SMF | V-PCF locally, consulting H-PCF |
| Charging visibility | Home sees the user plane directly | Home relies on visited records |
| Latency / path | Longer — traffic hairpins home | Shorter — exits locally |
| Typical use | IMS/VoNR, services needing home control | Local internet, edge, low latency |
The one-line distinction: in Home-Routed the user plane goes back to the home UPF over N9, so the home operator keeps policy and charging control; in Local Breakout the visited UPF exits to the data network locally, so the path is short but the home operator loses direct user-plane sight.
Why the choice is often per-DNN, not per-subscriber: the model is selected per PDU session based on the DNN (Data Network Name) and S-NSSAI, using the subscription's roaming information from the UDM. That is why an operator can Home-Route IMS/VoNR (to keep charging and lawful-intercept at home) while allowing Local Breakout for plain internet on the same UE at the same time.
Split functions: what runs visited, what stays home
Roaming works because several 5GC functions come in a visited and a home flavour, connected across the border. Learn which is which, because the split is exactly where authority is drawn.
| Function | Visited (VPLMN) | Home (HPLMN) |
|---|---|---|
| Access & mobility | AMF — always in the VPLMN; terminates N1/N2, serves the UE locally | — (no home AMF) |
| Authentication | — | AUSF — always in the HPLMN; runs 5G-AKA/EAP-AKA' |
| Subscription & keys | — | UDM (+ UDR) — always home; owns SUPI and keys |
| Session management | V-SMF (HR and LBO) | H-SMF (HR only) |
| User plane | V-UPF | H-UPF (HR only, the anchor) |
| Policy | V-PCF | H-PCF |
| Slice selection | vNSSF — maps/selects slices locally | hNSSF — consulted for home slice mapping |
| Edge security proxy | SEPP (visited edge) | SEPP (home edge) |
Read the table top to bottom and the trust boundary becomes obvious. The AMF is always visited: it is where the UE actually attaches, so it has to be near the radio. The AUSF and UDM are always home: they hold your identity and keys, which never leave the HPLMN. The SMF, UPF and PCF are the ones that split, and how they split is exactly what distinguishes HR from LBO. The V-SMF exists in both models; the H-SMF and H-UPF appear only in Home-Routed, because only Home-Routed drags the session home.
Slice mapping across borders: a slice identifier (S-NSSAI) is only guaranteed meaningful within one PLMN. The vNSSF and hNSSF cooperate so that a home S-NSSAI can be mapped to an equivalent value the visited network actually offers — more on that below.
LTE ↔ NR: the visited/home split is not new — EPC roaming already had Home-Routed vs Local Breakout, with the S-GW in the visited network and the P-GW as the anchor (home for HR, visited for LBO), plus the home HSS holding keys. 5G renames and re-splits these (S-GW+P-GW control → V-SMF/H-SMF, user plane → V-UPF/H-UPF, HSS → UDM/AUSF) and, crucially, replaces the wide-open Diameter S6a/S9 interconnect with the SEPP-guarded N32 border.
The SEPP and the N32 interface: the guarded border
Two operator networks do not trust each other the way two functions inside one core do. So every message that crosses between a VPLMN and an HPLMN passes through a Security Edge Protection Proxy (SEPP) that sits at each network's edge. The SEPP is the only 5GC control-plane element exposed to the other operator: it hides the internal topology, applies security, and polices what may cross. Two SEPPs — one in each network — face each other across the N32 interface.
N32 has two distinct phases, and interviewers love to hear them named separately:
The control handshake. Before any traffic flows, the two SEPPs use N32-c to authenticate each other (mutual TLS), negotiate the security capabilities, agree the protection mechanism, and exchange the parameters (cipher suites, protection policies) for the session. It is a short, TLS-protected control channel.
The forwarding plane. Once N32-c has set things up, the actual inter-PLMN service messages (the reformatted HTTP/2 API calls between NFs) are carried over N32-f, protected message by message.
Two options exist. If the path is a direct TLS tunnel with no intermediary, TLS alone protects N32-f. If IPX providers sit in the path, PRINS (PRotocol for INter-network Security) applies application-layer JOSE protection (JSON signing/encryption) so intermediaries can mediate some fields without breaking the end-to-end integrity of the rest.
The PRINS mechanism is what makes 5G roaming security genuinely new. In earlier generations, an interconnect (IPX) provider between operators could see and alter signalling more or less freely — the root of many SS7/Diameter attacks. With PRINS, the originating SEPP reformats each message into a protected JSON object where sensitive information elements are encrypted and the whole thing is integrity-protected, while a defined subset of fields is left modifiable under a signed change record. An IPX provider can perform its legitimate mediation (rewriting only the permitted fields) and every change is recorded and verifiable by the receiving SEPP. Nothing else can be silently tampered with.
Two more SEPP duties are worth naming precisely. First, topology hiding: the SEPP rewrites internal NF identifiers (FQDNs, instance IDs) so the peer operator never learns the visited or home network's internal structure — it only ever addresses the SEPP. Second, the JOSE-protected message under PRINS is structured into cleartext, an encrypted block, and a modifiable block: only fields the roaming agreement marks as IPX-modifiable can be changed, and each change is appended as a signed "modifications" entry the receiving SEPP validates against the original before accepting.
Spec anchor: the roaming architecture and the SEPP/N32 reference points are defined in TS 23.501; the security of the inter-PLMN interface — N32-c, N32-f, PRINS, JOSE protection and IPX handling — is specified in TS 33.501.
| Interface | Between | Carries / purpose |
|---|---|---|
N32-c | V-SEPP ↔ H-SEPP | Control handshake: mutual TLS authentication, capability negotiation, agreeing the protection mechanism and parameters. Short-lived control channel. |
N32-f | V-SEPP ↔ H-SEPP | Forwarding of protected inter-PLMN service messages (reformatted HTTP/2 API calls). TLS-protected, or JOSE-protected under PRINS when IPX mediation is present. |
N9 | V-UPF ↔ H-UPF | Inter-PLMN user plane tunnel (GTP-U) in Home-Routed roaming, carrying subscriber data from the visited network to the home anchor. Absent in LBO. |
Note the clean division of labour: N32 (both -c and -f) is a control-plane border between the two SEPPs, while N9 is a user-plane border between the two UPFs. All the signalling between visited and home NFs — the AMF reaching the AUSF/UDM, the V-SMF reaching the H-SMF, the V-PCF reaching the H-PCF — is funnelled through the SEPPs over N32. Only Home-Routed adds the user-plane N9 alongside it.
Putting it together: the roaming reference picture
The diagram below shows the Home-Routed case, which is the richer of the two because it uses both the N32 control border and the N9 user-plane border. Follow the control plane across the top through the two SEPPs, and the user plane along the bottom from V-UPF to H-UPF and out to the data network. For Local Breakout, mentally delete the H-SMF, the H-UPF and the N9 link: the V-UPF would exit locally over its own N6.
AMF→AUSF/UDM, V-SMF→H-SMF, V-PCF→H-PCF) is funnelled through the two SEPPs over N32; the user plane runs V-UPF → H-UPF over N9 and exits at the home anchor over N6.Authentication across networks and S-NSSAI mapping
Two cross-PLMN mechanisms deserve a closer look, because they are where "the home network keeps control" becomes concrete: authentication and slice identity.
Authentication stays home. When a roaming UE registers, the visited AMF receives the registration but cannot verify the UE itself. It sends an authentication request across N32 (through the SEPPs) to the home AUSF, which works with the home UDM to run 5G-AKA or EAP-AKA'. The home network generates the challenge and checks the response; only after the AUSF confirms success does the visited AMF proceed. A further 5G refinement: the UE's permanent identity is never sent in the clear over the air — it presents a SUCI (a concealed form of the SUPI, encrypted with the home network's public key), and only the home network can de-conceal it back to the SUPI. So even the visited operator does not learn your permanent identifier until the home network chooses to reveal it. Keys and identity never leave the HPLMN; the VPLMN receives only derived, session-scoped key material for the local security context.
Concretely, the roaming authentication call is Nausf_UEAuthentication_Authenticate from the visited SEAF/AMF to the home AUSF, carrying the SUCI (or SUPI) and the serving-network name (SN name). Binding the SN name into RES* and the anchor key K_SEAF is what prevents one VPLMN from replaying a subscriber's authentication in a different VPLMN — the anchor the visited network receives is cryptographically tied to this VPLMN. The full vector exchange (5G HE AV → 5G SE AV, K_AUSF kept home, K_SEAF released on success) is detailed on the 5G-AKA page.
Home authority in one sentence: the visited AMF can serve you, but only the home AUSF/UDM can prove who you are — and it does so over the SEPP-protected N32 border, never by handing your keys to the visited network.
S-NSSAI mapping. A slice is identified by an S-NSSAI, but that value is only guaranteed to be meaningful within a single PLMN. Your home operator's S-NSSAI for, say, its enterprise slice may mean nothing — or something entirely different — in the visited network. So when you roam, the network performs slice mapping: the UE and the visited network work with the visited operator's S-NSSAI values, each associated with a mapped home S-NSSAI. The visited vNSSF, consulting the home hNSSF where needed, resolves which visited-network slice corresponds to each requested home slice, and this mapping is carried in the Allowed NSSAI along with its mapped home values. That way the UE gets an equivalent slice in the visited network while the home network's slice semantics are preserved for policy and charging.
An S-NSSAI itself is an 8-bit Slice/Service Type (SST) — with standardised values such as SST=1 (eMBB), 2 (URLLC) and 3 (MIoT) — optionally plus a 24-bit Slice Differentiator (SD). Because operators assign their own SD values (and often non-standard SST values), the same bits mean different services in different PLMNs, which is precisely why the vNSSF/hNSSF mapping is mandatory rather than optional when roaming.
Why mapping is needed: S-NSSAI values are PLMN-scoped. Roaming keeps a home S-NSSAI and a visited S-NSSAI side by side (the mapped pair), so the UE is served by a local slice that stands in for its home slice.
⚠ Common pitfalls / gotchas
- Treating
N32andN9as the same border.N32is control-plane (betweenSEPPs, always present);N9is user-plane (betweenUPFs, only in Home-Routed). Confusing them leads to expecting a user-plane path in LBO, where none exists between networks. - Assuming the VPLMN ever holds the subscriber's keys. It never does — it receives only
K_SEAF-derived, session-scoped material bound to its ownSN name. A stolen visited-network key cannot authenticate the subscriber elsewhere. - Forgetting
S-NSSAIis PLMN-scoped. Sending a homeS-NSSAIto the visited network without mapping yields a slice mismatch; the mapped pair inAllowed NSSAIis what makes it work. - Expecting PRINS everywhere.
PRINS/JOSEapplies only when IPX intermediaries need to mediate fields; a directSEPP-to-SEPPpath uses plain TLS onN32-f. - Overlooking that model choice is per-DNN/S-NSSAI. A single roaming UE can be Home-Routed for IMS and Local-Breakout for internet simultaneously; there is no one "roaming mode" for the whole device.
Summary
5G roaming rests on one immovable principle and one design choice. The principle: authentication and keys stay in the HPLMN — the visited AMF serves the UE but reaches the home AUSF/UDM to prove identity, over the SEPP-guarded N32 border, and never holds the subscriber's K. The choice: where the user plane breaks out — Home-Routed (back to the H-UPF over N9, home keeps policy/charging sight) or Local Breakout (out at the V-UPF locally, shorter path, less home visibility), selectable per DNN/S-NSSAI.
The function split makes the boundary concrete: AMF always visited; AUSF/UDM always home; SMF/UPF/PCF/NSSF split into visited and home halves, with the home halves (H-SMF/H-UPF) present only in Home-Routed. The SEPPs and N32 (control) plus N9 (user plane, HR only) are the only inter-operator paths, and PRINS/JOSE lets IPX intermediaries mediate only signed, permitted fields.
Finally, two cross-PLMN mechanisms show "home keeps control" in action: authentication is bound to the serving-network name so it cannot be replayed between VPLMNs, and S-NSSAI values — being PLMN-scoped — are mapped by the vNSSF/hNSSF so a visited slice can stand in for a home slice while home semantics survive for policy and charging.
Quick Q&A
The questions that separate reciting acronyms from understanding where the trust boundary actually sits.
Q. In one sentence, what is the difference between Home-Routed and Local Breakout roaming?
A. In Home-Routed the user plane is tunnelled back to the home UPF over N9 (so the home operator keeps policy and charging control); in Local Breakout the visited UPF exits to the data network locally with no inter-PLMN N9.
Q. Where does UE authentication happen when roaming, and why there?
A. Always in the HPLMN, at the AUSF together with the UDM. The visited AMF has no key material — it relays the authentication over N32 to the home network. Keys and the SUPI never leave the HPLMN; the UE presents a concealed SUCI that only the home network can de-conceal.
Q. What is the SEPP and what does the N32 interface do?
A. The SEPP is the Security Edge Protection Proxy at each network's edge — the only control-plane element exposed across the roaming border. N32 connects the two SEPPs: N32-c is the TLS control handshake (mutual authentication, capability and protection negotiation) and N32-f forwards the protected inter-PLMN service messages.
Q. What are PRINS and JOSE, and when do they apply?
A. When IPX intermediaries sit in the path, N32-f uses PRINS (PRotocol for INter-network Security), which applies JOSE (JSON signing/encryption) at the application layer so an IPX can mediate only a defined, signed subset of fields while everything else stays integrity-protected end to end. With a direct path, plain TLS protects N32-f instead.
Q. Which functions are split into visited/home halves, and which are always in one place?
A. Split: SMF (V-SMF/H-SMF), PCF (V-PCF/H-PCF), UPF (V-UPF/H-UPF) and NSSF (vNSSF/hNSSF). Always visited: the AMF. Always home: the AUSF and UDM. The H-SMF/H-UPF appear only in Home-Routed.
Q. Why does S-NSSAI need mapping across PLMNs?
A. Because S-NSSAI values are only meaningful within one PLMN. When roaming, the vNSSF (with the hNSSF) maps each requested home S-NSSAI to an equivalent visited S-NSSAI, and the mapped pair is carried in the Allowed NSSAI so the UE gets a local slice standing in for its home slice.
Where to go next
You now know the two roaming models, the visited/home function split, and the SEPP/N32 border that keeps two operators safely talking. To go deeper, follow the signalling and security threads that these interfaces depend on: