Category: 3GPP Implementations
What This Project Implements
These reference tools implement parts of the 3GPP 5G Multicast Broadcast Services (MBS) feature. They are aimed at developers and integrators who want to run and inspect MBS delivery over a 5G Core, using multicast and broadcast to send the same media to many devices at once. To try the tools hands-on, see the Tutorials.
- 5GC: 5G Core network. NG-RAN: the 5G radio access network. UE: User Equipment (the device).
- MBSF / MBSTF: MBS Function (control) and MBS Transport Function (media data plane), the two MBS User Services network functions.
- MB-SMF / MB-UPF: the multicast/broadcast versions of the Session Management Function and User Plane Function in the 5G Core.
- AF / AS: the Application Function and Application Server on the MBS Application Provider side.
- TMGI: Temporary Mobile Group Identifier, the identifier for an MBS session. SSM: Source-Specific Multicast address.
- FLUTE / ALC: File Delivery over Unidirectional Transport, carried in Asynchronous Layered Coding packets, used to send files one-way.
- PFCP: Packet Forwarding Control Protocol (control between MB-SMF and MB-UPF). GTP-U: the user-plane tunnelling protocol between core and RAN.
- PTM: Point-to-Multipoint delivery. NTN: Non-Terrestrial Network (satellite) access.
- MRB: MBS Radio Bearer, the radio bearer carrying broadcast traffic. MCCH / MTCH: the MBS Control and Traffic logical channels — MCCH announces the live sessions over the air, MTCH carries their content. G-RNTI: the group radio identity a session's MTCH is scheduled on.
In the context of 3GPP standards, the Multicast Broadcast Services System, MBS System, is designed to support multicast and broadcast services in 5G networks. It introduces a flexible architecture that supports both Multicast (for specific groups with high reliability) and Broadcast (for wide-area distribution to all users), allowing the network to dynamically switch between point-to-point and point-to-multipoint delivery. While the MBS System handles the heavy lifting of moving data through the 5G core and radio, MBS User Services defines how that content is actually packaged, discovered, and consumed by the end-user's application.
Technical documentation providing context to this project can be found in the link below.
Tech: Multicast and Broadcast Services in 5G Networks
Relevant specifications are listed below.
Standards: 5G Multicast Broadcast Services
Standards: Multimedia Delivery Protocols
The complete MBS Broadcast delivery chain: the MBS Application Provider side, the MBS User Services network functions (MBSF, MBSTF), the 5GC (MB-SMF, MB-UPF, AMF), the NG-RAN (gNB), and the UE side (modem, MBSF Client and MBS-Aware Application). MBS Multicast is not yet implemented.
High-level architecture
Architecture as defined by 3GPP TS 23.247 (system architecture) and TS 26.502 (user services), with the repository implementing each part.
Application providerTS 26.502
Reference pointsNmb10Nmb8
MBS User ServicesTS 26.502, TS 26.517
Reference pointsNmb2Nmb1Nmb9MBS-4-MC
5G CoreTS 23.247
Reference pointsN4mbN6mbN3mbN19mbN16mbNmb5N29mbNamf_MBSBroadcast
NG-RANTS 38.300 family
Reference pointsN2 (NGAP)E1APF1APUu (MCCH/MTCH)
UETS 26.502, TS 38.331
Reference pointsUuMBS-4-MCMBS-6MBS-7
Implementation state is derived from the per-feature audit below.
The chain above is the MBS Broadcast delivery mode. MBS Multicast (UE session join via the SMF, PTP/PTM switching, group paging) is defined by the same architecture but is not yet implemented in any component.
Implementation status
Every functional entity in the MBS Broadcast chain is audited per feature against its defining specifications. Each section below is split into plainly labelled groups, so you can jump straight to the component you care about.
This describes the development branches of the MBS User Services repositories and the 5mbs-development branches of the Open5GS and srsRAN forks as of 2026-08-12, including the changes currently in review. It is a source-level reading of the code against the specification text, backed by live end-to-end testing of the MBS Broadcast delivery chain (portal → MBSF → MBSTF → MB-SMF/MB-UPF → gNB → UE → MBSF Client → MBS-Aware Application), not a maintainer sign-off.
The tools currently implement the MBS Broadcast delivery mode end-to-end. The MBS Multicast delivery mode (UE session join via the SMF, PTP/PTM switching, group paging) is not yet implemented in any component of the chain — the MB-SMF/MB-UPF multicast data path (N6mb ingest, shared GTP-U delivery) exists, but the session-join control plane does not.
TS 29.580MBSF services at Nmb1014/18
| Feature | Status | Notes |
|---|---|---|
| MBS User Service: create (POST `/mbs-user-services`) | Yes | |
| MBS User Service: retrieve individual (GET `.../{userServiceId}`) | Yes | |
| MBS User Service: retrieve collection (GET `/mbs-user-services`) | No | rejected as an invalid resource; the portal keeps its own registry instead |
| MBS User Service: update (PUT) | Yes | |
| MBS User Service: modify (PATCH, RFC 7396) | Hold | pending Standards#182 (issue #45) — use PUT |
| MBS User Service: delete | Yes | |
| CreateMBSUserDataIngSession (POST `/sessions`) | Yes | |
| RetrieveIndMBSUserDataIngSession (GET `.../{sessionId}`) | Yes | |
| RetrieveMBSUserDataIngSessions (GET `/sessions`) | No | same collection-endpoint gap as above |
| UpdateIndMBSUserDataIngSession (PUT) | Yes | with the §5.3.2.4.2 update rules enforced: create-only attributes (`mbsSessionId`, `mbsDistSessionId`, `locationDependent`) protected; INACTIVE-only attributes (`objDistrInfo`, `pckDistrInfo`, `maxContBitRate`, ...) rejected while active; any-time attributes (`mbsServInfo`, `tgtServAreas`, `extTgtServAreas`, `nrRedCapUeInfo`, ...) applied live |
| ModifyIndMBSUserDataIngSession (PATCH, RFC 7396) | Hold | same as above |
| DeleteIndMBSUserDataIngSession | Yes | |
| Scheduled activation (`actPeriods` / `actPeriodsRepRule`, mutually exclusive) | Yes | |
| CreateMBSUserDataIngStatSubsc (POST `/status-subscriptions`) | Yes | |
| RetrieveMBSUserDataIngStatSubscs / RetrieveInd (GET) | Yes | returned objects carry no id of their own — see Standards#191 |
| UpdateIndMBSUserDataIngStatSubsc (PUT) / ModifyInd (PATCH) | Yes | |
| DeleteMBSUserDataIngStatSubsc | Yes | |
| MBSUserDataIngStatNotif (notification to the provider callback URL, §6.2.5) | Yes |
TS 26.502 / TS 26.517MBS User Services procedures and formats8/11
| Feature | Where | Status | Notes |
|---|---|---|---|
| Service Announcement mode `PASSED_BACK` — bundle handed back to the Application Provider at Nmb10 for out-of-band distribution (not delivered over any MBS reference point) | MBSF | Yes | |
| Service Announcement mode `VIA_MBS_DISTRIBUTION_SESSION` — MBSF's own broadcast announcement carousel, delivered **over MBS-4-MC** (multicast/broadcast) on a fixed, configurable SSM address/port | MBSF generates + MBSTF transmits; MBSF Client receives | Yes | |
| Service Announcement mode `VIA_MBS_5` — unicast retrieval by the client **over MBS-5** | — | No | no MBS-5 network API |
| User Service Description bundle, `multipart/related` (TS 26.517 §5.3.1A): `UserServiceDescriptions` document plus one SDP per Distribution Session | MBSF generates; MBSF Client decomposes and parses | Yes | including document version ordering (§5.2.2) and relative Content-Location resolution (RFC 2557) |
| `ServiceScheduleDescription` activation time windows (§5.2.7) | MBSF Client | Yes | |
| Session Description / SDP for FLUTE sessions (§6.2.2): `m=` FLUTE lines, `flute-tsi`, SSM `source-filter`, `mbs-servicetype`, timing | MBSF generates; MBSF Client parses | Yes | multi-session SDPs supported |
| Object distribution method over FLUTE, per the TS 26.346 Download profile (§6.2), delivered over **MBS-4-MC** | MBSTF transmit; MBSF Client receive (both via rt-libflute) | Yes | see the [rt-libflute audit](/reference-tools/multimedia/scope) for the transport-layer detail, including the Raptor FEC gap |
| MBS-6 / MBS-7 exposure to the MBS-Aware Application | MBSF Client | Yes | as local HTTP APIs: list announced services, activate/deactivate reception, inspect the received-content store, fetch received objects at their original Content-Location paths |
| MBS-Aware Application | rt-mbs-application | Yes | dashboard: announced services with play/deactivate, received-object cache, decomposed announcement bundle |
| MBS-4-UC (unicast object repair) | — | No | no unicast repair path; also outside TS 29.581's own scope |
| File repair / reception reporting (associated delivery procedures) | — | No |
TS 29.581MBSTF distribution session services at Nmb211/14
| Feature | Status | Notes |
|---|---|---|
| Create Distribution Session (POST `/dist-sessions`) | Yes | |
| Retrieve Distribution Session (GET `.../{distSessionRef}`) | Yes | |
| Update Distribution Session (PATCH, RFC 6902 JSON Patch) | Yes | state-only activate/deactivate and reconfiguration |
| Destroy Distribution Session (DELETE) | Yes | |
| StatusSubscribe / StatusUnsubscribe (`.../subscriptions`) | Yes | create, update, delete |
| StatusNotify (events to the MBSF callback) | Yes | failed notifications retried, not dropped |
| Object distribution method: `SINGLE` operating mode, pull and push acquisition (per-session push-ingest endpoint advertised as `objIngestBaseUrl`) | Yes | |
| Object distribution method: `STREAMING` operating mode (MPEG-DASH MPD, live profile, pull and push) | Yes | |
| Object distribution method: `CAROUSEL` operating mode (`application/3gpp-mbs-object-manifest+json`; runs the Service Announcement channel) | Yes | |
| Object distribution method: `COLLECTION` operating mode | No | |
| Streaming manifest types other than MPEG-DASH MPD (e.g. HLS) | No | delivered as plain objects, not parsed for scheduling |
| Packet distribution method: `PACKET_FORWARD_ONLY` and `PACKET_PROXY` operating modes | Yes | |
| FLUTE/ALC delivery towards the MB-UPF at Nmb9 (unicast UDP tunnel to the MB-SMF-assigned ingress address, path-MTU detection) | Yes | |
| AL-FEC beyond Compact No-Code (Raptor, mandatory for download receivers per TS 26.346 §7.2.2) | No | in the transmission path (available in rt-libflute; not yet wired in) |
TS 29.532MB-SMF session management services at Nmb15/6
| Feature | Status | Notes |
|---|---|---|
| Nmbsmf_TMGI: Allocate (including refresh of previously allocated TMGIs) | Yes | |
| Nmbsmf_TMGI: Deallocate (specific list or all; TMGIs referenced by a live MBS session are protected) | Yes | |
| Nmbsmf_MBSSession: Create (broadcast service type) | Yes | |
| Nmbsmf_MBSSession: Update (§5.3.2.3, activity status) | Yes | |
| Nmbsmf_MBSSession: Release | Yes | |
| Nmbsmf_MBSSession: StatusSubscribe / StatusNotify | No |
TS 29.518Namf_MBSBroadcast2/4
| Feature | Status | Notes |
|---|---|---|
| ContextCreate (§5.6.2.2) — drives NGAP Broadcast Session Setup towards the gNB | Yes | |
| ContextUpdate (broadcast session modification) | No | |
| ContextRelease — drives NGAP Broadcast Session Release | Yes | |
| ContextStatusNotify | No |
TS 29.244N4mb PFCP3/4
| Feature | Status | Notes |
|---|---|---|
| PFCP Session Establishment / Modification / Deletion with the Release-17 MBS IEs | Yes | |
| Local Ingress Tunnel (§8.2.209; the Nmb9 ingest address returned to the MBSF) | Yes | |
| Common TEID / FSSM shared-delivery forwarding behaviour (§8.2.207, §5.34.2.2) | Yes | |
| PFCP Session Report for MBS sessions | No |
TS 38.413NGAP broadcast procedures2/5
| Feature | Status | Notes |
|---|---|---|
| Broadcast Session Setup (Request/Response, with the MBS Session Setup Request Transfer carrying TMGI and shared-delivery tunnel information) | Yes | on both ends, dynamically (no pre-provisioned session configuration required) |
| Broadcast Session Release | Yes | on both ends |
| Broadcast Session Modification | No | |
| Broadcast Session Release Required (gNB-initiated) | No | |
| Distribution Setup/Release, Multicast Session Activation/Deactivation/Update, Multicast Group Paging | No | multicast mode |
TS 38.463 / TS 38.473E1AP and F1AP broadcast contexts5/7
| Feature | Status | Notes |
|---|---|---|
| E1AP BC Bearer Context Setup (with failure reporting) | Yes | |
| E1AP BC Bearer Context Modification (per-MRB F1-U tunnel information) | Yes | |
| E1AP BC Bearer Context Release | Yes | |
| F1AP Broadcast Context Setup (with per-MRB setup-failure reporting) | Yes | |
| F1AP Broadcast Context Release | Yes | |
| F1AP Broadcast Context Modification | No | session reconfiguration is handled DU-internally |
| E1AP MC Bearer Context / F1AP multicast procedures | No | multicast mode |
TS 38.331 / TS 38.321 / TS 38.322 / TS 38.323Uu broadcast radio protocols14/16
| Feature | gNB (transmit) | UE (receive) | Notes |
|---|---|---|---|
| SIB20 (MCCH configuration, TS 38.331) | Yes | Yes | |
| MCCH: MBSBroadcastConfiguration-r17 covering every live session's MRBs, transmission windows | Yes | Yes | UE (receive): with periodic re-acquisition, so sessions created later are still discovered |
| MCCH change notification (DCI 4-0) | Yes | N/A | |
| MTCH scheduling / reception per session G-RNTI, concurrent sessions independently served | Yes | Yes | UE (receive): multiple simultaneous G-RNTIs, per-G-RNTI HARQ state |
| MRB LCID management | Yes | Yes | gNB (transmit): DU-wide unique LCIDs across concurrent sessions; UE (receive): All MRBs of all advertised sessions wired |
| RLC-UM (TS 38.322) | Yes | Yes | |
| PDCP broadcast MRB (TS 38.323; 18-bit SN) | Yes | Yes | UE (receive): with the §5.2.1 SN-based receive-window bootstrap (a UE tuning in mid-stream has no COUNT synchronisation) |
| Delivery of received multicast IP to the MBSF Client | N/A | Yes | UE (receive): TUN interface |
| Multicast MRBs, PTP/PTM switching, MBS Interest Indication, group paging | No | No |
User plane path
| Segment | Between | Status |
|---|---|---|
| Nmb8 object ingest (pull or push) | MBS Application Provider → MBSTF | Implemented |
| Nmb9 FLUTE/ALC unicast tunnel | MBSTF → MB-UPF | Implemented |
| N6mb direct multicast ingest (alternative to the MBSTF path) | AF/AS → MB-UPF | Implemented |
| N3mb shared GTP-U delivery, with the mandatory PDU Session Container extension header (TS 38.415) on every downlink G-PDU | MB-UPF → gNB(s) | Implemented |
| Uu PTM broadcast (MCCH/MTCH) | gNB → UEs | Implemented |
| MBS-4-MC FLUTE reception (including a raw-capture relay for software TUN radio links) | UE → MBSF Client | Implemented |
Out of scope today (all components)
- MBS Multicast delivery mode (TS 23.247): multicast session join via the SMF, PTP/PTM switching, group paging — see the caution above.
- MB-PCF policy control (TS 29.537), NEF exposure (TS 29.522 / Nmb5), MBS security (TS 33.501 traffic keys — delivery is unprotected), charging (TS 32.279).
- MBS-specific NRF NFDiscovery query extensions (TS 29.510) — standard NF registration/discovery is used; discovery by TMGI or MBS-session parameters is not.
- Location-dependent (multi-area) MBS sessions and Xn mobility / service continuity.
Getting Started
To try the tools hands-on, follow the Tutorials: they cover the two ways to provision the 5GC (direct MBS core functions, or via the 5GC Service Consumers libraries), the Docker-Compose deployment, and the individual MBSF/MBSTF walkthroughs. For the source code, packages and releases behind each component, see Resources; for the specification background, see Standards: 5G Multicast Broadcast Services.
Roadmap
This page tracks the roadmap for the 5G Multicast Broadcast Services (5MBS) reference tools. The work is organised into two workstreams that build on each other: first the 5G Core (5GC) functions (MB-SMF, MB-UPF, AMF and basic multicast support), then the MBS User Services layer (MBSF, MBSTF and the MBS Application Function/Application Server) that runs on top of them.
General Project Roadmap
The Kanban board below tracks the planned and in-progress work for the 5G Multicast Broadcast Services (5MBS) reference tools (5G Core multicast functions and the MBS User Services layer). It is maintained live on GitHub.
Developer Kanban Boards
5MBS: 5G Core functions
Initial implementation of MB-SMF, MB-UPF, AMF and basic multicast support in the 5G Core
5MBS: MBS User Services
Initial implementation of MBSF, MBSTF, MBS AF and MBS AS for supporting media multicast/broadcast. This builds on top of the 5G Core functions indicated above.
Related
- Resources
- Tutorials
- Standards: 5G Multicast Broadcast Services — the full specification list for this topic
- Standards: Multimedia Delivery Protocols — the FLUTE transport under the Object distribution method, and why it is FLUTE version 1
- Tech: Multicast and Broadcast Services in 5G Networks — the three-layer architecture (user service, 5G Core, NG-RAN) and the reference points the tools implement
- Tech: Non-Terrestrial Networks — deploying MBS over satellite access, with the MBS Multicast over NTN and MBS Broadcast over NTN analyses