Description
Concise Data Definition Language (CDDL) is a formal language for describing data structures, specifically designed for use with JSON (JavaScript Object Notation) and CBOR (Concise Binary Object Representation) data formats. Within 3GPP standards, CDDL serves as the primary specification language for defining the exact schema of data exchanged between network functions, between network and application servers, and within management interfaces. It operates by defining a set of rules that map to the data types and structures allowed in a given JSON or CBOR document, specifying permitted values, mandatory versus optional fields, nesting, arrays, and other constraints.
The language's grammar is based on ABNF (Augmented Backus-Naur Form) and uses a compact, expressive syntax. A CDDL definition typically consists of a series of rule assignments, where a rule name (an identifier) is assigned a type description. Type descriptions can be basic types (like numbers, text strings, booleans), compound types (like arrays or maps), or references to other rules for creating nested or recursive structures. CDDL also supports powerful features like optional groups, choices (unions), and the ability to specify ranges, regular expressions for strings, and size constraints for arrays.
In the 3GPP architecture, CDDL definitions are embedded within technical specifications (TS) to unambiguously define the payload of HTTP/2 messages (for service-based interfaces), NAS messages, or configuration data. For example, 3GPP TS 29.890 uses CDDL to define the data structures for the Nnef_EventExposure service. The use of CDDL eliminates ambiguity that could arise from prose descriptions or informal examples, leading to fewer interoperability issues during integration and testing. Tools can parse CDDL definitions to generate code, validate data instances, or produce documentation automatically.
CDDL's role extends beyond mere documentation; it is a foundational part of the 3GPP's model-driven approach. By providing a single, authoritative source for a data model's structure, it ensures that all implementations—whether for a 5G core network's Network Exposure Function (NEF), a Multimedia Telephony service, or a Media Streaming function—interpret the data formats identically. This is critical for the seamless operation of multi-vendor networks and for the development of third-party applications that interact with 3GPP network capabilities via APIs.
Purpose & Motivation
CDDL was introduced to solve the problem of ambiguous and inconsistent data format definitions in telecommunications standards. Prior to its adoption, 3GPP specifications often described data structures using informal tables, textual descriptions, or XML Schema Definitions (XSD). These methods could be verbose, difficult to parse automatically, and sometimes led to differing interpretations by equipment vendors and software developers. This ambiguity resulted in interoperability failures during network integration, increasing time-to-market and cost.
The motivation for CDDL came from the industry's shift towards RESTful, JSON-based APIs for service-based interfaces within the 5G core network (introduced in 3GPP Release 15). JSON is lightweight and widely used in web development, but it lacks a native, standardized schema language. CDDL fills this gap by providing a concise, readable, yet formal way to define exactly what a valid JSON object must look like for a given 3GPP service. It also supports CBOR, a binary format derived from JSON that is more efficient for constrained devices and bandwidth-sensitive links, making it highly relevant for IoT applications.
By standardizing on CDDL, 3GPP enabled a more rigorous and automated approach to specification compliance. It allows for the creation of validation tools and code generators that directly consume the standards documents, reducing human error. This aligns with the broader 3GPP objective of creating open, well-defined interfaces that foster innovation and competition in the telecom ecosystem by lowering the barrier to entry for new players and ensuring reliable multi-vendor interoperability.
Classification
Release Timeline
Detected Changes Across Releases
from 3GPP Change RequestsSpecific changes extracted from the „Change history“ tables of 3GPP specifications (12 CRs across 2 releases). Complements the general historical overview above with the evidence-based evolution of this function.
In Release 18, the CDDL function was newly introduced to formally specify the data structures for several key SDDM (Slice Delay and Data rate Management) APIs. This included providing the CDDL definitions for the Sdd_RegularTransmissionConnection API on both the SDDM-S and SDDM-C sides, as well as for the Sdd_URLLCTransmissionConnection API on the SDDM-C side. Additionally, a correction was applied to the existing CDDL specification for the Sdd_TransmissionQualityMeasurement API.
- Correction to the CDDL specification for the Sdd_TransmissionQualityMeasurement AP TS 24.543CR0006
- CDDL specification for the Sdd_RegularTransmissionConnection API provided by the SDDM-S TS 24.543CR0003
- CDDL specification for the Sdd_RegularTransmissionConnection API provided by the SDDM-C TS 24.543CR0004
- CDDL specification for the Sdd_URLCCTransmissionConnection API provided by the SDDM-C TS 24.543CR0005
In Release 19, the CDDL function was updated to include the specification and media types for the new Sdd_URLLCTransmissionConnection API for the SDDM-S, which was not defined in the previous release. Furthermore, the release focused on fixing extensibility and specification issues across several existing APIs, including Sdd_TransmissionQualityManagement, Sdd_XRTransmissionConnection, Sdd_RegularTransmissionConnection, and Sdd_ConnectionStatusEvent, for both the SDDM-S and SDDM-C network functions.
- CDDL specification and Media types for the Sdd_URLCCTransmissionConnection API provided by the SDDM-S TS 24.543CR0032
- Fixing the SDDMC Sdd_XRTransmissionConnnection API - CDDL TS 24.543CR0132
- Fixing the SDDMS Sdd_XRTransmissionConnnection API - CDDL TS 24.543CR0133
- Fixing the SDDMS Sdd_URLLCTransmissionConnection API - CDDL TS 24.543CR0138
- Fixing the SDDMS Sdd_ConnectionStatusEvent API - CDDL TS 24.543CR0139
- Fixing the CDDL extensibility issue for Sdd_TransmissionQualityManagement API TS 24.543CR0104
+ 2 more changes
Explore further
Broader topics and technologies where CDDL plays a role.
Defining Specifications
3GPP specifications that define or reference CDDL, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TS 24.543 vj50 | SEAL Data Delivery Management Protocol | Rel-19 |
| TS 26.841 vj00 | Study on Media Messaging Enhancements | Rel-19 |
| TS 29.890 vg00 | CT3 5G System Technical Report | Rel-16 |