RLC Bitmap Super Field (BITMAP-SUFI)


The BITMAP SUFI consists of the following fields:

  • Type identifier field(BITMAP)
  • LENGTH Filed
  • First Sequence Number(FSN)
  • Bitmap

The BITMAP SUFI fields in the STATUS PDU are as follows:

Type = BITMAP
LENGTH
FSN
Bitmap

LENGTH

The LENGTH is a 4 bits long field. The LENGTH field signifies the size of bitmap in octets.
The size of bitmap in octets = LENGTH + 1
So if, LENGTH = 0000 = 0
Size of bitmap = 0 + 1 = 1 octet

FSN

FSN is the sequence number of the first bit in the bitmap. FSN is 12 bits long.

Bitmap

In bitmap each bit position signifies whether FSN + bit_position is correctly received or not.

bit_position can have two different values:

1 Sequence Number = (FSN + bit_position) has been correctly received.
0 Sequence Number = (FSN + bit_position) has not been correctly received.

Example

Suppose the receiver needs to send the status of following PDUs to the transmitter.

Sequence Number of PDU Status
Sequence Number # 3 ACK
Sequence Number # 4 NACK
Sequence Number # 5 ACK
Sequence Number # 6 ACK
Sequence Number # 7 NACK
Sequence Number # 8 NACK
Sequence Number # 9 ACK
Sequence Number # 10 ACK

Step #1
The LENGTH = 0
LENGTH = 0000

Step #2
FSN = 3.
So the twelve bits FSN field will be encoded as:
FSN = 3 (%0000 0000 0011)

Step #3
LENGTH = 0
Bitmap = 1 octet
So the bitmap can be encoded as:

1 0 1 1 0 0 1 1

Step #4
The encoding of the Bitmap SUFI as follows:

0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1
1 0 1 1 0 0 1 1
LENGTH
FSN
Bitmap

Reference


Flexible RLC PDU Size (Release 7)

Flexible RLC PDU Size was introduced in Release 7 in order to decrease RLC protocol overhead and to avoid sequence number stalling.
Flexible RLC is used with MAC-ehs in Release 7. Mac-ehs is a new feature introduced in Release 7 to increase the downlink throughput.

RLC PDU Structure before Flexible RLC Size

In previous 3GPP releases RLC PDU size was semi static, e.g. 336 bits or 656 bits. An IP packet size is 1500 octets so many RLC PDUs are required to transmit a single IP packet. The detail description about this problem is described in the following examples.

Example # 1

Assumption:

  • RLC PDU size is 336 bits
  • Ethernet IP Packet Size: 1500 octets
  • 1 RLC PDU size = 336 bits

Maximum RLC Data (RLC SDU) size = 336 – 16 = 320 bits = 40 octets
So minimum number of RLC PDUs required to transmit one Ethernet packet = 1500/40 = 37.5 ~ 38 PDUs
For 38 PDUs header added = 76 (38 * 2 (for fixed header)) + Length Indicators + Padding (If required)

Example # 2

Assumption:

  • RLC PDU size is 656 bits
  • Ethernet IP Packet Size: 1500 octets
  • 1 RLC PDU size = 656 bits

Maximum RLC Data (RLC SDU) size = 656 – 16 = 640 bits = 80 octets
So minimum number of RLC PDUs required to transmit one Ethernet packet = 1500/80 = 18.75 ~ 19 PDUs
For 19 PDUs header added = 38 (19 * 2 (for fixed header)) + Length Indicators + Padding (If required)


Flexible RLC PDU Size

With the implementation of “Flexible RLC PDU Size” RLC overhead can be significantly decreased.

25.322 (4.2.1.3)

If flexible RLC PDU size is configured, the downlink AMD PDU size is variable up to the maximum RLC PDU size, and the Length Indicator size is configured by upper layers. The flexible RLC PDU size can be only configured in the downlink.

25.322 (9.2.2.9)

the length of RLC SDUs is constrained to a multiple of 8 bits
if “Flexible RLC PDU size” is configured (only applicable for downlink):
the last segment of an RLC SDU shall be concatenated with the first segment of the next RLC SDU in order to fill the data field up to the Maximum RLC PDU size. The “Length Indicator” field is used to point the borders between RLC SDUs.
if “Flexible RLC PDU size” is configured, the maximum size of the data field of the RLC PDU is 1503 octets.

