PCC

Performance-oriented Congestion Control

QoS
Introduced in Rel-7
PCC is a framework in 3GPP for dynamic policy and charging control, primarily defined in the PCC architecture. It enables operators to manage network resources, enforce quality of service (QoS), and implement charging rules based on user subscriptions, service types, and real-time network conditions.

Description

Performance-oriented Congestion Control (PCC) is a comprehensive framework within 3GPP standards that provides dynamic policy control and charging functionality for IP-based services. It is a cornerstone of the Evolved Packet Core (EPC) in LTE and 5G systems, though its origins trace back to Release 7. The PCC architecture centralizes decision-making for QoS and charging, allowing network operators to apply precise controls per user and per service flow. At its heart, PCC involves key functional entities: the Policy and Charging Rules Function (PCRF), the Policy and Charging Enforcement Function (PCEF), the Application Function (AF), and the Subscription Profile Repository (SPR) or Unified Data Repository (UDR). These elements work in concert to authorize resources, enforce policies, and ensure appropriate charging based on real-time inputs.

The PCC framework operates through a series of standardized interfaces, primarily the Gx interface between PCRF and PCEF, the Rx interface between PCRF and AF, and the Sy interface between PCRF and OCS (Online Charging System). How it works begins with the establishment of an IP-CAN (IP Connectivity Access Network) session by the User Equipment (UE). The PCEF, typically residing in the Packet Data Network Gateway (PGW) in LTE or the SMF/UPF in 5G, detects the session and requests policy rules from the PCRF via Gx. The PCRF then makes decisions by consolidating information from multiple sources: subscriber data from SPR/UDR (e.g., allowed services, QoS profiles), service information from AF (e.g., required bandwidth for a video stream), and network status from internal policies or the Traffic Detection Function (TDF). It then provisions these decisions as PCC rules to the PCEF for enforcement.

Key components of PCC include PCC rules, which are sets of information enabling the detection of a service data flow and defining parameters for its treatment. Each PCC rule contains a rule identifier, service data flow filters (e.g., 5-tuple IP filters), precedence, QoS parameters (QCI, ARP, bitrates), charging information (metering method, charging key), and enforcement actions. The PCEF uses these rules to perform deep packet inspection (DPI) to identify flows, apply QoS marking (setting DSCP or allocating bearer resources), rate limit, and generate charging data records (CDRs) or interact with online charging systems. This allows for granular control, such as prioritizing VoIP traffic over best-effort web browsing or applying zero-rating for specific applications.

PCC's role extends beyond basic QoS; it is integral to network slicing, edge computing, and network automation in 5G. In 5G Core, the Policy Control Function (PCF) assumes the PCRF role, interacting with the Session Management Function (SMF) via the N7 interface. PCC principles enable dynamic policy adjustments based on network slicing SLAs, location changes, or congestion events. For instance, during network congestion, PCC can throttle non-essential traffic or offer sponsored data services. The framework supports both static policies (pre-configured) and dynamic policies (session-specific), providing flexibility for operators to innovate with service offerings while maintaining network performance and monetization.

Purpose & Motivation

PCC was created to address the limitations of static, pre-configured policy and charging mechanisms in earlier mobile data networks (e.g., GPRS). Before PCC, QoS and charging were often based on simple APN (Access Point Name) settings or subscriber profiles without real-time adaptability. This rigidity made it difficult for operators to offer differentiated services, manage network congestion dynamically, or implement sophisticated charging models like tiered data plans, zero-rating, or sponsored data. The explosion of IP-based services (video streaming, VoIP, IoT) in the mid-2000s demanded a more agile system that could respond to application needs and network conditions in real time.

The primary problem PCC solves is the efficient and monetizable management of scarce network resources amidst diverse traffic types. It enables operators to enforce policies that align with business objectives—for example, ensuring premium subscribers experience high-quality video while limiting heavy users during congestion. PCC also facilitates service innovation by allowing third-party application providers to interact with the network via the AF (e.g., through the Rx interface) to request specific QoS for their services, enabling partnerships and new revenue streams. This was a paradigm shift from network-as-a-pipe to network-as-a-service.

Historically, PCC's development in Release 7 was motivated by the convergence of IMS (IP Multimedia Subsystem) and non-IMS services over packet-switched domains. It provided a unified policy control framework for both, replacing earlier disjointed mechanisms like the Go interface for IMS. As networks evolved to LTE and 5G, PCC became even more critical due to increased data volumes, low-latency requirements, and network slicing. It addressed the need for automation in policy decision-making, reducing operational overhead and enabling real-time charging for on-demand services. PCC thus underpins modern mobile broadband economics, allowing operators to balance performance, fairness, and profitability in a competitive landscape.

Key Features

  • Dynamic policy decision and enforcement per service data flow
  • Integration with subscriber data, application requests, and network status
  • Support for both online and offline charging integration
  • Granular QoS control including QCI, ARP, and bandwidth parameters
  • Deep packet inspection capabilities for service flow detection
  • Standardized interfaces (Gx, Rx, Sy) for multi-vendor interoperability

Evolution Across Releases

Defining Specifications

SpecificationTitle
TS 23.060 3GPP TS 23.060
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.401 3GPP TS 23.401
TS 23.434 3GPP TS 23.434
TS 23.468 3GPP TS 23.468
TS 23.503 3GPP TS 23.503
TS 23.701 3GPP TS 23.701
TS 23.722 3GPP TS 23.722
TS 23.780 3GPP TS 23.780
TS 23.799 3GPP TS 23.799
TS 23.803 3GPP TS 23.803
TS 23.975 3GPP TS 23.975
TS 24.229 3GPP TS 24.229
TS 24.281 3GPP TS 24.281
TS 24.379 3GPP TS 24.379
TS 24.980 3GPP TS 24.980
TS 26.501 3GPP TS 26.501
TS 26.510 3GPP TS 26.510
TS 26.512 3GPP TS 26.512
TS 26.802 3GPP TS 26.802
TS 26.804 3GPP TS 26.804
TS 26.822 3GPP TS 26.822
TS 26.924 3GPP TS 26.924
TS 26.928 3GPP TS 26.928
TS 26.998 3GPP TS 26.998
TS 28.318 3GPP TS 28.318
TS 29.061 3GPP TS 29.061
TS 29.201 3GPP TS 29.201
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.244 3GPP TS 29.244
TS 29.512 3GPP TS 29.512
TS 29.513 3GPP TS 29.513
TS 29.514 3GPP TS 29.514
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.827 3GPP TS 29.827
TS 29.866 3GPP TS 29.866
TS 29.890 3GPP TS 29.890
TS 32.251 3GPP TR 32.251
TS 32.255 3GPP TR 32.255
TS 32.279 3GPP TR 32.279
TS 32.296 3GPP TR 32.296
TS 32.298 3GPP TR 32.298
TS 32.409 3GPP TR 32.409
TS 32.808 3GPP TR 32.808
TS 32.843 3GPP TR 32.843
TS 32.862 3GPP TR 32.862
TS 33.827 3GPP TR 33.827
TS 36.101 3GPP TR 36.101
TS 36.300 3GPP TR 36.300
TS 36.714 3GPP TR 36.714
TS 36.715 3GPP TR 36.715
TS 36.716 3GPP TR 36.716
TS 36.833 3GPP TR 36.833
TS 37.579 3GPP TR 37.579
TS 37.901 3GPP TR 37.901
TS 38.133 3GPP TR 38.133
TS 38.716 3GPP TR 38.716
TS 38.717 3GPP TR 38.717