2-Step RACH in Release-16 of 5G-NR

In Earlier versions of NR Releases prior to R-16, There was only one type of RACH procedure which is kind of similar to the LTE RACH procedure also known as the 4-Step RACH procedure.

In the Release-16 NR version, 3GPP Introduced a new 2-Step RACH procedure that aims to improve the overall latency of the RACH procedure.

Now there are two RACH procedures and 3GPP has categorized the it into two types

  1. Type-1 Random access procedure(4-Step-RACH) and 
  2. Type-2  Random access procedure(2-Step-RACH).

So what’s the benefit of having a 2-Step RACH process over 4-Step RACH process

  • It Reduces the Latency compared to 4-step RACH process.
  • Reduces the Control Signaling overhead at the gNB.

To Implement 2-Step RACH Procedure, 3GPP defined a list of design targets that reflect the motivation behind the introduction of 2-Step RACH procedure.

  • A common design for 3 main use cases of 5G-NR (mMTC, URLLC and eMBB) and for both licensed and unlicensed spectrum
  • 2-step RACH procedure potentially has benefits for channel access
  • The triggers for 4-step RACH are also applicable to 2-step RACH and hence 2-step RACH could be applied for all RRC states. ( Edit the slide that has All RACH Triggers)
  • 2-step RACH is applied for RRC_INACTIVE , RRC_CONNECTED and RRC_IDLE state
  • 2-step RACH is applicable to any cell size supported in Rel-15 NR and shall be able operate regardless of whether the UE has valid Timing Alignment(TA) or not.

Below is the high-level call-flow of 2-Step RACH &  4-Step RACH Procedure

The Preamble selection process remains the same in the 2-Step RACH process but there is furthermore information in MsgA

  1. Step RACH consists of 1 round trip transfer of control signaling between UE and Gnb
    1. MsgA Transmission from UE to gNB
    2. MsgB Reception at UE from gNB.

We will discuss in detail MsgA transmission and MsgB Reception is discussed in another article here

MsgA Contents

  • PRACH Preamble Transmission
  • PUSCH Transmission
PRACH Preamble Transmission
  • The Preamble Selection and transmission is the same as the 4-Step RACH process.
  • UE follows the similar Procedure of 4-Step RACH while selecting a Random Access preamble. 
  • All the preamble formats and the PRACH configuration indexes defined in Rel-15 and in Rel-16 NR-U can be used.
  • In the case of shared time-domain PRACH resources between 4-step RACH and 2-step RACH, different preambles are allocated to differentiate the RA types.
  • The mapping between SSB and PRACH occasion reuses that for 4-step RACH.
  • The PRACH occasion can be shared between 2-StepRA and 4-step RA procedure.
How does the UE knows which RACH type to use for Initial access or any other IDLE or Connected mode scenarios ?

The RACH Type selection process is described in the Flow chart below.

In the Case of Initial Access

  • UE checks SIB message to see what Type of RA is defined,
  • If both 2-step and 4-step RA type Random Access Resources are configured then
    • UE will check if RSRP of the downlink pathloss reference is above msgA-RSRP-Threshold
    • If its above msgA-RSRP-Threshold  then it will select 2-Step RA else it will select 4-Step RA
  • Or if only 2-step RA is configured then UE will select 2-Step RA
  • Or if only 4- Step RA is configured then UE will select 4-Step RA

In the case of  reconfiguration with sync

  • If the contention-free Random Access Resources for 2-step RA type have been explicitly provided in rach-ConfigDedicated for the BWP selected for Random Access procedure then, the UE will select 2-stepRA or,
  • If the contention-free Random Access Resources for 4-step RA type have been explicitly provided in rach-ConfigDedicated for the BWP selected for Random Access procedure then, the  UE will select 4-stepRA.
msgA-PUSCH transmission

PUSCH message is transmitted in the case of 2-Step RA as part of msgA. How and when this message is transmitted by UE is discussed in this section

What is a PUSCH Occasion?

A PUSCH occasion for PUSCH transmission is defined by a frequency resource and a time resource and is associated with a DMRS resource. The DMRS resources are provided by msgA-DMRS-Configuration.  Simply put PUSCH occasions are time and frequency resources where a UE can send PUSCH in the uplink.

How UE knows when to transmit PUSCH for MsgA ?

There are a couple of ways the UE gets this information from the network, either in SIB1 when the UE is not in a connected state, or when the UE is rrc_connected state and this information is passed on to UE by dedicated signaling for example during a handover procedure.

When does the UE transmit MsgA PUSCH?
  • UE transmits PUSCH message after PRACH is transmitted.
  • The first PUSCH transmitted is encoded with Redundancy version 0 i.e RV=0.
  • There is no HARQ ACK for msg-A PUSCH transmission.
  • The PUSCH is transmitted after N symbols of PRACH transmission, 
    • where N=2 for u = 0 or u=1
    • where N=4 for u = 2 or u=3
    • Where u is the SCS for UL BWP
  • PUSCH is transmitted by UE at PUSCH Occasions configured by network in RRC message IE msgA-PUSCH-Config.
  • In the case of initial access msgA-PUSCH-Config is provided in initial UL BWP of SIB1 RRC message.
  • If the UE is in RRC_connected mode the network can configure msgA-PUSCH-Config as part of active UL BWP.

