4G/LTE - BL/CE |
||
RACH Process
As in legacy LTE, LTE-BL/CE UE also start with RACH process to get the initial access to a network. There are commonality and differences in this process between legacy LTE and LTE-BL/CE.
In short, Legacy LTE RACH and LTE BL/CE RACH are same in terms of general big picture and overal protocol sequence as follows :
In short, everything out side of the big picture differs. The most important differences are
These differences are described in 3GPP specification as follows. However, I found it very difficult to figure out real / detailed meaning of these differences just from the specification. I think I need to go through many TDocs to find out the practical meaning of these differences and further details of BL/CE RACH procedure. I will keep updating this page as I read through those TDocs.
Based on 36.321 5.1.1, RACH Process for LTE-M1 device is modified from legacy LTE process as follows.
In 36.321 5.1.2, it is stated as follows
In 36.321 5.1.3, it is stated as follows
instruct the physical layer to transmit a preamble with the number of repetitions required for preamble transmission corresponding to the selected preamble group (i.e., numRepetitionPerPreambleAttempt in SIB2) using the selected PRACH corresponding to the selected enhanced coverage level, corresponding RA-RNTI, preamble index or for NB-IoT subcarrier index, and PREAMBLE_RECEIVED_TARGET_POWER.
SystemInformationBlockType2 ::= { ..., radioResourceConfigCommon RadioResourceConfigCommonSIB, }
RadioResourceConfigCommonSIB ::= SEQUENCE { rach-ConfigCommon RACH-ConfigCommon, bcch-Config BCCH-Config, pcch-Config PCCH-Config, prach-Config PRACH-ConfigSIB, pdsch-ConfigCommon PDSCH-ConfigCommon, pusch-ConfigCommon PUSCH-ConfigCommon, pucch-ConfigCommon PUCCH-ConfigCommon, soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, uplinkPowerControlCommon UplinkPowerControlCommon, ul-CyclicPrefixLength UL-CyclicPrefixLength, ..., [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 ]],
}
RadioResourceConfigCommon ::= SEQUENCE { rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON prach-Config PRACH-Config, pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON pusch-ConfigCommon PUSCH-ConfigCommon, phich-Config PHICH-Config OPTIONAL, -- Need ON pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON p-Max P-Max OPTIONAL, -- Need OP tdd-Config TDD-Config OPTIONAL, -- Cond TDD ul-CyclicPrefixLength UL-CyclicPrefixLength, ..., prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON ]] }
RACH-ConfigCommon ::= SEQUENCE { preambleInfo SEQUENCE { numberOfRA-Preambles ENUMERATED { n4, n8, n12, n16 ,n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, n64}, preamblesGroupAConfig SEQUENCE { sizeOfRA-PreamblesGroupA ENUMERATED { n4, n8, n12, n16 ,n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60}, messageSizeGroupA ENUMERATED {b56, b144, b208, b256}, messagePowerOffsetGroupB ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18}, ... } OPTIONAL -- Need OP }, powerRampingParameters PowerRampingParameters, ra-SupervisionInfo SEQUENCE { preambleTransMax PreambleTransMax, ra-ResponseWindowSize ENUMERATED { sf2, sf3, sf4, sf5, sf6, sf7, sf8, sf10}, mac-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64} }, maxHARQ-Msg3Tx INTEGER (1..8), ..., [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR ]] }
RACH-ConfigCommon-v1250 ::= SEQUENCE { txFailParams-r12 SEQUENCE { connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4}, connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240, s300, s420, s600, s900}, connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP } }
RACH-ConfigCommonSCell-r11 ::= SEQUENCE { powerRampingParameters-r11 PowerRampingParameters, ra-SupervisionInfo-r11 SEQUENCE { preambleTransMax-r11 PreambleTransMax }, ... }
RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13
RACH-CE-LevelInfo-r13 ::= SEQUENCE { preambleMappingInfo-r13 SEQUENCE { firstPreamble-r13 INTEGER(0..63), lastPreamble-r13 INTEGER(0..63) }, ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180, sf240, sf320, sf400},
mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120, sf160, sf200, sf240, sf480, sf960}, rar-HoppingConfig-r13 ENUMERATED {on,off}, ... }
PowerRampingParameters ::= SEQUENCE { powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6}, preambleInitialReceivedTargetPower ENUMERATED { dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, dBm-100, dBm-98, dBm-96, dBm-94, dBm-92, dBm-90} }
PreambleTransMax ::= ENUMERATED { n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200}
PRACH-ConfigSIB ::= SEQUENCE { rootSequenceIndex INTEGER (0..837), prach-ConfigInfo PRACH-ConfigInfo }
PRACH-ConfigSIB-v1310 ::= SEQUENCE { rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13, mpdcch-startSF-CSS-RA-r13 CHOICE { fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} } prach-HoppingOffset-r13 INTEGER (0..94) prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 }
PRACH-Config ::= SEQUENCE { rootSequenceIndex INTEGER (0..837), prach-ConfigInfo PRACH-ConfigInfo }
PRACH-Config-v1310 ::= SEQUENCE { rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 mpdcch-startSF-CSS-RA-r13 CHOICE { fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare} } prach-HoppingOffset-r13 INTEGER (0..94) prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 initial-CE-level-r13 INTEGER (0..3) }
PRACH-ConfigSCell-r10 ::= SEQUENCE { prach-ConfigIndex-r10 INTEGER (0..63) }
PRACH-ConfigInfo ::= SEQUENCE { prach-ConfigIndex INTEGER (0..63), highSpeedFlag BOOLEAN, zeroCorrelationZoneConfig INTEGER (0..15), prach-FreqOffset INTEGER (0..94) }
PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13
PRACH-ParametersCE-r13 ::= SEQUENCE { prach-ConfigIndex-r13 INTEGER (0..63), prach-FreqOffset-r13 INTEGER (0..94), prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, sf256} maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10} numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128}, mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF INTEGER (1..maxAvailNarrowBands-r13), mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256}, prach-HoppingConfig-r13 ENUMERATED {on,off} }
RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range
< Details on Information Elements >
< Example 1 >
+-sib2 ::= SEQUENCE [00] +-ac-BarringInfo ::= SEQUENCE OPTIONAL:Omit +-radioResourceConfigCommon ::= SEQUENCE | +-rach-ConfigCommon ::= SEQUENCE | | +-preambleInfo ::= SEQUENCE [0] | | | +-numberOfRA-Preambles ::= ENUMERATED [n64] | | | +-preamblesGroupAConfig ::= SEQUENCE OPTIONAL:Omit | | +-powerRampingParameters ::= SEQUENCE | | | +-powerRampingStep ::= ENUMERATED [dB2] | | | +-preambleInitialReceivedTargetPower ::= ENUMERATED [dBm-90] | | +-ra-SupervisionInfo ::= SEQUENCE | | | +-preambleTransMax ::= ENUMERATED [n5] | | | +-ra-ResponseWindowSize ::= ENUMERATED [sf10] | | | +-mac-ContentionResolutionTimer ::= ENUMERATED [sf64] | | +-maxHARQ-Msg3Tx ::= INTEGER (1..8) [4] | | +-EXTENSION ::= SEQUENCE [1] | | +-VERSION-BRACKETS1 ::= SEQUENCE [11] OPTIONAL:Exist | | +-preambleTransMax-CE-r13 ::= ENUMERATED [n5] OPTIONAL:Exist | | +-rach-CE-LevelInfoList-r13 ::= SEQUENCE OF SIZE(1..maxCE-Level-r13[4]) [1] | | +-RACH-CE-LevelInfo-r13 ::= SEQUENCE | | +-preambleMappingInfo-r13 ::= SEQUENCE | | | +-firstPreamble-r13 ::= INTEGER (0..63) [0] | | | +-lastPreamble-r13 ::= INTEGER (0..63) [63] | | +-ra-ResponseWindowSize-r13 ::= ENUMERATED [sf80] | | +-mac-ContentionResolutionTimer-r13 ::= ENUMERATED [sf200] | | +-rar-HoppingConfig-r13 ::= ENUMERATED [off] | | +-EXTENSION ::= SEQUENCE | +-bcch-Config ::= SEQUENCE | +-pcch-Config ::= SEQUENCE | +-prach-Config ::= SEQUENCE | | +-rootSequenceIndex ::= INTEGER (0..837) [0] | | +-prach-ConfigInfo ::= SEQUENCE | | +-prach-ConfigIndex ::= INTEGER (0..63) [3] | | +-highSpeedFlag ::= BOOLEAN [FALSE] | | +-zeroCorrelationZoneConfig ::= INTEGER (0..15) [0] | | +-prach-FreqOffset ::= INTEGER (0..94) [1] | +-pdsch-ConfigCommon ::= SEQUENCE | +-pusch-ConfigCommon ::= SEQUENCE | +-pucch-ConfigCommon ::= SEQUENCE | +-soundingRS-UL-ConfigCommon ::= CHOICE [release] | | +-release ::= NULL | +-uplinkPowerControlCommon ::= SEQUENCE | | +-p0-NominalPUSCH ::= INTEGER (-126..24) [-108] | | +-alpha ::= ENUMERATED [al09] | | +-p0-NominalPUCCH ::= INTEGER (-127..-96) [-96] | | +-deltaFList-PUCCH ::= SEQUENCE | | +-deltaPreambleMsg3 ::= INTEGER (-1..6) [3] | +-ul-CyclicPrefixLength ::= ENUMERATED [len1] | +-EXTENSION ::= SEQUENCE [0001] | +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit | +-VERSION-BRACKETS2 ::= SEQUENCE OPTIONAL:Omit | +-VERSION-BRACKETS3 ::= SEQUENCE OPTIONAL:Omit | +-VERSION-BRACKETS4 ::= SEQUENCE [1010011] OPTIONAL:Exist | +-bcch-Config-v1310 ::= SEQUENCE OPTIONAL:Exist | +-pcch-Config-v1310 ::= SEQUENCE OPTIONAL:Omit | +-freqHoppingParameters-r13 ::= SEQUENCE [000000] OPTIONAL:Exist | | +-mpdcch-pdsch-HoppingNB-r13 ::= ENUMERATED OPTIONAL:Omit | | +-interval-DLHoppingConfigCommonModeA-r13 ::= CHOICE OPTIONAL:Omit | | +-interval-DLHoppingConfigCommonModeB-r13 ::= CHOICE OPTIONAL:Omit | | +-interval-ULHoppingConfigCommonModeA-r13 ::= CHOICE OPTIONAL:Omit | | +-interval-ULHoppingConfigCommonModeB-r13 ::= CHOICE OPTIONAL:Omit | | +-mpdcch-pdsch-HoppingOffset-r13 ::= INTEGER OPTIONAL:Omit | +-pdsch-ConfigCommon-v1310 ::= SEQUENCE OPTIONAL:Omit | +-pusch-ConfigCommon-v1310 ::= SEQUENCE OPTIONAL:Omit | +-prach-ConfigCommon-v1310 ::= SEQUENCE [10] OPTIONAL:Exist | | +-rsrp-ThresholdsPrachInfoList-r13 ::= SEQUENCE OF SIZE(1..3) [1] | | | +-RSRP-Range ::= INTEGER (0..97) [60] | | +-mpdcch-startSF-CSS-RA-r13 ::= CHOICE [fdd-r13] OPTIONAL:Exist | | | +-fdd-r13 ::= ENUMERATED [v5] | | +-prach-HoppingOffset-r13 ::= INTEGER OPTIONAL:Omit | | +-prach-ParametersListCE-r13 ::= SEQUENCE OF SIZE(1..maxCE-Level-r13[4]) [1] | | +-PRACH-ParametersCE-r13 ::= SEQUENCE [11] | | +-prach-ConfigIndex-r13 ::= INTEGER (0..63) [3] | | +-prach-FreqOffset-r13 ::= INTEGER (0..94) [1] | | +-prach-StartingSubframe-r13 ::= ENUMERATED [sf2] OPTIONAL:Exist | | +-maxNumPreambleAttemptCE-r13 ::= ENUMERATED [n3] OPTIONAL:Exist | | +-numRepetitionPerPreambleAttempt-r13 ::= ENUMERATED [n1] | | +-mpdcch-NarrowbandsToMonitor-r13 ::= SEQUENCE OF SIZE(1..2) [1] | | | +- ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [2] | | +-mpdcch-NumRepetition-RA-r13 ::= ENUMERATED [r1] | | +-prach-HoppingConfig-r13 ::= ENUMERATED [off] | +-pucch-ConfigCommon-v1310 ::= SEQUENCE [10000] OPTIONAL:Exist +-ue-TimersAndConstants ::= SEQUENCE +-freqInfo ::= SEQUENCE [00] +-mbsfn-SubframeConfigList ::= SEQUENCE OF OPTIONAL:Omit +-timeAlignmentTimerCommon ::= ENUMERATED [infinity] +-EXTENSION ::= SEQUENCE [0000000]
HEX : 00 00 6F 7C BF 60 20 99 00 3F 52 02 C0 00 C0 05 E2 00 00 04 26 00 01 2D F2 02 01 88 65 30 21 E2 98 60 40 01 0C 10 00 00 83 CD C3 01 C0
< Example 2 >
+-sib2 ::= SEQUENCE [00] +-ac-BarringInfo ::= SEQUENCE OPTIONAL:Omit +-radioResourceConfigCommon ::= SEQUENCE | +-rach-ConfigCommon ::= SEQUENCE | | +-preambleInfo ::= SEQUENCE [0] | | | +-numberOfRA-Preambles ::= ENUMERATED [n64] | | | +-preamblesGroupAConfig ::= SEQUENCE OPTIONAL:Omit | | +-powerRampingParameters ::= SEQUENCE | | | +-powerRampingStep ::= ENUMERATED [dB2] | | | +-preambleInitialReceivedTargetPower ::= ENUMERATED [dBm-90] | | +-ra-SupervisionInfo ::= SEQUENCE | | | +-preambleTransMax ::= ENUMERATED [n5] | | | +-ra-ResponseWindowSize ::= ENUMERATED [sf10] | | | +-mac-ContentionResolutionTimer ::= ENUMERATED [sf64] | | +-maxHARQ-Msg3Tx ::= INTEGER (1..8) [4] | | +-EXTENSION ::= SEQUENCE [1] | | +-VERSION-BRACKETS1 ::= SEQUENCE [11] OPTIONAL:Exist | | +-preambleTransMax-CE-r13 ::= ENUMERATED [n5] OPTIONAL:Exist | | +-rach-CE-LevelInfoList-r13 ::= SEQUENCE OF SIZE(1..maxCE-Level-r13[4]) [1] | | +-RACH-CE-LevelInfo-r13 ::= SEQUENCE | | +-preambleMappingInfo-r13 ::= SEQUENCE | | | +-firstPreamble-r13 ::= INTEGER (0..63) [0] | | | +-lastPreamble-r13 ::= INTEGER (0..63) [63] | | +-ra-ResponseWindowSize-r13 ::= ENUMERATED [sf80] | | +-mac-ContentionResolutionTimer-r13 ::= ENUMERATED [sf200] | | +-rar-HoppingConfig-r13 ::= ENUMERATED [off] | | +-EXTENSION ::= SEQUENCE | +-bcch-Config ::= SEQUENCE | +-pcch-Config ::= SEQUENCE | +-prach-Config ::= SEQUENCE | | +-rootSequenceIndex ::= INTEGER (0..837) [0] | | +-prach-ConfigInfo ::= SEQUENCE | | +-prach-ConfigIndex ::= INTEGER (0..63) [3] | | +-highSpeedFlag ::= BOOLEAN [FALSE] | | +-zeroCorrelationZoneConfig ::= INTEGER (0..15) [0] | | +-prach-FreqOffset ::= INTEGER (0..94) [1] | +-pdsch-ConfigCommon ::= SEQUENCE | +-pusch-ConfigCommon ::= SEQUENCE | +-pucch-ConfigCommon ::= SEQUENCE | +-soundingRS-UL-ConfigCommon ::= CHOICE [release] | +-uplinkPowerControlCommon ::= SEQUENCE | | +-deltaPreambleMsg3 ::= INTEGER (-1..6) [3] | +-ul-CyclicPrefixLength ::= ENUMERATED [len1] | +-EXTENSION ::= SEQUENCE [0001] | +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit | +-VERSION-BRACKETS2 ::= SEQUENCE OPTIONAL:Omit | +-VERSION-BRACKETS3 ::= SEQUENCE OPTIONAL:Omit | +-VERSION-BRACKETS4 ::= SEQUENCE [1010011] OPTIONAL:Exist | +-bcch-Config-v1310 ::= SEQUENCE OPTIONAL:Exist | | +-modificationPeriodCoeff-v1310 ::= ENUMERATED [n64] | +-pcch-Config-v1310 ::= SEQUENCE OPTIONAL:Omit | +-freqHoppingParameters-r13 ::= SEQUENCE [111111] OPTIONAL:Exist | | +-mpdcch-pdsch-HoppingNB-r13 ::= ENUMERATED [nb2] OPTIONAL:Exist | | +-interval-DLHoppingConfigCommonModeA-r13 ::= CHOICE [interval-FDD-r13] OPTIONAL:Exist | | | +-interval-FDD-r13 ::= ENUMERATED [int1] | | +-interval-DLHoppingConfigCommonModeB-r13 ::= CHOICE [interval-FDD-r13] OPTIONAL:Exist | | | +-interval-FDD-r13 ::= ENUMERATED [int2] | | +-interval-ULHoppingConfigCommonModeA-r13 ::= CHOICE [interval-FDD-r13] OPTIONAL:Exist | | | +-interval-FDD-r13 ::= ENUMERATED [int1] | | +-interval-ULHoppingConfigCommonModeB-r13 ::= CHOICE [interval-FDD-r13] OPTIONAL:Exist | | | +-interval-FDD-r13 ::= ENUMERATED [int2] | | +-mpdcch-pdsch-HoppingOffset-r13 ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [1] | +-pdsch-ConfigCommon-v1310 ::= SEQUENCE OPTIONAL:Omit | +-pusch-ConfigCommon-v1310 ::= SEQUENCE OPTIONAL:Omit | +-prach-ConfigCommon-v1310 ::= SEQUENCE [10] OPTIONAL:Exist | | +-rsrp-ThresholdsPrachInfoList-r13 ::= SEQUENCE OF SIZE(1..3) [1] | | | +-RSRP-Range ::= INTEGER (0..97) [60] | | +-mpdcch-startSF-CSS-RA-r13 ::= CHOICE [fdd-r13] OPTIONAL:Exist | | | +-fdd-r13 ::= ENUMERATED [v5] | | +-prach-HoppingOffset-r13 ::= INTEGER [0] | | +-prach-ParametersListCE-r13 ::= SEQUENCE OF SIZE(1..maxCE-Level-r13[4]) [1] | | +-PRACH-ParametersCE-r13 ::= SEQUENCE [11] | | +-prach-ConfigIndex-r13 ::= INTEGER (0..63) [3] | | +-prach-FreqOffset-r13 ::= INTEGER (0..94) [1] | | +-prach-StartingSubframe-r13 ::= ENUMERATED [sf2] OPTIONAL:Exist | | +-maxNumPreambleAttemptCE-r13 ::= ENUMERATED [n3] OPTIONAL:Exist | | +-numRepetitionPerPreambleAttempt-r13 ::= ENUMERATED [n1] | | +-mpdcch-NarrowbandsToMonitor-r13 ::= SEQUENCE OF SIZE(1..2) [1] | | | +- ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [2] | | +-mpdcch-NumRepetition-RA-r13 ::= ENUMERATED [r1] | | +-prach-HoppingConfig-r13 ::= ENUMERATED [off] | +-pucch-ConfigCommon-v1310 ::= SEQUENCE [11111] OPTIONAL:Exist | +-n1PUCCH-AN-InfoList-r13 ::= SEQUENCE OF SIZE(1..maxCE-Level-r13[4]) [2] OPTIONAL:Exist | | +- ::= INTEGER (0..2047) [0] | | +- ::= INTEGER (0..2047) [2] | +-pucch-NumRepetitionCE-Msg4-Level0-r13 ::= ENUMERATED [n1] OPTIONAL:Exist | +-pucch-NumRepetitionCE-Msg4-Level1-r13 ::= ENUMERATED [n1] OPTIONAL:Exist | +-pucch-NumRepetitionCE-Msg4-Level2-r13 ::= ENUMERATED [n4] OPTIONAL:Exist | +-pucch-NumRepetitionCE-Msg4-Level3-r13 ::= ENUMERATED [n4] OPTIONAL:Exist +-ue-TimersAndConstants ::= SEQUENCE +-freqInfo ::= SEQUENCE [00] +-mbsfn-SubframeConfigList ::= SEQUENCE OF OPTIONAL:Omit +-timeAlignmentTimerCommon ::= ENUMERATED [infinity] +-EXTENSION ::= SEQUENCE [0000000]
HEX : 00 00 6F 7C BF 60 20 99 00 3F 52 02 C0 00 C0 05 E2 00 00 04 26 00 01 2D F2 02 01 88 7D 3F C0 00 10 F1 4C 30 20 00 87 E8 00 00 40 03 CD C3 01 C0
RACH Sequence for Initial Access
Following is the overal protocol sequence of MTC(BL/CE) RACH process for Initial Access (Initial Registration). If you see the big picture, it would look very similar to RACH Process in Legacy LTE. The only outstanding difference would be you see a whole lots more arrows in MTC RACH process comparing to the process in legacy LTE. Actually the 'lots of arrows' is very important characteristics in MTC RACH and it is the most important differences between legacy LTE RACH and MTC RACH in detailed pictures. As you can easily guess, the multiple arrows at each step indicates the repetative transmission. When you trying to understand the details of MTC RACH process, you need to be able to answer to following questions. In other words, if you can answer to the following questions, you may say you have pretty good understandings on MTC RACH process. You need to ask following questions for each and every steps (except the step (A)) i) Does this step require the repetative transmission ? ii) If it requires the repetition, how many times it has to repeat ? iii) How UE/eNB can figure out whether it should be repeated or not and how many times ? iv) Through which narrowband (Narrowband Index) this message should be transmitted ? v) How UE/eNB can figure out which Narrowband should be used ? vi) Does this message should be transmitted in a fixed frequency ? or in hopping frequency ? vii) How UE/eNB can figure out whether it should be transmitted in a fixed frequency ? or in hopping frequency ? viii) What should be the timing gap between each steps ?
NOTE : If you are working on verification or protocol stack implementation, you have to make it sure that Network populate valid (consistant among multiple parameters) the PRACH parameters SIB2 and UE (DUT) has successfully decoded SIB2 and has no complain about the parameter settings in SIB2. Even when UE successfully decoded SIB2, there is some possibility where UE does not like some of the parameter setting and print error. In this case, UE would not send PRACH preamble.
Step (B) : Msg1 (Preamble) Transmission
Before UE send Msg1 (RACH Preamble), it has to determine what kind of RACH resource (time, frequency and preamble ID). Most of these resource information is notified to UE via SIB2 and some of the information (e.g, CE Level) is determined by UE based on cell power(RSRP) measurement. Followings are the list of information that UE figure out from higher layer signaling message (SIB2).
NOTE : If UE log says it has sent PRACH Preamble and eNB log says that it has not received PRACH, you have to check all the detailed lower layer configuration both in UE and eNB. If you are at this stage, you might have already checked SIB2 and there wouldn't be any issues in SIB2 parameter itself. However, there might be problems of interpreting SIB2 parameters to lower layer configuration on UE or on eNB. For this kind of troubleshooting, you should have access to very detailed low layer logging tool for both UE and eNB, and you have knowledge to interpret those log. There are many cases where higher layer signaling parameter (SIB2 in this case) is not directly mapped to lower layer configuration and many cases higher layer specification and lower layer specification uses different terminology. So it would be very difficult (almost impossible) for a single person to understand everything. So you should have good contact to various engineers specialized in each separate layers.
Step (C) : MPDCCH for RACH Response
A certain period (3 subframs) after PRACH premable has tranmitted, UE start trying to decode MPDCCH carrying DCI that is required to decode RAR message. It means .. once eNB received RACH Preamble, the eNB would send MPDCCH carrying DCI for PDSCH carrying RAR. Regarding this MPDCCH, you would have a couple of questions listed below.
The answer to these questions are
NOTE : The SIB2 parameter for this MPDCCH is simple. It is defined by mpdcch-NumRepetition-RA-r13, but this single parameter is related to a few other lower layer parameters and in terms of 3GPP specification, a pretty complicated procedure and hidden tables are involved. You need to understand every details of 36.213-9.1.5 MPDCCH assignment procedure. Without complete understanding of this process, it would be difficult to troubleshoot for this step.
Step (D) : RACH Response (RAR)
As in legacy LTE, RAR carries two critical information as follows.
The second part (i.e, Resource Allocation Information for Msg3) is made up of following information. As you see, depending on CE mode the bit field structure varies.
Most of the field in this structure is pretty straight forward but there some field that are a little challenging to understand mainly due to the nature of repetition and you would need some other tables as follows.
The narrowband index for Msg PUSCH in CEmodeA is directly defined by the field 'Msg3 PUSCH narrowband index', but the meaning of 'Msg3 PUSCH narrowband index' in CE mode B is determined by another table a shown below (This table defines the Msg3 PUSCH narrowband index for the first transmission. The narrowband index for the retransmitted Msg may change by some other factors) .
NOTE : NB_RAR in this table is determined by higher layer signaling parameter mpdcch-NarrowbandsToMonitor-r13 in SIB2.
The repetition number field in the random access response grant configured by higher layers indicates the repetition level for Msg3 PUSCH as given in Table 6.2-C for CEmodeA and Table 6.2-D for CEmodeB, where Y_A is determined by higher layer parameter pusch-maxNumRepetitionCEmodeA-r13, and Y_B is determined by higher layer parameter pusch-maxNumRepetitionCEmodeB-r13
Following is the interpretation of 'Number of Reptition for Msg3 PUSCH' for CEmodeA
Following is the interpretation of 'Number of Reptition for Msg3 PUSCH' for CEmodeA
With this, do you think you can interpret all of the field in RAR(36.213-Table 6-2) ? Unfortunately, No. You need another table to interpret the field Msg3/4 MPDCCH narrowband index. The interpretation of this field comes from following table.
You see a parameter NB_RAR in Table 6.2-A and 6.2-B. That parameter is defined by another table shown below. As you see here, NB_RAR is determined by mpdcch-NarrowbandsToMonitor-r13 and whether Preamble Index is even or odd.
< 36.213 - Table 6.2-E: Narrowband ( NB_RAR ) for MPDCCH RAR >
Yes , I know... it would be so confusing to follow through all of these tables and get some clear meaning out of the RAR message.
Once UE completed the Step (D), that is, decoding the contents of RAR, UE send Msg3 (RRC Connection Request). Before UE send this message and Network trying to receive this message, they both should know of the following information.
The answer is simple as follows.
As soon as UE transmit the Msg3(RRC Connection Request), UE start monitoring (trying to detect) the MPDCCH that is needed to receive Msg4 PDSCH (i.e, the PDSCH carrying Msg4). For UE to properly decode this channel, it has to know of following params.
The answer to these questions comes from RAR and SIB2 as follows.
Once UE has decoded MPDCCH for Msg4 decoding, it decode Msg4 (MAC CE for Contention Resolution) and it completes RACH process if there is no problem with CR. Usually this CR and RRC Connection Setup message is carried in the same MAC PDU.
Reference
[1] 3GPP TS 36.321 V13.2.0 (2016-06) [2] 3GPP R1-156420 : TSG RAN WG1 Meeting #83 - Random access for MTC [3] 3GPP R1-156446 : TSG RAN WG1 Meeting #83 - On PRACH resource indication and level determination during random access [4] 3GPP R1-156447 : TSG RAN WG1 Meeting #83 - New DCI format to support efficient RAR transmission for MTC UEs [5] 3GPP R1-156565 : TSG RAN WG1 Meeting #83 - Remaining issues on random access for Rel-13 MTC [6] 3GPP R1-156651 : TSG RAN WG1 Meeting #83 - Random Access for MTC [7] 3GPP R1-156685 : TSG RAN WG1 Meeting #83 - RAR transmission for Rel-13 MTC [8] 3GPP R1-156847 : TSG RAN WG1 Meeting #83 - Details on RACH procedure for MTC UE [9] 3GPP R2-153717 : TSG RAN WG2 Meeting #91 - Random access for Rel-13 low complexity and enhanced coverage UEs // Strongly Recommended
|
||