- 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.
The PDCP layer provides services to upper layer (RRC or SDAP) are:
- Transfer of user plane data
- Transfer of control plane data
- Header compression
- Integrity Protection
The PDCP layer expect services from Lower Layer (RLC) is/are:
- Acknowledged data transfer service, including indication of successful delivery of PDCP PDUs.
- Unacknowledged data transfer service.
The functionality performs by PDCP Layer/sub-layer given below, which is taken from 3GPP specification (TS 38.323).
- 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.
PDCP Data Structure :
Data PDU for SRBs :
The format of the PDCP Data PDU with 12-Bits PDCP SN for SRBs is :
Data PDU for DRBs with 12-Bits PDCP SN :
The format of the PDCP Data PDU with 12-Bits PDCP SN for UM DRBs and AM DRBs.
Data PDU for DRBs with 18-Bits PDCP SN :
The format of the PDCP Data PDU with 18-Bits PDCP SN for UM DRBs and AM DRBs.
Control PDU for PDCP status report:
The format of the PDCP Control PDU carrying one PDCP status report for AM DRBs.
Control PDU for interspersed ROHC feedback:
The format of the PDCP Control PDU carrying one interspersed ROHC feedback for UM DRBs and AM DRBs.
The length of the PDCP SN is configured by upper layers (pdcp-SNSize in TS 38.331 ).
D/C Field :
This 1-bit field indicates whether the corresponding PDCP PDU is a PDCP Data PDU or a PDCP Control PDU.
PDCP PDU Type :
This 3-Bit field indicates the type of control information included in the corresponding PDCP Control PDU.
This field indicates which SDUs are missing and which SDUs are correctly received in the receiving PDCP entity. The bit position of Nth bit in the Bitmap is N, i.e., the bit position of the first bit in the Bitmap is 1.
To contribute :
If you like Advance Computing and would like to contribute, you can mail your article to “firstname.lastname@example.org”. You will get credit as your name , email id, designation with article on this blog.
3GPP TS 38.323 Rel 15 Ver 15.3.0