:::warning # <center><i class="fa fa-edit"></i> RLC</center> ::: [TOC] ### The meaning of RLC Radio link control (RLC) is a layer 2 Radio Link Protocol used in UMTS, LTE and 5G on the Air interface. This protocol is specified by 3GPP in TS 25.322 for UMTS, TS 36.322 for LTE and TS 38.322 for 5G New Radio (NR). RLC is located on top of the 3GPP MAC-layer and below the PDCP-layer. ### Overview Overview model of the RLC sub layer ![](https://i.imgur.com/g3fEGY8.png) First you will see the layers labeled 'upper layer' and 'lower layer'. Upper layer' in this case would mean ['RRC layer'](https://en.wikipedia.org/wiki/Radio_Resource_Control) or ['PDCP Layer'](https://en-academic.com/dic.nsf/enwiki/2139474) or in some case (especially in the simulation or testing environment' it can be a TE port ( a kind of data Input/Output port). And then you see another layer labelled 'lower layer'. It means 'MAC' layer in most case. ### Data Flow at the Transmitter The transmitting flow can be summarized as illustrated below. In this illustration, a lot of details for each layers are not mentioned. I focused only on data flow and how multiple IP packets get merged as it goes through lower layer. More specifically, in this illustration I assume that very large amount of resources (just assume that maximum possible resources) are allocated for MAC/PHY layer. --- (A) A lot of IP packets are comining into PDCP layer from outside of eNB. (NOTE : You see multiple arrows coming in parallel at this step, but this doesn't mean that the multiple packets are comining in simultaneously. In reality, each of the arrows comes in one by one in sequence.) (B) PDCP layer add PDCP header to each of incoming IP packet and send them out. (C) A lot of PDCP packets are coming into RLC layer (NOTE : You see multiple arrows coming in parallel at this step, but this doesn't mean that the multiple packets are comining in simultaneously. In reality, each of the arrows comes in one by one in sequence.) (D) RLC layer concatenate (combine) these multiple packets (SDU) into a single/huge packets and add a RLC header containing the detailed information(e.g, Length Indicator) that is required to split it into original packets at the reciever side. (The example DL AMD : 8C 00, DL AMD : 9C 02 are the RLC PDU of this type) (E) The concatenated RLC packet (PDU) is forwarded to MAC layer once it gets the signal from the MAC layer. The maximum data size of the RLC output is determined by MAC layer TBS(Transport Block Size) ![](https://i.imgur.com/pHdfihF.png) --- ### Data Flow at the Reciever I focused only on data flow and how a big packets received at PHY/MAC get splitted into individual IP packets as it goes through higher layer. --- (A) MAC layer received a huge packet carrying many IP packets in it and forward it to RLC layer. (B) RLC layer splits (segments) the huge packets into multiple SDUs based on the information carried by RLC header. After this segmentation, RLC header is removed. C) Each of the RLC SDUs from RLC is forwarded to PDCP(NOTE : You see multiple arrows coming in parallel at this step, but this doesn't mean that the multiple packets are forwarded simultaneously. In reality, each of the arrows are forwarded one by one in sequence.) (D) Each of the packets coming into PDCP is now stripped of PDCP header. (E) Each of the packets stripped of PDCP header produces individual IP packets and forwarded up to IP layer ![](https://i.imgur.com/Cv0V2Vg.png) --- ### Overall Data Flow for TM RLC Let's begin with TM mode. As you see in the following diagram, TM is the simplest RLC mode. TM stands for 'Transparent Mode'. The term 'Transparent' may have many different meaning. In this case, it would mean 'the contents goes through this layer without any modification'. What does it mean by 'modification' ? In this context, it would mean: * It does not add or remove any header to the input data * It does not split the input data into multiple segment * It does not combine the multiple input data into a single big chunk The only operation operation being done in this mode is a buffering operation, but even this buffering operation is also very simple. It just keeps the input data for a certain amount of time or until next input data come in, it just discard it if it does not get transmitted within a certain time frame. As you see in the diagram, BCCH, PCCH, CCCH goes through this type of RLC process. In [WCDMA](https://www.techopedia.com/definition/24282/wideband-code-division-multiple-access-wcdma), Voice call traffic used this RLC mode as well. It means that even some type of DTCH (voice traffic) uses this mode in WCDMA. However it is technically possible to use TM mode for DTCH as well. ![](https://i.imgur.com/gVJ9C7G.png) Model of two transparent mode peer entities ### Overall Data Flow for UM RLC Next, let's look into UM mode. UM stands for 'Unacknowledged Mode'. 'Unacknowledged Mode' means 'it does not require any reception response from the other party'. 'Reception response' simply mean 'ACK' or 'NACK' from the other party. (UM mode is similar to TM mode in that it does not require any ACK/NACK from the other party, but it is different from TM in that I has it's own header) Let's read the operation on transmitting side first. If you just read (verbalize) the diagram * Buffering * * Segmetation (Split a big chunk into a multiple small chunk) * * Concatenation (Combine a multiple small chunk into a large single chunk) * * Add RLC header (If you combine or split something, you have to be able to re-split or re-combine them into orignal chunk on the reciever side. For this, you have to put some tag(header) to those chunk) Then, read the operation on recieving side. If you just read (verbalize) the diagram * Buffering * Reordering (Sometimes the chunks transmitted earlier from transmitter may arrive late at the reciever. In this case you have to reorder the incoming chunks into proper order for reassembly). * Remove the RLC header (you would remember that the transmitter put the header to each of the chunk. So you have to remove this before you reassemble the data). * Reassembly As you see, DTCH, MTCH. MCCH use this type of RLC process. Again, this is also a matter of choice. You can use AM or UM mode for DTCH. ![](https://i.imgur.com/ERNDEfk.png)