Thursday, October 31, 2019

RLC layer in LTE

RLC - Basics

  • Maintains the L2 data link between the eNB and the UE in Uu- interface.
  • Input to RLC is RLC-SDU's from PDCP protocol containing Signaling messages and Packet Data
  • Output is RLC-PDU's to MAC protocol. These PDU's are given to MAC upon request from MAC/MAC Scheduler
  • The SDU's are segmented or concatenated and fitted into size as indicated by the MAC transmitter.
  • It reorders out of sequence PDU's from MAC due to MAC HARQ
  • Different modes of RLC is used depending upon logical channels.RRC determines the types of RLC mode to be used depending upon QOS , QCI and available radio resources during bearer setup.
RLC BASIC Block Diagram

- refer to the link to get the diagram
Figure 4.2.1-1: Overview model of the RLC sub layer of ETSI TS 136 322

RLC Modes of operation
  1. Transparent Mode( TM) - BCCH,PCCH,CCCH
    1. Unidirectional ( UL or DL) so a separate TM mode object is used for UL or DL. 
    2. SI, Paging, all messages where no SRB(signaling Radio Bearer) and DRB( Dedicated Radio Bearer) is used.
    3. SRB0 does not use TM mode.
  2. Un-acknowledge Mode (UM) - DL/UL DTCH
    1. Unidirectional (UL or DL). Messages which are delay sensitive, error tolerant messages. MBMS,VOIP services.
    2. Segmentation & concatenation at TX side and re-ordering at RX side of RLC SDU's
    3. Re-assembly and duplicate detection of RLC SDU's at RX end.
  3. Acknowledged Mode (AM) - DL/UL DTCH and  DCCH
    1. Bidirectional (UL and DL)  and All the features of UM RLC
    2. Re-transmission (Hybrid ARQ) and Re-segmenting f RLC PDU's
    3. Polling, Status reporting and prohibit

Block diagram of TM, UM and AM Modes of operation refer to
TM : Figure 4.2.1.1.1-1: Model of two transparent mode peer entities of ETSI TS 136 322
UM : Figure 4.2.1.2.1-1: Model of two unacknowledged mode peer entities of ETSI TS 136 322
AM : Figure 4.2.1.3.1-1: Model of an acknowledged mode entities of  ETSI TS 136 322

TM Mode : Nothing much to say, as it transparently passes it through

Description of UM Mode 
  1. TX Side
    1. RLC SDU's are segmented/concatenated to make UM PDU's according the max RLC size as indicated by MAC
    2. Includes RLC headers
  2. RX Side
    1. re-order the UM PDU's discard duplicated PDU's
    2. discard non receipt UM PDU's after expiry of t-reordering timer.
    3. re-assemble the PDU's and deliver to upper layers.
UM Parameters
  1. VT(US)-(Unacknowledged Send) => Holds the value of SN to be assigned to for the next UM-Data PDU's. It is updated once UMD PDU's is delivered to MAC.
  2. VR(UR)-(Unacknowledged Receive) =>  Holds the value of earliest SN for Rx UM for which ack is not rcevieved .
  3. VR(UX) - (UM - t-reordering variable)=> Holds the value of (SN +1)for which t-reordering is triggered.
  4. VR(UH)s - UM highest received state variable. Holds the value of highest SN for which the RX UM received among the PDU's. Serves as higher edge of receive window.

Description of AM Mode 
  1. Same AM mode object handles RX and TX.
  2. RRC control and data as well as RLC specific control information is transfered AM mode. 
  3. Periodically in AM TX module set “poll bit” in RLC PDU headers which tells AM RX to send “status PDU report”. This is the basis of re-transmission.
  4. If SNIR is failing MAC will request smaller PDU's then re-segmentation happen of the TX PDU packet.
