Sei sulla pagina 1di 20


1) Why RACH procedure is required?

In order to be synchronized with the network, RACH procedure is used.Suppose a UE wants to
access the network, so first it will try to attach or synchronize with the network. In LTE a
separate channel PRACH (Physical Random Access Channel) is provided for initial access to
the network.

2) When does UE need to perform RACH procedure

As per specifications, RACH can be performed in below mentioned scenarios:

Initial Access - UE is trying to access the network in RRC idle state.

During RRC connection re-establishment procedure.
When uplink synchronization is lost: - It means from a certain duration network has not
received anything from UE in uplink.
When UE does not have any PUCCH resources available for SR (Scheduling Request) .
When timing advance is needed for positioning purpose in RRC connected state for UE.

To initiate the procedure UE lower layers will send a Random Access Request (RACH Request)
after receiving request from UE RRC.

3) Difference between Contention based and Contention based RACH

Contention based RACH
Message1: Random access Preamble on RACH
6bit: 5 bit preamble ID and 1 bit to indicate size of message3
Message2: RAR
RACH Response by MAC on DL-SCH
Addressed to RA-RNTI
Contains RAPID (Preamble ID) , Timing Alignment, Initial UL grant, T-CRNTI
Message3: Schedule transmission on UL-SCH
HARQ used
For initial Access:
NAS UE ID but no NAS message

RRC Connection Req over CCCH

After Radio Link Failure:
RRC Connection Reestablishment via CCCH
No NAS message
After HO in target cell:
RRC connection Reconfiguration Complete i.e., the confirmation for the RRC connection
Reconfiguration over DCCH.
Allocated CRNTI.
Includes Uplink Buffer Status Report when required.
Not synchronized with Message
HARQ supported
T-CRNTI for Initial Access and after Radio Link failure
Non -Contention based RACH
Msg 1: RA preamble assignment on DL dedicated signaling
HO: HO Command generated by Target eNB sent via source eNB
DL data arrival: MAC signaling in case of DL data arrival
Message2: RA preamble on Rach
Use preamble received from message1.
Addressed to RA-CRNTI.
Contains at least Timing Alignment, Initial UL grant for HO case, Timing alignment for DL data
arrival case, RA-preamble identifier.

4) Steps followed by UE for sending a RACH request

3) How UE decides about when and where it needs to send RACH request

It is decided on the basis of parameters received in SIB2 PRACH configurations.

UE can use 6 Resource blocks for sending the RACH Request.
From PRACH Config Index - There is a mapping in spec 36.211 table 5.7.1-2 from which UE
can find the available sub frames where it can send a RACH.
Example : Prach Config index value = 7, From table it is clear that UE can send a RACH Req in
any system frame but sub frame should be 2 and 7.
From PRACH Frequency Offset - This value is also received in SIB2 by UE. It governs which
frequency resource UE can use for the RACH Req.
Example: If the value of PRACH Freq Offset is 10. UE can use the 6 PRB's starting from PRB
10 for RACH Request.

4) Exactly when and where Network transmit RACH Response

The following is what 3GPP 36.321 (section 5.1.4) describes.

Once the Random Access Preamble is transmitted and regardless of the possible occurrence of
a measurement gap, the UE shall monitor the PDCCH for Random Access Response(s)
identified by the RA-RNTI defined below, in the RA Response window which starts at the sub
frame that contains the end of the preamble transmission [7] plus three sub frames and has
length ra-ResponseWindowSize sub frames.
It means the earliest time when the network can transmit the RACH response is 3 sub frames
later from the end of RACH Preamble. Then what is the latest time when the network can
transmit it? It is determined by ra-ResponseWindowSize. This window size can be the number
between 0 and 10 in the unit of sub frames. This means that the maximum time difference
between the end of RACH preamble and RACH Response is only 12 sub frames (12 ms) which
is pretty tight timing requirement.

5) How many preamble sequences are available and how they are grouped?

Total 64 preamble sequences are available; they can be divided into group A and group B.
UE select a sequence from any of the groups based on
a) The size of uplink packet to be sent
b) The radio conditions
This allows the enodeb to decide upon the quantity of PUSCH resources to allocate to UE for its
uplink data transfer;
Group A are intended for small packets, or large packets in poor radio conditions
Group B are intended for large packets in good radio conditions
Once the UE as selected either group A or group B, a preamble is selected at random from
within that group .
8 preamble sequences are reserved by enodeb out of 64 for the purpose of non-contention
based RACH during intra handover scenarios

