5G PDCP Services and Functions
This page is the PDCP service and function reference. In PDCP terms, services describe the interface view of the protocol, while functions describe the internal behaviors that realize those services.
Use it to check the upward and downward service model, the main PDCP function groups, and the capability areas that lead into deeper pages on architecture, delivery, security, and format and runtime interpretation.
Quick facts
| Technology | 5G NR |
|---|---|
| Topic | PDCP services and functions |
| Main spec areas | TS 38.323 sections 4.3, 4.3.1, 4.3.2, and 4.4 |
| Service view | What PDCP provides upward and expects downward |
| Function view | What PDCP internally performs to realize those services |
| Maximum sizes | PDCP SDU up to 9000 bytes and PDCP Control PDU up to 9000 bytes |
Contents
- Introduction to PDCP Services and Functions
- Why Services and Functions Matter in PDCP
- Services Provided to Upper Layers
- Services Expected from Lower Layers
- PDCP Service Model in the NR Stack
- Core PDCP Functions Overview
- Data Transfer and PDCP SN Handling
- Compression and Decompression Functions
- Security Functions in PDCP
- Discard, Reordering, and Delivery Functions
- Routing, Duplication, and Advanced Data Handling
- How Services and Functions Connect to PDCP Procedures
- Why This PDCP Function Map Matters
- References
- FAQ
- Related PDCP Pages / Next Reading
Introduction to PDCP Services and Functions
PDCP sits between upper layers and lower bearer transport, so it needs both a clear interface contract and a clear internal capability set. The interface contract is the service model. The internal capability set is the function model.
This page uses that distinction to explain PDCP in a cleaner way. It first shows what PDCP provides to upper layers and what it expects downward, then it maps the functions that implement transfer, compression, protection, discard, reordering, duplication, and advanced handling.
Why Services and Functions Matter in PDCP
Engineers often mix services and functions together, but the distinction is useful. Services describe the external contract of PDCP: what upper layers can rely on and what lower layers must provide. Functions describe the behaviors PDCP performs internally to deliver that contract.
This matters because the same function map can support different service expectations depending on bearer type, lower-layer mode, and configuration. Understanding both views makes later procedure reading much clearer.
Services Provided to Upper Layers
PDCP provides its services to the RRC or SDAP layers. The upward service set includes user-plane transfer, control-plane transfer, compression-related support, and security-related support.
Two explicit size limits belong in this service view: the maximum supported size of a PDCP SDU is 9000 bytes, and the maximum supported size of a PDCP Control PDU is also 9000 bytes.
| Service provided upward | Meaning |
|---|---|
| Transfer of user-plane data | PDCP supports delivery of user-plane traffic upward and downward through its bearer-specific path. |
| Transfer of control-plane data | PDCP supports control-plane bearer traffic where relevant. |
| Header compression | PDCP can provide compression capability as part of its upward service model. |
| Uplink data compression | PDCP can provide uplink data compression capability where configured. |
| Ciphering | PDCP provides confidentiality-related service support to the bearer path. |
| Integrity protection | PDCP provides integrity-related service support where configured. |
Services Expected from Lower Layers
PDCP also has a downward-facing contract. Per RLC entity, a PDCP entity expects either an acknowledged data transfer service, including indication of successful delivery of PDCP PDUs, or an unacknowledged data transfer service.
In special association cases, the expectations expand further. A PDCP entity expects data transfer from an SRAP entity if it is associated with SRAP, and it expects data transfer from the N3C if it is associated with N3C.
| Service expected downward | Meaning |
|---|---|
| Acknowledged data transfer service | PDCP can rely on an RLC service that includes successful-delivery indication of PDCP PDUs. |
| Unacknowledged data transfer service | PDCP can also operate above an RLC service that transfers data without that acknowledgement model. |
| SRAP data transfer | Expected when the PDCP entity is associated with an SRAP entity. |
| N3C data transfer | Expected when the PDCP entity is associated with the N3C. |
PDCP Service Model in the NR Stack
The service model is easiest to understand as a stack-facing contract. Upward, PDCP exposes data-transfer, compression, and protection-related services to RRC or SDAP. Downward, it expects transfer behavior from RLC, and in special cases from SRAP or N3C.
This makes PDCP the middle contract layer in the bearer path. Upper layers do not need to think directly in terms of RLC mode details, and lower layers do not need to implement PDCP-specific compression or protection logic. PDCP sits between those worlds.
Core PDCP Functions Overview
This is the capability map of PDCP. If the services sections explain what PDCP offers and expects, the functions section explains the concrete behaviors inside PDCP that make those services possible.
The PDCP function scope includes transfer, PDCP SN maintenance, compression, security, discard handling, routing, duplication, reordering, in-order or out-of-order delivery, and duplicate discarding.
| PDCP function | Why it exists |
|---|---|
| Transfer of data | Support user-plane or control-plane traffic through the PDCP bearer path. |
| Maintenance of PDCP SNs | Maintain sequence-aware progression and support ordering-related behavior. |
| ROHC | Provide header compression and decompression using ROHC. |
| EHC | Provide header compression and decompression using EHC. |
| UDC | Provide uplink data compression and decompression using UDC. |
| Ciphering and deciphering | Apply and remove confidentiality protection. |
| Integrity protection and verification | Apply and check integrity protection where configured. |
| Timer based SDU discard | Discard data when timer-based conditions require it. |
| PDU Set discard | Discard associated PDU sets under the relevant procedure conditions. |
| PSI based SDU discard | Discard data according to PSI-based rules where relevant. |
| Routing | Support split-bearer and DAPS-oriented transmit-side path handling. |
| Duplication | Support redundant PDCP transmission behavior. |
| Reordering and in-order delivery | Control receive-side sequencing and orderly release upward. |
| Out-of-order delivery | Support configured delivery modes that relax strict ordering. |
| Duplicate discarding | Prevent repeated delivery of duplicated PDCP information. |
| Feature group | Included functions | Primary engineering concern |
|---|---|---|
| Transfer and sequence control | Data transfer and PDCP SN maintenance | Move traffic and track progression. |
| Compression and efficiency | ROHC, EHC, and UDC | Reduce overhead and support efficient bearer transport. |
| Security | Ciphering, deciphering, integrity protection, and verification | Apply confidentiality and integrity at PDCP. |
| Delivery shaping | Discard, reordering, in-order delivery, out-of-order delivery, duplicate discard | Control what the receiver releases upward and when. |
| Advanced bearer handling | Routing and duplication | Support multi-path and redundant bearer behavior. |
Data Transfer and PDCP SN Handling
Data transfer is the simplest PDCP function to name and one of the broadest to understand. It covers how PDCP accepts upper-layer traffic, processes it as needed, and passes it downward, then performs the inverse role on the receive side.
PDCP SN maintenance sits directly beside that transfer role. It gives PDCP the sequence-aware foundation needed for ordering, duplicate handling, delivery control, and other runtime behaviors. This page keeps SN handling at overview level and leaves format and procedural detail to the dedicated child pages.
Compression and Decompression Functions
PDCP includes multiple compression-related capabilities. These include header compression and decompression using ROHC, header compression and decompression using EHC, and uplink data compression and decompression using UDC.
The key point at service-and-function level is that PDCP is responsible for these efficiency-oriented transformations. This page does not expand into the algorithm detail, but it makes clear that compression is a built-in capability area of PDCP rather than an external add-on.
ROHC Header Compression
Open the ROHC page for compression context, profile behavior, and decompression details.
Ethernet Header Compression (EHC)
Use the EHC page for Ethernet-specific header-compression behavior in PDCP.
Uplink Data Switching and UDC
Go here when uplink compression, decompression, and switching behavior become the main issue.
Security Functions in PDCP
PDCP is the layer where ciphering and deciphering are performed, and where integrity protection and integrity verification are applied where configured. This makes PDCP the main radio-side execution layer for these protection functions.
For a service-and-function page, the important point is architectural placement rather than cryptographic detail. Security is part of what PDCP offers and part of what PDCP internally does, which is why it appears in both the service list and the function list.
Discard, Reordering, and Delivery Functions
Several PDCP functions exist to shape receive behavior and delivery behavior rather than raw packet transport. These include timer based SDU discard, PDU Set discard, PSI based SDU discard, reordering and in-order delivery, out-of-order delivery, and duplicate discarding.
Taken together, these functions explain why PDCP is more than a security wrapper. It is also the layer that decides when data should still wait, when it can be released upward, and when repeated or stale information should be discarded.
Data Transfer, Reordering and Delivery
Open the dedicated page for receive-side ordering, delivery, and duplicate-handling behavior.
Entity Handling, Discard, Status and Recovery
Use the procedure page when discard logic, status reporting, and recovery behavior need more detail.
State Variables, Constants and Timers
Go to the runtime-control page when delivery timing and reordering progression must be read through state.
Routing, Duplication, and Advanced Data Handling
PDCP also supports advanced bearer handling. The function list includes routing for split bearers and DAPS bearer plus duplication. These functions matter when one bearer path is not a single straightforward transmit-receive flow.
This page keeps the explanation broad and navigational. The main message is that PDCP is the bearer-aware layer that can support path selection and redundancy, while still keeping delivery control and duplicate discard under the same functional umbrella.
How Services and Functions Connect to PDCP Procedures
The services and functions described here are realized by deeper PDCP procedures. Entity handling controls how the protocol instance is created and reconfigured. Data transfer procedures realize the main bearer path. Discard, status reporting, and data recovery handle exception cases. Security, compression, and duplication procedures realize the corresponding function families.
The function map is therefore not a detached overview. It is the index to the deeper procedure pages that make PDCP work in live operation.
| Function area | Best next page |
|---|---|
| Architecture and entity context | Overview and Architecture |
| Data transfer and reordering | Data Transfer, Reordering and Delivery |
| Security | Ciphering and Integrity Protection |
| Formats, SN, and COUNT | PDU Formats, SN, COUNT and Parameters |
| Discard, status, and recovery | Entity Handling, Discard, Status and Recovery |
Why This PDCP Function Map Matters
Understanding the PDCP service model and function map first makes the rest of the protocol easier to read. It explains which behaviors belong to the external interface, which belong to the internal engine, and how compression, security, discard, duplication, and delivery control fit into one coherent bearer-facing layer.
In practical work, this page helps engineers decide where to go next: a stack question points back to architecture, a runtime question points toward reordering or timers, a security question points toward the protection page, and a format question points toward PDUs, SN, and COUNT.
References
- 3GPP TS 38.323 V18.1.0, NR Packet Data Convergence Protocol (PDCP) specification
- ETSI TS 138 323 V18.1.0 (2024-05), NR PDCP Release 18 publication
- 3GPP TS 38.300 V19.2.0, overall NR architecture context
- 3GPP TS 38.331 V18.5.1, NR RRC specification for bearer and configuration context
FAQ
Why separate services and functions when reading PDCP?
Because services describe the interface contract of PDCP, while functions describe the internal behaviors PDCP performs to realize that contract.
Which upper layers receive PDCP services?
PDCP provides services to the RRC or SDAP layers depending on bearer context.
Is successful-delivery indication part of the lower-layer service view?
Yes. It is part of the acknowledged data transfer service expected by a PDCP entity from an associated RLC entity.
Does PDCP only support in-order delivery?
No. PDCP supports reordering and in-order delivery, and it also supports out-of-order delivery where configured.