CDDL

Concise Data Definition Language

Protocol
Introduced in Rel-15
CDDL is a standardized data modeling language used in 3GPP specifications to define data structures and their constraints. It provides a human-readable and machine-processable format for describing JSON and CBOR data formats, ensuring interoperability between network functions and applications. Its adoption enables consistent implementation of data models across different vendors and systems.

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.

Key Features

  • Formal schema definition for JSON and CBOR data formats
  • Human-readable syntax based on ABNF grammar
  • Support for complex data types, nesting, and constraints
  • Enables automatic code generation and data validation
  • Provides unambiguous definitions for 3GPP API payloads
  • Facilitates multi-vendor interoperability and testing

Evolution Across Releases

Rel-15 Initial

CDDL was initially adopted in Release 15 to formally define data structures for new 5G service-based interfaces, particularly for HTTP/2 APIs. It was specified in documents like TS 29.890 for the Common API Framework, providing the foundational syntax and rules for describing JSON payloads exchanged between 5G core network functions.

Defining Specifications

SpecificationTitle
TS 24.543 3GPP TS 24.543
TS 26.841 3GPP TS 26.841
TS 29.890 3GPP TS 29.890