UMTS: RLC Length Indicator (RLC LI)

The Length Indicator is used to indicate, each time, the end of an SDU occurs in the PDU. The Length Indicator points out the number of octets between the end of the last Length Indicator field and up to and including the octet at the end of an SDU segment. Length Indicators are included in the PDUs that they refer to. The size of the Length Indicator may be either 7 bits or 15 bits. A Length Indicator group is a set of Length Indicators that refer to a PDU. If there can be more than one Length Indicator, each specifying the end of an SDU in a PDU, the order of these Length Indicators must be in the same order as the SDUs that they refer to. In the case where the end of the last segment of an SDU exactly ends at the end of a PDU and there is no LI that indicates the end of the SDU, the next Length Indicator, shall be placed as the first Length Indicator in the following PDU and have value LI=0. In case this SDU was the last one to be transmitted, a PDU consisting of an RLC Header with LI=0 followed by a padding Length Indicator and padding may be transmitted. If a 7-bit Length Indicator is used for the following PDU then the LI with value LI=0000000 shall be placed as the first Length indicator and its SN shall be incremented by 2 before it is transmitted (this can only occur in UM). The LI may be represented in either 7-bits or 15 bits.

For AM Mode:

If AMD PDU Size is <= 126 octets then 7-bits LI be used. If AMD PDU Size is > 126 octets then 15-bits LI be used.

For UM Mode:

If UMD PDU Size is <= 125 octets then 7-bits LI be used. If UMD PDU Size is > 125 octets then 15-bits LI be used

Length Indicator(7 bits) Decimal Description

0 0 0 0 0 0 0 0

The previous RLC PDU was exactly filled with the last segment of an RLC SDU and there is no LI that indicates the end of the SDU in the previous RLC PDU.

1 1 1 1 1 0 0 124 UMD PDU: The first data octet in this RLC PDU is the first octet of an RLC SDU. AMD PDU: Reserved (PDUs with this coding will be discarded by this version of the protocol).
1 1 1 1 1 0 1 125 Reserved (PDUs with this coding will be discarded by this version of the protocol).
1 1 1 1 1 1 0 126 AMD PDU: The rest of the RLC PDU includes a piggybacked STATUS PDU. UMD PDU: Reserved (PDUs with this coding will be discarded by this version of the protocol).
1 1 1 1 1 1 1 127 The rest of the RLC PDU is padding. The padding length can be zero.

RLC LI Encoding In UM Mode

Assumptions

  • RLC PDU Size = 20 Octets.
  • Sequence No (7 Bits)
  • Extension (1 Bit)
  • LI (7 Bits)

SDU Data (in Hex): 01 02 03 04 05 Length Of SDU = 5 Octets

Encoded RLC PDU
Oct No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
RLC PDU 01 F9 0B FE 01 02 03 04 05 00 00 00 00 00 00 00 00 00 00 00
Explanation

clip_image002

 

 

 

 

 

 

 

 

 

 

 

 

0 0 0 0 0 0 0 1 Seq No + Extn Bit
1 1 1 1 1 0 0 1 LI + Extn Bit
0 0 0 0 1 0 1 1 LI + Extn Bit
1 1 1 1 1 1 1 0 LI + Extn Bit

01

02

03

04

05

SDU From Upper Layer
Padding: Octet#10 to Octet#20 Padding to fill the PDU

RLC Header: The first 4 octets (indicated by blue) in the above PDU are RLC headers.

01: 0000 0001 :Sequence No – 0, Extension –1 (i.e. Next Octet contains a LI)

F9: 1111 1001 : LI = 124, Extension –1 (i.e. Next Octet contains a LI)

0B: 0000 1011 : LI = 5 (Length of the SDU), Extension – 1(i.e. Next Octet contains a LI)

FE: 1111 1110 : LI = 127 Extension –0 (i.e. Next Octet contains Data)

Data: Octet Numbers from 5 to 9 are the data octets containing SDU data.

Filler/Padding: Octet Numbers from 10 to 20 are the filler octets.

RLC LI Encoding In AM Mode

Assumptions

  • RLC PDU Size = 20 Octets.
  • D/C (1 bit) (1: Data, 0: Control)
  • Sequence No (12 Bits)
  • Polling bit (1 Bit) (1: Status Required)
  • Header Extension (2 Bits) (00: Data Follows, 01 LI follows)
  • LI (7 Bits)
  • Extension (1 Bit)

SDU Data (in Hex): 01 02 03 04 05 Length of SDU = 5 Octets

Oct No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
RLC PDU 80 01 0B FE 01 02 03 04 05 00 00 00 00 00 00 00 00 00 00 00

clip_image002[6]

 

 

1 0 0 0 0 0 0 0 D/C + Seq Part
0 0 0 0 0 0 0 1 Seq Part + P + HE
0 0 0 0 1 0 1 1 LI + Extn Bit
1 1 1 1 1 1 1 0 LI + Extn Bit

01

02

03

04

05

SDU From Upper Layer
Padding: Octet#10 to Octet#20 Padding to fill the PDU

RLC Header: The first 4 octets (indicated by blue) in the above PDU are RLC headers.

80: 1000 0000 01: 0000 0001: 01: D/C –1 Sequence No – 0, Polling – 0,HE–01 (i.e. Next Octet contains a LI)

0B: 0000 1011 : LI = 5 (Length Of A SDU), Extension – 1(i.e. Next Octet contains a LI)

FE: 1111 1110 : LI = 127, Extension –0 (i.e. Next Octet contains Data)

Data: Octet No 5 – 9 are the data octets containing SDU data.

Filler: Octet No 10 – 20 are the filler octets.

Reference

Radio Link Control (RLC) protocol specification: 3GPP TS 25.322

7 Comments


  1. Nice explanation…


  2. Can you please provide information about SUFI?


  3. I will write some detailed tutorials on all kind of SUFIs in the coming days. So keep reading.


  4. Very well explained.
    I was reading a day the same spec and could not figure it out !
    Is there anything about the PDU size as well?


  5. tnx

Leave a Reply

Your email address will not be published. Required fields are marked *