YAML

Yet Another Markup Language

Management →
Introduced in Rel-15 Also in: Core Network

YAML is a human-readable data serialization format used in 3GPP specifications for structured representation of configuration and management data to facilitate automation and interoperability.

Category
Management
Introduced
Rel-15
Where
Services › Codecs
Also touches
1 segments
Specifications
5 specs
YAML Description Purpose Related Detected Changes Specifications

Description

YAML (Yet Another Markup Language) is a data serialization format adopted in 3GPP specifications, starting from Release 15, for representing configuration, management, and policy data in a human-readable text format. It uses indentation and simple syntax to define hierarchical structures, making it easier for engineers to write and understand compared to formats like XML or JSON. In 3GPP, YAML is specified across multiple technical documents, including TS 26.517, TS 26.857, TS 28.536, TS 29.122, and TS 29.501, where it is used for scenarios such as network slice templates, service management, and API definitions.

Technically, YAML works by representing data as key-value pairs, lists, and nested mappings, which can be parsed by software tools to generate or interpret network configurations. For example, in 5G network slicing, YAML files can define slice characteristics like bandwidth, latency, and isolation levels, which are then used by management functions to instantiate slices. The format supports data types such as strings, numbers, booleans, and sequences, allowing complex structures to be modeled efficiently. It is often used in conjunction with YANG data models, where YAML serves as the serialization for YANG-defined schemas, enabling consistent data exchange between network elements and management systems.

In the 3GPP architecture, YAML is utilized in management and orchestration components, such as the Network Slice Selection Function (NSSF), Policy Control Function (PCF), and Network Exposure Function (NEF). These functions use YAML-formatted data to communicate policies, service requirements, and configuration details. For instance, TS 29.122 specifies YAML for Northbound APIs, allowing external applications to request network services. The format's readability reduces errors in manual editing and supports automation through tools like Ansible or Kubernetes, which natively understand YAML for deployment scripts.

YAML's role in 3GPP networks is to streamline management operations, especially in cloud-native environments where dynamic configuration is critical. It enables declarative configurations, where desired network states are specified in YAML files and automated systems enforce them. This is essential for 5G's scalability and agility, supporting use cases like network slicing, edge computing, and IoT. By standardizing on YAML, 3GPP ensures interoperability across vendors and reduces integration complexity, as it is widely supported in the software industry.

Purpose & Motivation

YAML was introduced in 3GPP Release 15 to address the growing complexity of network management in 5G systems, which require flexible, automated configurations for features like network slicing and service-based architecture. Prior to its adoption, management data was often represented in XML or proprietary formats, which could be verbose and difficult for humans to read, hindering rapid development and troubleshooting. YAML's human-readable design simplifies these processes, enabling engineers to quickly write and modify configurations without extensive tooling.

The creation of YAML in 3GPP was motivated by the need for a lightweight, interoperable format that supports automation and DevOps practices in telecommunications. As networks evolve towards software-defined and cloud-native paradigms, traditional management approaches became inadequate due to their rigidity and slow provisioning times. YAML solves these problems by providing a standard way to define policies and services that can be easily version-controlled, tested, and deployed using CI/CD pipelines. This addresses limitations of previous approaches that relied on manual CLI configurations or complex XML schemas, which were error-prone and less agile.

Historically, YAML originated in the software development community as a configuration language for applications, gaining popularity due to its simplicity. 3GPP recognized its potential for network management, aligning with industry trends towards infrastructure-as-code. By incorporating YAML, 3GPP enables seamless integration with cloud platforms and orchestration tools, supporting the dynamic nature of 5G services. It facilitates the management of network slices, QoS policies, and exposure functions, ultimately reducing operational costs and accelerating service deployment.

Release Timeline

Detected Changes Across Releases

from 3GPP Change Requests

Specific changes extracted from the „Change history“ tables of 3GPP specifications (14 CRs across 5 releases). Complements the general historical overview above with the evidence-based evolution of this function.

Rel-15 4 changes

