NR RACH Process
NR RACH Process is similar to LTE, and there are two categories for NR Random access procedure
1.?????Contention based Random Access
2.?????Contention Free Random Access
Contention based Random Access:
In the case of Contention-based procedure, UE selects a Random access preamble from a group of available preambles which are shared will all the UE's. There is a possibility at a given time two UE's might select the same Random access preamble and transmit to gNB at the same time which might result in collision or contention at the gNB.
Contention Free Random Access:
In the case of contention-free random access procedure, gNB allocates a dedicated random access preamble to UE which removes the possibility of collision.
RACH is a PHY and MAC layer process, For a UE to initiate RACH it has to get the some information before it can send a RACH to the gNB, UE gets this information from the gNB. It needs Information such as which PRACH preamble to use and When to send PRACH i.e. PRACH occasions.?UE can get this information depending upon how it is trying to access the gNB whether it is in Non-Stand Alone (NSA) mode or Stand Alone (SA) Mode.
Non-Stand Alone Mode – RRC Reconfiguration message via LTE Anchor eNB. Stand Alone Mode – System Information Broadcast Message (SIB1).
The gNB uses RACH-ConfigCommon Parameter to provide RACH related information to the UE either via SIB1 or through dedicated signaling(RRC Reconfiguration). Understanding the different IE’s of RACH-ConfigCommon is very crucial to fully understand how RACH process works in NR and how initial transmission and selection of MSG1 transmission is different in NR compared to LTE.
UE needs to get the below information before it starts the RACH process, All of the information will be available to UE through the RRC message
In order to Understand the RACH process we can use the below example for a more hands-on practical approach to understanding how RACH preamble is transmitted in NR
## Sample NR RACH Configuration ##
??????????????????? rach-ConfigCommon setup :
??????????????????????? rach-ConfigGeneric
????????????????????????? prach-ConfigurationIndex 75,
????????????????????????? msg1-FDM one,
????????????????????????? msg1-FrequencyStart 0,
????????????????????????? zeroCorrelationZoneConfig 0,
????????????????????????? preambleReceivedTargetPower -109,
????????????????????????? preambleTransMax n10,
????????????????????????? powerRampingStep dB4,
????????????????????????? ra-ResponseWindow sl20
???????????????????????? ,
??????????????????????? totalNumberOfRA-Preambles 8,
??????????????????????? ssb-perRACH-OccasionAndCB-PreamblesPerSSB one : n8,
??????????????????????? ra-ContentionResolutionTimer sf16,
??????????????????????? prach-RootSequenceIndex l139 : 91,
??????????????????????? msg1-SubcarrierSpacing kHz120,
??????????????????????? restrictedSetConfig unrestrictedSet
?? ??? ??? ??? ??? ????
prach-ConfigurationIndex : This value Points to Table for prach-ConfigurationIndex In 38.211. The table defines which PRACH format to use and when to send PRACH in time domain and number of RACH occasions available.
msg1-FDM: The number of PRACH transmission occasions FDMed in one time instance. Upto eight RACH occasions can be used in one time instance.
Below Image illustrates the relation between msg-FDM and Rach occasions available per SSB.
msg1-FrequencyStart: This value refers to the Offset of lowest PRACH transmission occasion in frequency domain with respective to PRB 0. The value is configured so that the corresponding RACH resource is entirely within the bandwidth of the UL BWP.
preambleTransMax : Max number of RA preamble transmission performed before declaring a failure. How many times a UE can transmit MSG1 before declaring RACH failure.
powerRampingStep : Power ramping steps for PRACH. This value indicates the amount of power UE needs to increase for RACH transmissions if previous RACH attempt failed.
ra-ResponseWindow: Msg2 (RAR) window length in number of slots. UE scans for PDCCH looking for msg2 response from gNB within the ra-ResponseWindow, if UE did not receive msg2 within the window it will consider RACH failure and start msg1 transmission again.
totalNumberOfRA-Preambles: totalNumberOfRA-Preambles indicates the total number of preambles available per PRACH occasion for both contention based and contention free RACH. This IE has a range of 0-63, If this IE is missing then All 64 preambles are available and If this IE is present then less than 64 preambles are available to UE’s. In this case 8 Preambles are available to UE.
ra-ContentionResolutionTimer : The initial value for the contention resolution timer. value sf16 corresponds to 16 subframes, and so on.
msg1-SubcarrierSpacing: Defines Subcarrier spacing of PRACH.
ssb-perRACH-OccasionAndCB-PreamblesPerSSB : The meaning of this field is twofold: ssb-perRACH-Occasion conveys the information about the number of SSBs mapped per RACH occasion and CB-PreamblesPerSSB indicates the number of Contention Based preambles available per SSB
So in the above example there is one RACH Occasion per SSB and 8 Preambles are available for each RACH Occasion as illustrated below
For the purpose of slot numbering in the prach-ConfigurationIndex tables, the following subcarrier spacing is be assumed:
-???15 kHz for FR1
-???60 kHz for FR2.?
prach-ConfigurationIndex is 75, and From the below table we can find out more details what are the corresponding parameters associated with it
Now we get all the Information related to the PRACH transmission, Next we need to Map 60KHz SCS RACH slots to 120KHz SCS RACH Slots, one 60KHz RACH can contain two 120 KHz RACH slots. The RACH Occassion is in 1st slot or 2nd slot can be determined from the below formula from 3GPP TS 38.211 Section 3.8.2
From the Above Calculations, RACH can be transmitted in Symbols 14 and 20 for a 60 KHz Slots which corresponds to the 2nd Slot of 120 KHz SCS.
Based on the Above Calculations RACH Occasions are available in 120KHz Slots 35,39,37 and 38.
Another Factor to consider here is that RACH Occassion slots should be Uplink SLOTS, If there is a static tdd-ul-dl-configCommon defined in RRC message and if a downlink slot coincides with a RO Slot, then RACH cannot be transmitted in those slots. As part of Radio network planning this is considered and appropriate prach-ConfigurationIndex is selected.
Below is a Pictorial view of RACH Occasions for the above RACH example
In Release-16 3GPP has introduced a 2-step RACH procedure, I have discussed that in detail in the below articles
R&D Specialist
2 年diagram for "ssb-perRACH-OccasionAndCB-PreamblesPerSSB" =2 and msg1-FDM = 1 is not correct, 2 rach occasion should be mapped to a single SSB
Principal Architect, WiSig Networks
2 年Hi Syed, Firstly thanks for the detailed post. I have a question regarding the CFRA. In CFRA, a dedicated Preamble ID is allocated to the UE as part of the RRC ReConfiguration message. My confusion is how/where does the UE acquire info about the root ID, especially in NSA. As I understand it, for a UE to generate the preamble, it would actually need root ID and Ncs. I did refer to TS 38.331 to understand the Rach-ConfigDedicated structure? I could locate the ZcZ element and Preamble ID message but not the root ID. Indeed I may be missing something. It would be really helpful if you kindly clear my confusion.
Cloud RAN Validation|CSIM_FsUE|LTE&NR RAN|4G EPC|Python|Jenkins|Linux|k8s|Docker|TM500|4G&5G SA/NSA Lab testing and Performance
3 年Great Syed ?? Keep it up
Tech Lead (FPGA) at VVDN Technologies Pvt Ltd
3 年Thanks for the information. I have some queries: 1) Does the gNB switch between different PRACH formats or does it uses one of the PRACH formats always? 2) If gNB switches between different PRACH formats, then on what basis it does do so? I am working in O-RU in the ORAN architecture. Assuming that my O-RU supports two different PRACH formats, then how does the O-DU inform the O-RU which PRACH format it uses?