6) What exactly RACH request Contains

1. Preamble Index: - There are total of 64 preambles available which are divided into two
groups Group A and Group B. UE decides the preamble index from a group on the basis of
parameters received in SIB2
NumberofRaPreambles: - eNodeB sends this value in SIB2 which denotes the total number of

preambles available for UE to send a Rach Request.Range of this parameter is 4 to 64

SizeOfRaPreamblesGroupA: -Total number of random access preambles sequences available
within Group A. Preambles are divided into Group A and Group B. Group A preambles are
intended for sending small packets and Group B preambles are intended for sending large
packets. Range of this parameter is 4 to 60
MessageSizeGroupA: Message size threshold for selecting preamble Group A in term of bits. Its
value is in bits(56, 144, 208 or 256 bits)
Now UE needs to decide the group from which it needs the preamble. Group is decided on the
basis of size of MSG3 (RRC connection request).
If Msg3 size > messageSizeGroupA,
Preamble will be selected from GroupB
Preamble will be selected from Group A
the actual formula for selecting a preamble is given in spec 36321 sec 5.1.2. That contains
factors other than MSG3 size as well. But mainly this is how UE decides the Group. From the
selected group, randomly UE selects a preamble index.

7) How can we get RA RNTI?

5.1.4 Random Access Response reception" in "TS36.321 says how to calculate RA_RNTI as

The RA-RNTI associated with the PRACH in which the Random Access Preamble is
transmitted, is computed as:
RA-RNTI = 1 + t_id + 10 * f_id
Where t_id is the index of the first subframe of the specified PRACH (0 < t_id <10), and f_id is
the index of the specified PRACH within that subframe, in ascending order of frequency domain
(0 f_id< 6).

For FDD, f_id is fixed as 0.

Therefore, RA_RNTI is decided by the sending timing (Subframe) of PRACH Preamble by UE. It
means that (the subframe number (number between 0000~0009) of PRACH transmission +
1) is RA-RNTI.
It means that UE specifies RA_RNTI by the sending timing (Subframe) of PRACH Preamble.

8) What is preamble format?

If you see the table 5.7.1-1 show above, you see the column titled as "Preamble Format". It is
defined as following diagram.

You would see that the length of PRACH preamble varies depending on the preamble format.
For example, the length of PRACH with preamble format is (3186 + 24567) Samples. (As you
know, one sample (Ts) is 1/30.72 us. It is defined as 1/(15000 x 2048) seconds in 36.211 4
Frame structure).

The preamble format to be used within a specific cell is signaled using the PRACH
configuration index which is broadcast within SIB2.

Multiple preamble formats is used for various cell ranges as shown below

9) Explain about PRACH preamble structure

Following figure shows the PRACH Preamble signal structure in comparison with normal Uplink
subframe. A couple of points to be specially mentioned are
Preamble Length in Frequency Domain is amount to 6 RBs of UL Subframe, which is
One sub carrier of PRACH Preamble is 1.25 KHz whereas 1 sub carrier of UL subframe
is 15 KHz. It means that 12 preamble sub carrier is amount to 1 UL Subframe subcarrier.
The random access preamble occupies 1,2,3 subframes in time domain (1,2,3 ms ) and
839 subcarriers in frequency domain (1.08MHz) .there is a 15khz guard band either side
of the random access preamble so a total of 1.08 MHz is used (6RBs)
The position of the random access preamble in frequency domain is defined by PRACH
frequency offset parameter within SIB2 .This parameter as a range of 0 to 94, and
specifies the first resource block within which the preamble is located
There is a max of 1 random access preamble resource within each subframe but more
than a single UE can use that preamble resource. Multiple UEs using the same
preamble resource are differentiated by their preamble sequences

10) How eNodeB behaves after receiving Random Access request

