Monday 15 August 2016

Basic Call Flow in LTE

#What happens while UE first time switch on?

Fig1.0 #Basic Call Flow
#Following is a sequence diagram showing not only the message but also basic configurations of each layer. More detailed description of each layer in the context of full protocol stack will be explained in “#Protocol Stack” section.
After Power on UE …


(1)Frequency Search (Scan the entire frequency bands).
(2)Cell Search will search for PSS Normally a UE would find multiple cells in this process.
(3)(a) MIB decoding (b)SIB decoding
(4)Cell Selection/ Cell Reselection
(5) Initial RACH Process
(6) RRC Connection Request
7) RRC Connection Setup
8) RRC Connection Setup Complete + NAS : Attach Request
9)DL Information Transfer + NAS : Authentication Request
10)UL Information Transfer + NAS : Authentication Response
11)DL Information Transfer + NAS : Security Mode Command
12)UL Information Transfer + NAS : Security Mode Complete
13)Security Mode Command
14)Security Mode Complete
15)UE Capability Enquiry
16)UE Capability Information
15)RRC Connection Reconfiguration + NAS : Attach Accept
16)RRC Connection Reconfiguration Complete + NAS : Attach Complete
17)RRC Connection Release < MO or MT call > : In MT call, Paging should be sent.
18)PRACH Preamble
19)RACH Response
20)RRC Connection Request
21)RRC Connection Setup
22)RRC Connection Setup Complete + NAS : Service Request
23)Security Mode Command
24)Security Mode Complete
25)RRC Connection Reconfiguration + NAS : Activate Dedicated EPS Bearer Context Request
26)RRC Connection Reconfiguration Complete + NAS : Activate Dedicated EPS Bearer Context Accept
27)UL Information Transfer + NAS : Deactivate Dedicated EPS Bearer Context Accept
28)RRC Connection Release  
(1)
Frequency Search (Scan the entire frequency bands).

When the UE powers on, it checks if it is possible to camp on the last registered PLMN (Public Land Mobile Network). If no any stored system on the UE, UE will perform the initial cell selection:
  • Scan all RF frequencies band (ex 900MHz,1800MHz,1900MHz….) and which band are using by network
  • Detect the operating frequency with the strongest RSRP

Fig 1.1
(2)Cell Search – will search for PSS Normally a UE would find multiple cells in this process. In LTE, there are two downlink synchronization signals which are used by the UE to obtain the cell identity and frame timing.
  • #Primary synchronization signal (#PSS)
  • #Secondary synchronization signal (#SSS)
The division into two signals is aimed to reduce the complexity of the cell search process
#Primary and Secondary Secondary Sync: Cell synchronization is the very first step when UE wants to camp on any cell. From this, UE acquires physical cell id (PCI), time slot and frame synchronization, which will enable UE to read system information blocks from a particular network. First, the UE has to synchronize with the network at the frame and slot level.
i)#Detect #PSS (Primary Synchronization Signal) for symbol timing
  • #The Primary Synchronization Signal is responsible for slot synchronization.
  • #The Synchronization Signal are sent only on time slots (1st and 11th) of each frame.
  • ##PSS is send at the last OFDM symbol of the 1st and 11th slot of each frame.
ii) #Identification of cell ID (0,1,2) :  From #PSS, UE is also able to obtain physical layer identity (0 to 2).
#Query_1: How does UE know to look for the #PSS synchronization signal?
Well, UE doesn’t need to worry much for this. As, the synchronization signal are always sent only on the center 62 sub carriers irrespective of the  channel bandwidth (1.25,3,5,10,20). Therefore, UE will look for the central sub carriers, i.e at the last OFDM symbol of the 1st time slot and again at the last OFDM symbol of the 11th slot. With this UE synchronizes at the slot level.
Detect SSS (Secondary Synchronization Signal) for radio frame timing :
  • The #Secondary Synchronization Signal is responsible for frame synchronization.
  • #Using both these signals, the UE derives the Physical Cell ID of the corresponding cell.
Question_2 : How does UE know to look for the #SSS synchronization signal?
Once, when the #PSS is identified, #SSS is always send at the slot before the #PSS is present. In other words, #SSS immediately precedes the #PSS.
Question_3 : Let’s see how the UE derives the Cell ID using these two signals:
From PSS: PHYSICAL LAYER CELL IDENTITY is derived. It carries the value of 0, 1 and 2.
From SSS: PHYSICAL LAYER CELL IDENTITY GROUP is derived. It can take the value to 0 to 167.
i)  Detection of cell ID group (0, ….,167): From SSS, UE receive physical layer cell identity group number (0 to 167).Using physical layer identity and cell identity group number, UE knows the PCI for this cell now.
ii) physical layer cell identities (PCI) : In LTE 504 physical layer cell identities (PCI) are allowed and are divided into unique 168 cell layer identity groups where each group consist of three physical layer identity. As mentioned earlier, UE detects physical layer identity from #PSS and physical layer cell identity group from #SSS. Assuming physical layer identity = 1 and cell identity group=2 then the PCI for given cell is                                            
 PCI = 3*(Physical layer cell identity group)+ physical layer identity = 3*2+1 = 7
