Description
The Policy and Charging Rules Function (PCRF) is a core network element within the 3GPP Policy and Charging Control (PCC) framework, introduced in EPS (Evolved Packet System) and continued in 5G System (5GS). It operates as the central policy decision point. The PCRF receives input from multiple sources: subscriber data from the Subscription Profile Repository (SPR) or Unified Data Repository (UDR), service information from the Application Function (AF) like the P-CSCF, and network status from the Traffic Detection Function (TDF) or its own monitoring. It combines this information with predefined operator policies to make real-time, binding decisions on how individual service data flows should be treated.
These decisions are encapsulated in PCC rules, which are sent to the Policy and Charging Enforcement Function (PCEF), typically co-located with the Packet Data Network Gateway (PGW) in 4G or the Session Management Function (SMF) in 5G. A PCC rule contains identifiers for the service data flow (e.g., IP 5-tuple), the required QoS parameters (QCI, ARP, bit rates), and charging instructions (online, offline, charging key). The PCEF then installs these rules, enforcing them by applying corresponding packet filters, QoS marking (DSCP), and metering traffic for charging. The PCRF can modify or remove rules dynamically during a session in response to events like a change in subscriber tier, network congestion, or the start/stop of a sponsored data service.
Architecturally, the PCRF interfaces with numerous network functions via standardized reference points. The Rx interface connects to the AF (for service-based policy), the Gx interface to the PCEF (for rule provisioning), the Sp interface to the SPR/UDR (for subscriber data), and the Sy interface to the Online Charging System (OCS). In 5G, the PCRF's role is largely subsumed by the Policy Control Function (PCF), which follows a similar service-based architecture but with enhanced capabilities for network slicing and edge computing. The PCRF/PCF is a critical enabler for advanced business models, allowing operators to move from flat-rate billing to granular, service-differentiated charging and quality assurance.
Purpose & Motivation
The PCRF was developed to solve the limitations of static, pre-configured policy control in earlier mobile data networks (GPRS, early 3G). In those networks, QoS and charging were largely determined by the subscriber's static APN (Access Point Name) configuration, offering little flexibility to adapt to specific applications or real-time network conditions. This 'one-size-fits-all' approach hindered the monetization of new services (like VoIP, video streaming) and efficient network resource utilization.
The driving motivation was to create a dynamic, application-aware policy framework. The PCRF enables operators to implement sophisticated service plans (e.g., zero-rating for social media, premium QoS for cloud gaming, bandwidth throttling after a data cap). It addresses the need for real-time interaction between the service layer (applications) and the transport layer (bearer network). By centralizing policy decisions, the PCRF provides a consistent control point, ensuring that policy is applied uniformly regardless of the user's access technology (3G, 4G, non-3GPP). Its creation was closely tied to the all-IP architecture of EPS, where the traditional circuit-switched domain for voice was replaced by packet-switched IMS (IP Multimedia Subsystem), requiring tight integration between service signaling and bearer management for quality assurance.
Key Features
- Centralized, real-time policy decision-making based on subscriber, service, and network data.
- Dynamic provisioning of PCC rules to enforcement points (PCEF) via the Gx interface.
- Support for service-aware QoS control, defining parameters like QCI, GBR, and MBR per data flow.
- Integration with charging systems, determining online and offline charging rules and triggers.
- Interaction with Application Functions (AF) via the Rx interface for service-based policy (e.g., IMS).
- Capability for event-triggered policy updates (e.g., on location change, time-of-day, or usage threshold).
Evolution Across Releases
The PCRF was introduced as part of the initial Policy and Charging Control (PCC) architecture in 3GPP Release 7. It was defined as the standalone policy decision function, separate from enforcement. Key interfaces like Gx (to PCEF) and Rx (to AF) were specified, enabling dynamic QoS and charging rule provisioning based on service information from the IMS network.
Defining Specifications
| Specification | Title |
|---|---|
| TS 23.060 | 3GPP TS 23.060 |
| TS 23.139 | 3GPP TS 23.139 |
| TS 23.203 | 3GPP TS 23.203 |
| TS 23.207 | 3GPP TS 23.207 |
| TS 23.228 | 3GPP TS 23.228 |
| TS 23.282 | 3GPP TS 23.282 |
| TS 23.379 | 3GPP TS 23.379 |
| TS 23.380 | 3GPP TS 23.380 |
| TS 23.401 | 3GPP TS 23.401 |
| TS 23.682 | 3GPP TS 23.682 |
| TS 23.701 | 3GPP TS 23.701 |
| TS 23.722 | 3GPP TS 23.722 |
| TS 23.768 | 3GPP TS 23.768 |
| TS 23.795 | 3GPP TS 23.795 |
| TS 23.799 | 3GPP TS 23.799 |
| TS 23.803 | 3GPP TS 23.803 |
| TS 24.229 | 3GPP TS 24.229 |
| TS 24.930 | 3GPP TS 24.930 |
| TS 25.467 | 3GPP TS 25.467 |
| TS 26.233 | 3GPP TS 26.233 |
| TS 26.924 | 3GPP TS 26.924 |
| TS 28.708 | 3GPP TS 28.708 |
| TS 28.709 | 3GPP TS 28.709 |
| TS 29.061 | 3GPP TS 29.061 |
| TS 29.122 | 3GPP TS 29.122 |
| TS 29.154 | 3GPP TS 29.154 |
| TS 29.155 | 3GPP TS 29.155 |
| TS 29.165 | 3GPP TS 29.165 |
| TS 29.201 | 3GPP TS 29.201 |
| TS 29.212 | 3GPP TS 29.212 |
| TS 29.213 | 3GPP TS 29.213 |
| TS 29.214 | 3GPP TS 29.214 |
| TS 29.215 | 3GPP TS 29.215 |
| TS 29.217 | 3GPP TS 29.217 |
| TS 29.219 | 3GPP TS 29.219 |
| TS 29.244 | 3GPP TS 29.244 |
| TS 29.468 | 3GPP TS 29.468 |
| TS 29.522 | 3GPP TS 29.522 |
| TS 29.806 | 3GPP TS 29.806 |
| TS 29.809 | 3GPP TS 29.809 |
| TS 29.810 | 3GPP TS 29.810 |
| TS 29.816 | 3GPP TS 29.816 |
| TS 29.817 | 3GPP TS 29.817 |
| TS 29.826 | 3GPP TS 29.826 |
| TS 29.827 | 3GPP TS 29.827 |
| TS 29.866 | 3GPP TS 29.866 |
| TS 29.949 | 3GPP TS 29.949 |
| TS 32.240 | 3GPP TR 32.240 |
| TS 32.260 | 3GPP TR 32.260 |
| TS 32.296 | 3GPP TR 32.296 |
| TS 32.409 | 3GPP TR 32.409 |
| TS 32.752 | 3GPP TR 32.752 |
| TS 32.753 | 3GPP TR 32.753 |
| TS 32.756 | 3GPP TR 32.756 |
| TS 32.843 | 3GPP TR 32.843 |
| TS 33.107 | 3GPP TR 33.107 |
| TS 36.868 | 3GPP TR 36.868 |
| TS 37.579 | 3GPP TR 37.579 |