1. Allocation of temporary RNTI (Radio Network temporary Identifier):- After receiving RACH
Request, eNodeB allocates a temporary identity to the UE which is made permanent after
successful RACH procedure. The permanent identity is called as TCRNTI .This TC-RNTI is
transmitted to the UE as part of RACH Response which will be used for further
communication between the UE and the network.
2. Timing Advance: - After receiving RACH Request, eNodeB PHY (Physical layer)
calculates the timing advance which is transmitted to the UE as part of response message.
As part of Rach response, absolute Timing advance value is transmitted.
Timing advance calculation for RACH Response message:As per 3GPP spec,
Ts = 1/(15000 * 2048) seconds
NTA = TA * 16 where TA = 11 bit value for random access response varying from 0,1,2 ....
NTA = Amount of time alignment
So transmission of uplink radio frame from the UE shall start =
(NTA + NTA offset) * Ts
NTA offset = 0 ( For type 1 frame structure)
= ((NTA + 0) * 1)/ (15000 * 2048)
= (TA * 16)/(15000 * 2048 )seconds
Mainly this timing advance fundamental is used for eNodeB PHY to receive the UE
message at correct timing. It is possible that UE is far away from the eNodeB , so for
eNodeB to receive the data from UE at correct timing this timing adjustments are done.
If timing advance is received in subframe n, UE should do the adjustment from the starting
of subframe (n +6).
After the Random access response message, eNodeB does not send absolute timing
advance value. It will send a value which UE will use to adjust the already stored timing
advance value. We will explain this in Timing advance section later.
Refer spec 36213 sec 4.2.3 and spec 36211 sec 8.1 for details about timing adjustments
3. Allocate uplink Resources (UL GRANT):- eNodeB will provide the required information in
Random Access Response (RAR) message for UE to send the MSG3 (RRC Connection

UL Grant is a 20 bit message with contents from MSB to LSB as:

Hopping Flag :- This is 1 bit of information which governs whether frequency hopping is
enabled or not. If the value of the bit is 1 and resource block assignment is type 0, UE should
perform PUSCH frequency hopping.
What is Frequency Hopping:As we know that RB allocation is contiguous in uplink which means eNodeB allocates
continuous RB's in frequency domain. As in downlink we have multiple resource allocation
policies to achieve frequency diversity.
So in uplink, to achieve frequency diversity Frequency Hopping is used. eNodeB communicates
required parameters to UE's in SIB2 which are needed for performing frequency hopping at UE.
For Example:Suppose eNodeB has allocated 5 RB's to a particular UE in uplink as shown below.

It is clear that the allocation in uplink in terms of RB is contiguous. But eNodeB has enabled
frequency hopping for this UE.
We are able to achieve frequency diversity in contiguous allocation as well due to hopping. In
the figure above, same color represents the hopping of UE data in different slots for a particular
There is a lot more to discuss in frequency hopping. We will be taking it later in that particular
As of now, we can summarize it as:-

Frequency hopping is used to provide frequency diversity in uplink. Its main advantage is,
suppose in frequency domain at RB0 channel conditions are bad but at RB3 conditions are
good. So in that case, UE can decode the data of RB0 after combining the same colored data.

Resource Block Assignment :- It is 10 bits of information embedded in UL Grant

How UE decodes the 10 bit RB Assignment :According to spec 36213 sec 6.1.1, UE decodes it as:If NULRB <= 44
Truncate the fixed size resource block assignment to its b least significant bits where,
b = ceiling ( log2(NULRB * (NULRB + 1)/2) )
and interpret the truncated resource block assignment according to the rules for a regular DCI
format 0
Insert b most significant bits with value zero where,
b = (ceiling ( log2(NULRB * (NULRB + 1)/2) )) - 10
and interpret the expanded resource block assignment according to the rules for a regular DCI
format 0
For Example :Lets assume the 10 bits of the information as :- 1 1 1 1 1 1 1 1 1 1
Assume Total number of uplink RB's in system = 100
b = (ceiling ( log2(NULRB * (NULRB + 1)/2) )) - 10
= (ceiling ( log2(100 *101/2))) - 10
= (ceiling ( 12.3)) - 10

= 13 -10
So, RB assignment will be :- 0 0 0 1 1 1 1 1 1 1
RB assignment ( value in decimal) = 127
Now we need to interpret it according to the rules of DCI format 0.
Number of RB's allocated = Floor (127 /100) + 1
RB start index = 127 mod 100
= 27

Modulation and Coding scheme to be used by UE:- It is 4 bits of information in UL grant

message whose value varies from 0 to 15. The modulation and coding is determined by UE
from MCS indices 0 to 15 in table from spec 36213.

Power used by UE for PUSCH: - It is indicated in 3 bits as a TPC command whose value
varies from 0 to 7. TPC command to power mapping is mentioned in table below

UL delay :- 1 bit of information which can be set to 0 or 1. It indicates whether the delay
of PUSCH is introduced or not.
CSI field: - This 1 bit of information determines whether an aperiodic CQI, PMI and RI
report can be included in the PUSCH transmission. For contention based Random access CSI
field is reserved.

ENodeB will prepare a response (Random Access Response) with above discussed fields
and send it to UE. But we need to understand the timing of response message
corresponding to Rach Request.

11) What if UE does not receive RACH Response at the first trial? What is UE supposed
to do in this case?
The answer is simple. Just retry (resend) PRACH.
Following is an example of PRACH Retry being observed in a real device. This is the case
where UE send PRACH and NW does not send RAR (Yellow cell indicates the timing
determined by PRACH Config Index when UE is allowed to send PRACH. Green cell indicates
the timing when UE send PRACH in this specific example)

