5G NR RLC Layer Introduction

Images are taken from TS 38.322

5G NR RRC: RRC Introduction and RRC States

5G NR RRC: RRC Introduction and RRC States

5G NR RLC Layer Introduction

RLC layer is located between PDCP (or RRC layer) and MAC Layer.

It communicates with the PDCP layer (or RRC layer) through the RLC channel, and communicates with the MAC layer through logical channels.

Data received by RLC layer from PDCP layer is called as RLC SDU.

Data sent by RLC layer to MAC layer is called as RLC PDU.

RLC PDU can be either RLC data PDU or RLC control PDU

Services Provided to upper layers from RLC layer:

– TM data transfer;

– UM data transfer;

– AM data transfer, including indication of successful delivery of upper layers PDUs.

Services Expected from lower layers to RLC layer:

– data transfer;

– notification of a transmission opportunity, together with the total size of the RLC PDU(s) to be transmitted in the transmission opportunity.

Functions of RLC layer

– transfer of upper layer PDUs;

– error correction through ARQ (only for AM data transfer);

– segmentation and reassembly of RLC SDUs (only for UM and AM data transfer);

– re-segmentation of RLC SDU segments (only for AM data transfer);

– duplicate detection (only for AM data transfer);

– RLC SDU discard (only for UM and AM data transfer);

– RLC re-establishment;

– Protocol error detection (only for AM data transfer).

RLC Entities 

5G NR operates in 3 different modes:

1. TM: Transparent Mode: There will be No RLC Header, No Segmentation/Reassembly, No feedback

2. UM: Unacknowledge Mode: RLC Header, Buffering at both Tx and Rx, Segmentation/Reassembly, No feedback

3. AM: Acknowledge Mode: RLC Header, Buffering at both Tx and Rx, Segmentation/Reassembly, Feedback

From the above image we can see below points:

1. BCCH, PCCH, CCCH use RLC TM

2. DCCH use RLC AM

3. DTCH use RLC UM or AM

1. SRB0 bearer, paging and system information broadcast use TM transmission mode

2. Other SRB bearers use AM transmission mode

3. DRB bearer can use AM or UM mode

Entities:

The TM transmission mode includes two entities: a sending entity and a receiving entity;

The UM transmission mode includes two entities: a sending entity and a receiving entity;

AM transmission mode contains only one entity for both sending and receiving to facilitate ARQ processing.

RLC Procedures

TM data transfer Procedure

UM data transfer Procedure

AM data transfer Procedure

ARQ procedure

How 5G NR RLC is different than 4G LTE RLC?

5G NR RLC cannot do Concatenation.

Concatenation is when a multiple RLC SDU can be combined into a single RLC PDU.

Segmentation is when a single RLC SDU is segmented into multiple RLC PDU.

LTE RLC can do both Concatenation and Segmentation.

Where as 5G NR RLC cannot do Concatenation and but can do Segmentation.

SI and SN

Segmentation Information and Segment Offset.

We know that both AM and UM RLC modes support segmentation, where as AM supports both segmentation and re-segmentation and this re-segmentation is not applicable for UM RLC because re-transmission are not supported.

5G NR uses SO (Segmentation Offset) both segmentation and re-segmentation.

Example:

Example 1:
In below image, there is no segmentation so RLC header includes a SN (Sequence Number) and and Segmentation Information (SI)

Example 2:

Segmentation is used to generate 3 segments and every segment is allocated with the same sequence number but different Segmentation information.
Each segment will have SO, segmentation offset to indicate the position of the segment within the original RLC SDU.

Example 3:

In below image, A RLC SDU is segmented and then re-segmented into 4 segments.

RRC Parameters defining RLC

RLC-BearerConfig ::=             SEQUENCE {
    logicalChannelIdentity         LogicalChannelIdentity,
    servedRadioBearer                CHOICE {
        srb-Identity                    SRB-Identity,
        drb-Identity                    DRB-Identity
    }       OPTIONAL,   -- Cond LCH-SetupOnly

    reestablishRLC                ENUMERATED {true}     OPTIONAL,   -- Need R
    rlc-Config                    RLC-Config            OPTIONAL,   -- Cond LCH-Setup
    mac-LogicalChannelConfig      LogicalChannelConfig   OPTIONAL,   -- Cond LCH-Setup
    ... 
}

