0% found this document useful (0 votes)
94 views22 pages

NR RLC

The document describes the Radio Link Control (RLC) layer in 5G NR networks. Key points: - RLC resides between PDCP and MAC layers and is configured by RRC. There is one RLC entity per logical channel. - RLC supports three modes - Transparent Mode (TM), Unacknowledged Mode (UM), and Acknowledged Mode (AM). TM provides no processing, UM supports segmentation but no retransmissions, and AM supports segmentation, retransmissions, and status reporting. - Parameters like sequence numbers, timers, and thresholds are used to support functions in each mode like segmentation, reassembly, error correction, and status reporting. - Compared to L

Uploaded by

RafikAlilat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
94 views22 pages

NR RLC

The document describes the Radio Link Control (RLC) layer in 5G NR networks. Key points: - RLC resides between PDCP and MAC layers and is configured by RRC. There is one RLC entity per logical channel. - RLC supports three modes - Transparent Mode (TM), Unacknowledged Mode (UM), and Acknowledged Mode (AM). TM provides no processing, UM supports segmentation but no retransmissions, and AM supports segmentation, retransmissions, and status reporting. - Parameters like sequence numbers, timers, and thresholds are used to support functions in each mode like segmentation, reassembly, error correction, and status reporting. - Compared to L

Uploaded by

RafikAlilat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

RLC (Radio Link Control)

3gpp Spec: 38.322


• RLC resides between PDCP and
MAC layer
• RRC controls the RLC configuration
• There is one RLC entity per logical
channel configured
• Logical channels can be BCCH,
PCCH, CCCH, DCCH, DTCH
• For an RLC entity configured at the
gNB, there is a peer RLC entity
configured at the UE and vice versa

1
RLC Functions

• Transfer of control/user plane data


• Error correction through ARQ (only for AM data transfer)
• Unlike Lte RLC, NR RLC is not having concatenation which means RLC SDU’s can be sent as
multiple segments in separate RLC PDU’s
• 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)

2
RLC Entity Handling

• RLC entity is established by RRC layer whenever a radio bearer needs to be setup
• Initialization process involves creating of RLC entity and initializing the RLC variables and moves
to Active state
• RLC entity performs data transfer and segmentation based on the RLC mode
• In Active state RRC layer may re-establish RLC entity and in that case RLC entity shall discard all
RLC SDUs, RLC SDU segments, and RLC PDUs, if any, stops and reset all timers, reset all state
variables to their initial values
• In Active state RRC layer may request release of RLC entity and in that case RLC entity shall
discard all RLC SDUs, RLC SDU segments, and RLC PDUs, if any and release the RLC entity

3
RLC Modes
RLC can operate in three modes based on requirement
• TM (Transparent Mode):
RLC is completely transparent and is essentially bypassed. No retransmissions, no duplicate detection, and no
segmentation/reassembly take place. This configuration is used for control plane channels such as BCCH, CCCH, and
PCCH, SRB0 uses this mode of RLC

• UM (Unacknowledged Mode):
In UM mode RLC supports segmentation but there is no retransmissions. This mode is used when error-free delivery
is not required, for example voice-over-IP, Channels using this mode of operation is DTCH, DRB’s use this mode of RLC

• AM (Acknowledged Mode):
RLC AM mode is the main mode of operation for the data. Segmentation, duplicate removal, and retransmissions of
erroneous data are all supported. This mode is used for control plane signalling and user plane data , channels that
use this mode are DCCH and DTCH, SRB’s(except SRB0) and DRB’s use this mode of RLC

4
Transparent Mode RLC
• Used for BCCH, DL/UL CCCH,
PCCH
• No segmentation RLC SDU’s
• No RLC Header
• RLC PDU is same as RLC PDU

5
TM Mode RLC PDU

TMD PDU consists only of a Data field and does not consist of any RLC headers.
No Processing is done on RLC SDU at RLC layer
No Feedback is expected in this RLC mode
Transmitting side TM mode only buffers the data and that too for very little time

6
UnAcknowledged Mode RLC
• Segmentation and addition of RLC UM header
done
• No retransmissions are done in this mode
• Retransmission for UM mode PDU’s are done
HARQ level only
• Reassembly of RLC PDU’ are done at receiver
side based on Sequence number from the
RLC header

7
UM Mode RLC PDU
• UMD PDU consists of a Data field and an UMD PDU header
• There are five UMD PDU formats which is typically differentiated based on PDU containing a complete SDU
without SN, PDU containing 6-bit or 12-bit SN with or without SO
• SN can be of 6-bit or 12-bit as configured by RRC layer based on IE “sn-FieldLength” received in RRC message from
NW
• When an UMD PDU contains a complete RLC SDU, the UMD PDU header only contains the SI and R fields.
• A UMD PDU header contains the SN field only when the corresponding RLC SDU is segmented.
• A UMD PDU carrying the first segment of an RLC SDU does not carry the SO field in its header.

8
UM Mode RLC PDU contd.