Once UE knows the PCI for a given cell, it also knows the location of cell Reference signals as shown in figure .
Reference signals are used in channel estimation, cell selection / reselection and handover procedures.                                                              
So total number of ID become 168 x 3 = 504
Once the UE synchronizes with the network, it proceeds to read MIB and then requires the following info for camping on a cell:
  • PLMN id
  • Tracking Area Id
  • Cell Id
  • Radio and Core n/w capabilities (for it’s n/w selection)
The above information is being broadcast by the network in order to help the UE for it’s selection process.
This broadcast is known as SYSTEM INFORMATION which is MIB and SIB’s.
The call flow for the UE to read the System information is mentioned below:

(3)(a)
MIB Decoding style="border: 0px; color: #0066cc; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: 400; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
MIB Decoding
i) DL Bandwidth, Number of Transmit Antenna, Reference Signal Transmit Power
ii) System Frame Number (SFN)
iii) PHICH Configurationiv) Transmit every 40 ms(used for HARQ ACK/NACK)
iv)The MIB uses a fixed schedule with a periodicity of 40 ms and repetitions made within 40 ms.
v)The first transmission ofthe MIB is scheduled in subframe #0 of radio frames for which the SFN mod 4 = 0, and repetitions are scheduled insubframe #0 of all other radio frames.
MasterInformationBlock ::= SEQUENCE {
dl-Bandwidth ENUMERATED { n6, n15, n25, n50, n75, n100}, 
phich-Config PHICH-Config, 
systemFrameNumber BIT STRING (SIZE (8)), 
spare BIT STRING (SIZE (10))
}
#Query: How does the UE read MIB?
  • The MIB is transmitted on physical channel (BCCH-BCH-PBCH) and it always occupies the central 72 sub carriers in the Frequency domain irrespective of the channel bandwidth.
  • The first transmission of the MIB is scheduled in sub-frame number 0 of radio frames for which the SFN mod 4 = 0
  • repetitions are scheduled in sub-frame 0 of all other radio frames
 (b)
SIB decoding style="border: 0px; color: #0066cc; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: 400; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
SIB decoding
i) Found Cell Access Related Information – #PLMN Identity List, #PLMN Identity, #TA Code, #Cell identity & Cell Status
ii) Cell Selection Information – Minimum Receiver Level
iii) Scheduling Information – SI message type & Periodicity, SIB mapping Info, SI Window length
The UE has synchronized itself with the Cell with the help of #PSS and #SSS; followed by reading the MIB. Now, UE will proceed to read SIB1 and SIB2 which carriers important information for the UE to select a Cell. To know more about SIB’s and it’s working, click here
After the above process the UE is synchronized with the network in the Downlink direction and have read SIB1 and SIB 2. Now, it needs to synchronize in the Uplink direction
For this to happen, RAP (Random Access Procedure) is initiated
(5)Initial RACH Process (Random Access Procedure (RACH))style="border: 0px; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: 400; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
Initial #RACH Process (Random access procedure)
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 syncronise with the network. In #LTE a separate channel PRACH ( Physical Random Access Channel) is provided for initial access to the network.
#When does UE need to perform Random Access 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 .
  • #Handover
  • #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 layes will send a Random Access Request(#RACH Request) after receiving request from UE RRC. #UE receives a lot of information from eNodeB in System Information (SIB2). It’s important to understand those terminologies first. You can also refer #LTE SIB2 parameters section.
  •  #RACH Configurations
  •  #PRACH Configurations
#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 36211 table 5.7.1-2  from which UE can find the available subframes where it can send a #RACH. For example:- Prach Config index value = 7, From table it is clear that UE can send a #RACH Req in any system frame but subframe 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.
#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.
sizeOfRaPreamblesGroupA :- It represents the number of preambles available within Group A.
So number of preamble in Group B =  numberofRaPreambles – sizeOfRaPreamblesGroupA
MessageSizeGroupA :- It is used for selecting a preamble from a group. Its value is in 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 else preamble will be selected from Group A.
The actual formula for selecting a preamble is given in spec 36321 sec 5.1.2. That contain 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.
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 + (PREAMBLE_TRANSMISSION_COUNTER – 1) * powerRampingStep
DELTA_PREAMBLE = This is preamble format based delta offset. There are four formats available for preamble which are called as preamble formats. We will be explaining them in detail later. Most of the time preamble format 0 is used.
For Example:-
From Sib2, preambleInitialReceivedtargetPower = -100                
              powerRampingStep = 2
1st 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
2nd  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.
What is steps followed by UE for sending a #RACH request:-

 UE for sending #RACH request
#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 CRNTI ( Cell RNTI ). 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 …. 1282
=>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 Request) .
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 down-link 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.


Fig 1.3 1subframe time domain
  • From the above info 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 RB.
  • #There is a lot more to discuss in frequency hopping. we will be taking it later in that particular section.
  • 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 message.
#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  
else 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   
=     
= 13 -10     
= 3
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                                         
                                 = 1 + 1                                         
                                 = 2
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 8.6.1.1 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



Fig 1.4
  • #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. Timing w.r.t to #RACH Request and Random Access Response:-  RAR Response Window is the value transmitted in SIB2. 

2 comments:

  1. Hi sir, this is Really help full and i am very thank full to you for that.
    But you have made around 28 points in LTE call flow , but i am not able to find after 5 points . where i can find the rest point .

    ReplyDelete
  2. Prepared separate post for reaming point...Thanks

    ReplyDelete

If You have any concern you are free to message/comment me.