Skip to main content
UE Data Collection, Reporting and Event Exposure

Implementation Detail

In short
  • Which specification the code follows: Release 18, TS 26.532 V18.3.0 and TS 29.517 V18.6.0, as the Data Collection AF build pins. Release 19 adds nothing to implement.
  • Generic framework: a Data Collection AF library and a standalone AF serve R1, R2 to R4, R5 and R6. No data collection client is provided.
  • In 5G Media Streaming: the 5GMS AF embeds the Data Collection AF library, but registers no 5GMS data report type, so no 5GMS data is collected or exposed yet.
  • Source of this page: a code audit of the repositories on 2026-10-02: each requirement split into the cases its clause defines, each case checked against the code and then re-checked by a second reader.

For what the specifications define, see the Technical Analysis. For how to run the tools, see the Tutorials.

Architecture​

The generic architecture and its 5G Media Streaming instantiation, with the parts the Reference Tools provide and the status of each reference point.

Generic architecture
Data collection reference architecture, with Reference Tools statusBased on TS 26.531 V19.0.0, figure 4.2-1; status against TS 26.532 V18.3.0
In 5G Media Streaming
Data collection in 5G Media Streaming (Release 17), with Reference Tools statusBased on TS 26.501 V17.10.0, figure 4.7.1-1, the release the 5GMS AF is built against; status at the time of the audit

Click a figure to enlarge it.

Generic framework​

