Home / 5G / Protocols / PDCP / Uplink Data Switching and UDC

Uplink Data Switching and UDC in NR PDCP

In NR PDCP, uplink data switching and uplink data compression (UDC) are separate but related topics. Uplink data switching defines how a DAPS bearer moves pending uplink traffic from the source-cell path to the target-cell path. UDC defines how selected uplink user-plane PDCP SDUs on DRBs are compressed, how the UDC header is added, how feedback is handled, and how buffer synchronization is maintained.

Use this page to check DAPS-triggered uplink data switching, UDC configuration, UDC header placement, UDC packets, feedback PDUs, pre-defined dictionaries, and checksum-driven resynchronization. It stays centered on the PDCP procedure view, then links out to PDU formats, SN, and COUNT, security ordering, and the ROHC and EHC companion pages when needed.

Switching and UDC page Uplink switching UDC compression Feedback and dictionary Reset and checksum

Quick facts

Technology 5G NR
Topic DAPS uplink data switching and uplink data compression (UDC) in PDCP
Main spec areas TS 38.323 sections 5.13, 5.14, 6.2.3.4, and Annex B
Switching scope Uplink data switching for DAPS bearers, with distinct AM DRB and UM DRB handling
UDC scope DRB-oriented uplink data compression with one-byte UDC header and feedback Control PDU
Key config bufferSize and optional pre-defined dictionary from upper layers
Key runtime rule A UDC packet keeps the same PDCP SN and COUNT as the related PDCP SDU

Contents

  1. Introduction to Uplink Data Switching and UDC
  2. What This Page Covers
  3. Where These Functions Sit in PDCP
  4. Uplink Data Switching
  5. Uplink Data Switching Example
  6. UDC Protocol
  7. Configuration of UDC
  8. Configuration Examples
  9. UDC Header
  10. UDC Packet and Header Examples
  11. Uplink Data Compression
  12. Compression Flow Example
  13. PDCP Control PDU for UDC Feedback
  14. UDC Feedback Example
  15. Pre-defined Dictionary Handling
  16. Dictionary Example
  17. UDC Buffer Reset Procedure
  18. UDC Checksum Error Handling
  19. Buffer Reset and Checksum Example
  20. Annex B Packet Reference
  21. What Should Stay Off This Page
  22. References
  23. FAQ
  24. Related PDCP Pages

What This Page Covers

Area Main meaning
Uplink data switching for DAPS bearers How pending uplink traffic moves from the source-cell path to the target-cell path.
UDC protocol and DEFLATE basis How uplink data compression is defined from the PDCP point of view.
DRB-level UDC configuration Which DRBs can use UDC and how the compression buffer is initialized.
UDC header and packet structure What the one-byte UDC header means and how UDC packets are shaped.
UDC feedback Control PDU How UDC feedback is carried and handled in PDCP.
Dictionary, reset, and checksum handling How UDC maintains buffer synchronization and recovers from mismatch.

Where These Functions Sit in PDCP

Uplink data switching is a DAPS transmit-side procedure. UDC is a user-plane compression function. They belong together here because they both affect uplink processing before lower-layer submission, and both need to be read together with header compression, ciphering, and integrity ordering.

UDC Protocol

UDC is the uplink data-compression topic on this page. It is based on DEFLATE with static Huffman coding and uses a small PDCP-facing packet model built around a 1-byte UDC header.

UDC protocol item Main meaning
DEFLATE basis UDC is based on DEFLATE.
Static Huffman coding UDC uses static Huffman coding in this PDCP context.
Byte alignment behavior The UDC packet and header view should be read with byte-aligned PDCP treatment in mind.
Z_SYNC_FLUSH note The procedure uses a bounded compression output behavior aligned with PDCP packetization.
Uplink-only reading This page stays on uplink data compression, not a generic bidirectional compression model.

Configuration of UDC

UDC is configured for DRBs by upper layers. The main things to check are the configured bufferSize and whether a pre-defined dictionary is present.