CR 0342

The maximum size of the data field of the RLC PDU currently equals to the maximum MTU size of 1500 Byte used for Ethernet. However, if PDCP header needs to be included, the RLC PDU is not large enough to convey both the maximum MTU and the PDCP header. Since the PDCP header can be 0, 1 or 3 Byte, it is proposed that the maximum size of the data field should be 1503 octets.

25.322 (4.2.3)

In downlink, flexible RLC PDU size is configured, RLC SDUs are segmented if the SDU is larger than the maximum RLC PDU size. Concatenation may be performed up to the maximum RLC PDU size.


Header Extension (HE) Enhancement in Release 7

A special value for Header Extension (HE) is introduced in Release 7.
10:The RLC AM PDU contains the last of the RLC SDU so no Length Indicator is required.

  • 00: The succeeding octet contains data
  • 01: The succeeding octet contains a length indicator and E bit
  • 10: If “Use special value of the HE field” is configured, the succeeding octet contains data and the last octet of the PDU is the last octet of an SDU. Otherwise, this coding is reserved (PDUs with this coding will be discarded by this version of the protocol).
  • 11: Reserved (PDUs with this coding will be discarded by this version of the protocol).

25.322 (11.3.2)

if the last octet of the PDU is the last octet of an SDU and there is no SDU concatenation inside the PDU, and the “use of the special value of the HE field” has been configured by higher layers, set the HE field to indicate that the last octet of the PDU is the last octet of an SDU. Set HE to 10.

NOTE 1: In downlink, if “flexible RLC PDU size” is configured, the UTRAN should segment, and if possible concatenate the RLC SDUs into AMD PDUs with a size not larger than the maximum RLC PDU size.
NOTE 2: In downlink, UTRAN can initiate the Polling function by assembling a POLL SUFI when “flexible RLC PDU size” is configured. If a POLL SUFI was assembled, UTRAN should schedule and submit to lower layer a STATUS PDU containing the POLL SUFI.


Example

Assumptions:

  • Ethernet Packet Size: 1500 Octets
  • Special HE is enabled.
  • Flexible RLC is set in Radio Bearer Setup


Reference


UMTS Radio Link Protocol Decoder


clip_image002[6]


What is UMTS-RLCDecoder?

UMTS-RLCDecoder is small but powerful tool for decoding RLC header information both for Acknowledged Mode RLC PDUs and Unacknowledged Mode RLC PDUs.

RLC Unacknowledged Mode (UM) PDU Decoding

UMTS-RLCDecoder can decode:

  • UMD RLC Header information
    • UMD PDU Sequence Number
    • Extension bit
  • Length Indicator Decoding

clip_image004

RLC Acknowledged Mode (AM) PDU Decoding

UMTS-RLCDecoder can decode the RLC Acknowledged Mode Data (AMD) PDUs and Control PDUs.

  • AMD PDU Header Decoding
    • D/C Field
    • Sequence Number
    • Polling
    • Header Extension
  • Length Indicator Decoding

clip_image006

Control PDUs

  • Status PDUs
    • SUFI NO_MORE
    • SUFI ACK
    • SUFI LIST
    • SUFI RLIST
  • Reset and Reset-Ack PDUs

clip_image008

 

 

Download

 

UMTS-RLCDecoder


UMTS RLC Status PDU: SUFI RLIST

Catch Up

You may need the following tutorial:

RLIST (Relative- List) Super field

The SUFI RLIST consists of the following fields:

  • Type identifier field(RLIST)
  • LENGTH Filed
  • First Sequence Number(FSN)<7li>
  • Code Words (CW1, CW2, …, CWLENGTH )

The SUFI RLIST fields in the STATUS PDU are as follows:

Type = RLIST
LENGTH
FSN
CW-1
CW-2
—–
CW-1
CW-LENGTH

LENGTH

The LENGTH is a 4bits long field. The LENGTH field signifies the number of codewords (CW) in the super field of type RLIST.

