ADF

Accounting Data Forwarding

Management
Introduced in Rel-4
The ADF is a 3GPP network function responsible for collecting, processing, and forwarding accounting and charging-related data from network elements to charging systems. It ensures accurate billing by reliably handling charging data records (CDRs) and event data records (EDRs) across the network, which is critical for operator revenue assurance.

Description

The Accounting Data Forwarding (ADF) function is a standardized network element within the 3GPP architecture, specifically defined as part of the management and charging framework. Its primary role is to act as an intermediary for accounting and charging information, collecting raw data from various network functions (NFs) involved in service delivery—such as the SMF, UPF, AMF, and PCF in 5G—and forwarding it in a processed format to the Charging Function (CHF) or offline charging systems. The ADF ensures data integrity, applies necessary formatting or correlation, and handles the reliable transport of this critical billing information.

Architecturally, the ADF is positioned within the management plane, interfacing with network functions via standardized reference points. In 5G systems, it interacts with the Service-Based Architecture (SBA) using HTTP/2-based service-based interfaces. It receives accounting triggers and events from network functions, which may include session start/stop, volume usage, time duration, and specific service events. The ADF processes these events, potentially correlating data from multiple sources (e.g., correlating control plane and user plane events for the same session) to create coherent Charging Data Records (CDRs) or Event Data Records (EDRs).

The internal operation of the ADF involves several key processes: event collection, data validation, record generation, buffering, and forwarding. It implements mechanisms for duplicate detection, sequence number management, and error handling to prevent loss of charging data. The ADF may also apply operator-specific policies for data aggregation, filtering, or reformatting before transmission to the charging system. Its design emphasizes reliability, as lost accounting data directly translates to lost revenue, so it often includes persistent storage and retry mechanisms for failed transmissions.

In the broader charging architecture, the ADF works in conjunction with the Charging Trigger Function (CTF), which is embedded within network functions to detect chargeable events. The ADF can be seen as a centralized or distributed function that aggregates CTF outputs. Its role is crucial for both offline (post-paid) and online (pre-paid/real-time) charging scenarios, though its interaction patterns may differ. For online charging, the ADF may forward interim accounting data to the Online Charging System (OCS) for real-time credit control, while for offline charging, it sends finalized CDRs to the Charging Data Function (CDF).

Purpose & Motivation

The ADF was introduced to address the growing complexity and scale of charging in mobile networks, particularly with the transition to packet-switched services in 3G and beyond. Earlier circuit-switched systems had relatively simple charging models based on call duration, but the advent of GPRS, IMS, and diverse data services required a more robust, reliable, and scalable method to collect and forward a vast array of charging events from distributed network elements. The ADF provides a standardized, dedicated function for this purpose, separating charging data collection from core service logic in network functions.

Prior to its formalization, charging data handling was often integrated directly into network elements, leading to inconsistencies, proprietary implementations, and challenges in correlating data across different network domains. This made billing systems complex and error-prone. The ADF standardizes the interface and behavior for accounting data forwarding, ensuring interoperability between equipment from different vendors and simplifying the integration with billing systems. It solves the problem of reliable delivery of charging information in a distributed network where individual network functions should not be burdened with the complexities of billing system communication protocols and fault tolerance.

Furthermore, the ADF enables advanced charging scenarios such as converged charging (combining prepaid and postpaid), sponsorship, and QoS-based charging by providing a consistent point for collecting and correlating multifaceted charging events. Its creation was motivated by the need for revenue assurance—ensuring that every chargeable event is accurately captured and billed—which is fundamental to operator business models. As networks evolved to 4G and 5G, supporting network slicing and service-based architectures, the role of the ADF adapted to handle charging per network slice and interact with cloud-native, microservices-based network functions.

Key Features

  • Collects charging events from multiple network functions via standardized interfaces
  • Correlates and formats raw event data into Charging Data Records (CDRs) or Event Data Records (EDRs)
  • Ensures reliable, lossless forwarding of accounting data to charging systems
  • Supports both offline (post-paid) and online (real-time) charging scenarios
  • Implements buffering, retry, and error handling mechanisms for data delivery assurance
  • Can apply operator-specific policies for data aggregation, filtering, or reformatting

Evolution Across Releases

Rel-4 Initial

Introduced as the Accounting Data Forwarding function block within the 3GPP charging architecture. Initially defined to handle charging data from packet-switched domains in UMTS, providing a standardized mechanism for forwarding CDRs from network elements like the SGSN and GGSN to the Charging Gateway Function (CGF). Established basic reliability and data formatting requirements.

Defining Specifications

SpecificationTitle
TS 21.905 3GPP TS 21.905
TS 24.334 3GPP TS 24.334
TS 26.981 3GPP TS 26.981
TS 31.102 3GPP TR 31.102
TS 31.103 3GPP TR 31.103
TS 31.121 3GPP TR 31.121
TS 33.303 3GPP TR 33.303