7.3.10 PDCP UDC
36.523-13GPPEvolved Universal Terrestrial Radio Access (E-UTRA) and Evolved Packet Core (EPC)Part 1: Protocol conformance specificationRelease 17TSUser Equipment (UE) conformance specification
7.3.10.1 PDCP UDC / No dictionary
7.3.10.1.1 Test Purpose (TP)
(1)
with {UE in E-UTRA RRC_CONNECTED state }
ensure that {
when { UDC is configured and pre-defined dictionary is not configured }
then { UE set the compression buffer to all zeros }
}
}
(2)
with {UE in E-UTRA RRC_CONNECTED state }
ensure that {
when { UE transmits a PDCP Data SDU on a DRB with UDC configuration and pre-defined dictionary is not configured }
then { UE sets FU to 1 and compresses the data for each transmitted PDU }
}
}
7.3.10.1.2 Conformance requirements
References: The conformance requirements covered in the present TC are specified in: 3GPP TS 36.323 clause 5.11.2, 5.11.3 and 5.11.4.
[TS 36.323, clause 5.11.2]
The PDCP entities associated with DRBs can be configured by upper layers [3] to use UDC. If UDC is configured, the UE shall apply UDC compression function (details see subclause 5.11.4) to process the received PDCP SDU from upper layers corresponding to the configured DRB. The size of compression buffer is configured by upper layer via bufferSize. If pre-defined dictionary is configured by upper layers, the UE shall prefill the configured pre-defined dictionary in the compression buffer upon configuration of UDC. If pre-defined dictionary is not configured by upper layers, UE shall set the compression buffer to all zeros.
[TS 36.323, clause 5.11.3]
UDC header (1 byte) is added in UDC compression function followed by UDC data block (details see subclause 5.11.4, 6.2.14, 6.2.15 and 6.2.16). The UDC header contains the information about whether the current PDCP SDU is compressed by UDC protocol or not. Only the compressed packets are stored in the buffer. The UDC header also contains a reset bit to inform the decompressor that the compression buffer has been reset. The validation bits (checksum) of the compression buffer are also contained in UDC header. Checksum mechanism could be used to resolve miss-match (if any) between the compression and de-compression buffers.
[TS 36.323, clause 5.11.4]
The UDC protocol generates UDC packets, each associated with one PDCP SDU.
A UDC packet consists of a UDC header and a UDC data block. A UDC data block contains either DEFLATE compressed blocks generated by UDC protocol or original PDCP SDU for SDU not compressed by UDC protocol; the type is specified in FU field (details see subclause 6.3.21) in UDC header. The FR field (details see subclause 6.3.22) and the Checksum field (details see subclause 6.3.23) in UDC header are used only if FU field is set to 1.
A UDC packet is associated with the same PDCP SN and COUNT values as the related PDCP SDU.
[TS 36.323, clause 6.2.14]
Figure 6.2.14.1 shows the format of the PDCP Data PDU when a 12 bit SN length is used and UDC is configured. This format is applicable for uplink PDCP Data PDUs carrying data from DRBs configured with UDC.
Figure 6.2.14.1: PDCP Data PDU format for DRBs using a 12 bit SN (UDC configured)
[TS 36.323, clause 6.2.15]
Figure 6.2.15.1 shows the format of the PDCP Data PDU when a 15 bit SN length is used and UDC is configured. This format is applicable for PDCP Data PDUs carrying data from DRBs configured with UDC.
Figure 6.2.15.1: PDCP Data PDU format for DRBs using a 15 bit SN (UDC configured)
[TS 36.323, clause 6.2.16]
Figure 6.2.16.1 shows the format of the PDCP Data PDU when an 18 bit SN length is used and UDC is configured. This format is applicable for uplink PDCP Data PDUs carrying data from DRBs configured with UDC.
Figure 6.2.16.1: PDCP Data PDU format for DRBs using an 18 bit SN (UDC configured)
[TS 36.323, clause 6.3.21]
Length: 1 bit
Indication of whether this packet is compressed by UDC protocol or not. Value ‘1’ means the packet is compressed by UDC protocol.
Table 6.3.21.1: FU field
Bit |
Description |
0 |
Packet is not compressed using UDC protocol |
1 |
Packet is compressed using UDC protocol |
[TS 36.323, clause 6.3.22]
Length: 1 bit
Indication of whether UDC compression buffer is reset or not. Value ‘1’ means this is the first compressed packet after UDC buffer reset.
Table 6.3.22.1: FR field
Bit |
Description |
0 |
Compression buffer is not reset. |
1 |
Compression buffer has been reset. |
[TS 36.323, clause 6.3.23]
Length: 4 bits
This field contains the validation bits for the compression buffer content: The checksum is calculated by the content of current compression buffer before the current packet is put into buffer.
The checksum is derived from the values of the first 4 bytes and the last 4 bytes in the whole compression buffer. The calculation is described as follows:
– Each byte is divided into two 4-bit numbers.
– The 16 4-bit numbers are added together to obtain a sum;
– The checksum is one’s complement of the right-most 4 bits (i.e. 4 LSB) of the sum.
An example of checksum calculation is shown in Annex A.
7.3.10.1.3 Test description
7.3.10.1.3.1 Pre-test conditions
System Simulator:
– Cell 1
UE:
None.
Preamble:
– The UE is in state Loopback Activated (state 4) according to [18].
– The condition UDC is used for PDCP-Config in step 8 in 4.5.3.3 according to [18].
7.3.10.1.3.2 Test procedure sequence
Table 7.3.10.1.3.2-1: Main behaviour
St |
Procedure |
Message Sequence |
TP |
Verdict |
|
U – S |
Message |
||||
1 |
The SS creates 5 PDCP Data PDUs and the Next_PDCP_TX_SN is set to "0". |
– |
– |
– |
– |
2 |
The SS sends the PDCP Data PDU#0 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 0. After having sent a PDU, the SS set Next_PDCP_TX_SN= 1. |
<– |
PDCP PDU DATA #0 |
– |
– |
3 |
The UE sends the PDCP Data PDU#0 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 0, FU = 1, FR = 0, Checksum = 1111. Data is previously received data from PDU #0 after decompression. (Note 1) |
–> |
PDCP PDU DATA #0 |
1, 2 |
P |
4 |
The SS sends the PDCP Data PDU#1 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 1. After having sent a PDU, the SS set Next_PDCP_TX_SN= 2. |
<– |
PDCP PDU DATA #1 |
– |
– |
5 |
The UE sends the PDCP Data PDU#1 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 1, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #1 after decompression. (Note 1) |
–> |
PDCP PDU DATA #1 |
2 |
P |
6 |
The SS sends the PDCP Data PDU#2 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 2. After having sent a PDU, the SS set Next_PDCP_TX_SN=3. |
<– |
PDCP PDU DATA #2 |
– |
– |
7 |
The UE sends the PDCP Data PDU#2 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 2, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #2 after decompression. (Note 1) |
–> |
PDCP PDU DATA #2 |
2 |
P |
8 |
The SS sends the PDCP Data PDU#3 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 3. After having sent a PDU, the SS set Next_PDCP_TX_SN= 4 |
<– |
PDCP PDU DATA #3 |
– |
– |
9 |
The UE sends the PDCP Data PDU#3 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 3, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #3 after decompression. (Note 1) |
–> |
PDCP PDU DATA #3 |
2 |
P |
10 |
The SS sends the PDCP Data PDU#4 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 4. After having sent a PDU, the SS set Next_PDCP_TX_SN= 5 |
<– |
PDCP PDU DATA #4 |
– |
– |
11 |
The UE sends the PDCP Data PDU#4 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 4, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #4 after decompression. (Note 1) |
–> |
PDCP PDU DATA #4 |
2 |
P |
Note 1: The SS acknowledges the received data. Note 2: The SS compares the received value of Checksum and calculated value of Checksum based on the compression buffer. |
7.3.10.1.3.3 Specific message contents
None
7.3.10.2 PDCP UDC / Pre-defined dictionary
7.3.10.2.1 Test Purpose (TP)
(1)
with {UE in E-UTRA RRC_CONNECTED state }
ensure that {
when { UDC is configured and pre-defined dictionary is configured }
then { UE prefill the configured pre-defined dictionary in the compression buffer }
}
}
(2)
with {UE in E-UTRA RRC_CONNECTED state }
ensure that {
when { UE transmits a PDCP Data SDU on a DRB with UDC configuration and pre-defined dictionary is configured }
then { UE sets FU to 1 and compresses the data for each transmitted PDU }
}
}
7.3.10.2.2 Conformance requirements
References: The conformance requirements covered in the present TC are specified in: 3GPP TS 36.323 clause 5.11.2 and 5.11.5.
[TS 36.323, clause 5.11.2]
The PDCP entities associated with DRBs can be configured by upper layers [3] to use UDC. If UDC is configured, the UE shall apply UDC compression function (details see subclause 5.11.4) to process the received PDCP SDU from upper layers corresponding to the configured DRB. The size of compression buffer is configured by upper layer via bufferSize. If pre-defined dictionary is configured by upper layers, the UE shall prefill the configured pre-defined dictionary in the compression buffer upon configuration of UDC. If pre-defined dictionary is not configured by upper layers, UE shall set the compression buffer to all zeros.
[TS 36.323, clause 5.11.5]
One standard dictionary for SIP and SDP and one operator defined dictionary can be used as pre-defined dictionaries in UDC. The standard dictionary for SIP and SDP consists of the first 3468 bytes of the dictionary for SigComp defined in RFC 3485 [17]. When UDC is configured, at most one dictionary, configured by upper layers, is put into the tail of the compression buffer. Also, the compression buffer acts as a FIFO and hence the content of the dictionary is to be totally pushed out of the compression buffer after the size of transmitted uncompressed packets compressed by UDC exceeds the compression buffer size. If the size of dictionary is larger than the compression buffer size, only the tail of the dictionary is inserted in the compression buffer.
7.3.10.2.3 Test description
7.3.10.2.3.1 Pre-test conditions
System Simulator:
– Cell 1
UE:
None.
Preamble:
– The UE is in state Loopback Activated (state 4) according to [18].
– The condition UDC is used for PDCP-Config in step 8 in 4.5.3.3 according to [18] with the exceptions listed in table 7.3.10.2.3.3-1.
7.3.10.2.3.2 Test procedure sequence
Table 7.3.10.2.3.2-1: Main behaviour
St |
Procedure |
Message Sequence |
TP |
Verdict |
|
U – S |
Message |
||||
1 |
The SS creates 5 PDCP Data PDUs and the Next_PDCP_TX_SN is set to "0". |
– |
– |
– |
– |
2 |
The SS sends the PDCP Data PDU#0 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 0. After having sent a PDU, the SS set Next_PDCP_TX_SN= 1. |
<– |
PDCP PDU DATA #0 |
– |
– |
3 |
The UE sends the PDCP Data PDU#0 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 0, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #0 after decompression. (Note 1) |
–> |
PDCP PDU DATA #0 |
1, 2 |
P |
4 |
The SS sends the PDCP Data PDU#1 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 1. After having sent a PDU, the SS set Next_PDCP_TX_SN= 2. |
<– |
PDCP PDU DATA #1 |
– |
– |
5 |
The UE sends the PDCP Data PDU#1 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 1, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #1 after decompression. (Note 1) |
–> |
PDCP PDU DATA #1 |
2 |
P |
6 |
The SS sends the PDCP Data PDU#2 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 2. After having sent a PDU, the SS set Next_PDCP_TX_SN=3. |
<– |
PDCP PDU DATA #2 |
– |
– |
7 |
The UE sends the PDCP Data PDU#2 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 2, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #2 after decompression. (Note 1) |
–> |
PDCP PDU DATA #2 |
2 |
P |
8 |
The SS sends the PDCP Data PDU#3 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 3. After having sent a PDU, the SS set Next_PDCP_TX_SN= 4 |
<– |
PDCP PDU DATA #3 |
– |
– |
9 |
The UE sends the PDCP Data PDU#3 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 3, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #3 after decompression. (Note 1) |
–> |
PDCP PDU DATA #3 |
2 |
P |
10 |
The SS sends the PDCP Data PDU#4 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 4. After having sent a PDU, the SS set Next_PDCP_TX_SN= 5 |
<– |
PDCP PDU DATA #4 |
– |
– |
11 |
The UE sends the PDCP Data PDU#4 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 4, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #4 after decompression. (Note 1) |
–> |
PDCP PDU DATA #4 |
2 |
P |
Note 1: The SS acknowledges the received data. Note 2: The SS compares the received value of Checksum and calculated value of Checksum based on the compression buffer. |
7.3.10.2.3.3 Specific message contents
Table 7.3.10.2.3.3-1: PDCP-Config-DRB-AM
Derivation Path: 36.508 table 4.8.2.1.2.2-1 with condition UDC |
|||
Information Element |
Value/remark |
Comment |
Condition |
PDCP-Config-DRB-AM ::= SEQUENCE { |
|||
uplinkDataCompression-r15 SEQUENCE { |
UDC |
||
dictionary-r15 |
sip-SDP |
ENUMERATED {sip-SDP, operator} |
|
} |
|||
} |
7.3.10.3 PDCP UDC / Reset
7.3.10.3.1 Test Purpose (TP)
(1)
with {UE in E-UTRA RRC_CONNECTED state with UDC configuration}
ensure that {
when { UE receiving the checksum error notification }
then { UE resets the UDC buffer and sets the FR field in UDC header of the first compressed PDU to 1}
}
7.3.10.3.2 Conformance requirements
References: The conformance requirements covered in the present TC are specified in: 3GPP TS 36.323 clause 5.11.6, 5.11.7, 6.2.17, 6.3.22 and 6.3.24.
[TS 36.323, clause 5.11.6]
UDC works on the condition that compression buffer and de-compression buffer are synchronized. UDC buffer reset mechanism is to resynchronize buffer when error is detected. For resynchronization, UE shall reset the compression buffer to all zeros. After performing the reset, the FR field (details see subclause 6.3.22) in UDC header of the first compressed PDU shall be set to 1.
[TS 36.323, clause 5.11.7]
UDC checksum error notification PDCP control PDU indicates the compression buffer and de-compression buffer are out of synchronization. When receiving the notification, the UE shall trigger UDC buffer reset procedure to resynchronize the compression buffer.
[TS 36.323, clause 6.2.17]
Figure 6.2.17.1 shows the format of the PDCP Control PDU for UDC feedback packet. This format is applicable for DRBs configured with UDC.
Figure 6.2.17.1: PDCP Control PDU format for UDC feedback packet
[TS 36.323, clause 6.3.22]
Length: 1 bit
Indication of whether UDC compression buffer is reset or not. Value ‘1’ means this is the first compressed packet after UDC buffer reset.
Table 6.3.22.1: FR field
Bit |
Description |
0 |
Compression buffer is not reset. |
1 |
Compression buffer has been reset. |
[TS 36.323, clause 6.3.24]
Length: 1 bit
Indication of whether checksum error is detected or not. Value ‘1’ means checksum error is detected and the UE shall reset the compression buffer.
Table 6.3.24.1: FE field
Bit |
Description |
0 |
No Error |
1 |
Checksum Error Notification |
7.3.10.3.3 Test description
7.3.10.3.3.1 Pre-test conditions
System Simulator:
– Cell 1
UE:
None.
Preamble:
– The UE is in state Loopback Activated (state 4) according to [18].
– The condition UDC is used for PDCP-Config in step 8 in 4.5.3.3 according to [18].
7.3.10.3.3.2 Test procedure sequence
Table 7.3.10.3.3.2-1: Main behaviour
St |
Procedure |
Message Sequence |
TP |
Verdict |
|
U – S |
Message |
||||
1 |
The SS creates 3 PDCP Data PDUs and the Next_PDCP_TX_SN is set to "0". |
– |
– |
– |
– |
2 |
The SS sends the PDCP Data PDU#0 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 0. After having sent a PDU, the SS set Next_PDCP_TX_SN= 1. |
<– |
PDCP PDU DATA #0 |
– |
– |
3 |
The UE sends the PDCP Data PDU#0 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 0, FU = 1, FR = 0, Checksum = 1111. Data is previously received data from PDU #0 after decompression. (Note 1) |
–> |
PDCP PDU DATA #0 |
– |
– |
4 |
The SS sends the PDCP Data PDU#1 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 1. After having sent a PDU, the SS set Next_PDCP_TX_SN= 2. |
<– |
PDCP PDU DATA #1 |
– |
– |
5 |
The UE sends the PDCP Data PDU#1 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 1, FU = 1, FR = 0, the value of Checksum is checked (Note 2). Data is previously received data from PDU #1 after decompression. (Note 1) |
–> |
PDCP PDU DATA #1 |
– |
– |
6 |
The SS sends the PDCP Control PDU for UDC feedback packet with the following content to the UE: D/C field = 0 (Control PDU) PDU type = 100 (UDC feedback packet) FE = 1 (Checksum Error Notification) |
<– |
UDC feedback packet |
– |
– |
7 |
The SS sends the PDCP Data PDU#2 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) and PDCP SN = 2. |
<– |
PDCP PDU DATA #2 |
– |
– |
8 |
Check: Does the UE sends the PDCP Data PDU#2 via RLC-AM RB with the following content to the UE: D/C field = 1 (PDCP Data PDU) , PDCP SN = 2, FU = 1, FR = 1, Checksum = 1111. Data is previously received data from PDU #2 after decompression. (Note 1) |
–> |
PDCP PDU DATA #2 |
1 |
P |
Note 1: The SS acknowledges the received data. Note 2: The SS compares the received value of Checksum and calculated value of Checksum based on the compression buffer. |
7.3.10.3.3.3 Specific message contents
None