FSN

The length of the FSN super field is of 12 bits. The FSN is the “Sequence Number” of the first erroneous AMD PDU in the RLIST. When the LENGTH field is populated as “0000” at that time FSN is only present in the SUFI and it is the only erroneous AMD PDU.

CW

CW or codeword field is of 4 bits long. The encoding of the codeword field is as follows:

Bit 1 Bit 2 Bit 3 Bit 4

The first three bits of the CW are part of the number and the last one bit is a status indicator. The encoding of the last bit of the CW field as 0 or 1 can be as following:

X1X2X30 When the last bit is 0, it signifies that the CW continues in next CW. The most significant bit is X1 within the codeword.
X1X2X31 When the last bit is 1, the number is terminated in this codeword. This is the most significant CW in the number.

By default, the number given by the CWs represents a distance between the previous indicated erroneous AMD PDU up to and including the next erroneous AMD PDU.

One special value of CW is defined:

000 1: ‘Error burst indicator’

The error burst indicator means that the next CWs will represent the number of subsequent erroneous AMD PDUs (not counting the already indicated error position).

After the number of errors in a burst is terminated with XXX 1, the next codeword will again by default be the least significant bits (LSB) of the distance to the next error.

Special case while the STATUS PDU will be discarded:

If the last CW, as indicated by the value of the LENGTH field, does not contain a “1″ in its rightmost position, or the last CW, as indicated by the value of the LENGTH field does contain a “1″ in its rightmost position, but is a special “error burst indicator” CW, the encoding of the RLIST SUFI is invalid, and the STATUS PDU is discarded.

Example

Suppose following erroneous PDU Sequence Numbers need to be reported in Rlist SUFI:

3, 5, 6, 7, 8, 9, 10

In this case there are a number of PDUs detected as erroneous starting from sequence number 5. So the encoding of the SUFI RLIST will be as follows:

Step #1
FSN = 3.
So the four bit FSN field will be encoded as:
FSN = 3 (%0000 0000 0011)

Step #2
The LENGTH = 3
LENGTH = 0011

Step #3
The next SN = 5.
Distance = 5 – 3 = 2

CW1 = 0101 (As the distance is 2 and again the codeword is terminated here so the last bit is 1).

Step #4
Now there is error burst continues up to sequence number 10. So the special burst indicator will be used.
So now the distance will be 5. So the encoding of the codewords CW2 and CW3 will be as follows:

CW2 = 0001 (Special error bust indicator is encoded here while the next CW will signify the length of the error burst)

CW3 = 1011 (The distance from sequence number 5 to 10 is 5 and also the distance is terminated in this CW. So the last bit is 1)

Step #5
The encoding of the SUFI RLIST as follows:

0 0 1 1 0 0 0 0
0 0 0 0 0 0 1 1
0 1 0 1 0 0 0 1
1 0 1 1
LENGTH
FSN
CW-1
CW-2
CW-3

Reference

  1. Radio Link Control (RLC) protocol specification: 3GPP TS 25.322
  2. WCDMA Design Handbook

UMTS RLC Status PDU: SUFI LIST

The List Super-Field consists of a type identifier field (LIST), a list length field (LENGTH) and a list of LENGTH number of pairs.