In Release 15, the YAML function introduced standardized naming for YAML schema files, such as "TS26517_MBSUserServiceAnnouncement.yaml". It also added explicit copyright notes and addressed the correct configuration definitions for network parameters, including the formal specification of presence conditions within the YAML files.

  • Presence conditions in yaml file TS 29.122CR0081
  • Correct NP configuration yaml definition TS 29.122CR0093
  • yaml file names TS 29.501CR0010
  • Copyright Note in YAML files TS 29.501CR0060
Rel-16 5 changes

In Release 16, the new YAML function introduced standardized storage of YAML files in the 3GPP and ETSI Forge repositories. This included the formal definition of specific YAML schemas for service descriptions, such as "TS26517_MBSUserServiceAnnouncement.yaml" and "TS26517_MBSObjectManifest.yaml", which define JSON instance structures for procedures like UserServiceDescriptions and ObjectManifest. Furthermore, the release mandated the inclusion of a copyright note within the YAML file structure.

  • Storage of YAML files TS 29.122CR0247
  • Storage of YAML files in 3GPP Forge TS 29.122CR0296
  • Storage of YAML files in ETSI Forge TS 29.501CR0072
  • Copyright Note in YAML file TS 29.122CR0179
  • Storage of YAML files in 3GPP Forge TS 29.501CR0093
Rel-17 3 changes

In Release 17, the primary enhancements for the YAML function involved updates to the OpenAPI specifications for network resource management (NRM), specifically targeting the CoslaNrm.yaml file. These changes focused on improving discoverability, correcting file dependencies and names, and making minor formatting corrections to ensure consistency. Additionally, new YAML schemas were introduced for services like MBS User Service Announcement ("TS26517_MBSUserServiceAnnouncement.yaml") and MBS Object Manifest ("TS26517_MBSObjectManifest.yaml"), defining structured data models for multicast-broadcast service operations.

  • Fixing OpenAPI Discoverability issue in CoslaNrm.yaml stage 3 TS 28.536CR0046
  • OpenAPI file name and dependence change for coslaNrm.yaml TS 28.536CR0048
  • Minor correction on the format for cosla yaml file TS 28.536CR0052
Rel-18 1 change

In Release 18, the key change for the YAML function was the removal of the MnS root from the stage 3 YAML definitions and the migration of the normative stage 3 specifications to the 3GPP Forge platform. This is exemplified by updates to specific OpenAPI YAML schemas, such as those for the MBS User Service Announcement (TS26517_MBSUserServiceAnnouncement.yaml) and MBS Object Manifest (TS26517_MBSObjectManifest.yaml), which define structured data models for services and object distribution parameters.

  • TS28.536 Rel18 remove MnS root in stage 3-yaml and Moving normative stage 3 to Forge TS 28.536CR0076
Rel-19 1 change

In Release 19, the OpenAPI YAML definitions were updated to support the new in-session repair procedure for Multimedia Broadcast/Multicast Service (MBS). Specifically, the YAML schema for the MBS Object Manifest was enhanced to include new `ObjectRepairParameters` and `BackOffParameters` objects, defining elements like `repairLimitPercentage` and `objectRepairBaseLocator`. These updates provide the structured data model necessary for clients to request and manage the repair of missing or corrupted objects during an active MBS session.

  • [AMD_PRO-MED] OpenAPI YAML updates for in-session repair TS 26.517CR0036

Explore further

Broader topics and technologies where YAML plays a role.

Defining Specifications

3GPP specifications that define or reference YAML, with the latest known release. Sourced from the 3GPP document catalog — see methodology.

SpecificationTitleRelease
TS 26.517 vj10 5G MBS User Service Protocols and Formats Rel-19
TR 26.857 vi00 Technical Report on Media Service Enablers Rel-18
TS 28.536 vj20 Management services for communication service assurance Rel-19
TS 29.122 vj40 T8 Reference Point for Northbound APIs Rel-19
TS 29.501 vj40 5GC SBI API Design Principles & Guidelines Rel-19
Patrick Zandl

About the author: Patrick Zandl (b. 1974)

Telecommunications specialist, technology journalist (founder of the Mobil server), and developer who has been running since 2025 — the largest Czech-language resource on AI-assisted programming. Formerly Chief Wizard Architect at Prusa3D and head of development for Turris at CZ.NIC; currently a consultant and instructor on AI implementation in companies.