5G RLC
5G RLC
Abstract:
After LTE-Advanced, 5G/NR has emerged as the next major technology in mobile
telecom industry, however it is expected to provide many more requirements and in different
vertical industries. After working for more than 4 years, 5G technology become a reality as it
is live on pilot networks in several contries like Japan, US, Europe and China. Also 5G
subscribers are predecited to reach close to 2 billion by 2024. In summary, 5G technology is
expected to be there everywhere across the globe by connecting everything and thus benefit
the entire global.
This paper touches on RLC overview and then discusses on challenges faced during
the implementation and respective solution in RLC layer.
Acronyms used:
AM Acknowledged Mode
AMD AM Data
ARQ Automatic Repeat request
gNB NR Node B
PDU Protocol Data Unit
RLC Radio Link Control
RLF Radio Link Failure
SDU Service Data Unit
SN Sequence Number
TM Transparent Mode
TMD TM Data
UE User Equipment
UM Unacknowledged Mode
UMD UM Data
1. Overview of RLC (Radio Link Layer)
5G RLC overall functionality is almost same as LTE RLC. In 5G also, RLC has 3
different modes of operations and each of the mode can transmit and receive data, serving
different logical channels as per their requirement.
Below table provides the quick view on different modes and their functionality.
In 5G, both TM and UM mode has separate RLC entity for transmitting and reception side
functionalities, whereas AM mode has single RLC entity that performs both transmitting and
reception functionality. Each of the logical channel uses specific RLC mode to send and
receive RLC data.
In Figure 2 provides a complete description of RLC modes, logical channel(s) that is(are)
associated with each of the mode and overall functionality of respective RLC mode.
Figure 2: RLC Modes and associated logical channels
Functions in RLC layer is performed by RLC entity – this is configured seperately for each
bearer of a UE. Each bearer can be of UM or AM mode.
• Segmentation i.e. splitting of big chunk of RLC SDU (PDCP PDU) into multiple
small chunk as per MAC grant and Modify RLC Header according to the
segmentation done.
• Buffering of rest of the segmented RLC PDUs to transmit in next TTI
• Add the RLC header.
• RLC Re-trasmission Buffer i.e. at transmission side, after doing the segmentation
process, it creates two identical copies of RLC PDUs, then add RLC header and transmit
one copy of data to lower layers, store the other copy in Retransmission Buffer. During
the control proces, if RLC gets NACK or if it does not get any response for a particular
RLC PDU, from peer RLC Entity for a certain period of time, then stored RLC packet in
Retransmission buffer gets transmitted again.
• RLC PDU Control Procedure This is to provide feedback mechanism on received RLC
PDUs.
Figure 9: Data Flow from PDCP layer to RLC and to MAC/PHY layers
4G 5G
Multiple RLC SDU in 1 RLC PDU 1 RLC SDU – 1 RLC PDU
UM RLC PDU is associated with SN UM RLC Segment PDU is associated with SN
UM RLC Complete PDU is not associated with
SN
3. RLC- AMD
This section explains the transmission/reception for AM mode RLC PDU. All scenarios are
explained for RLC 18bits SN.
The number of RLC PDU(s) are transmitted according to the MAC TB size. If the MAC TB
size is not sufficient enough to transmit the Complete RLC PDU, then the RLC PDU is
segmented. MAC TB size depends upon the scheduled bytes – which is based on the radio
condition.
Fields Meaning
SI The SI field indicates whether an RLC PDU contains a complete RLC SDU or the first,
middle, last segment of an RLC SDU.
In AM mode, every RLC PDU is sent with sequence number in ascending order and stored in
Re-transmission buffer. As RLC AM supports ARQ to ensure reliable delivery, therefore
RLC STATUS PDU message is sent by UE to indicate the current status of RLC PDUs
received at UE. In Figure 11:
In Figure 13, if STATUS PDU is dropped, then post expiry of Poll Retransmission timer, a
RLC PDU with SN=2 is retransmitted – which is latest RLC PDU that is transmitted from
DU. If the Poll Retransmit timer expiry count exceed the maxRetxThreshhold value then RLF
(Radio Link Failure) is triggered and the UE is released.
3.1.5 Window Stall
RLC Window Stall happens when difference between TxNext & TxNextAck is equal to SN
Window Size ( half of Max SN Size). In Figure 14, Window Stall has happened and if there is
no RLC PDU in the Retx Buffer then Highest Transmitted PDU (Sn-131172) is retransmitted.
In case of Window Stall, unsolicited request is sent to PDCP in CU to stop sending the data.
As per the Specs, Stall condition happens when no ACK is received for the transmitted PDU
count (WINDOW_SIZE =13072), it mean DU has to maintain 131072 buffers.
Issue with WindowStall condition to WindowSize
1) This huge buffers may not be supported by DU due to system limitation.
2) It may be possible that spurious UE consume all the buffers leaving no buffers for other
UEs.
Therefore Window stall condition threshhold can be modified according to this formula –
WindowStall Threshhold = (MAX_DATA_RATE/AVG_PDU_SIZE)*RLC_RTT
RLC_RTT = Status Prohibit Timer + MAX_HARQ_RETX
MAX_DATA_RATE Maximum Data Rate Supported by UE
RLC_RTT RLC Round Trip Time
MAX_HARQ_RETX Maximum Harq Retransmission
AVG_PDU_SIZE Average RLC PDU Size
Fields Meaning
TxNext This state variable holds the value of the SN to be assigned for the next newly generated AMD
PDU
TxNextAck 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.
3.2 Receive and reassembly
Figure 15 & Figure 16 depicts the updation of RLC UL State Variable according to the
processing done for the RLC packets in treassembly(t1,t2,t3) timer. It is assumed that in each
treassembly, 50 RLC PDUs are received and in each treassembly timer duration STATUS PDU is
sent. RLC SN Reception missed as TB (MAC Transport Block) not received from UE.
In Figure 15, MAC TB with RLC SN(5~8) are lost during t1 time and is received during t2
due to HARQ Retransmission. Here as seen, STATUS PDU sent in t2 duration does not
includes again the AckSn=5.
Note: Packet Lost in t1 duration will be informed always in t3 duration to UE using STATUS
PDU (using NackSn).
Figure 16 TB Lost
In Figure 16, MAC TBs with RLC SN(5~8) and RLC SN(40~49) is lost in t1 duration. In t2,
Status PDU is sent before the reception of Harq Retx(Harq Retransmitted TB) with RLC
SN(5~8), therefore STATUS PDU does not report the reception of RLC SN(5~8) and only
send STATUS PDU(AckSn-5). Post t2 expiry, it is assumed that MAC TB with RLC
SN(40~49) is lost and lost packet information is sent to UE in STATUS PDU( AckSn-50,
NackSn-40, range-10).
RLC packets lost in t1 are reported to UE in STATUS Report during t3. In STATUS PDU
(AckSn 50, NackSn-40, range10). PDUs from SN(40 – 49) are considered to be lost or
dropped.
Note: Reassembly timer is the duration during which the DU-RLC waits for HARQ
Retransmission from UE for the lost RLC packets.
Fields Meaning
RxHighStatus 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.
RxNextHighest This state variable holds the value of the SN following the SN of the RLC SDU
with the highest SN among received RLC SDUs.
RxNextStatusTrigger This state variable holds the value of the SN following the SN of the RLC SDU
which triggered t-Reassembly
t-PollRetransmit This timer is used by the transmitting side of an AM RLC entity in order to
retransmit a poll
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. Only one t-
Reassembly per RLC entity is running at a given time.
t-StatusProhibit This timer is used by the receiving side of an AM RLC entity in order to prohibit
transmission of a STATUS PDU
3.3 Status PDU
7 AckSn - 1000 (E1=1) Except SN=100 with Last Segments starting from offset
NackSn – 100 (E1=0, E2=1, E3=0) 400
SO start – 400 All SNs till 999 are received
SO End - 0xfffff
Fields Meaning
ACK_SN When the transmitting side of an AM RLC entity receives a STATUS PDU, it interprets that all
RLC SDUs up to but not including the RLC SDU with SN = ACK_SN have been received by its
peer AM RLC entity, excluding those RLC SDUs indicated in the STATUS PDU with
NACK_SN, portions of RLC SDUs indicated in the STATUS PDU with NACK_SN, SOstart
and SOend, RLC SDUs indicated in the STATUS PDU with NACK_SN and NACK_range, and
portions of RLC SDUs indicated in the STATUS PDU with NACK_SN, NACK range, SOstart
and SOend.
NACK_SN 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 It indicates whether or not a set of NACK_SN, E1, E2 and E3 follows.
E2 It indicates whether or not a set of SOstart and SOend follows
E3 It indicates whether the NACK_range follows.
soStart It is the positon of the first byte that is lost.
soEnd It is the position of the last byte that is lost
Nack range It is the number of consecutively lost RLC SDUs starting from and including NACK_SN.
4. RLC - UMD
This section explains the transmission/reception for AM mode RLC PDU. All scenarios are
explained for RLC 12bits SN.
The number of RLC PDU is transmitted according to the MAC TB size. If the MAC TB size
is not sufficient enough to transmit the Complete RLC PDU, then the RLC PDU is
segmented.
Fields Meaning
SI The SI field indicates whether an RLC PDU contains a complete RLC SDU or the first, middle, last
segment of an RLC SDU.
Figure 22 TB Lost
In (Figure 21, Figure 22), SN(5~8) lost in t1. RxNextReassembly is updated only after the t2
duration, till that time it waits for HARQ retransmission or the pending segments from UE.
Post expiry of t2, RxNextReassembly is updated.
Fields Meaning
RxTimerTrigger This state variable holds the value of the SN following the SN which triggered t-
Reassembly
RxNextHighest This state variable holds the value of the SN following the SN of the UMD PDU with
the highest SN among received UMD PDUs. It serves as the higher edge of the
reassembly window.
RxNextReassembly This state variable holds the value of the earliest SN till which all the SNs are
considered as received or lost.
1. References
3GPP 38.322 - Radio Link Control (RLC) protocol specification (Release 15)