LENGTH

  • Length: 4 bits
  • The number of (SNi, Li) pairs in the super-field of type LIST.
  • The value 0000 is INVALID and STATUS PDU is discarded.
  • SNi
    • Lenght: 12 bits
    • ”Sequence number” of AMD PDU, which was not correctly received.
  • Li
    • Length: 4 bits
    • Number of consecutive AMD PDUs not correctly received following AMD PDU with”Sequence number” SNi.
    Type = LIST
    LENGTH
    SN-1
    L-1
    SN-2
    L-2
    —–
    SN-Length
    L-Length

    Example

    clip_image001

    In this example:

    • RLC AMD PDUs with Sequence Number 0, 1, 2, 3, 6, 7 are received correctly
    • PDUs with sequence number 4 and 5 are missing.

    Encoding of Status PDU

    0 0 0 0 0 0 1 1
    0 0 0 1 0 0 0 0
    0 0 0 0 0 1 0 0
    0 0 0 1

    Explanation

    Octet #1:

    0: D/C: Data or control PDU. As it is a control PDU this bit is set to 0.
    000: Control PDU Type: 000 indicates it is a Status PDU.
    0011: SUFI Type. This is SUFI LIST

    Octet #2 and #3

    0001: LENGTH field. This indicates the number of (SNi, Ni) pairs. Here there is only one pair
    0000 0000 0100: (SNi): The start sequence number. This is the Sequence number of the missing PDU. Here the missing PDUs start from Sequence Number 4 (100).
    0001: (Li): The number of consecutive missing PDUs following sequence number 4 (SNi). Here there is only 1 (Sequence number 5)

    Rest of the Status PDU may be encoded for SUFI ACK and Padding.

    Reference

    UMTS RLC Status PDU: SUFI NO_MORE & SUFI ACK

    The STATUS PDU is used to exchange status information between two RLC AM entities.

    Why STATUS PDU is required

    • by the receiving entity to inform the transmitting entity about missing PDUs at the receiving entity;
    • by the receiving entity to inform the transmitting entity about the size of the allowed transmission window;
    • by the transmitting entity to request the receiving entity to move the receiving window.
    D/C PDU Type SUFI
    SUFI 1
    - – - – -
    SUFI k
    Padding

    NOTE: Status PDUs are octet aligned i.e. their length must be multiple of 8 bits.

    Status PDU Parameters

    D/C

    This one bit field tells if the PDU is a Status PDU or AM Data PDU.

    • If D/C = 1, then the PDU is AM data PDU
    • If D/C = 0, then PDU is a Status PDU

    PDU Type

    The PDU type field indicates the type of Control PDU.

    Bit PDU Type
    000 Status PDU
    001 Reset PDU
    010 Reset-Ack PDU
    011-111 Reserved

    SUFI: Super Field

    Super-Field indicates which AMD PDUs are received correctly and which are missing.
    SUFI has three sub-fields:

    • Type
    • Length
    • Value

    Type field is 4 bits long and may have one of the following values:

    • Super-Field indicates which AMD PDUs are received correctly and which are missing.
    • SUFi has three sub-fields:
      • Type
      • Length
      • Value
    Bits Description
    0000 No more data (NO_MORE)
    0001 Window Size (WINDOW)
    0010 Acknowledgement (ACK)
    0011 List (LIST)
    0100 Bitmap (BITMAP)
    0101 Relative list (Rlist)
    0110 Move Receiving Window (MRW)
    0111 Move Receiving Window Acknowledgement (MRW_ACK)
    1000 Poll (POLL)
    1001-1111 Reserved

    No more data SUFI

    No more data SUFI indicates the end of a Status PDU. Everything after this SUFI will be regarded as padding and will be discarded.
    NO_MORE SUFI is always the last SUFI if it is included in a STATUS PDU.

    Acknowledgement Super Field

    • The ‘Acknowledgement’ super-field consists of a type identifier field (ACK) and a sequence number (LSN).
    • Acknowledges the reception of all AMD PDUs with “Sequence Number” < LSN (Last Sequence Number) that are not indicated to be erroneous in earlier parts of the STATUS PDU.
    • LSN is of 12 bits.
    • SUFI ACK is always the last SUFI if it is included in a Status PDU. So SIFI NO_MORE and SUFI ACK can not be included in the same Status PDU.

    Example

    0 0 0 0 0 0 1 0
    0 0 0 0 0 0 0 0
    0 1 0 0

    Explanation

    Octet 1:

    0: D/C: Data or Control. As it is a Control PDU, this bit is set to 0.
    000: Control PDU Type: It is a STATUS PDU, so 000.
    0010: SUFI Type. 0010 means SUFI ACK

    Octet 2 & 3:
    000000000100: LSN, Last Sequence Number: 4

    LSN is encoded as 4, this means all PDUs with Sequence Number less than 4 are correctly received.
    In this example PDUs with Sequence Number 0, 1, 2, 3 are correctly received.

    Padding: The rest part of the Control PDU is padding.

    NOTE: Other RLC SUFIs will be described in separate tutorials.

    Reference

    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