9
UM RLC Parameters
UL-UM-RLC ::= SEQUENCE {
sn-FieldLength ::= Length of SN field
sn-FieldLength SN-FieldLengthUM OPTIONAL -- Cond Reestab
t-Reassembly ::= This timer is used by the receiving side of an AM
RLC entity and receiving UM RLC entity in order to detect loss of }
RLC PDUs at lower layer DL-UM-RLC ::= SEQUENCE {
sn-FieldLength SN-FieldLengthUM OPTIONAL, -- Cond Reestab
t-Reassembly T-Reassembly
}

10
Acknowledged Mode RLC
• Most complicated RLC type
• Requires ACK/NACK response from receiver
side and handles as part of ARQ procedure
• Segmentation and Re-segmentation of RLC
SDU’s, Adds RLC header and creates two copy
of PDU
• Logical channels can be BCCH, PCCH, CCCH,
DCCH, DTCH
• For an RLC entity configured at the gNB, there
is a peer RLC entity configured at the UE and
vice versa
• Duplicate detection and discard
• Request Retransmission for missing PDU
• Unlike NR RLC does not perform
concatenation, mainly to support low latency

11
NR AM RLC vs LTE AM RLC
Below are the main changes in NR AM RLC as compared to LTE AM RLC

• Unlike LTE AM RLC, NR RLC does not perform concatenation of RLC SDUs into a single
PDU. However, this functionality was present in LTE, reason is to reduce latency.
If concatenation would be supported, an RLC PDU cannot be assembled until the
uplink grant is received as the scheduled transport-block size is not known in
advance, Without concatenation, the RLC PDUs can be assembled in advance, prior to receiving the
uplink grant.

• In-sequence delivery is not supported in NR, This helps in reducing the overall latency as later packets
do not have to wait for retransmission of an earlier missing packet before being delivered to higher
layers, but can be forwarded immediately.

12
AM Mode RLC PDU contd.

13
RLC AM Parameters
sn-FieldLength ::= Length of SN field UL-AM-RLC ::= SEQUENCE {

t-Reassembly ::= This timer is used by the receiving side of an AM sn-FieldLength SN-FieldLengthAM OPTIONAL, -- Cond Reestab
RLC entity and receiving UM RLC entity in order to detect loss of t-PollRetransmit T-PollRetransmit,
RLC PDUs at lower layer
pollPDU PollPDU,
t-StatusProhibit ::= This timer is used by the receiving side of an pollByte PollByte,
AM RLC entity in order to prohibit transmission of a STATUS PDU
maxRetxThreshold ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32 }
t-PollRetransmit ::= This timer is used by the transmitting side of
an AM RLC entity in order to retransmit a poll }

pollPDU ::= This parameter is used by the transmitting side of


each AM RLC entity to trigger a poll for every pollPDU PDUs DL-AM-RLC ::= SEQUENCE {
pollByte ::= This parameter is used by the transmitting side of each sn-FieldLength SN-FieldLengthAM OPTIONAL, -- Cond Reestab
AM RLC entity to trigger a poll for every pollByte bytes t-Reassembly T-Reassembly,
maxRetxThreshold ::= This parameter is used by the transmitting t-StatusProhibit T-StatusProhibit
side of each AM RLC entity to limit the number of retransmissions
corresponding to an RLC SDU, including its segments }

14
RLC AM Status Reporting
An AM RLC entity sends STATUS PDUs to its peer AM RLC entity in order to provide positive and/or negative
acknowledgements of RLC SDUs (or portions of them). STAUS PDU is triggered whenever anyone of the
below mentioned conditions are met.

• Polling bit set to 1 by peer transmitting RLC AM entity


• Detection of reception failure of an AMD PDU, that after expiry of t-Reassembly timer
• Expiry of t_StatusProhibit timer

After submission of STATUS PDU to lower layer receiving side AM RLC entity shall start t_StatusProhibit
timer to prevent further STATUS PDU transmission until t_StatusProhibit expiry

RLC STATUS PDU can have two formats based on SN length configured by RRC layer that is 12-bit or 18-bit

15
RLC AM Status PDU
D/C field indicates whether the RLC PDU is an RLC data PDU or RLC control
PDU 0 is for control and 1 for data, in case od STATUS PDU it will always be set
to 0
CPT field indicates the type of the RLC control PDU, this field will always be set
to 000
ACK_SN: The Acknowledgement SN field indicates the SN of the next not
received RLC SDU which is not reported as missing in the STATUS PDU
NACK_SN: The Negative Acknowledgement SN field indicates the SN of the
RLC SDU (or RLC SDU segment) that has been detected as lost at the receiving
side of the AM RLC entity.
E1: The E1 = 1 indicates that a set of NACK_SN, E1, E2, and E3 follows.
E2: The E2 = 1 indicates that a set of SOstart and SOend follows.
E3: The E3 = 1 signals that a continuous sequence of RLC SDUs (NACK range)
that have not been received follows.
SOstart field (together with the SOend field) indicates the portion of the RLC
SDU with SN = NACK_SN (the NACK_SN for which the SOstart is related to) that
has been detected as lost at the receiving side of the AM RLC entity
SOend field (together with the SOstart field) indicates the portion of the RLC
SDU with SN = NACK_SN (the NACK_SN for which the SOend is related to) that
has been detected as lost at the receiving side of the AM RLC entity.
NACK range: The NACK range field is the number of consecutively lost RLC
SDUs starting from and including NACK_SN.
16
ARQ (RLC AM Entity)
It is an error control mechanism used for data transmission which relies on acknowledgement
from receiver and timeout(if no acknowledgement is received) to make sure a reliable data
transmission. Below are the three procedure which needs to be followed in sequence to
achieve reliable transmission

