When upper layers request a PDCP entity establishment for a radio bearer for Uu or PC5 interface; or for NR sidelink communication for groupcast and broadcast or for sidelink SRB4, when receiving the first PDCP PDU, and there is not yet a corresponding PDCP entity, the UE shall:
establish a PDCP entity for the radio bearer;
set the state variables of the PDCP entity to initial values;
When upper layers request a PDCP entity re-establishment, the UE shall additionally perform once the procedures described in this clause for Uu or PC5 interface. After performing the procedures in this clause, the UE shall follow the procedures in clause 5.2.
When upper layers request a PDCP entity re-establishment, the transmitting PDCP entity shall:
for UM DRBs and AM DRBs, reset the ROHC protocol for uplink and start with an IR state in U-mode (as defined in RFC 3095 and RFC 4815) if drb-ContinueROHC is not configured in TS 38.331;
for UM DRBs and AM DRBs, reset the EHC protocol for uplink if drb-ContinueEHC-UL is not configured in TS 38.331;
for AM DRBs, reset the UDC compression buffer to all zeros and prefill the dictionary if drb-ContinueUDC is not configured in TS 38.331;
for SRBs and UM DRBs, set TX_NEXT to the initial value;
for SRBs, discard all stored PDCP SDUs and PDCP PDUs;
apply the ciphering algorithm and key provided by upper layers during the PDCP entity re-establishment procedure;
apply the integrity protection algorithm and key provided by upper layers during the PDCP entity re-establishment procedure;
for UM DRBs, for each PDCP SDU already associated with a PDCP SN but for which a corresponding PDU has not previously been submitted to lower layers, and;
for AM DRBs for Uu interface whose PDCP entities were suspended, from the first PDCP SDU for which the successful delivery of the corresponding PDCP Data PDU has not been confirmed by lower layers, for each PDCP SDU already associated with a PDCP SN:
consider the PDCP SDUs as received from upper layer;
perform transmission of the PDCP SDUs in ascending order of the COUNT value associated to the PDCP SDU prior to the PDCP re-establishment without restarting the discardTimer or the discardTimerForLowImportance, as specified in clause 5.2.1;
for AM DRBs whose PDCP entities were not suspended, from the first PDCP SDU for which the successful delivery of the corresponding PDCP Data PDU has not been confirmed by lower layers, perform retransmission or transmission of all the PDCP SDUs already associated with PDCP SNs in ascending order of the COUNT values associated to the PDCP SDU prior to the PDCP entity re-establishment as specified below:
perform header compression of the PDCP SDU using ROHC as specified in the clause 5.7.4 and/or using EHC as specified in the clause 5.12.4;
If drb-ContinueUDC is configured and if the PDCP SDU has been compressed before:
submit the PDCP SDU previously compressed to integrity protection and ciphering function;
else:
perform uplink data compression of the PDCP SDU as specified in clause 5.14.4, and submit the PDCP SDU to integrity protection and ciphering function;
perform integrity protection and ciphering of the PDCP SDU using the COUNT value associated with this PDCP SDU as specified in the clause 5.9 and 5.8;
submit the resulting PDCP Data PDU to lower layer, as specified in clause 5.2.1.
When upper layers request a PDCP entity re-establishment, the receiving PDCP entity shall:
process the PDCP Data PDUs that are received from lower layers due to the re-establishment of the lower layers, as specified in the clause 5.2.2.1;
for SRBs, discard all stored PDCP SDUs and PDCP PDUs;
for SRBs, UM DRBs and UM MRBs, if t-Reordering is running:
stop and reset t-Reordering;
for UM DRBs and UM MRBs, deliver all stored PDCP SDUs to the upper layers in ascending order of associated COUNT values after performing header decompression;
for AM DRBs and AM MRBs for Uu interface, perform header decompression using ROHC for all stored PDCP SDUs if drb-ContinueROHC is not configured in TS 38.331;
for AM DRBs for PC5 interface, perform header decompression using ROHC for all stored PDCP IP SDUs;
for AM DRBs and AM MRBs for Uu interface, perform header decompression using EHC for all stored PDCP SDUs if drb-ContinueEHC-DL is not configured in TS 38.331;
for UM DRBs, AM DRBs, UM MRBs and AM MRBs, reset the ROHC protocol for downlink and start with NC state in U-mode (as defined in RFC 3095 and RFC 4815) if drb-ContinueROHC is not configured in TS 38.331;
for UM DRBs, AM DRBs, UM MRBs and AM MRBs, reset the EHC protocol for downlink if drb-ContinueEHC-DL is not configured in TS 38.331;
for SRBs and UM DRBs, set RX_NEXT and RX_DELIV to the initial value;
for UM MRBs and AM MRBs, set RX_NEXT and RX_DELIV to the initial value if initialRX-DELIV is configured in TS 38.331;
apply the ciphering algorithm and key provided by upper layers during the PDCP entity re-establishment procedure;
apply the integrity protection algorithm and key provided by upper layers during the PDCP entity re-establishment procedure.
When upper layers request a PDCP entity release for a radio bearer for Uu or PC5 interface, the UE shall:
discard all stored PDCP SDUs and PDCP PDUs in the transmitting PDCP entity;
for UM DRBs, AM DRBs, UM MRBs and AM MRBs, deliver the PDCP SDUs stored in the receiving PDCP entity to upper layers in ascending order of associated COUNT values after performing header decompression, if not decompressed before;
When upper layers reconfigure the PDCP entity to configure DAPS, the UE shall:
establish a ciphering function for the radio bearer and apply the ciphering algorithm and key provided by upper layers for the ciphering function;
establish an integrity protection function for the radio bearer and apply the integrity protection algorithm and key provided by upper layers for the integrity protection function;
establish a header compression protocol for the radio bearer and apply the header compression configuration provided by upper layers for the header compression protocol.
When upper layers reconfigure the PDCP entity to release DAPS, the UE shall:
release the ciphering function associated to the released RLC entity for the radio bearer;
release the integrity protection function associated to the released RLC entity for the radio bearer;
release the header compression protocol associated to the released RLC entity for the radio bearer.
At reception of a PDCP SDU from upper layers, the transmitting PDCP entity shall:
if discardTimerForLowImportance is configured and PSI based SDU discard is activated, and the PDCP SDU belongs to a low importance PDU Set:
start the discardTimerForLowImportance associated with this PDCP SDU;
else:
start the discardTimer associated with this PDCP SDU (if configured).
For a PDCP SDU received from upper layers, the transmitting PDCP entity shall:
associate the COUNT value corresponding to TX_NEXT to this PDCP SDU;
perform header compression of the PDCP SDU using ROHC as specified in the clause 5.7.4 and/or using EHC as specified in the clause 5.12.4;
perform uplink data compression of the PDCP SDU as specified in clause 5.14.4;
perform integrity protection, and ciphering using the TX_NEXT as specified in the clause 5.9 and 5.8, respectively;
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 as specified below.
When submitting a PDCP PDU to lower layer, the transmitting PDCP entity shall:
if the transmitting PDCP entity is associated with one SRAP entity:
submit the PDCP PDU to the associated SRAP entity;
else, if the transmitting PDCP entity is associated with one RLC entity:
submit the PDCP PDU to the associated RLC entity;
else, if the transmitting PDCP entity is associated with one or more RLC entities and, either one SRAP entity or the N3C:
if PDCP duplication is activated for the RB:
if the PDCP PDU is a PDCP Data PDU:
duplicate the PDCP Data PDU and submit the PDCP Data PDU to each of the MP primary path and MP secondary path which is activated for PDCP duplication, including any associated Uu RLC entities activated for PDCP duplication;
else:
if the MP primary path is the direct path:
submit the PDCP Control PDU to the primary RLC entity;
else:
submit the PDCP Control PDU to the SRAP entity or N3C;
else (i.e., PDCP duplication is deactivated for the RB):
if the total amount of PDCP data volume, RLC data volume pending for initial transmission (as specified in TS 38.322) in either the primary RLC entity (when the MP primary path is the direct path) or the split secondary RLC entity on the direct path (when the MP primary path is the indirect path), and data volume pending for initial transmission in the N3C (if available) or mapped SL RLC entity associated with the SRAP entity, is equal to or larger than ul-DataSplitThreshold:
submit the PDCP PDU to either the Uu RLC entity (i.e., either the primary RLC entity or the split secondary RLC entity) or SRAP entity/N3C;
else:
if the MP primary path is the direct path:
submit the PDCP PDU to the primary RLC entity;
else:
submit the PDCP PDU to the SRAP entity or N3C;
else, if the transmitting PDCP entity is associated with at least two RLC entities:
if the PDCP duplication is activated for the RB:
if the PDCP PDU is a PDCP Data PDU:
duplicate the PDCP Data PDU and submit the PDCP Data PDU to the associated RLC entities activated for PDCP duplication;
else:
submit the PDCP Control PDU to the primary RLC entity;
else (i.e. the PDCP duplication is deactivated for the RB or the RB is a DAPS bearer):
if the split secondary RLC entity is configured; and
if the total amount of PDCP data volume and RLC data volume pending for initial transmission (as specified in TS 38.322) in the primary RLC entity and the split secondary RLC entity is equal to or larger than ul-DataSplitThreshold:
submit the PDCP PDU to either the primary RLC entity or the split secondary RLC entity;
else, if the transmitting PDCP entity is associated with the DAPS bearer:
if the uplink data switching has not been requested:
submit the PDCP PDU to the RLC entity associated with the source cell;
else:
if the PDCP PDU is a PDCP Data PDU:
submit the PDCP Data PDU to the RLC entity associated with the target cell;
else:
if the PDCP Control PDU is associated with source cell:
submit the PDCP Control PDU to the RLC entity associated with the source cell;
else:
submit the PDCP Control PDU to the RLC entity associated with the target cell;
HFN(State Variable): the HFN part (i.e. the number of most significant bits equal to HFN length) of the State Variable;
SN(State Variable): the SN part (i.e. the number of least significant bits equal to PDCP SN length) of the State Variable;
RCVD_SN: the PDCP SN of the received PDCP Data PDU, included in the PDU header;
RCVD_HFN: the HFN of the received PDCP Data PDU, calculated by the receiving PDCP entity;
RCVD_COUNT: the COUNT of the received PDCP Data PDU = [RCVD_HFN, RCVD_SN].
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 of the received PDCP Data PDU = RCVD_COUNT, the receiving PDCP entity shall:
perform deciphering and integrity verification of the PDCP Data PDU using COUNT = RCVD_COUNT;
if integrity verification fails:
indicate the integrity verification failure to upper layer;
discard the PDCP Data PDU and consider it as not received;
if RCVD_COUNT < RX_DELIV; or
if the PDCP Data PDU with COUNT = RCVD_COUNT has been received before:
discard the PDCP Data PDU;
If the received PDCP Data PDU with COUNT value = RCVD_COUNT is not discarded above, the receiving PDCP entity shall:
store the resulting PDCP SDU in the reception buffer;
if RCVD_COUNT ≥ RX_NEXT:
update RX_NEXT to RCVD_COUNT + 1.
if outOfOrderDelivery is configured:
deliver the resulting PDCP SDU to upper layers after performing header decompression using EHC.
if RCVD_COUNT = RX_DELIV:
deliver to upper layers in ascending order of the associated COUNT value after performing header decompression, if not decompressed before;
all stored PDCP SDU(s) with consecutively associated COUNT value(s) starting from COUNT = RX_DELIV, where consecutively associated COUNT value(s) include COUNT value(s) of both the stored PDCP SDU(s) and PDCP SDU(s) which are considered as discarded as specified in clause 5.16.2;
update RX_DELIV to the COUNT value of the first PDCP SDU which has not been delivered to upper layers and is not considered as discarded as specified in clause 5.16.2, with COUNT value > RX_DELIV;
if t-Reordering is running, and if RX_DELIV ≥ RX_REORD:
stop and reset t-Reordering.
if t-Reordering is not running (includes the case when t-Reordering is stopped due to actions above), and RX_DELIV < RX_NEXT:
When t-Reordering expires, the receiving PDCP entity shall:
deliver to upper layers in ascending order of the associated COUNT value after performing header decompression, if not decompressed before:
all stored PDCP SDU(s) with associated COUNT value(s) < RX_REORD, where consecutively associated COUNT value(s) include COUNT value(s) of both the stored PDCP SDU(s) and PDCP SDU(s) which are considered as discarded as specified in clause 5.16.2;
all stored PDCP SDU(s) with consecutively associated COUNT value(s) starting from RX_REORD;
update RX_DELIV to the COUNT value of the first PDCP SDU which has not been delivered to upper layers and is not considered as discarded as specified in clause 5.16.2, with COUNT value ≥ RX_REORD;
When the successful delivery of a PDCP SDU is confirmed by PDCP status report, the transmitting PDCP entity shall discard the PDCP SDU along with the corresponding PDCP Data PDU.
When the discardTimer or discardTimerForLowImportance expires for a PDCP SDU, the transmitting PDCP entity shall:
if pdu-SetDiscard is configured:
discard all PDCP SDUs belonging to the PDU Set to which the PDCP SDU belongs along with the corresponding PDCP Data PDUs;
else:
discard the PDCP SDU along with the corresponding PDCP Data PDU.
If the corresponding PDCP Data PDU has already been submitted to lower layers, the discard is indicated to lower layers.
For SRBs, when upper layers request a PDCP SDU discard, the PDCP entity shall discard all stored PDCP SDUs and PDCP PDUs.