AVP

Attribute-Value Pair

Protocol
Introduced in Rel-8
AVP is a fundamental data structure used in Diameter-based protocols to encode information elements. It consists of an attribute header identifying the data type and a value field containing the actual data. AVPs are essential for flexible and extensible signaling, enabling the transport of diverse parameters like subscriber identities, QoS settings, and charging information across network interfaces.

Description

An Attribute-Value Pair (AVP) is the basic unit of data in the Diameter protocol, which is the successor to RADIUS and a cornerstone of 3GPP's core network signaling. Each AVP is a structured data element comprising several mandatory and optional fields. The core structure includes an AVP Code (a 32-bit identifier that uniquely defines the attribute type), AVP Flags (8 bits indicating properties like vendor-specificity, mandatory handling, and encryption), AVP Length (24 bits specifying the total size of the AVP including header and padding), and the Vendor-ID (optional 32-bit field present if the Vendor-specific bit is set, identifying the organization that defined the AVP). Following these headers is the Data field, which contains the actual value of the attribute; its format and interpretation are defined by the AVP Code and can be of various types such as integers, strings, addresses, or grouped AVPs (which themselves contain other AVPs). Finally, optional padding ensures the AVP aligns on a 32-bit boundary.

AVPs operate within Diameter messages, which are composed of a Diameter header followed by a sequence of AVPs. The Diameter header defines the message type (e.g., request or answer) and command code, while the AVPs carry the specific parameters and data relevant to that command. This modular design allows Diameter to be highly extensible; new functionalities can be introduced by defining new AVPs without altering the core protocol mechanics. In 3GPP networks, AVPs are used extensively in interfaces like S6a (between MME and HSS), Gx (between PCRF and PCEF), and Rx (between AF and PCRF) to exchange critical information such as authentication vectors, policy rules, and charging data.

The handling of AVPs is governed by rules specified in Diameter base protocol (RFC 6733) and 3GPP technical specifications. AVPs can be marked as mandatory (M-bit set), requiring that the receiver must understand and process them; if a mandatory AVP is not understood, the entire message must be rejected. Optional AVPs (M-bit clear) can be ignored if not recognized, allowing for backward compatibility. Vendor-specific AVPs (V-bit set) include a Vendor-ID field, enabling equipment vendors and standards bodies like 3GPP to define proprietary or standardized extensions without namespace conflicts. This flexibility is crucial for supporting diverse network functions and evolving service requirements.

Grouped AVPs are a special type where the Data field contains a sequence of other AVPs, effectively creating nested structures. This allows for complex, hierarchical data modeling, such as representing a subscriber's profile with multiple subscribed QoS parameters or a policy rule with multiple conditions and actions. The encoding of AVP values follows type-specific rules; for example, UTF8String for textual data, Integer32 for numeric values, and Address for IP addresses. This structured yet flexible approach ensures that AVPs can efficiently and reliably transport the wide variety of information needed for authentication, authorization, accounting, policy control, and mobility management in 3GPP networks.

Purpose & Motivation

The AVP structure was created to address the limitations of earlier protocols like RADIUS, which used a less flexible attribute format. RADIUS attributes had a more rigid, fixed-length-centric design and limited extensibility, making it challenging to support new services and complex data structures required by evolving telecommunications networks, particularly with the advent of IP-based multimedia subsystems (IMS) and all-IP core networks in 3GPP. The Diameter protocol, with its AVP foundation, was developed as a more robust, scalable, and feature-rich successor to meet these demands, providing better support for reliable transport, failover, and secure transmission.

AVPs solve the critical problem of how to encode and transport diverse, extensible, and often complex information elements across network interfaces in a standardized manner. They enable the separation of the protocol's command framework (the Diameter message header) from the actual data payload, allowing for independent evolution and customization. This is essential in 3GPP architectures, where different network functions—such as the Home Subscriber Server (HSS), Policy and Charging Rules Function (PCRF), and Application Function (AF)—need to exchange a wide array of parameters, from simple identifiers to intricate policy rules. Without a flexible data structure like AVP, supporting new services, QoS mechanisms, or charging models would require constant, disruptive changes to the underlying protocol.

Historically, the motivation for AVPs stemmed from the need for a future-proof signaling protocol that could accommodate the rapid innovation in mobile services, especially with the transition to 3G and later 4G/LTE. The AVP mechanism allows 3GPP to standardize new attributes in each release (e.g., for network slicing in 5G or IoT optimizations) while maintaining interoperability with existing implementations. By providing a well-defined format with clear rules for mandatory/optional handling and vendor extensions, AVPs ensure that networks can deploy new features without breaking backward compatibility, thereby reducing operational costs and accelerating service deployment.

Key Features

  • Structured data encoding with header (Code, Flags, Length) and value fields
  • Support for vendor-specific extensions via Vendor-ID field
  • Mandatory (M-bit) and optional handling for backward compatibility
  • Grouped AVPs for nested, hierarchical data structures
  • Flexible value types including integers, strings, addresses, and octet strings
  • Alignment to 32-bit boundaries with padding for efficient processing

Evolution Across Releases

Rel-8 Initial

Introduced AVP as the fundamental data unit in Diameter-based protocols for the Evolved Packet Core (EPC). Initial architecture defined AVPs for critical interfaces like S6a (MME-HSS) and Gx (PCRF-PCEF), supporting LTE authentication, mobility, and policy control. Specifications established base AVP formats, mandatory/optional handling rules, and grouped AVP structures to carry complex subscriber and policy data.

Defining Specifications

SpecificationTitle
TS 24.229 3GPP TS 24.229
TS 24.802 3GPP TS 24.802
TS 26.142 3GPP TS 26.142
TS 26.179 3GPP TS 26.179
TS 26.924 3GPP TS 26.924
TS 26.938 3GPP TS 26.938
TS 29.173 3GPP TS 29.173
TS 29.213 3GPP TS 29.213
TS 29.214 3GPP TS 29.214
TS 29.215 3GPP TS 29.215
TS 29.228 3GPP TS 29.228
TS 29.229 3GPP TS 29.229
TS 29.234 3GPP TS 29.234
TS 29.272 3GPP TS 29.272
TS 29.329 3GPP TS 29.329
TS 29.336 3GPP TS 29.336
TS 29.337 3GPP TS 29.337
TS 29.343 3GPP TS 29.343
TS 29.368 3GPP TS 29.368
TS 29.414 3GPP TS 29.414
TS 29.433 3GPP TS 29.433
TS 29.468 3GPP TS 29.468
TS 29.806 3GPP TS 29.806
TS 29.816 3GPP TS 29.816
TS 29.819 3GPP TS 29.819
TS 29.827 3GPP TS 29.827
TS 29.866 3GPP TS 29.866
TS 32.260 3GPP TR 32.260
TS 32.270 3GPP TR 32.270
TS 32.271 3GPP TR 32.271
TS 32.272 3GPP TR 32.272
TS 32.273 3GPP TR 32.273
TS 32.277 3GPP TR 32.277
TS 32.278 3GPP TR 32.278
TS 32.299 3GPP TR 32.299
TS 32.808 3GPP TR 32.808
TS 32.843 3GPP TR 32.843
TS 32.869 3GPP TR 32.869
TS 32.870 3GPP TR 32.870
TS 33.978 3GPP TR 33.978