5G/NR - Pre Trial - RACH





NOTE : This note is about a tempary 5G specification that was implemented and tried before 5G specification is finalized. I keep this note for study purpose.




5G RACH process is almost identical to LTE RACH process as illustrated below. So if you are familiar with LTE RACH procedure, it will be a great Plus. If you are new to RACH process, I would strongly recommend you to go through LTE RACH procedure first. Followings are the topics that will be described in this page



RACH Procedure for Initial Access


Following is overall protocol sequence for the RACH Procedure for initial access. It means that this process happens when you first power on your device. This section will describe the sequence for the successful RACH procedure only. I will write some other sections for the failure case of the RACH Procedure.




(Prep A) Before Triggering PRACH


Even before step (1), i.e, before initiating PRACH, UE should get following information ready (Based on V5G.321-5.1.1)

  • What is the available set of xPRACH Configuration (prach-Configindex) ?
  • What is the available set of Random Access Preambles ?
  • What is the RA Response Window Size (ra-ResponseWindowSize) ?
  • What is the initial preamble power (preambleInitialRecievedTargetPower) ?
  • What is power ramping factor (powerRampingStep) ?
  • What is the maximum number of preamble transmission (preambleTransMax) ?
  • What is the Contention Resolution Timer (mac-ContentionResolutionTimer) ?



(Prep B) Select Appropriate Random Access Resource


Once UE has all the information (answer to the questions) listed in (Prep A), UE would select a proper RA resource as descirbed below(Based on V5G.321-5.1.1)


< Case 1 >

    Condition : ra-PreambleIndex(Random Access Preamble) has been explicitely signalled and the value is not all zero (000000)

    Action : Select (Use) the Random Access Preamble that is explicitely signaled


< Case 2 >

    Condition : ra-PreambleIndex(Random Access Preamble) has NOT been explicitely signalled or the signalled value is all zero (000000)

    Action : randomly select Random Access Preamble



(Prep C) Figure out the subframe to transmit PRACH Preamble


UE should select the xPRACH subframe based on prach-Configindex and determine 5G physical layer timing requrements.



(1) xPRACH (Preamble) : Msg1


When all the Preps are done, UE transmit RACH Preamble with the following settings (based on V5G.321 -5.1.3)

    PREAMBLE_RECIEVED_TARGET_POWER = preambleInitialRecievedTargetPower

                                                          + (PREAMBLE_TRANSMISSION_COUNTER-1) * powerRampingStep

    xPRACH Preamble with corresponding RA-RNTI and the selected Preamble Index



(2) RAR (xPDCCH + xPDSCH) : Msg2


Around this step, things happens both on UE and Network side.


Right After step (1) : after 3 subframe seconds of xPRACH Preamble Transmission, UE start monitoring xPDCCH identified by RA-RNTI. This monitoring would continue for the number of subframes specified by ra-ResponseWindowSize. The RA-RNTI value the UE is expecting is as follows.

    RA-RNTI = 1 + t_id

How is t_id ? t_id is a value between 0 and 9 inclusive( 0 <= t_id <= 9) and the value is calculated as follows :

    t_id = m * 5 + (l / 2)

      , where m  = RACH subframe index in a frame (m = 0 or 1)

                  l = RACH symbol index in a RACH subframe (l = 0, 2, 4, 6, 8)


Right after xPRACH reception by 5GNB : 5GNB transmit two physical data as below

    xPDCCH masked with RA-RNTI : This carries DCI that is required to decode xPDSCH

    xPDSCH : The MAC Data carrying RACH Response (RAR Message = Msg 2)

The RAR Message carries the information in a structure as shown below


< V5G.321 - Figure 6.1.5-1: E/T/RAPID 5G-MAC subheader >


< V5G.321 - Figure 6.1.5-2: E/T/R/R/BI 5G-MAC subheader >


< V5G.321 - Figure 6.1.5-3: 5G-MAC RAR >



RAR reception by UE : UE decteds and decode RAR as in following procedure

  • UE detects xPDCCH masked with the RA-RNTI.
  • UE decodes xPDSCH and the extract Random Access Response Data


Right after the RAR reception by UE : If UE successfully decode a RAR message. it go through a procedure as follows

  • UE checks if the RAR contains Backoff Indicator
    • If a Backoff indicator(BI) is found, UE sets the backoff parameter as specified by the BI field
    • If a Backoff indicator(BI) is not found, UE sets the backoff parameter to be zero (0)
  • UE check if the RAR containts a Random Access Preamble Identifier
    • If the Random Access Preamble Identifier is same as the one UE used in RACH Preamble, UE assume that it received the correct RAR and perform following Procedure
      • process the received Timing Advanced Command
      • transfer following information to lower layer
        • PreambleInitialReceivedTargetPower
        • (PREAMBLE_TRANSMISSION_COUNTER - 1) * powerRampingStep
        • process the received UL grant value and indicate it to the lower layer



(3) RRC Connection Request (xPUSCH) : Msg3


UE transmite RRC Connection Request using xPUSCH using the radio resource allocated by UL Grant specified by RAR. The exact timing of xPUSCH transmission is adjusted by Timing Advance value contained in RAR. The logical channel for this message is xCCCH. It means that this message is carried by xCCCH SDU.



(4) ACK + CRID (xPDCCH + xPDSCH) : Msg4


Once UE transmitted Msg3, following procedure are performed in UE and 5GNB. The procedure described here is only for success case. I will describe on the failure case in a separate section.


On UE : mac-ContentionResoultiontimer starts

On 5GNB : 5GNB sends a MAC CE carrying Contention Resolution ID

On UE : Following Procedure is being done on UE side

  • monitor and detect xPDCCH masked with Temperary C-RNTI
  • decode xPDSCH using the decoded xPDCCH and check if the xPDSCH carries a 5G-MAC PDU
  • if the xPDSCH contains the 5G-MAC PDU, do following procedure
    • stop mac-ContentionResoultiontimer
    • if the 5G-MAC PDU contains the MAC CE carrying the UE Contentions Resolution Identity, do followings
      • if the UE Contention Resolution ID in the MAC CE = xCCH SDU in Msg3, do following procedure
        • consider this Contention Resolution successful and finish the disassembly and demultiplexing of the 5G MAC PDU
        • set C-RNTI = Temporary C-RNTI
        • discard the Temporary C-RNTI
        • consider the Random Access Procedure are successfully completed





UE sends HARQ ACK for xPDSCH carrying the Contention Resolution MAC CE it received.



(6) RRC Connection Setup (xPDCCH + xPDSCH)


Network sends xPDSCH carrying RRC Connection Setup Message and xPDCCH required for deconding the xPDSCH.





UE sends HARQ ACK for the xPDSCH carrying the RRC Connection Setup Message it received.



(8) DCI Ax (xPDCCH)


Network sends DCI A via xPDCCH carrying UL Grant for xPUSCH that will carry RRC Connection Setup Complete



How to generate PRACH Preamble Sequence ?


Following equations are base on V5G 211 - 5.7.2.




How Preamble Index is determined ?