UMTS Radio Link Control Protocol (RLC) Overview 25.322

Radio Interface Architecture

clip_image002

 

Why RLC is required?

  • Larger pieces of data are not suitable to be sent over the air interface where bit faults are common.
  • Smaller pieces can be individually retransmitted
  • Retransmissions on higher Protocol level take too long time. Therefore it is better to have the retransmission as close to the biggest trouble source (i.e. The radio interface)

RLC main functionalities

  • Segmentation and reassembly.
  • Concatenation.
  • Padding.
  • Transfer of user data.
  • Error correction.
  • In-sequence delivery of upper layer PDUs.
  • Duplicate detection.
  • Flow control.
  • Sequence number check.
  • Protocol error detection and recovery.
  • Ciphering.
  • SDU discard.
  • Out of sequence SDU delivery.
  • Duplicate avoidance and reordering.

Data flow between layers

Data flow for transparent RLC

clip_image0022

Data flow for non-transparent RLC

clip_image004

Model of RLC Sublayer

  • TM (Transparent mode)
  • UM (Unacknowledged mode)
  • AM (Acknowledged mode

clip_image005

Transparent Mode (TM) RLC

RLC-TM

Services provided to upper layer
  1. Segmentation and reassembly
  2. Transfer of user data
  3. SDU discard
  • If segmentation is configured by upper layers and a RLC SDU is larger than the TMD PDU size, the transmitting TM RLC entity segments RLC SDUs to fit the TMD PDU size without adding RLC headers.
  • All the TMD PDUs carrying one RLC SDU are sent in the same TTI and no segment from another RLC SDU are sent in that TTI.

Unacknowledged Mode (UM) RLC Entity

RLC-UM

Services provided to upper layer
  1. Segmentation and reassembly.
  2. Concatenation.
  3. Padding.
  4. Transfer of user data.
  5. Ciphering.
  6. Sequence number check.
  7. SDU discard.

Acknowledged Mode RLC Entity

clip_image011

Services provided to upper layer
  1. Segmentation and reassembly.
  2. Concatenation.
  3. Padding.
  4. Transfer of user data.
  5. Error correction.
  6. In-sequence delivery of upper layer PDUs.
  7. Duplicate detection.
  8. Flow Control.
  9. Protocol error detection and recovery.
  10. Ciphering.
  11. SDU discard.
RLC Error Correction

clip_image013

RLC Protocol Data Unit

Data PDUs

  1. TMD PDU (Transparent Mode Data PDU)
  2. UMD PDU (Unacknowledged Mode Data PDU)
  3. AMD PDU (Acknowledged Mode Data PDU)

Control PDUs

  1. Status PDU and Piggybacked STATUS PDU
  2. Reset PDU
  3. Reset-ACK PDU
TMD PDU (Transparent Mode Data PDU)
  • The TMD PDU is used to transfer user data when RLC is operating in transparent mode.
  • No overhead is added to the SDU by RLC.
  • The data length is not constrained to be a multiple of 8 bits.
UMD PDU (Unacknowledged Mode Data PDU)

clip_image015

  • The UMD PDU is used to transfer user data when RLC is operating in unacknowledged mode.
  • The length of the data part shall be a multiple of 8 bits.
UMD PDU Header Details

Sequence Number

  • Sequence number of UMD PDU encoded in binary.
  • SN is of length 7 bits
  • It is used for reassembly

Length Indicator

  • LI is used to indicate the end of a SDU in a PDU.
  • Lenth is 7 or 15 bits

E (Extension Bit)

E bit tells ”What there in the next field”

  • If E = 0 : Next field is data or status PDU or a complete SDU
  • If E 0 1 : Next filed is Length Indicator (LI) followed by extension bit (E).
AMD PDU (Acknowledged Mode Data PDU)

clip_image017

  • The length of the data part shall be a multiple of 8 bits.
  • The AMD PDU header consists of the first two octets, which contain the "Sequence Number".
AMD PDU Header Details

D/C

Indicates whether a data or control PDU

  • If D/C = 1 : Its a data PDU
  • If D/C = 0 : Its a control PDU

Sequence Number

  • Length of sequence number is 12 bits i.e after SN reaches 4095 there will be a rollover.
  • SN is used for retransmission and reassembly

P bit

Polling bit is used to request a status report from the receiver.

  • If P = 0 : No status requested
  • If P = 1 : Status requested

HE

Header Extension is of 2 bits and it indicates the next bit is data or ”Length Indicator” and E bit.

  • If HE = 00 : Next octet is data
  • If HE = 01 : Next octet is LI and E bit
  • If HE = 10 : Next value is the data and last octet of the PDU is the last octet of the SDU.
  • If HE = 11 : Reserved, discarded by protocol
Status PDU

clip_image019

  • The length of the STATUS PDU shall be a multiple of 8 bits.
  • Status PDU is used for transmission of status information.
Status PDU Header Details

PDU Type

PDU type indicates the Control PDU type

  • 000 : Status PDU
  • 001 : Reset PDU
  • 010 : Reset-Ack PDU
  • 011 – 111 : Reserved

SUFI

Super-Field indicates which AMD PDUs are received correctly and which are missing.

SUFi has three sub-fields:

  • Type
  • Length
  • Value
Reset and Reset-Ack PDU

clip_image020

RESET PDU

The RESET PDU is used in acknowledged mode to reset all protocol states, protocol variables and protocol timers of the peer RLC entity in order to synchronies the two peer entities.

RESET ACK PDU

The RESET ACK PDU is an acknowledgement to the RESET PDU.

Reset/Reset-Ack PDU Header

RSN

  • Reset Sequence Number is of 1 bit length.
  • RSN is the sequence number of the transmitted RESET PDU.
  • Initial value of this field is 0.

R1

  • This field is used to make RESET/RESET-ACK PDU octet aligned.
  • The value of R1 is 000.

HFNI

  • Hyper Frame Number Indicator is of 2o bits.
  • It is used to indicate the HFN to the peer entity.
  • With the help of this HFN in UE and UTRAN can be synchronised.

RLC State Model

RLC TM State Model

TM-Data-Transfer

RLC UM State Model

UM-State-Model

RLC AM State Model

AM-State-Model

Reference

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

26 Comments


  1. Good tutorial. Thanks for sharing.


  2. Good tutorial. Thanks for sharing.


  3. Very good information, but it is not only theory, we could have a closer contact with the applied?
    Example: some software, existing equipment at nodes B, etc.. …

    Greetings


  4. Very good information, but it is not only theory, we could have a closer contact with the applied?
    Example: some software, existing equipment at nodes B, etc.. …

    Greetings


  5. Thanks for sharing, Good tutorial, please explain in more implementation level.


  6. Thanks for sharing, Good tutorial, please explain in more implementation level.


  7. Thanks for your suggestion. I am trying to add slowly everything. So may be in coming days I will put some details. Still I already added tutorials on RLC LI and SUFIs. You can check those as well.


  8. Thanks for your suggestion. I am trying to add slowly everything. So may be in coming days I will put some details. Still I already added tutorials on RLC LI and SUFIs. You can check those as well.


  9. Thanks for the Tutorials.. these are really helpful, Can you add some more tutorials on LTE.


  10. Thanks for the Tutorials.. these are really helpful, Can you add some more tutorials on LTE.


  11. Very good tutorial.
    Keep on doing the great work.
    Thanks for sharing.


  12. Very good tutorial.
    Keep on doing the great work.
    Thanks for sharing.


  13. very good tutorial, but explanation on each states and terms are required…
    thanx for sharing….


  14. Thanks for the comment.

    We have added more information about RLC in other tutorials. But still if you need more info we can help. We will add some more RLC tutorials in coming days.


  15. Hi, Can anybody tell where is this protocol terminated in a mobile network?

    a) PDSN
    b) AAA
    c) BSC/PCF
    d) BTS


  16. I have question about Length Indicator.
    Length Indicator is 7bits or 15bits but how to identify the size of LI from message PUD?


  17. The size of the LI is configured by upper layer i.e. by RRC.


  18. tis is very help full link , tnx, looking for more topics overview


  19. please share how to fix the LI(length indicator)


  20. Thanks for sharing.. good one.. (more info from Andrew Richards 🙂 )



  21. Very interesting and useful.

Leave a Reply

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