Which specifications the code is judged against: the latest Release 19 issue of each: for MBS User Services, 3GPP TS 26.502 V19.5.0, TS 26.517 V19.2.0, TS 29.580 V19.6.0 and TS 29.581 V19.3.0; for MBS, TS 23.247 V19.3.0 with TS 29.532 V19.3.0, TS 29.518 V19.8.0 and TS 29.244 V19.6.0, and for NG-RAN TS 38.300, TS 38.331, TS 38.413 and TS 38.473 V19.4.0. The code mostly follows Release 18; what each component is built against is given under Components, and Release 19 additions it does not have count as not implemented.
MBS User Services: 41 requirements in 396 cases: 267 implemented, 72 differ from the specification, 51 not implemented, and 6 where the specification contradicts itself.
MBS (5G System and NG-RAN): 63 requirements in 296 cases, grouped as TS 23.247 groups its procedures:
Source of this page: a code audit of the repositories on 2026-10-03: each requirement split into the cases its clause defines, each case checked against the code, then every case that is not implemented, and a third of the others, re-checked by a second reader. The FLUTE library (rt-libflute) is audited separately.
For what the specifications define, see the Technical Analysis. For how to run the tools, see the Tutorials.
The MBS User Services architecture of TS 26.502, with the parts the Reference Tools provide and the status of each reference point.
MBS User ServicesMBS User Services network architecture, with Reference Tools statusBased on 3GPP TS 26.502 V19.5.0, figure 4.2.2-1; status from the code audit of 2026-10-03, judged against Release 19
Click a figure to enlarge it.
Filter by component; open a feature, then a requirement.
MBS User Services, Release 19 (latest issues): TS 26.502 V19.5.0, TS 26.517 V19.2.0, TS 29.580 V19.6.0, TS 29.581 V19.3.0, TS 26.346 V19.3.0, with TS 29.500 V19.7.1 and TS 33.246 V19.0.0 where cases quote them.
MBSF (MBS Function): rt-mbs-function. Built against: 5G_APIs tag TSG111-Rel18 (meson options fiveg_api_release=18, fiveg_api_approval=111, latest_apis=false): Nmbsf MBSUserService 1.1.0, MBSUserDataIngestSession 1.1.2 (TS 29.580 V18.7.0), Nmbstf 1.1.1 (TS 29.581 V18.6.0), MBS User Service Announcement 2.1.0 (TS 26.517 V18.3.0), Object Manifest 2.0.0; OpenAPI generator 7.23.0. The audit judges against the latest Release 19 issues: Nmbsf against TS 29.580 V19.6.0 (MBSUserService 1.2.0, MBSUserDataIngestSession 1.2.2), Nmbstf against TS 29.581 V19.3.0 (1.2.1), the announcement against TS 26.517 V19.2.0 (MBS User Service Announcement 2.2.2), and TS 26.502 V19.5.0 and TS 23.247 V19.3.0.
MBSTF (MBS Transport Function): rt-mbs-transport-function. Built against: 5G_APIs tag TSG111-Rel18 (meson options fiveg_api_release=18, fiveg_api_approval=111, latest_apis=false), OpenAPI generator 7.23.0; rt-libflute through its wrap, not pinned to a release tag. The audit judges against the latest Release 19 issues: TS 29.581 V19.3.0 (Nmbstf 1.2.1), TS 26.502 V19.5.0 and TS 26.517 V19.2.0.
MBS Client (MBS Client (UE)): rt-mbs-client. Built against: Hand-written announcement parsing against TS 26.517 V18.6.0 Annex A.2 (no generated OpenAPI); CMake, C++17; rt-libflute as a submodule; MBS-5 path 3gpp-mbs-user-service-discovery/v1; conformance profile urn:3GPP:26517:17:baseline. The audit judges against the latest Release 19 issues: TS 26.502 V19.5.0, TS 26.517 V19.2.0, TS 26.346 V19.3.0 and TS 33.246 V19.0.0.
MBS-Aware App (MBS-Aware Application (dashboard)): rt-mbs-application. Built against: Node.js 18 or later; Express 4, dash.js 5, hls.js 1; uses the MBS Client local API, no 3GPP API version pinned. The audit judges against TS 26.502 V19.5.0, the latest Release 19 issue.
Provider (MBS Application Provider (portal)): rt-mbs-application-provider. Built against: Node.js 18 or later; Express 4; Nmbsf paths nmbsf-mbs-us/v1 and nmbsf-mbs-ud-ingest/v1 over HTTP/2 with prior knowledge; no OpenAPI version pinned in code. The audit judges against the latest Release 19 issues: TS 29.580 V19.6.0, TS 29.500 V19.7.1, TS 26.502 V19.5.0 and TS 26.517 V19.2.0.
Source: code read in each repository, nothing built or run for the verdicts, 2026-10-03.
267 of 396 implemented · 72 differ · 51 absent · 6 where the specification is inconsistentcases, over 41 requirements
✓ Implemented≠ Differs from the specification– Absent? Specification inconsistent: its text and its OpenAPI or tables disagreei Noted: observed, not a verdict against a clauseMBS User Service provisioning (Nmb10)The MBSF serves every resource and method of both Nmbsf APIs, with the required attributes, update rules (except that two attributes are also applied outside the INACTIVE state), conditional requests and notifications; the enhanced PATCH body that TS 29.580 V18.8.0 adds is later than the pinned V18.7.0 and is noted, not judged. Four of the sixteen status events are never raised, two are raised at a different point than the procedure gives, and the life-cycle differs at deactivation, at expiry and in when MBS System resources are reserved. The Application Provider portal uses both APIs with the required attributes, but sends response-only and immutable attributes in its requests, offers no form to add or remove a Distribution Session within an ingest session (its API passes such requests through), and connects without TLS.95 of 123 implemented · 19 differ · 9 absent
Nmbsf_MBSUserService API (Nmb10)MBSF · User Services (Rel-19)rt-mbs-function11 of 11 implemented
Nmbsf_MBSUserDataIngestSession sessions (Nmb10)MBSF · User Services (Rel-19)rt-mbs-function13 of 15 implemented · 1 differs · 1 absent
Nmbsf_MBSUserDataIngestSession status subscriptions and notificationsMBSF · User Services (Rel-19)rt-mbs-function10 of 10 implemented
MBS User Data Ingest Session status eventsMBSF · User Services (Rel-19)rt-mbs-function9 of 17 implemented · 4 differ · 4 absent
MBS Distribution Session life-cycle in the MBSFMBSF · User Services (Rel-19)rt-mbs-function5 of 11 implemented · 5 differ · 1 absent
Usage of HTTP at Nmb10MBSF · User Services (Rel-19)rt-mbs-function4 of 4 implemented
MBS User Service provisioning by the Application ProviderProvider · User Services (Rel-19)rt-mbs-application-provider13 of 14 implemented · 1 differs
MBS User Data Ingest Session provisioning by the Application ProviderProvider · User Services (Rel-19)rt-mbs-application-provider20 of 28 implemented · 7 differ · 1 absent
Status subscription and notifications at the Application ProviderProvider · User Services (Rel-19)rt-mbs-application-provider7 of 8 implemented · 1 absent
HTTP usage towards the MBSF (Nmb10)Provider · User Services (Rel-19)rt-mbs-application-provider3 of 5 implemented · 1 differs · 1 absent
MBS Distribution Sessions (Nmb2)The MBSTF serves every method of the Nmbstf API with its notifications, and the MBSF creates, updates, deletes and subscribes to MBS Distribution Sessions with it; the MBSTF returns no expiry time it chose, keeps notifying an old URI after a subscription update, reports deactivation and ingest establishment at the wrong moments, waits for the MBSF before attempting ingest and keeps accepting pushed objects when INACTIVE, and the specifications disagree on the API name spelling and who nominates the push ingest URL. Against Release 19, the OpenAPI requires exactly one acquisition identifier where the attribute table requires none for SINGLE with PUSH, and the MBSF never sends an MBS AS ingest endpoint for repair.38 of 50 implemented · 8 differ · 1 absent · 3 where the specification is inconsistent
Nmbstf_MBSDistributionSession API (Nmb2)MBSTF · User Services (Rel-19)rt-mbs-transport-function17 of 22 implemented · 3 differ · 2 where the specification is inconsistent
Nmbstf StatusNotifyMBSTF · User Services (Rel-19)rt-mbs-transport-function7 of 10 implemented · 3 differ
MBS Distribution Session life-cycle in the MBSTFMBSTF · User Services (Rel-19)rt-mbs-transport-function8 of 11 implemented · 2 differ · 1 where the specification is inconsistent
Nmbstf consumer requests from the MBSF (Nmb2)MBSF · User Services (Rel-19)rt-mbs-function6 of 7 implemented · 1 absent
Object and packet distribution (Nmb8, MBS-4-MC)The MBSTF ingests objects by pull and push in all four operating modes, handles object manifests, forwards packets in proxy and forward-only mode, and sends towards the MB-UPF tunnel at the configured rate with User-Agent MBSTF on pulls; collections are refetched instead of sent once, manifest refetch rules differ, the FDT describes only the objects handed to the transmitter, an empty ingest base URL leaves pulls unfetched, and DSCP marking, packet FEC, TLS and the Server header on the push endpoint are absent. The Application Provider side relies on a mock origin for pull and pushes without TLS. FLUTE/ALC itself is in rt-libflute, audited separately. The Release 19 Object Repair ingest by the MBS AS at MBS-12 is absent.44 of 68 implemented · 14 differ · 9 absent · 1 where the specification is inconsistent
Object Distribution Method operating modesMBSTF · User Services (Rel-19)rt-mbs-transport-function10 of 13 implemented · 3 differ
Object ingest at Nmb8MBSTF · User Services (Rel-19)rt-mbs-transport-function6 of 9 implemented · 3 absent
Object manifest handlingMBSTF · User Services (Rel-19)rt-mbs-transport-function9 of 14 implemented · 5 differ
FLUTE usage set by the MBSTFMBSTF · User Services (Rel-19)rt-mbs-transport-function4 of 7 implemented · 3 differ
Packet Distribution MethodMBSTF · User Services (Rel-19)rt-mbs-transport-function5 of 7 implemented · 1 differs · 1 where the specification is inconsistent
Transmission towards the MB-UPF (Nmb9)MBSTF · User Services (Rel-19)rt-mbs-transport-function5 of 8 implemented · 1 differs · 2 absent
Object Repair ingest by the MBS AS (MBS-12, Release 19)MBSTF · User Services (Rel-19)rt-mbs-transport-function0 of 3 implemented · 3 absent
Content ingest at Nmb8 (Application Provider side)Provider · User Services (Rel-19)rt-mbs-application-provider5 of 7 implemented · 1 differs · 1 absent
MBS User Service AnnouncementThe MBSF writes User Service Descriptions, Session Description documents and multipart bundles, serves the MBS-5 retrieval API with entity tags and conditional requests, and runs the announcement channel by pushing an object manifest; the bundle on the channel carries a single description where a descriptions document is required, there is no document version, main language, radio parameters, security description or cancelled schedule, the MBS AF has no TLS or Cache-Control and a non-conformant Server header, the bundle URL for MBS-1 reaches the Application Provider only with the announcement channel, and the specifications disagree on the repair locator and the empty discovery result. Against Release 19, the documents carry version Rel18 instead of Rel19 and the service areas in the deprecated mbsServiceAreas, and no in-session repair or time synchronization parameters are written.44 of 67 implemented · 11 differ · 10 absent · 2 where the specification is inconsistent
User Service Description documentMBSF · User Services (Rel-19)rt-mbs-function6 of 10 implemented · 2 differ · 2 absent
Distribution Session DescriptionMBSF · User Services (Rel-19)rt-mbs-function5 of 13 implemented · 2 differ · 5 absent · 1 where the specification is inconsistent
Service Schedule DescriptionMBSF · User Services (Rel-19)rt-mbs-function3 of 5 implemented · 1 differs · 1 absent
Session Description documentsMBSF · User Services (Rel-19)rt-mbs-function9 of 9 implemented
User Service Descriptions BundleMBSF · User Services (Rel-19)rt-mbs-function5 of 6 implemented · 1 differs
User Service Announcement Channel provisioningMBSF · User Services (Rel-19)rt-mbs-function7 of 8 implemented · 1 differs
User Service Description retrieval API at MBS-5 (co-located MBS AF)MBSF · User Services (Rel-19)rt-mbs-function8 of 12 implemented · 2 differ · 1 absent · 1 where the specification is inconsistent
Announcement passed back to the Application Provider (MBS-1)MBSF · User Services (Rel-19)rt-mbs-function1 of 4 implemented · 2 differ · 1 absent
MBS ClientThe client acquires announcements from the announcement channel and by MBS-5 discovery, activates and deactivates reception by external service identifier within the announced schedule, receives the Object Distribution Method and serves received objects to the application, and runs post-session repair; retrieval by identifier, User-Agent headers, packet distribution and MBS-10 key retrieval are absent, and repair differs in its request pattern and end-of-session detection. The Release 19 in-session repair is not configured from its own parameters and differs in when it starts, how many objects it repairs and its HTTP sessions, and Release 19 time synchronization is absent.41 of 82 implemented · 20 differ · 21 absent
User Service Description acquisitionMBS Client · User Services (Rel-19)rt-mbs-client8 of 13 implemented · 2 differ · 3 absent
MBS User Service reception activation and terminationMBS Client · User Services (Rel-19)rt-mbs-client7 of 10 implemented · 1 differs · 2 absent
Session Description handlingMBS Client · User Services (Rel-19)rt-mbs-client5 of 7 implemented · 2 absent
Post-session object repair (MBS-4-UC)MBS Client · User Services (Rel-19)rt-mbs-client12 of 19 implemented · 6 differ · 1 absent
MBS Service Key retrieval from the MBSSF (MBS-10)MBS Client · User Services (Rel-19)rt-mbs-client0 of 9 implemented · 2 differ · 7 absent
Delivery to the MBS-Aware Application (MBS-7)MBS Client · User Services (Rel-19)rt-mbs-client4 of 6 implemented · 1 differs · 1 absent
Conformance profilesMBS Client · User Services (Rel-19)rt-mbs-client3 of 4 implemented · 1 differs
MBS Client functions (TS 26.502 clause 4.3.5)MBS Client · User Services (Rel-19)rt-mbs-client1 of 5 implemented · 4 differ
In-session Object Repair (MBS-4-UC, Release 19)MBS Client · User Services (Rel-19)rt-mbs-client1 of 6 implemented · 3 differ · 2 absent
Time synchronization with the 5G System (Release 19)MBS Client · User Services (Rel-19)rt-mbs-client0 of 3 implemented · 3 absent
MBS-Aware ApplicationThe dashboard activates and deactivates MBS User Services by external service identifier through the MBS Client, shows the announced names and service class, and plays the received content; it cannot pass a full announcement received by application-private means. TS 26.502 defines no API at MBS-6 or MBS-7, so only the procedure steps are judged.5 of 6 implemented · 1 absent
Use of the MBS Client by the MBS-Aware Application (MBS-6, MBS-7)MBS-Aware App · User Services (Rel-19)rt-mbs-application5 of 6 implemented · 1 absent
The 5G System architecture for MBS of TS 23.247, with the parts the Reference Tools provide and the status of each reference point.
MBS5G System architecture for MBS, with Reference Tools statusBased on 3GPP TS 23.247 V19.3.0, figure 5.1-2; status from the code audit of 2026-10-03, judged against Release 19
Click a figure to enlarge it.
TS 23.247 V19.3.0 clause 7 groups the MBS procedures as "Common procedure for Multicast and Broadcast" (clause 7.1), "MBS procedures for multicast Session" (clause 7.2) and "MBS procedures for broadcast Session" (clause 7.3). The status below follows the same grouping; the NG-RAN features fall under broadcast or multicast.
TMGI allocation, MBS session creation, update and release, the MB-UPF user plane, and the MB-SMF service consumer. Filter by component; open a feature, then a requirement.
MBS system, Release 19 (latest issues): TS 23.247 V19.3.0, TS 29.532 V19.3.0, TS 29.518 V19.8.0, TS 29.244 V19.6.0, and TS 38.413 V19.4.0 for the AMF's NGAP messages.
MBSF (MBS Function): rt-mbs-function. Built against: 5G_APIs tag TSG111-Rel18 (meson options fiveg_api_release=18, fiveg_api_approval=111, latest_apis=false): Nmbsf MBSUserService 1.1.0, MBSUserDataIngestSession 1.1.2 (TS 29.580 V18.7.0), Nmbstf 1.1.1 (TS 29.581 V18.6.0), MBS User Service Announcement 2.1.0 (TS 26.517 V18.3.0), Object Manifest 2.0.0; OpenAPI generator 7.23.0. The audit judges against the latest Release 19 issues: Nmbsf against TS 29.580 V19.6.0 (MBSUserService 1.2.0, MBSUserDataIngestSession 1.2.2), Nmbstf against TS 29.581 V19.3.0 (1.2.1), the announcement against TS 26.517 V19.2.0 (MBS User Service Announcement 2.2.2), and TS 26.502 V19.5.0 and TS 23.247 V19.3.0.
MB-SMF client (5GC service consumers (MB-SMF client library)): rt-5gc-service-consumers. Built against: The SBI library and OpenAPI models of the 5G-MAG open5gs fork (TS 29.532 V17.3.0 models, Nmbsmf_TMGI 1.0.1 and Nmbsmf_MBSSession 1.1.1, with the hand-added Release 18 fields), fetched by a Meson wrap that is not pinned to a fixed version. The audit judges against TS 29.532 V19.3.0 (Nmbsmf_TMGI 1.1.0, Nmbsmf_MBSSession 1.3.0), the latest Release 19 issue.
5G Core (5G Core with MBS components (AMF, MB-SMF, MB-UPF)): open5gs. Built against: OpenAPI models generated with OpenAPI Generator 6.4.0 from the Release 17 files TS 29.532 V17.3.0 (Nmbsmf_TMGI 1.0.1, Nmbsmf_MBSSession 1.1.1), TS 29.518 V17.9.0 (Namf_MBSBroadcast 1.0.3) and TS 29.518 V17.8.0 (Namf_MBSCommunication 1.0.1), with redMbsServArea and UpdateRspData added by hand from Release 18; NGAP codec from the TS 38.413 V17.3.0 ASN.1; PFCP IEs generated from TS 29.244 V17.7.1. The audit judges against the latest Release 19 issues: TS 23.247 V19.3.0, TS 29.532 V19.3.0 (Nmbsmf_TMGI 1.1.0, Nmbsmf_MBSSession 1.3.0), TS 29.518 V19.8.0 (Namf_MBSBroadcast and Namf_MBSCommunication 1.2.0), TS 29.244 V19.6.0 and TS 38.413 V19.4.0.
Source: code read in each repository, nothing built or run for the verdicts, 2026-10-03.
49 of 89 implemented · 16 differ · 24 absentcases, over 13 requirements
✓ Implemented≠ Differs from the specification– Absent? Specification inconsistent: its text and its OpenAPI or tables disagreei Noted: observed, not a verdict against a clauseTMGI allocationThe MB-SMF allocates, refreshes and deallocates TMGIs over Nmbsmf_TMGI with the response codes and causes TS 29.532 defines, and the MB-SMF client library sends and reads all three requests; the MBSF itself never calls this service and obtains its TMGIs through MBS session creation instead.12 of 13 implemented · 1 differs
Nmbsmf_TMGI Allocate (POST /tmgi)5G Core · System (Rel-19)open5gs5 of 6 implemented · 1 differs
Nmbsmf_TMGI Deallocate (DELETE /tmgi)5G Core · System (Rel-19)open5gs3 of 3 implemented
MB-SMF client: Nmbsmf_TMGI requestsMB-SMF client · System (Rel-19)rt-5gc-service-consumers4 of 4 implemented
MBS session creationThe MB-SMF creates broadcast and multicast MBS sessions with a TMGI it allocates or one supplied, reserves the MB-UPF ingress tunnel and answers 201 with a Location header; it does not return the MBS FSA IDs, ignores the status subscription carried in the request, continues with the requested rather than the reduced service area, mis-reads cell lists, supports only one area per location dependent session, and has none of the Release 18 RedCap or associated-session inputs.9 of 19 implemented · 6 differ · 4 absent
Nmbsmf_MBSSession Create (POST /mbs-sessions)5G Core · System (Rel-19)open5gs9 of 19 implemented · 6 differ · 4 absent
MBS session update and releaseRelease works end to end, the MB-SMF tearing down the MB-UPF session and the AMF context, and an Update can switch a multicast session between active and inactive; no other modifiable field can be updated, two of them are refused as malformed, and status subscriptions and notifications towards the MBSF, NEF or AF do not exist.7 of 21 implemented · 2 differ · 12 absent
Nmbsmf_MBSSession Update (PATCH /mbs-sessions/{mbsSessionRef})5G Core · System (Rel-19)open5gs4 of 11 implemented · 2 differ · 5 absent
Nmbsmf_MBSSession Release (DELETE /mbs-sessions/{mbsSessionRef})5G Core · System (Rel-19)open5gs3 of 3 implemented
Nmbsmf_MBSSession StatusSubscribe, StatusUnsubscribe and StatusNotify (MB-SMF)5G Core · System (Rel-19)open5gs0 of 5 implemented · 5 absent
Nmbsmf_MBSSession optional features MOCNS and REDCAP5G Core · System (Rel-19)open5gs0 of 2 implemented · 2 absent
MB-UPF user plane (N4mb, N6mb, Nmb9, N3mb)The MB-SMF sets up one PFCP session per MBS session on N4mb with the MBS Session Identifier and the PLLSSM and JMBSSM flags, and the MB-UPF opens a UDP ingress tunnel for Nmb9 or N6mb and forwards over N3mb to a lower-layer SSM with a common TEID it allocates; only one QoS flow is set up whatever the session carries, the QFI sequence number is never inserted, the JMBSSM flag is not acted on, the Area Session ID is not sent, and unicast N3mb (MBSU, PFCP Session Modification) does not exist.10 of 20 implemented · 4 differ · 6 absent
N4mb PFCP Session Establishment (MB-SMF)5G Core · System (Rel-19)open5gs6 of 11 implemented · 3 differ · 2 absent
N4mb PFCP session at the MB-UPF5G Core · System (Rel-19)open5gs4 of 6 implemented · 1 differs · 1 absent
N3mb unicast transport and N4mb Session Modification5G Core · System (Rel-19)open5gs0 of 3 implemented · 3 absent
MB-SMF service consumer (MBSF side)The MB-SMF client library creates, updates and releases MBS sessions and creates and deletes status subscriptions with the request shapes TS 29.532 defines, and reads the 201 response in full; a subscription update sends the session changes instead of the subscription changes, notifications are answered 200 rather than 204, the associated session ID is never sent, and the MBSF never subscribes to status notifications.11 of 16 implemented · 3 differ · 2 absent
MB-SMF client: Nmbsmf_MBSSession requestsMB-SMF client · System (Rel-19)rt-5gc-service-consumers7 of 11 implemented · 3 differ · 1 absent
MBSF use of Nmbsmf_MBSSessionMBSF · System (Rel-19)rt-mbs-function4 of 5 implemented · 1 absent
5G Core (5G Core with MBS components (AMF, MB-SMF, MB-UPF)): open5gs. Built against: OpenAPI models generated with OpenAPI Generator 6.4.0 from the Release 17 files TS 29.532 V17.3.0 (Nmbsmf_TMGI 1.0.1, Nmbsmf_MBSSession 1.1.1), TS 29.518 V17.9.0 (Namf_MBSBroadcast 1.0.3) and TS 29.518 V17.8.0 (Namf_MBSCommunication 1.0.1), with redMbsServArea and UpdateRspData added by hand from Release 18; NGAP codec from the TS 38.413 V17.3.0 ASN.1; PFCP IEs generated from TS 29.244 V17.7.1. The audit judges against the latest Release 19 issues: TS 23.247 V19.3.0, TS 29.532 V19.3.0 (Nmbsmf_TMGI 1.1.0, Nmbsmf_MBSSession 1.3.0), TS 29.518 V19.8.0 (Namf_MBSBroadcast and Namf_MBSCommunication 1.2.0), TS 29.244 V19.6.0 and TS 38.413 V19.4.0.
gNB (gNodeB with support for MBS): srsRAN_Project_mbs. Built against: Generated ASN.1 codecs in the repository: NGAP v17.4.0 (TS 38.413, with the Release 18 Broadcast Session Transport procedure and the Release 18 IEs Associated Session ID, Supported UE Type List and MBS NG-U Failure Indication added from V18.10.0), F1AP v17.4.1 (TS 38.473, with the Release 18 Broadcast Transport Resource Request message and the Broadcast Area Scope, Supported UE Type List and Associated Session ID IEs added from V18.10.0), E1AP v18.5.0 (TS 37.483), RRC NR v17.4.0 (TS 38.331, with the Release 18 SIB20 extension added from V18.10.0). No pin exists for the hand-written MAC, RLC and PDCP code. The audit judges every case against the latest Release 19 issues: TS 38.413 V19.4.0, TS 38.473 V19.4.0, TS 37.483 V19.4.0, TS 38.331 V19.4.0, TS 38.300 V19.4.0, TS 38.321 V19.4.0, TS 38.322 V19.3.0, TS 38.323 V19.1.0 and TS 38.212 V19.4.0..
UE (UE with support for MBS): srsRAN_4G_mbs. Built against: The RRC NR codec is labelled v15.11.0 and carries hand-added Release 17 MBS types (SIB20, SIB21, MCCH-Config, MBSBroadcastConfiguration, MBS-SessionInfo), so no generated pin exists; MAC, RLC, PDCP and DCI code is hand-written with no pin. The audit judges every case against the latest Release 19 issues: TS 38.331 V19.4.0, TS 38.300 V19.4.0, TS 38.321 V19.4.0, TS 38.322 V19.3.0, TS 38.323 V19.1.0 and TS 38.212 V19.4.0..
Source: code read in each repository, nothing built or run for the verdicts, 2026-10-03.
82 of 172 implemented · 42 differ · 48 absentcases, over 42 requirements
✓ Implemented≠ Differs from the specification– Absent? Specification inconsistent: its text and its OpenAPI or tables disagreei Noted: observed, not a verdict against a clauseBroadcast session start, update and release towards NG-RANFor a broadcast session the MB-SMF creates and releases an AMF broadcast context carrying the N2 SM information it builds (lower-layer SSM, C-TEID, QoS flows, FSA IDs), and the AMF sends Broadcast Session Setup, Modification and Release Requests and answers after the first NG-RAN response; the AMF sends to every connected gNB, can send cells the request never named, never reports completion in its first response, does not identify the NG-RAN in notifications, and does not handle Broadcast Session Release Response, Release Required or Transport, while the MB-SMF never sends ContextUpdate and ignores the N3mb tunnel information returned. The Release 19 NR NTN intended service area is neither carried by the MB-SMF nor sent by the AMF.19 of 41 implemented · 7 differ · 15 absent
MB-SMF as Namf_MBSBroadcast consumer5G Core · System (Rel-19)open5gs4 of 8 implemented · 4 absent
N2 SM information built by the MB-SMF (MBS Session Setup or Modification Request Transfer)5G Core · System (Rel-19)open5gs3 of 4 implemented · 1 absent
Namf_MBSBroadcast ContextCreate (AMF)5G Core · System (Rel-19)open5gs3 of 8 implemented · 3 differ · 2 absent
Namf_MBSBroadcast ContextUpdate and ContextRelease (AMF)5G Core · System (Rel-19)open5gs4 of 6 implemented · 1 differs · 1 absent
Namf_MBSBroadcast ContextStatusNotify (AMF)5G Core · System (Rel-19)open5gs1 of 5 implemented · 2 differ · 2 absent
NGAP broadcast session management (AMF)5G Core · System (Rel-19)open5gs4 of 10 implemented · 1 differs · 5 absent
NGAP broadcast session management at the gNBThe gNB-CU-CP answers Broadcast Session Setup, Modification and Release from the AMF, drives the E1AP and F1AP procedures behind each, and returns its own N3mb endpoint; it does not use the MBS service area or the MBS FSA IDs to choose cells, does not act on the Release 18 Supported UE Type List or Associated Session ID, does not answer a Release for an unknown session, never initiates Broadcast Session Release Required, and has the Release 18 Broadcast Session Transport procedure coded but never started. The Release 19 MBS intended service area for NTN operation is not decoded.8 of 19 implemented · 4 differ · 7 absent
Broadcast Session Transport (Release 18)gNB · NG-RAN (Rel-19)srsRAN_Project_mbs0 of 1 implemented · 1 absent
MB-UPF to gNB user plane (N3mb, shared delivery)The gNB-CU-UP joins the IP multicast group the 5G Core signals for the session, terminates the shared GTP-U tunnel and passes packets through SDAP and an unciphered PDCP entity per MRB towards the DU; it registers the tunnel under the byte-reversed TEID rather than the signalled one, and the 5GC unicast transport option is not offered.4 of 5 implemented · 1 differs
PDCP for broadcast MRBs at the gNB-CU-UPgNB · NG-RAN (Rel-19)srsRAN_Project_mbs2 of 2 implemented
F1AP broadcast context (gNB-CU and gNB-DU)Broadcast Context Setup, Modification and Release run between the CU-CP and the DU, with MRB setup, modify and release and both failure messages; the DU does not answer some setup failures, never reports MRBs that failed in a Modification, ignores the MBS service area and never reports the Release 18 Broadcast Area Scope, the CU does not act on MRBs the DU reports as failed, and Broadcast Context Release Request and the Release 18 Broadcast Transport Resource Request are not sent or handled.9 of 24 implemented · 8 differ · 7 absent
Broadcast Transport Resource Request (Release 18)gNB · NG-RAN (Rel-19)srsRAN_Project_mbs0 of 2 implemented · 2 absent
E1AP broadcast bearer context (gNB-CU-CP and gNB-CU-UP)BC Bearer Context Setup, Modification and Release work between CU-CP and CU-UP with per-MRB and per-flow result lists and F1-U endpoints, and the CU-CP reacts to Modification Required and Release Request; both Failure messages leave the Cause unset, a changed 5GC NG-U address is not applied, and the shared NG-U termination options are not acted on.8 of 14 implemented · 2 differ · 4 absent
BC Bearer Context SetupgNB · NG-RAN (Rel-19)srsRAN_Project_mbs3 of 5 implemented · 1 differs · 1 absent
BC Bearer Context Modification (gNB-CU-CP initiated)gNB · NG-RAN (Rel-19)srsRAN_Project_mbs2 of 4 implemented · 1 differs · 1 absent
BC Bearer Context Modification Required (gNB-CU-UP initiated)gNB · NG-RAN (Rel-19)srsRAN_Project_mbs1 of 2 implemented · 1 absent
BC Bearer Context Release (gNB-CU-CP initiated)gNB · NG-RAN (Rel-19)srsRAN_Project_mbs1 of 1 implemented
BC Bearer Context Release Request (gNB-CU-UP initiated)gNB · NG-RAN (Rel-19)srsRAN_Project_mbs1 of 2 implemented · 1 absent
MCCH and SIB20 broadcast signalling at the gNBThe DU advertises SIB20 and SIB21 in SIB1, broadcasts SIB20 from operator settings, sends MCCH on PDCCH addressed to MCCH-RNTI with DCI format 4_0 inside the configured window, changes MCCH only at modification-period boundaries and signals the change, with no Release 18 (e)RedCap CFR; it sends MCCH every radio frame whatever repetition period SIB20 advertises, can flag a new service as an "other modification", and sends MCCH as a bare RRC message without the MAC subheader and RLC header the logical channel requires. The Release 19 SIB27 and the per-session intended service areas for NTN cells are not sent.14 of 24 implemented · 6 differ · 4 absent
SIB1 scheduling information and SIB20 contentgNB · NG-RAN (Rel-19)srsRAN_Project_mbs4 of 6 implemented · 2 absent
SIB21gNB · NG-RAN (Rel-19)srsRAN_Project_mbs1 of 2 implemented · 1 absent
MRB and MTCH scheduling at the gNBEach broadcast session gets a G-RNTI and its MRBs get LCIDs; MTCH is scheduled with DCI format 4_0 scrambled by the G-RNTI, without HARQ feedback, over RLC UM; G-RNTIs are taken from the C-RNTI range without checking for UEs, and a statically configured MRB on an LCID below 21 is advertised but never scheduled.5 of 7 implemented · 1 differs · 1 absent
G-RNTI and MTCH logical channel identitiesgNB · NG-RAN (Rel-19)srsRAN_Project_mbs2 of 3 implemented · 1 differs
MTCH transmissiongNB · NG-RAN (Rel-19)srsRAN_Project_mbs3 of 3 implemented
UE broadcast receptionThe UE reads SIB20, decodes MCCH on MCCH-RNTI inside the window, joins every advertised session, decodes MTCH on the G-RNTIs and delivers packets through RLC UM and PDCP with the correct start-of-reception rules; it ignores the repetition period and the change notification, never re-reads SIB20, expects MCCH without MAC and RLC headers, applies its own defaults instead of the specified ones when PDCP t-Reordering and RLC t-Reassembly are absent, has no SDAP, broadcast DRX or MBS Interest Indication, and keys MRBs by LCID alone. The Release 19 intended service areas for NTN cells are not used.15 of 38 implemented · 13 differ · 10 absent
5G Core (5G Core with MBS components (AMF, MB-SMF, MB-UPF)): open5gs. Built against: OpenAPI models generated with OpenAPI Generator 6.4.0 from the Release 17 files TS 29.532 V17.3.0 (Nmbsmf_TMGI 1.0.1, Nmbsmf_MBSSession 1.1.1), TS 29.518 V17.9.0 (Namf_MBSBroadcast 1.0.3) and TS 29.518 V17.8.0 (Namf_MBSCommunication 1.0.1), with redMbsServArea and UpdateRspData added by hand from Release 18; NGAP codec from the TS 38.413 V17.3.0 ASN.1; PFCP IEs generated from TS 29.244 V17.7.1. The audit judges against the latest Release 19 issues: TS 23.247 V19.3.0, TS 29.532 V19.3.0 (Nmbsmf_TMGI 1.1.0, Nmbsmf_MBSSession 1.3.0), TS 29.518 V19.8.0 (Namf_MBSBroadcast and Namf_MBSCommunication 1.2.0), TS 29.244 V19.6.0 and TS 38.413 V19.4.0.
gNB (gNodeB with support for MBS): srsRAN_Project_mbs. Built against: Generated ASN.1 codecs in the repository: NGAP v17.4.0 (TS 38.413, with the Release 18 Broadcast Session Transport procedure and the Release 18 IEs Associated Session ID, Supported UE Type List and MBS NG-U Failure Indication added from V18.10.0), F1AP v17.4.1 (TS 38.473, with the Release 18 Broadcast Transport Resource Request message and the Broadcast Area Scope, Supported UE Type List and Associated Session ID IEs added from V18.10.0), E1AP v18.5.0 (TS 37.483), RRC NR v17.4.0 (TS 38.331, with the Release 18 SIB20 extension added from V18.10.0). No pin exists for the hand-written MAC, RLC and PDCP code. The audit judges every case against the latest Release 19 issues: TS 38.413 V19.4.0, TS 38.473 V19.4.0, TS 37.483 V19.4.0, TS 38.331 V19.4.0, TS 38.300 V19.4.0, TS 38.321 V19.4.0, TS 38.322 V19.3.0, TS 38.323 V19.1.0 and TS 38.212 V19.4.0..
UE (UE with support for MBS): srsRAN_4G_mbs. Built against: The RRC NR codec is labelled v15.11.0 and carries hand-added Release 17 MBS types (SIB20, SIB21, MCCH-Config, MBSBroadcastConfiguration, MBS-SessionInfo), so no generated pin exists; MAC, RLC, PDCP and DCI code is hand-written with no pin. The audit judges every case against the latest Release 19 issues: TS 38.331 V19.4.0, TS 38.300 V19.4.0, TS 38.321 V19.4.0, TS 38.322 V19.3.0, TS 38.323 V19.1.0 and TS 38.212 V19.4.0..
Source: code read in each repository, nothing built or run for the verdicts, 2026-10-03.
2 of 35 implemented · 1 differs · 32 absentcases, over 8 requirements
✓ Implemented≠ Differs from the specification– Absent? Specification inconsistent: its text and its OpenAPI or tables disagreei Noted: observed, not a verdict against a clauseMulticast sessionsA multicast MBS session can be created at the MB-SMF and its activity status set, and the AMF can relay Multicast Session Activation, Deactivation and Update Requests to NG-RAN through Namf_MBSCommunication; UE join and leave, the MB-SMF context services, NGAP Distribution Setup and Release, N19mb and the activation and deactivation procedures are absent from the audited code.2 of 19 implemented · 1 differs · 16 absent
Multicast session join and leave (SMF)5G Core · System (Rel-19)open5gs0 of 4 implemented · 4 absent
Nmbsmf_MBSSession ContextUpdate and ContextStatusSubscribe (MB-SMF)5G Core · System (Rel-19)open5gs0 of 5 implemented · 5 absent
NGAP Distribution Setup and Distribution Release (AMF)5G Core · System (Rel-19)open5gs0 of 3 implemented · 3 absent
Multicast session activation, deactivation and update5G Core · System (Rel-19)open5gs2 of 7 implemented · 1 differs · 4 absent
MBS multicast in the RANRelease 17 multicast (shared delivery to UEs in RRC_CONNECTED) and Release 18 multicast reception in RRC_INACTIVE are not implemented in the gNB or the UE; only codec types and a few placeholder fields exist.0 of 16 implemented · 16 absent
Multicast MCCH for RRC_INACTIVE (Release 18)gNB · NG-RAN (Rel-19)srsRAN_Project_mbs0 of 3 implemented · 3 absent
Full audit for members
This page summarises a requirement-by-requirement audit of the code. The full audit (each requirement with its clause quoted, the code that meets or misses it, and the findings) is available to 5G-MAG members through Developer Tools (the Standards2Deployments repository).
Built against: 5G_APIs tag TSG111-Rel18: Nmbsf MBSUserService 1.1.0 and MBSUserDataIngestSession 1.1.2 (TS 29.580 V18.7.0), Nmbstf 1.1.1 (TS 29.581 V18.6.0); judged against TS 29.580 V19.6.0.
Implemented: both Nmbsf APIs at Nmb10, every resource and method, with status subscriptions and notifications; the Nmbstf requests towards the MBSTF at Nmb2; the User Service Description, Session Description documents, the User Service Descriptions bundle and the announcement channel; the co-located MBS AF serving announcements at MBS-5; TMGI allocation and MBS session creation towards the MB-SMF at Nmb1.
Partial: the enhanced PATCH of TS 29.580 is not supported; four status events can be subscribed to but are never raised; the Distribution Session life-cycle differs from TS 26.502 clause 4.6.1; several Distribution Session and schedule attributes are not written; the announcement passed back to the Application Provider at MBS-1 carries a URL instead of the identifiers.
Specification inconsistent: the repair locator attribute, and an empty discovery result at MBS-5, where the TS 26.517 text contradicts itself.
Release 19, not yet supported: the announcement media type version Rel19, targetServiceAreas in place of the deprecated mbsServiceAreas, and the in-session repair and time synchronization parameters of the announcement.
Built against: 5G_APIs tag TSG111-Rel18 (TS 29.581 V18.6.0); FLUTE through rt-libflute.
Implemented: the Nmbstf_MBSDistributionSession API at Nmb2, every resource and method, with StatusNotify; the Object Distribution Method operating modes; object ingest at Nmb8 by pull and push; transmission towards the MB-UPF at Nmb9.
Partial: collection objects are distributed again on every refresh; pull fetches have no address when no ingest base URL is given; streaming segments are fetched too late for their deadline; manifest and update-interval rules differ; the Distribution Session life-cycle follows only what the MBSF requests.
Not implemented: DSCP marking, FEC for packet sessions, and HTTPS on the push ingest endpoint; from Release 19, repair content towards the MBS AS at MBS-12.
Specification inconsistent (Release 19): whether a single pushed object carries an acquisition identifier: TS 29.581 table 6.1.6.2.5-1 NOTE 7 and TS 26.502 table 6.1-1 say none, the TS 29.581 OpenAPI requires one.
Specification inconsistent: the API name, who nominates the push ingest URL, and whether the SSM port is the source or the destination port.
Built against: TS 26.517 V18.6.0 annex A.2 (announcement parsing written by hand); FLUTE through rt-libflute.
Implemented: User Service Description acquisition, reception activation and termination, Session Description handling, post-session object repair at MBS-4-UC, and delivery to the MBS-Aware Application at MBS-7.
Partial: object repair opens a connection and sends a request per range, and draws the repair server again for each object; retrieval by identifier at MBS-5 is written but not called.
Not implemented: MBS Service Key retrieval from the MBSSF at MBS-10, the Packet Distribution Method, and a User-Agent on the client's requests; from Release 19, most of in-session object repair and time synchronization.
MBS Application Provider and MBS-Aware Application
Application Provider, implemented: MBS User Service and MBS User Data Ingest Session provisioning at Nmb10, adding and removing Distribution Sessions through its API, status subscriptions, and content ingest at Nmb8.
Application Provider, partial: it sends attributes that only the MBSF may set or that may not be changed, does not check the object acquisition identifiers against the operating mode, and connects to the MBSF without TLS; the enhanced PATCH of TS 29.580 is not used.
MBS-Aware Application: it lists announced services and activates reception through the MBS Client; it activates only by external service identifier, with no way to pass a full announcement.
Built against: OpenAPI models generated from the Release 17 files (TS 29.532 V17.3.0, TS 29.518 V17.9.0), with some Release 18 fields added by hand; NGAP ASN.1 V17.3.0; PFCP from TS 29.244 V17.7.1. The audit judges against Release 19.
Implemented: TMGI allocation and deallocation at the MB-SMF; MBS session creation and release; the N4mb PFCP session between MB-SMF and MB-UPF; the AMF broadcast context and NGAP Broadcast Session Setup towards NG-RAN; the MB-SMF client library used by the MBSF.
Partial: the MB-SMF stores the wrong cells of a service area and sets up a larger area than it reports; the AMF sends Broadcast Session Setup to every connected gNB; one QoS flow per session; the TEID signalled to NG-RAN is byte-reversed against the one in the GTP-U header.
Not implemented: status subscriptions at the MB-SMF, several session update fields, N3mb unicast transport and PFCP Session Modification, NGAP Broadcast Session Release Required and Transport at the AMF, and MBS Multicast (session join and leave, Distribution Setup and Release); from Release 19, the NR NTN Intended Service Area in the MB-SMF and AMF.
Built against: generated codecs NGAP v17.4.0, F1AP v17.4.1, E1AP v18.5.0 and RRC v17.4.0 in the gNB, with some Release 18 content added by hand; in the UE, MBS types added by hand to its RRC codec. The audit judges against the latest Release 19 issues.
gNB, implemented: NGAP Broadcast Session Setup, Modification and Release; the F1AP broadcast context and E1AP broadcast bearer context procedures; SIB1, SIB20 and MCCH scheduling with the modification period; DCI format 4_0; MTCH on its G-RNTI.
gNB, partial: MCCH is sent with no MAC subheader and no RLC header; its repetition period is not used; failure messages leave out their cause or the failed bearers; the N3mb TEID is byte-reversed to match the 5G Core.
UE, implemented: SIB20 acquisition, DCI format 4_0 reception, broadcast MRB establishment and release, RLC UM and PDCP for MTCH.
UE, partial: MCCH is read without its MAC and RLC headers, and its change notification is not read; default PDCP and RLC timers differ from TS 38.331 clause 9.1.1.7; MRBs are told apart by logical channel alone.
Not implemented: NGAP Broadcast Session Release Required and Transport, F1AP Broadcast Context Release Request and Broadcast Transport Resource Request, the Release 18 Supported UE Type List and Associated Session ID, broadcast DRX, and MBS Multicast in the RAN, including multicast in RRC_INACTIVE; from Release 19, the NR NTN Intended Service Area (NGAP list, SIB27, the MCCH session area list, and MRB start and stop at the UE).
gNB, also partial: the Broadcast Area Scope is not returned to the gNB-CU, and the MBS Service Area on modification is ignored.