Configuration case Main meaning Reading note
DRB applicability UDC is configured for DRBs by upper layers. This page keeps the focus on DRB-oriented UDC behavior.
Upper-layer configuration reference The UDC controls such as bufferSize and optional pre-defined dictionary come from upper layers. Treat this page as PDCP behavior, not a full RRC configuration decoder.
bufferSize configuration bufferSize defines the compression-buffer context maintained by UDC. This is one of the main operational settings to inspect.
Without pre-defined dictionary The compression buffer is initialized to all zeros. This is the baseline case.
With pre-defined dictionary The compression buffer is first reset to all zeros and then the configured dictionary is prefixed into it. The dictionary changes the starting compression context.

Configuration Examples

Example 1: DRB with UDC enabled

bearerType: DRB
userPlaneData: true
uplinkDataCompression:
  protocol: UDC
  bufferSize: <configured by upper layers>
  preDefinedDictionary: none
result:
  - compression buffer is set to all zeros
  - UDC compression function is applied to PDCP SDUs from upper layers on this DRB

Example 2: DRB with UDC and pre-defined dictionary

bearerType: DRB
userPlaneData: true
uplinkDataCompression:
  protocol: UDC
  bufferSize: <configured by upper layers>
  preDefinedDictionary: <configured by upper layers>
result:
  - compression buffer is first reset to all zeros
  - configured dictionary is then prefixed into the compression buffer

Example 3: Editorial note

These are illustrative configuration patterns only. Keep actual ASN.1 and RRC field rendering on a separate configuration-reference page if needed.

UDC Header

The UDC header is the compact PDCP-side marker that tells the peer whether the payload is compressed, whether reset signaling is present, and which checksum information should be interpreted. It also shows where the UDC data starts relative to the PDCP header and optional SDAP header.

Header field or role Main meaning
One-byte UDC header The UDC header is 1 byte long.
Compressed versus uncompressed indication The header indicates whether the UDC payload is compressed or not.
Reset bit The header carries reset signaling for buffer resynchronization.
Checksum bits The header carries checksum-related signaling used for buffer mismatch detection.
Location relative to SDAP The UDC header sits after the SDAP header if SDAP is configured.
Mismatch-detection role The header helps the peer side detect buffer desynchronization.

UDC Packet and Header Examples

Example 1: UDC packet with uncompressed payload

Illustrative UDC packet
[ UDC Header ][ original PDCP SDU payload ]

Header interpretation
- FU = 0
- payload is not compressed by UDC
- packet still belongs to one PDCP SDU

Example 2: UDC packet with compressed payload

Illustrative UDC packet
[ UDC Header ][ DEFLATE-compressed data block ]

Header interpretation
- FU = 1
- payload is compressed by UDC
- checksum and reset signaling may be relevant

Example 3: Header placement with SDAP

Illustrative PDCP Data PDU ordering
[ PDCP header ][ SDAP header if configured ][ UDC header ][ UDC data block ]

Compression Flow Example

Example 1: UDC compression path

PDCP SDU received from upper layers
→ UDC compression function checks buffer and dictionary context
→ UDC header is added
→ UDC data block is generated
→ resulting UDC packet keeps the same PDCP SN and COUNT as the related PDCP SDU
→ PDCP Data PDU is submitted to lower layers

Example 2: Non-compressed UDC packet

PDCP SDU received from upper layers
→ UDC decides not to compress this packet
→ UDC header still indicates non-compressed packet
→ original payload is carried as the UDC data block

PDCP Control PDU for UDC Feedback

UDC feedback is carried in a PDCP Control PDU applicable to AM DRBs. The useful receive-side rule is simple: the PDCP entity delivers the feedback directly to the UDC protocol without performing deciphering or integrity verification.

UDC Feedback Example

Example feedback path

Step 1: A PDCP Control PDU carrying one UDC feedback item is received from lower layers.
Step 2: The receiving PDCP entity does not perform deciphering.
Step 3: The receiving PDCP entity does not perform integrity verification.
Step 4: The receiving PDCP entity delivers the UDC feedback directly to the UDC protocol.

Mini format example

Illustrative PDCP Control PDU
[ D/C ][ PDU Type ][ FE ][ R ][ R ][ R ]