There are two aspects related to information regarding MsgA Pusch transmission Time-domain information and  Frequency domain information

Frequency domain information : 

  • The number of PUSCH occasions available in the frequency domain is provided by nrMsgA-PO-FDM. 
  • Consecutive PUSCH occasions in the frequency domain are separated by a number of RBs provided by guardBandMsgA-PUSCH.
  • The starting PRB of PUSCH Occasion is given by an offset value with respect to PRB#0 and is provided by frequencyStartMsgA-PUSCH.
  • Th number of Frequency multiplexed PUSCH occasions in a time instance is provided by nrofMsgA-PO-FDM
  • The number of PRB’s per PUSCH occasion is provided by i.e.  nrofPRBs-PerMsgA-PO.
  • Frequency Hopping for msgA-PUSCH transmission if configured is indicated by msgA-intraSlotFrequencyHopping .
    • The Frequency offset for the second hop is determined by msgA-HoppingBits .
    •  If guardPeriodMsgA-PUSCH is provided, a first symbol of the second hop is separated by guardPeriodMsgA-PUSCH symbols from the end of a last symbol of the first hop; otherwise, there is no time separation of the PUSCH transmission before and after frequency hopping.
    • If a UE is provided with useInterlacePUCCH-PUSCH in BWP-UplinkCommon, the UE shall transmit PUSCH without frequency hopping
  • PSUCH is CRC scrambled with MsgB-RNTI .
  • Similar to RACH GroupA and Group B Preambles, PUSCH resources for GroupA preambles and GroupB preambles can be defined seperately
  • msgA-PUSCH-ResourceGroupA : MsgA PUSCH resources that the UE shall use when performing MsgA transmission using preambles group A.
  • msgA-PUSCH-ResourceGroupB : MsgA PUSCH resources that the UE shall use when performing MsgA transmission using preambles group B.

Time domain information : 

  • When a First PUSCH Occasion is available after PRACH slot is determined by msgA-PUSCH-TimeDomainOffset in an active UL BWP.
  • A Single time offset with respect to the start of each PRACH slot and PUSCH occasion slot is given by msgA-PUSCH-TimeDomainOffset.
    • An important thing to note here is that PRACH and PUSCH transmission cannot happen in the same slot, there should be a min gap of atleast 1 slot.
  • msgA-PUSCH-TimeDomainOffset provides an offset in number of slots in the active UL BWP from the start if a PRACH slot.
  • The number of Consecutive PUSCH occasions within each slot are separated by guard Period in symbols defined by the number of time domain PUSCH occasions in each slot is provided by nrofMsgA-PO-perSlot and the number  of consecutive slots that include PUSCH occasions is provided by nrofSlotsMsgA-PUSCH.
  • Similar to regular PUSCH transmissions, for msgA PUSCH transmissions SLIV and PUSCH type can be defined in rrc message by IE msgA-PUSCH-TimeDomainAllocation
    • msgA-PUSCH-TimeDomainAllocation  points to the PUSCH-TimeDomainResourceAllocationList provided in PUSCHConfigCommon.
      • If there is no table provided in PUSCHConfigCommon then UE will lookup the default 3GPP table from Table in 38.214
      • The Value of K2 is not used for msgA PUSCH.
  • UE can use startSymbolAndLengthMsgA-PO-r16  for SLIV and mappingTypeMsgA-PUSCH-r16 for Pusch mapping type if msgA-PUSCH-TimeDomainAllocation  IE is not present. 
  • A UE is provided a DMRS configuration for a PUSCH transmission in a PUSCH occasion in an active UL BWP by msgA-DMRS-Config.
  • A UE is provided an MCS for data information in a PUSCH transmission for a PUSCH occasion by msgA-MCS

Restrictions on msA-PUSCH Transmission

For Paired Spectrum (FDD)
  • A PUSCH occasion is valid if it does not overlap in time and frequency with any PRACH occasion associated with either a Type-1 random access procedure or a Type-2 random access procedure.
For un-paired Spectrum (TDD)
  • Case1 : If the IE tdd-UL-DL-ConfigurationCommon is configured
    • A PUSCH occasion is valid if the PUSCH occasion does not precede a SS/PBCH block in the PUSCH slot and,
    • PUSCH occasion starts at least  symbols after a last SS/PBCH block symbol
  • Case2 : If the IE tdd-UL-DL-ConfigurationCommon is not configured
    • A PUSCH occasion is valid if the PUSCH occasion is within UL symbols, or
    • The PUSCH occasion does not precede a SS/PBCH block in the PUSCH slot, and 
    • The PUSCH occasion starts at least N_”gap”  symbols after a last downlink symbol and at least N_”gap”  symbols after a last SS/PBCH block symbol