12) How UE decides the Power used for Rach request Transmission?
Now UE need to decide the power which will be used for RACH Request transmission. Power is
decided on the factors received in SIB2 as:PreambleInitialReceivedtargetPower: - Power factor which will be used for first transmission
of Rach Request. Value varies from -120dBm to -90 dBm.
PowerRampingStep:- This is mainly used when eNodeB is not able to detect the Rach
Request then UE will re transmit the RACH Request by increasing the power to
PowerRampingStep factor.
Power used for Rach Request transmission =
PreambleInitialReceivedtargetPower + DELTA_PREAMBLE +
DELTA_PREAMBLE = this is preamble format based delta offset. There are four formats
available for preambles which are called as preamble formats
For Example:In Sib2, preambleInitialReceivedtargetPower = -100 PowerRampingStep = 2
First Transmission of Rach Request:PREAMBLE_TRANSMISSION_COUNTER = 1
For preamble format 0, DELTA_PREAMBLE = 0
Power used = -100 + 0 + (1- 1) *2

= -100
Suppose eNodeB is not able to receive it
Second transmission of Rach request:PREAMBLE_TRANSMISSION_COUNTER = 2
Power used = -100 + 0 + (2-1) * 2
= -98
UE will send the RACH Request containing these values in the specified subframe by using the
specified resources.

13) When do I have to retry? (What should be the time delay between the previous
transmission and the next transmission?)
Its provided by Network via a special RAR MAC PDU called "Back off Indicator".
Back off Indicator is a special MAC sub header that carries the parameter indicating the time
delay between a PRACH and the next PRACH.
There are cases where a UE has to send another PRACH after it already sent a PRACH. The
most common cases would be as follows.
i) UE sent a PRACH but didn't get a RAR for some reason.
ii) UE sent a PRACH and got RAR, but the RAPID in the RAR is not for the UE.

The structure of 'Back off Indicator' is as follows.

If you see the bit field shown above, you would notice that BI (Back off Indicator) field is made
up of 4 bits, implying that it can carry the value from 0~15. Each of these value maps to a
specific time value as shown in the following table. (36.321). For example, if the BI field value is
10, Back off Parameter value is 320 ms. This means UE can send PRACH any time in between
0 and 320 ms from now.

When this BI is transmitted by MAC, it is transmitted as in the following structure (36.321). You
see BI subheader should always be at the beginning of the whole MAC header. If you see more
carefully, you would notice that BI subheader is shown with 'dotted' rectangle. It means that this
is optional, implying that the network send or does not send BI depending on the situation.
If you see even more carefully, you would notice that BI subheader does not have any
corresponding payload part. It means "Backoff Indicator" information is carried directly by the
MAC header/subheader and it doesn't use any payload field.

14) Do I have to retransmit the PRACH with the same power as previous one? Or try with
a little bit higher power? If I have to try with a little bit higher power, how much power
do I have to increase?
Provided by Network via SIB2 as follows. PowerRampingStep =dB2. It means UE has to
PRACH power by 2 dB every time it retries.
PowerRampingStep: power ramping step size with possible values of 0, 2, 4 or 6 dB

15) If I keep failing to receive RACH response, how many times I have to retry? Do I have
to retry until the battery runs out? Or retry only several times and give up? If I have to
give up after a certain amount of retry, exactly how many times do I have to retry?

PreambleTransMax = n6. It means UE retries PRACH retransmit only 6 times and then give
PreambleTransMax: Maximum number of preambles transmissions. Possible values are 3, 4,
5, 6, 7, 8, 10, 20, 50, 100, and 200
16) Failure of RAR
Check the below things
Is eNB sending RACH MSG2 (if so check the RAPID correlate it with that of MSG1s) also
check if UE decoding SIB2 properly or not (some imp params are ra

ResponseWindowSize, PRACH Configuration Index.)

