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.
Detected Changes Across Releases
from 3GPP Change RequestsSpecific 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.
In Release 15, the YAML function was enhanced with new specifications for file naming, copyright notes, and presence conditions within the YAML files. It also introduced corrections to the NP configuration YAML definition, ensuring proper structural definitions for service announcements and object manifests, such as the defined schemas "TS26517_MBSUserServiceAnnouncement.yaml" and "TS26517_MBSObjectManifest.yaml". These updates standardized the use of YAML for describing service parameters and repair procedures within the Multicast Broadcast Service framework.
In Release 16, the new YAML function introduced standardized storage locations for YAML schema files, specifically mandating their storage in the 3GPP Forge and ETSI Forge repositories. Furthermore, the release added formal requirements for including copyright notes within the YAML files themselves. These changes provided a structured framework for managing the OpenAPI YAML schemas used for defining service descriptions and object manifests, such as the "TS26517_MBSUserServiceAnnouncement.yaml" schema.
In Release 17, updates for the YAML function primarily focused on refining the OpenAPI specification files for network resource models and service announcements. This included fixing discoverability issues and implementing minor corrections for the `coslaNrm.yaml` file, as well as finalizing the schemas for `TS26517_MBSUserServiceAnnouncement.yaml` and `TS26517_MBSObjectManifest.yaml`. These changes ensured proper definition and referencing of service languages, object repair parameters, and service scheduling within the YAML-based API descriptions.
In Release 18, the primary update for the YAML function was the removal of the MnS root from the stage 3 YAML definitions and the formal migration of the normative stage 3 specifications to the 3GPP Forge platform. This change streamlined the specification structure by centralizing the authoritative YAML schemas, such as "TS26517_MBSUserServiceAnnouncement.yaml" and "TS26517_MBSObjectManifest.yaml", within the Forge repository for managing OpenAPI definitions.
- TS28.536 Rel18 remove MnS root in stage 3-yaml and Moving normative stage 3 to Forge TS 28.536CR0076
In Release 19, the OpenAPI YAML definitions were updated to specify the procedures for in-session repair, introducing new schemas such as `ObjectRepairParameters` and `BackOffParameters` to manage the repair request process. These updates formalize how separate HTTP GET requests are to be sent for each object requiring repair within the MBS framework. The changes are encapsulated in updated YAML schema files including "TS26517_MBSUserServiceAnnouncement.yaml" and "TS26517_MBSObjectManifest.yaml".
- [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.
| Specification | Title | Release |
|---|---|---|
| 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 |