5G NR Layer 2 – Packet Data Convergence Protocol (PDCP) Overview
5G NR PDCP is a Layer 2 protocol and overall functionality is almost same as it was in 4G LTE PDCP. PDCP layer resides between RRC on the upper side and RLC on the lower side of the control plane and between SDAP and RLC in user plane. Following figure shows the same.
Key Pointer for PDCP :
- PDCP stands for Packet Data Convergence Protocol
- It is a layer of 5G NR radio protocol stack
- It is placed top of the RLC Layer and below of the SDAP layer(for user plane) or RRC layer (for control plane) in the Radio Protocol Stack in 5G NR
- Due to header compression functionality, it is called as convergence protocol
- PDCP layer also responsible for security things like ciphering& integrity
- 3GPP specification TS 38.323 defined PDCP protocol
The PDCP layer provides following services to upper layer i.e.RRC or SDAP :
- Transfer of user plane data
- Transfer of control plane data
- Header compression
- Ciphering and Integrity Protection
The PDCP layer expect following services from lower layer i.e. RLC
- Acknowledged data transfer service, including indication of successful delivery of PDCP PDUs.
- Unacknowledged data transfer service.
Following is the list functions performed by PDCP Layer/sub-layer
- Transfer of data (user plane or control plane)
- Maintenance of PDCP SNs
- Header compression and decompression using the ROHC protocol
- Ciphering and deciphering
- Integrity protection and integrity verification
- Timer based SDU discard
- for split bearers, routing
- Reordering and in-order delivery
- Out-of-order delivery
- Duplicate discarding.
PDCP Layer Structural View:
The structural view of PDCP layer given in below diagram, which will give a very high level idea about PDCP layer.
Now, on seeing above diagram, there are some questions are coming in minds like “What is the PDCP entity?”, “What is the PDCP SAP?”, “What is the C-SAP?”, “What is the RLC UM-SAP?”, “What is the RLC AM-SAP?”, “What is the PDCP SDU/PDU?” and “What is the RLC SDU/PDU?”. Don’t worry about these questions,I’ll will explain.
- What is the PDCP entity? A PDCP entity which is used to perform the PDCP sub-layer functions (like sequence numbering, header compression/decompression, ciphering/deciphering etc.) can be configured either with both transmitting and receiving sides (fora bidirectional radio bearer), or only one of them (for a unidirectional radio bearer).
- What is the PDCP SAP? SAP stands for Service Access Points. ASAP is logical connection (interface) between any two layers. Here PDCP SAP is interface between SDAP & PDCP.
- What is the C-SAP? C-SAP is stands for Control Service Access Point, which is the logical connection (interface) between PDCP & RRC.
- What is the RLC UM-SAP? RLC UM-SAP stands for RLC Unacknowledged Mode SAP, which is the logical connection (interface) between RLC & PDCP.
- What is the RLC AM-SAP? RLC AM-SAP stands for RLC Acknowledged Mode SAP, which is the logical connection (interface) between RLC & PDCP.
- What is the PDCP SDU/PDU? SDU stands for Service Data Unit and PDU stands for Packet Data Unit. Input of PDCP sub-layer called as PDCP SDU and output of PDCP sub-layer called as PDCP PDU or RLC SDU.
- What is the RLC SDU/PDU? Input of RLC sub-layer called as RLC SDU and output of RLC sub-layer called as RLC PDU or MAC SDU.
The functional diagram for PDCP layer:
This diagram will give high level idea about PDCP layer functionality. On seeing, this diagram, there are some questions coming into minds like –
- “What is the purpose of Sequence Numbering?”
- “What is the purpose of Header Compression?”,
- “What is the Integrity Protection?”
- “What is the ciphering?”
- “What is the Add PDCP Header?”
- “What is the purpose of Routing/Duplication?”
Don’t worry about these questions, I’ll explain. But first I want to tell you about PDCP sub-layer functional flow, it means what kinds of functionality will be performed during TX (Downlink) / RX (Uplink). Here I’m explaining w.r.t. gNB and almost same functional flow applicable for UE as well.
Let’s follow the diagram from TX (Downlink):
- PDCP SDU coming into PDCP sub-layer firstly stored in transmission buffer, then goes through the “Sequence Numbering” functionality. It means PDCP adds a sequence number to each of incoming PDCP SDU, then it will go for further PDCP functionality.Once it adds sequence number, it has to maintain the sequence number on the receiver end. With the help of sequence number, we can figure out many things like “Is the data getting in order or not?”, “Is there any duplicate data”,“How can I combine the multiple chunks of data block into an original big chunk of data”.
- After going through Sequence Numbering procedure, it goes through header compression procedure, but it is applicable only for User plane data. It means control plane data i.e. signaling message not going through header compression procedure. We can disable header compression/decompression procedure if it is not implemented at UE.
- After header compression, there are two paths, i) Going through Integrity/Ciphering ii) Directly going to Add PDCP Header.
- Integrity protection applies only to signaling message i.e. control plane data (It means RRC/NAS message i.e. DCCH data, not DTCH data). Here, you may disable Integrity protection by applying a signaling message.
- After this, it goes through ciphering, which is applies on both user plane data and control plane data. Here, you may disable ciphering by applying a signaling message.
- Then,it goes to Add PDCP Header, it adds PDCP header to the data.
- If split bearer is enabled, then PDCP routing function routes the PDCP PDU to intended bearer and inside the routing duplication procedure comes into picture.
Note : We need to perform reverse operation at receiver end to get original data.
- “What is the purpose of Sequence Numbering?” Sequence Number is very useful for duplicate detection & re-ordering. It maintains COUNT value according to procedure.
- “What is the purpose of Header Compression?”, Header compression is a kind of technique that compress the IP header in a packet before the packet is transmitted and reduce the overhead.
- “What is the Integrity Protection?”,Integrity is a kind of special encryption algorithm, which is used for signaling messages, to provide security.
- “What is the ciphering?” It is a key based encryption algorithm, which is used for both user plane data and control plane data, to provide security.
- “What is the purpose of Add PDCP Header?”,After performing PDCP sub-layer functionality, adding PDCP header to generate PDCP PDU.
- “What is the purpose of Routing/Duplication?”,If split bearer is enabled, then PDCP routing function routes the PDCP PDU to intended bearer.
Article is submitted by Manoj Kumar
- 3GPP 38 323 5G, NR, Packet Data Convergence Protocol (PDCP) specification
- Radio Link Control (RLC) Overview
- 5G NR RRC Procedure and Its states
- 5G System Connection Management: CM-Idle and CM-Connected
- 5G Voice Services Implementation Options
- 5G Network RF Planning – Link Budget Basics