RLC-Config ::=                      CHOICE {
    am                                  SEQUENCE {
        ul-AM-RLC                           UL-AM-RLC,
        dl-AM-RLC                           DL-AM-RLC
    },
	
    um-Bi-Directional                   SEQUENCE {
        ul-UM-RLC                           UL-UM-RLC,
        dl-UM-RLC                           DL-UM-RLC
    },

    um-Uni-Directional-UL               SEQUENCE {
        ul-UM-RLC                           UL-UM-RLC
    },

    um-Uni-Directional-DL               SEQUENCE {
        dl-UM-RLC                           DL-UM-RLC
    },
    ...
}

UL-AM-RLC ::=           SEQUENCE {
    sn-FieldLength          SN-FieldLengthAM        OPTIONAL,   -- Cond Reestab
    t-PollRetransmit        T-PollRetransmit,
    pollPDU                 PollPDU,
    pollByte                PollByte,
    maxRetxThreshold        ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32 }
}

DL-AM-RLC ::=           SEQUENCE {
    sn-FieldLength          SN-FieldLengthAM        OPTIONAL,   -- Cond Reestab
    t-Reassembly            T-Reassembly,
    t-StatusProhibit        T-StatusProhibit
}

UL-UM-RLC ::=           SEQUENCE {
    sn-FieldLength          SN-FieldLengthUM        OPTIONAL    -- Cond Reestab
}

DL-UM-RLC ::=           SEQUENCE {
    sn-FieldLength          SN-FieldLengthUM        OPTIONAL,   -- Cond Reestab
    t-Reassembly            T-Reassembly
}

SN-FieldLengthUM ::=    ENUMERATED {size6, size12}

SN-FieldLengthAM ::=    ENUMERATED {size12, size18}

T-PollRetransmit ::=    ENUMERATED {
                            ms5, ms10, ms15, ms20, ms25, ms30, ms35,
                            ms40, ms45, ms50, ms55, ms60, ms65, ms70,
                            ms75, ms80, ms85, ms90, ms95, ms100, ms105,
                            ms110, ms115, ms120, ms125, ms130, ms135,
                            ms140, ms145, ms150, ms155, ms160, ms165,
                            ms170, ms175, ms180, ms185, ms190, ms195,
                            ms200, ms205, ms210, ms215, ms220, ms225,
                            ms230, ms235, ms240, ms245, ms250, ms300,
                            ms350, ms400, ms450, ms500, ms800, ms1000,
                            ms2000, ms4000, spare5, spare4, spare3,
                            spare2, spare1}

PollPDU ::=             ENUMERATED {
                            p4, p8, p16, p32, p64, p128, p256, p512, p1024, p2048, p4096,
                            p6144, p8192, p12288, p16384, p20480, p24576, p28672, p32768,
                            p40960, p49152, p57344, p65536, infinity, spare8, spare7, spare6,
                            spare5, spare4, spare3, spare2, spare1}

PollByte ::=            ENUMERATED {
                            kB1, kB2, kB5, kB8, kB10, kB15, kB25, kB50, kB75,
                            kB100, kB125, kB250, kB375, kB500, kB750, kB1000,
                            kB1250, kB1500, kB2000, kB3000, kB4000, kB4500,
                            kB5000, kB5500, kB6000, kB6500, kB7000, kB7500,
                            mB8, mB9, mB10, mB11, mB12, mB13, mB14, mB15,
                            mB16, mB17, mB18, mB20, mB25, mB30, mB40, infinity,
                            spare20, spare19, spare18, spare17, spare16,
                            spare15, spare14, spare13, spare12, spare11,
                            spare10, spare9, spare8, spare7, spare6, spare5,
                            spare4, spare3, spare2, spare1}

T-Reassembly ::=        ENUMERATED {
                            ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
                            ms40, ms45, ms50, ms55, ms60, ms65, ms70,
                            ms75, ms80, ms85, ms90, ms95, ms100, ms110,
                            ms120, ms130, ms140, ms150, ms160, ms170,
                            ms180, ms190, ms200, spare1}

T-StatusProhibit ::=    ENUMERATED {
                            ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
                            ms40, ms45, ms50, ms55, ms60, ms65, ms70,
                            ms75, ms80, ms85, ms90, ms95, ms100, ms105,
                            ms110, ms115, ms120, ms125, ms130, ms135,
                            ms140, ms145, ms150, ms155, ms160, ms165,
                            ms170, ms175, ms180, ms185, ms190, ms195,
                            ms200, ms205, ms210, ms215, ms220, ms225,
                            ms230, ms235, ms240, ms245, ms250, ms300,
                            ms350, ms400, ms450, ms500, ms800, ms1000,
                            ms1200, ms1600, ms2000, ms2400, spare2, spare1}

 

 

 

Write a Comment

Leave a Comment

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