AM Parameters
  1.  TX side  state variables
    1. VT(A) (Acknowledge)=> it is updated whenever the AM RLC entity receives a positive acknowledgment for an AM-Data PDU with SN. Serves as the lower edge of TX window.
    2. VT(MS)( Maximum Send) =>VT(A) + AM_Window_Size 
    3. VT(S) (Send) =>  Value of the SN to be assigned for the next newly generated AMD PDU.
  2. Rx Side state variables
    1. VR(R) (Receive) => Holds the value of the SN of the last in-sequence completely received AM-Data PDU. It will be the lower edge of RX window.
    2. VR(MR) (Maximum Receive)=>  VR(R) + AM_Window_Size, Higher edge of RX window
    3. VR(X) (Re-ordering state variable)=> Holds the value of SN of RLC data PDU which triggered t-Reordering 
    4. VR(MS)(Maximum Status) => Maximum value of SN which can be indicated in ACK_SN when STATUS PDU is constructed.
    5. VR(H) (Highest received). Highest SN among received PDUs.
          RLC - parameters and counters
          1. POLL_SN (Poll Send)- Hold the value of SN of AM-Data(AMD) for which poll bit is set. It is VT(S)-1. 
          2. PDU_WITHOUT_POLL -Number of PDUs sent since the most recent poll bit transmitted.
          3. BYTE_WITHOUT_POLL -Number of bytes since most recent poll bit transmitted
          4. RETX_COUNT - number of re-transmission count of PDU's
          5. AM_Window_Size - 512
          6. UM_Window_Size 
            1. 5bit- value set to 16
            2. 10bit - value set to 512
            3. UM RLC for MTCH,MCCH always set to '0'.
          7. Timers
            1. t-PollRetransmit -  AM Tx RLC entity in order to retransmit a poll .
            2. t-Reordering - Used by AM & UM Rx RLC entity in order to detect loss of RLC PDUs at lower layer. This timer is used to detect reception failures and to avoid excessine delays. After detecting PDU packet failure the Rx AM/UM  will wait for this timer before discarding them permanently and starts reassembly of next RLC PDU's .Only one re-ordering timer is running at any given time per RLC entity. 
            3. t-status Prohibit => This timer is used by the receiving side of an AM RLC entity in order to prohibit transmission of a STATUS PDU. if high value is configured, reslults in low frequency of status report  therby there is high probability of “send window size - 0' so reducing the transmission rate. A low value will result in timely acknoledgement of data , better transmisison rate but there will be wasting of resources.
            4. t-Reordering and t-statusPollbit is always made equal.
          RLC- TM Procedures
          1. TM Procedures
            1. TX Procedures (TMD - TM Data)
              1. TMD PDU's is submitted to  lower layer MAC without any modification as RLC SDU's
            2. RX Procedures
              1. RLC Rx entity will pass the TM PDU's  blocks transparently to higher layers as TMD SDU's
           RLC-UM Procedures
          1. Unacknowledged Mode Procedures  (UMD - UM Data)
            1. TX Procedures
              1. Upon UMD delivery to lower MAC layer it updates the  SN  in RLC header from VT(US)  and then increments VT(US) =  VT(US) +1
            2. RX Procedures
              1. Rx UM entity maintains the reordering window VR(UH)
              2. checks  if UM PDU's SN is outside  (VR(UH) – UM_Window_Size) <= SN < VR(UH). If it is outside the re-ordering window or if same SN is received it discards UMD PDU's.
              3. UMD PDU's is kept in reception buffer if it is within the reordering window updates the UM state variables and sets/resets the t-reordering timer, reassemble the RLC SDU's and deliver to upper layers.
          AM RLC Procedures
          1. AMC PDU's have higher priority than the AMD PDU's.
          2. AMD retransmission PDU's have higher priority than new AMD PDU's
          3. Tx Side Procedures
            1. VT(S),  VT(MS) are updated accordingly after transmission of AM PDU's
            2. Can receive STATUS PDU from peer AM Entity after successful reception of AMD  PDU's . Accordingly VT(A) is updated
            3. After all successful deliver to lower layer a confirmation can be sent to RRC or PDCP
          4. RX Side Procedures
            1. AM Rx maintains the window using the state variables VR(R) and VR(MS)
            2. Upon receiving AM PDU's checks fo duplication of AM PDU's if not it places in reception buffer and updates the state variables.
            3. If the SN is outside the RX window , update the V(H )to V(H) = SN+1 
            4. If all the packets are received, the rx window is move forward with VR(R) to SN of first AMD PDU with SN > current VR(MS).
          ARQ procedures
          1. Present in the AM Entity Only
          2. Re-transmission
            1. when STATUS PDU shows AMD PDU or portion of MD PDU is partially transmitted to AM Rx entity.
            2. If SN is between the TX window
              1. 1st time re-transmission - set the RETX_COUNT =0 and re-transmit the AMD PDU
              2. Not 1st time  - increase the count of RETX_COUNT and re-transmit.
              3. if RETX_COUNT = maxRetxThreshold , the indicate to upper layer.
            3. if AMD PDU size is equal to size specified by MAC then it updated the P-bit otherwise segmentation is done before delivering to lower layer.
            4. When making new segment the data field is copied but RLC header is updated according to new segment and P-bit is also updated accordingly.
          3. Polling -  Done for triggering the STATUS report
            1. Upon transmission of  AMD PDU's update PDU_WITHOUT_POLL, BYTE_WITHOUT_POLL. 
            2. Poll bit is Inserted if 
              1. PDU_WITHOUT_POLL > = pollPDU
              2. BYTE_WITHOUT_POLL >=pollBYTE  
              3. reset the PDU_WITHOUT_POLL, BYTE_WITHOUT_POLL upon transmission
            3. If the TX  and re-transmission buffer in AM entity becomes empty  or no new AMD PDU is transmitted due to window stalling the set the Poll - bit.
            4. After transmission of poll packet , update POLL_SN = VT(S) -1 and start/restart the t-PollRetransmit.
            5. Upon expiry of t-PollRetransmit AM Tx entity will transmit 
              1. AMD PDU whoose SN = VT(S)-1 or 
              2. send any AMD PDU's in retransmission buffer with including  poll-bit.
          4. Status Reporting
            1. RRC configures if status prohibit functionality can be used by AM entity
            2. Status Reporting is triggered by 
              1. Polling from peer AM entity
              2. AMD PDU's with P-bit =1
              3. AM Rx Entity send STATUS upon expiry of its t-Reordering timer. this timer is expired if it did not receive any RLC PDU's from lower layers.

            3. Upon sending STATUS_REPORT the AM Rx entity sets the status prohibit.

          RLC Configurable parameters from RRC
          1. maxRetransThreshold
            1. used by AM Tx Entity
          2. pollPDU 
            1. used by AM Tx Entity to trigger poll after every pollByte PDU's.
          3. pollBytes
            1. used by AM Tx Entity to trigger poll after every pollByte PDU's.
          4. sn-FieldLength 
            1. used by AM/UM for max SN
          5. Enable /Disable Status Prohibit 

          References

          Good basic reference
          https://ltequery.blogspot.com/












              2 comments:

              Mukund said...

              Give your views. Copying from specs is not big thing.

              Nitesh Kumar Pandey said...

              @Mukund - Do you understand that we cant have different view that 3GPP.

              PHICH Intricacies

              1.  PHICH is carried on 1st symbol of each sub-frame and located in same symbol as PCFICH 2.  It will have values ACK/NACK 0/1 a)  0 is repr...