• Polling : Transmitting side entity initiates polling procedure by setting the P field of AMD PDU to 1
• Status Reporting : Receiving side entity provides ACK/NACK of RLC PDU to transmitter with STATUS PDU
• Retransmission : If NACK is received RLC PDU is retransmitted

17
Polling in RLC
UE gNB UE gNB
SN = x, Poll Bit = 1 SN = 0, Poll Bit = 1
PDU with SN = x sent
SN = 1, Poll Bit = 0

SN = 2, Poll Bit = 0
t-PollRetransmit
t-PollRetransmit SN = 3, Poll Bit = 0

SN = 0, ReTx Poll Bit = 1 Timeout


Retransmit RLC PDU
ACK (SN = x + 1) ACK received no ACK (SN = 1)
SN in ACK is (x + 1)
further retransmission

Transmitter received ACK for PDU Retransmitting RLC PDU due to t-


sent with Poll bit set to 1 PollRetransmit timeout

18
Polling in RLC Contd.
UE gNB
SN = 0, Poll Bit = 0

SN = 1, Poll Bit = 1

NO ACK RECVD t-PollRetransmit

SN = 1, Poll Bit = 1

ACK for the retransmitted PDU


is not received even after NO ACK RECVD t-PollRetransmit maxRetxThreshold
maximum retransmission
SN = 1, Poll Bit = 1

NO ACK RECVD
t-PollRetransmit

RLF
RLF(Radio Link Failure) due to
maximum Retransmission

19
RLC Constants

AM_Window_Size: This constant is used by both the transmitting side and the
receiving side of each AM RLC entity. AM_Window_Size = 2048 when a 12 bit SN is
used, AM_Window_Size = 131072 when an 18 bit SN is used.

UM_Window_Size: This constant is used by the receiving UM RLC entity to define


SNs of those UMD SDUs that can be received without causing an advancement of
the receiving window. UM_Window_Size = 32 when a 6 bit SN is configured,
UM_Window_Size = 2048 when a 12 bit SN is configured.

20
RLC AM Tx Variables & Counters
TX_Next_Ack :– Acknowledgement state variable This state variable holds the value of the SN of the next RLC SDU for which
a positive acknowledgment is to be received in-sequence, and it serves as the lower edge of the transmitting window. It is
initially set to 0, and is updated whenever the AM RLC entity receives a positive acknowledgment for an RLC SDU with SN =
TX_Next_Ack.
TX_Next :– Send state variable This state variable holds the value of the SN to be assigned for the next newly generated
AMD PDU. It is initially set to 0, and is updated whenever the AM RLC entity constructs an AMD PDU with SN = TX_Next and
contains an RLC SDU or the last segment of a RLC SDU.
POLL_SN :– Poll send state variable This state variable holds the value of the highest SN of the AMD PDU among the AMD
PDUs submitted to lower layer when POLL_SN is set according to sub clause 5.3.3.2. It is initially set to 0.

PDU_WITHOUT_POLL – Counter:- This counter is initially set to 0. It counts the number of AMD PDUs sent since the most
recent poll bit was transmitted.
BYTE_WITHOUT_POLL – Counter:- This counter is initially set to 0. It counts the number of data bytes sent since the most
recent poll bit was transmitted.
RETX_COUNT – Counter:- This counter counts the number of retransmissions of an RLC SDU or RLC SDU segment (see
clause 5.3.2). There is one RETX_COUNT counter maintained per RLC SDU.

21
RLC AM Rx Variables & Counters
RX_Next :– Receive state variable This state variable holds the value of the SN following the last in-sequence completely
received RLC SDU, and it serves as the lower edge of the receiving window. It is initially set to 0, and is updated whenever
the AM RLC entity receives an RLC SDU with SN = RX_Next.

RX_Next_Status_Trigger :– t-Reassembly state variable This state variable holds the value of the SN following the SN of the
RLC SDU which triggered t-Reassembly.

RX_Highest_Status :– Maximum STATUS transmit state variable This state variable holds the highest possible value of the SN
which can be indicated by "ACK_SN" when a STATUS PDU needs to be constructed. It is initially set to 0.

RX_Next_Highest :– Highest received state variable This state variable holds the value of the SN following the SN of the RLC
SDU with the highest SN among received RLC SDUs. It is initially set to 0.

22

You might also like