In this section, we shall learn about Transmit and Receive operation along with related state variables.
Constants and timers:
Window_Size: his constant indicates the size of the reordering window. The value equals to 2[pdcp-SN-SizeDL] – 1.
Timers:
discardTimer: This is transmitter timer, it is started upon reception of an SDU from upper layer.
t-Reordering: This is receiving timer, it is used to detect loss of PDCP Data PDU
Transmit operation
Transmitting PDCP entity state variables
TX_NEXT: This state variable indicates the COUNT value of the next PDCP SDU to be transmitted. The initial value is 0.
Transmit operation:
When a PDCP SDU from upper layer, the transmitting PDCP entity will:
– start the discardTimer associated with this PDCP SDU
– associate the COUNT value corresponding to TX_NEXT to this PDCP SDU;
– perform header compression of the PDCP SDU
– perform integrity protection, and ciphering using the TX_NEXT
– set the PDCP SN of the PDCP Data PDU to TX_NEXT modulo 2[pdcp-SN-SizeUL];
– increment TX_NEXT by one;
– submit the resulting PDCP Data PDU to lower layer.
If One PDCP entity is associated with two RLC entities
If duplication function is configured and activated, PDCP data PDU are copied and delivered to 2 RLC entities respectively.
Receive operation
Receive PDCP entity state variables
RX_NEXT: This state variable indicates the COUNT value of the next PDCP SDU expected to be received. The initial value is 0.
RX_DELIV: This state variable indicates the COUNT value of the first PDCP SDU not delivered to the upper layers, but still waited for.
RX_REORD: This state variable indicates the COUNT value following the COUNT value associated with the PDCP Data PDU which triggered t-Reordering.
Receive operation:
At reception of a PDCP Data PDU from lower layers, the receiving PDCP entity shall determine the COUNT value of the received PDCP Data PDU, i.e. RCVD_COUNT, as follows:
if RCVD_SN < SN(RX_DELIV) – Window_Size : RCVD_HFN = HFN(RX_DELIV) + 1; else if RCVD_SN >= SN(RX_DELIV) + Window_Size : RCVD_HFN = HFN(RX_DELIV) – 1; else : RCVD_HFN = HFN(RX_DELIV); RCVD_COUNT = [RCVD_HFN, RCVD_SN]
After determining the count value, PDCP PDUs that fail the integrity verification will be discarded . If not tey are reception buffer.
Decompress the header and submit it to upper layer.
TS 38 323