Each feature, split into its requirements and each requirement into the cases its clause defines: what works, what does not, and why. Open a feature, then a requirement.

  • Data collection framework, Release 18: TS 26.531 V18.2.0, TS 26.532 V18.3.0 (provisioning API V18.2.0) and TS 29.517 V18.6.0, as the build pins.
  • DCAF library (Data Collection Service Provider library): rt-data-collection-application-function. Built against: 5G_APIs tag TSG105-Rel18: TS 26.532 V18.3.0 (V18.2.0 for the provisioning API), TS 29.517 V18.6.0.
  • DCAF (Standalone Data Collection AF): rt-data-collection-application-function. Built against: the same build as the library.
  • DC client (Data Collection Client (none exists; the repository's test scripts exercise the APIs)): rt-data-collection-application-function. Built against: not applicable.
  • Source: code read, nothing built or run, 2026-10-02.
124 of 261 implemented · 45 differ · 89 absent · 3 where the specification is inconsistentcases, over 116 requirements

✓ Implemented≠ Differs from the specification– Absent? Specification inconsistent: its text and its OpenAPI or tables disagreei Noted: observed, not a verdict against a clause

Provisioning (R1)Create, retrieve and delete of Provisioning Sessions and create, retrieve and delete of Data Reporting Configurations work with the Release 18 paths and codes, contextIds are assigned and stamped, and read-only properties are ignored; PUT answers 200 without storing the replacement, PATCH answers 501, PUT or PATCH on a Provisioning Session gets 405 without the Allow header, a body with a Content-Type other than application/json is parsed instead of being refused with 415, empty condition and access-profile arrays are accepted, the (application, event) pair is not kept unique, no defaults are assumed for omitted rules, destroying a session purges nothing beyond its configurations, and the specification disagrees with itself on the configuration delete success code.32 of 50 implemented · 9 differ · 8 absent · 1 where the specification is inconsistent
Reporting sessions and client configurationData Reporting Sessions are created, retrieved and deleted with the right codes on the R2, R3 and R4 interfaces, keyed to the declared domains, filled from matching configurations with their contextIds and cached with Cache-Control; their content is fixed at creation and ignores subscriptions, an omitted sampling rule becomes an empty array that disables collection, identical rules in two configurations corrupt the first one's contextIds, entity tags are unquoted and compared exactly, provisioning GETs are not conditional, PUT or PATCH on a Data Reporting Session gets 400 instead of 501, and no data collection client exists.28 of 43 implemented · 5 differ · 10 absent
Report submissionThe Data Collection AF library accepts reports on the R2, R3 and R4 interfaces with 404 for an unknown session, 400 for a malformed report and 204 on success, and the standalone AF stores communication records. A wrong Content-Type is not answered with 415, a report with no record array, several record arrays or an empty array is accepted, records other than communication records are discarded, "expedite": false is treated as expedited, and no client or Application Server sends reports.13 of 28 implemented · 8 differ · 7 absent
Sampling and reporting rulesThe library carries provisioned sampling rules, reporting conditions and reporting rules to sessions with their context identifiers. A configuration that omits sampling or reporting rules turns collection or reporting off instead of using defaults, and every client-side rule (sampling period, location filter, conditions, probability, format, packaging) is absent because no collecting client exists.3 of 17 implemented · 2 differ · 12 absent
Data Access Profiles and processingProfiles are matched by consumer type, profile identifier and application, and time-dimension aggregation with NONE, MEAN and SUM works in the AF. The specification names MAXIMUM and MINIMUM are not recognised (the code uses MAX and MIN), the AF does not offer COUNT, an empty consumer-type list excludes everyone, a parameters list is ignored, and user and location restrictions are rejected with 501.15 of 24 implemented · 6 differ · 2 absent · 1 where the specification is inconsistent
Security and accessTLS is available on every interface through the shared HTTP/2 server settings (off in the shipped configurations), HTTP/2 is used and the v1 API version and JSON responses are right; there is no HTTP/1.1, no client authentication, Authorization header or OAuth 2.0, no CORS, no access-token check on subscriptions and no redirection, R1 requests are not checked for application/json, and several error codes depart from TS 29.500.7 of 25 implemented · 3 differ · 15 absent
NRF registration and exposureOne AF profile with the three DCAF services is registered with the NRF at start-up; per-provisioning profiles, application identifiers, an Event ID list, CAPIF and the ownership precedence rules are absent.2 of 10 implemented · 8 absent
UE client API (R7)No Direct Data Collection Client or R7 API exists in this repository; the specification gives the client identifier no property in the session it must be sent in.0 of 21 implemented · 20 absent · 1 where the specification is inconsistent
Event exposure (R5, R6)Subscribe, read, replace and delete of Naf_EventExposure subscriptions, immediate reports, periodic notifications and UE communication events work; the Location header lacks {apiRoot}, a PUT does not apply a change of notification method, on-event subscriptions are only notified for expedited reports, error codes and feature negotiation depart from TS 29.500, a request for another API on an event exposure port gets no answer, single-record events carry the build time, and sampling ratio, guard time, muting and media streaming events are absent.24 of 43 implemented · 12 differ · 7 absent

Integration with 5G Media Streaming​

Each feature, per 5GMS component and release, in the same form.

  • 5GMS integration, Release 17: TS 26.501 V17.10.0 and TS 26.512 V17.10.0, as the 5GMS AF pins.
  • 5GMS integration, Release 18/19: TS 26.501 V19.4.0 and TS 26.512 V19.3.0.
  • 5GMS AF (5GMS AF, with the Data Collection AF library embedded): rt-5gms-application-function. Built against: TS 26.512 V17.10.0 (5G_APIs tag TSG109-Rel17), plus the Data Collection AF library of this audit.
  • 5GMS AS (5GMS AS): rt-5gms-application-server 1.2.5. Built against: 5G_APIs at Release 17.
  • 5GMS client (5GMS client: Media Session Handler, Media Stream Handler, common library): rt-5gms-media-session-handler v1.3.0, rt-5gms-media-stream-handler v1.3.0. Built against: not determinable from the build.
  • App Provider (5GMS Application Provider): rt-5gms-application-provider 1.3.0. Built against: hand-written Release 17 M1 client.
  • Source: code read, nothing built or run, 2026-10-02.
10 of 62 implemented · 2 differ · 50 absentcases, over 23 requirements

✓ Implemented≠ Differs from the specification– Absent? Specification inconsistent: its text and its OpenAPI or tables disagreei Noted: observed, not a verdict against a clause

Data Collection AF in the 5GMS AFThe AF links the Data Collection AF library and correctly leaves R1 and R3 out, but starts it without any data report type, so it does not run; Event Data Processing provisioning is absent in the AF and the Application Provider.5 of 18 implemented · 1 differs · 12 absent
Data reported in 5GMSThe Media Session Handler reports QoE metrics and consumption to the AF at M5 as the Release 17 Direct Data Collection Client, but the reports stop at files in the AF; the AS has no R4 reporting, the AF logs no dynamic policy or Network Assistance invocations, and Release 19 R2 ANBR reporting is absent everywhere.4 of 28 implemented · 24 absent
5GMS events exposedNo 5GMS event is generated or exposed: the AF advertises only the UE Communication feature and sets no event generation callback, and the Application Provider has no Event Consumer AF.1 of 16 implemented · 1 differs · 14 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).

Become a member · Request access

Components​

Data Collection AF​

  • Built against: TS 26.532 V18.3.0 and TS 29.517 V18.6.0 (Release 18).
  • Implemented: creating, reading and deleting Provisioning Sessions, Data Reporting Configurations and Data Reporting Sessions; communication reports; time-window aggregation; event subscription and notification at R5 and R6; registration of one AF profile with the NRF.
  • Needs fix: replacing a Data Reporting Configuration does not store it; the aggregation names MAXIMUM and MINIMUM are not accepted; "expedite": false is treated as true; replacing a subscription does not change its notifications; the installed default configuration uses section names the library does not read, so the AF starts without its data collection servers.
  • Not implemented: PATCH, user and location restrictions, record types other than communication, TLS and OAuth 2.0, and a Direct, Indirect or AS data collection client.

5G Media Streaming components​

  • 5GMS AF: embeds the Data Collection AF library and leaves R1 and R3 out, but starts it with no data report type, so it does not run; no Event Data Processing provisioning yet. QoE metrics and consumption reports received at M5 are written to files.
  • 5GMS AS: no reporting of media streaming access activity at R4.
  • 5GMS client: the Media Session Handler sends QoE metrics and consumption reports at M5. ANBR-based Network Assistance reporting at R2 is a Release 18 addition, beyond the Release 17 the 5GMS AF is built against.
  • 5GMS Application Provider: the M1 Event Data Processing methods are commented out, and there is no Event Consumer AF.
  • NWDAF: not provided. open5gs, which the 5GMS AF builds on, has no NWDAF, so there is no consumer at R5.

Packages​

ComponentPackage
Data Collection AFContainer image

Used with other projects​

  • 5G Media Streaming (5GMS): the 5GMS AF is meant to embed the Data Collection AF library. embedded in the AF, which registers no 5GMS data report type yet.