NR RLC
NR RLC
1
RLC Functions
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 }
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.
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
18
Polling in RLC Contd.
UE gNB
SN = 0, Poll Bit = 0
SN = 1, Poll Bit = 1
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.
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