Please check RA Window Size, After sending the RACH MSG 1 UE monitors PDCCH for
certain duration i.e.,3 subframes (after transmission of MSG1 ) + raResponseWindowSize subframes (can be found from SIB2)

17) Explain RAR PDU format

If you decode UL Grant part, you will get the following result. You will notice that the
information it carries would be very similar to DCI format 0 which carries Resource Allocation
for uplink data. This information in UL Grant in RACH Response message is the resource
allocation for msg3 (e.g., RRC Connection Request).


Note: This is example of RAR for System BW 5 Mhz. If the system BW gets different, you
should have different RIV values (if you want to have the same Start_RB, N_RB as in this
example) or you will have different Start_RB, N_RB (if you keep RIV as below and just change
the system BW)

18) Rach Configurations

NumberOfRA-Preambles: Total number of random access preambles available for contention
based random access. Since there are maximum 64 preambles sequences available, others
could be reserved by eNB for Non-Contention based random access. Range of this parameter
is 4 to 64

sizeOfRaPreamblesGroupA: Total number of random access preambles sequences available

within Group A. Preambles are divided into Group A and Group B. Group A preambles are
intended for sending small packets and Group B preambles are intended for sending large
packets. Range of this parameter is 4 to 60
MessageSizeGroupA: Message size threshold for selecting preamble Group A in term of bits
(56, 144, 208 or 256 bits)
MessagePowerOffsetGroupB: Power offset for selecting preamble Group B (0, 5, 8, 10, 12, 15
or 18 dB)
PowerRampingStep: power ramping step size with possible values of 0, 2, 4 or 6 dB
PreambleInitialReceivedtargetPower: Preamble initial received target power with values from
-120 dBm to -90 dBm with step size of 2 dBm
PreambleTransMax: Maximum number of preambles transmissions. Possible values are 3, 4, 5,
6, 7, 8, 10, 20, 50, 100, and 200.
Ra-ResponseWindowSize: Duration of RA response window. RA response window size is in unit
of subframes (2, 3, 4, 5, 6, 7, 8, or 10 subframes)

Mac-ContentionResolutionTimer: Mac contention resolution timer in unit of subframes (8, 16, 24,
32, 40, 58, 56 or 64 subframes)
maxHARQ-Msg3Tx: Maximum number of HARQ retransmissions for message 3 of RACH
process (contention-based Random access) with possible values from 1 to 8 in step of 1
19) PRACH Configurations
RootSequenceIndex: RA preambles are generated from Zadoff Chu sequence which consists
of series of root sequences. Each root sequence can be cyclic shifted to obtain preamble
sequence. Range of rootSequenceIndex is 0 to 837.
Prach-ConfigIndex: This parameter defines exactly when UE should send RACH in
frequency/time grids (Details TS36.211 Table 5.7.1-2)
HighSpeedFlag: For high speed UEs, as this can impact the correlation between cycles
ZeroCorrelationZoneConfig: The zero correlation zone is used to guarantee orthogonality of
generated sequences. The value depends on particular condition in the cell
Prach-FreqOffset: With this information cell informs UE and other neighbor cells know about
which PRB is available for RACH access

20) Can the RAR message contain information for more than one UE?
For example if we have 56 simultaneous users performing RACH procedure can the RAR
message contain information for all 56 UE?
Scenario: All 56 will have the same RA-RNTI (this is INITIAL RRC connection) since all
will send on subframe 1 for example. They will have different preambles.
Thus when they send the message 1, all UEs will monitor PDCCH for RA-RNTI - this will
then tell the UE where to search in the PDSCH for the RAR message. I am then thinking
that the UE will use it sent preamble and associate it with the preamble in the RAR to
receive the UL grant, TA, C-RNTI etc....thus the RAR message can have the ability to
contain information for multiple UE based on the use of the preambles sent in the RAR The UE will have to search for its sent preamble amongst the sent preambles from the
All the received preambles within one PRACH are answered by one MAC PDU.That MAC PDU
contains multiple RAR messages addressing multiple UEs with identified preamble indices.
Size of MAC PDU depends upon how many RAR bundled and addressed to RA-RNTI
I'm not sure what the maximum size of MAC PDU is. (Max size of MAC PDU / RAR Message
size) will give us the maximum number of RAR messages that can be bundle

21) What is the difference between PRACH of UMTS and LTE?

Umts PRACH is used to transfer RRC messages (RRC connection request /cell update) and
application data.
LTE - PRACH doesnt transfer RRC messages or application data.