Pre-defined Dictionary Handling

The dictionary view is about how the compression buffer is initialized and how that starting context evolves over time. The key things to check are which dictionary is configured, whether the dictionary fits inside the buffer, and how FIFO behavior eventually moves old dictionary content out.

Dictionary item Main meaning
Standard SIP/SDP dictionary UDC can use the standard SIP/SDP pre-defined dictionary.
Operator-defined dictionary UDC can use an operator-defined pre-defined dictionary.
One dictionary at most At most one pre-defined dictionary is used for the compression buffer.
Tail insertion The configured dictionary is inserted into the tail of the compression buffer.
FIFO behavior As new uncompressed data enters, FIFO behavior eventually pushes older dictionary content out.
Large-dictionary case If the dictionary is larger than the compression buffer, only the tail of the dictionary is inserted.

Dictionary Example

Example 1: SIP/SDP dictionary case

Illustrative behavior
- UDC is configured with the standard SIP/SDP dictionary
- the dictionary is inserted into the tail of the compression buffer
- as more uncompressed data is processed, FIFO behavior eventually pushes the dictionary content out

Example 2: Dictionary larger than buffer

Illustrative behavior
- configured dictionary size > compression buffer size
- only the tail of the dictionary is inserted into the compression buffer

UDC Buffer Reset Procedure

Buffer reset is the controlled way to recover from compression and decompression buffer mismatch. The main point is that synchronization has to be restored explicitly, and after reset the first compressed PDU marks that new synchronized starting point.

Reset item Main meaning
Why synchronization matters Compression and decompression buffers must stay synchronized for UDC to work correctly.
Reset trigger UDC buffer reset is triggered when desynchronization is detected.
Reset-to-zero behavior The compression buffer is reset to all zeros during reset handling.
First compressed PDU after reset After reset, the FR field in the first compressed PDU is set to 1.

UDC Checksum Error Handling

Checksum error handling is the main signal that the compression and decompression buffers have moved out of synchronization. That indication leads into the UDC buffer reset procedure.

Checksum item Main meaning
Checksum error meaning A checksum error indicates that compression and decompression buffers are out of synchronization.
Out-of-synchronization indication The mismatch is indicated through UDC checksum error handling.
Checksum-error notification A UDC checksum error notification Control PDU is used to signal the mismatch.
Resulting action The checksum mismatch triggers the UDC buffer reset procedure to resynchronize the peers.

Buffer Reset and Checksum Example

Initial condition
- compression buffer and decompression buffer become unsynchronized

Detection
- UDC checksum error notification indicates mismatch

Illustrative behavior
- UE triggers UDC buffer reset procedure
- compression buffer is reset to all zeros
- after reset, the FR field in the first compressed PDU is set to 1

Annex B Packet Reference

Annex B is the supporting detail for the UDC packet and header model. Use it for the UDC header, UDC data block, FU, FR, and checksum bit details. This page keeps Annex B as supporting detail rather than making it the main backbone.

What Should Stay Off This Page

References

FAQ

What is uplink data switching in NR PDCP?

Uplink data switching is the DAPS-bearer PDCP procedure that moves pending uplink traffic from the source-cell path to the target-cell path.

Which bearers use uplink data switching?

Uplink data switching is defined for DAPS bearers.

Which bearers can use UDC?

UDC is configured for DRBs by upper layers in this PDCP context.

What is bufferSize in UDC configuration?

bufferSize is the upper-layer configured size of the UDC compression buffer context.

Where is the UDC header placed in a PDCP Data PDU?

The UDC header is placed after the SDAP header if SDAP is configured.

Does a UDC packet keep the same PDCP SN and COUNT as the original PDCP SDU?

Yes. A UDC packet keeps the same PDCP SN and COUNT as the related PDCP SDU.

How is UDC feedback carried in PDCP?

UDC feedback is carried in a PDCP Control PDU applicable to AM DRBs.

What happens when a UDC checksum error is detected?

A checksum error indicates buffer desynchronization and triggers the UDC buffer reset procedure.