As in legacy LTE, for LTE-M1, MIB/SIB1/SIB2 carries the most fundamental information for cell detaction and initial attach process. In this page, I will describe all the SIBs related to LTE-M1 operation, but it would take long time for me to complete this page... this is at the initial stage now.
- MasterInformationBlock
- SystemInformationBlockType1-BR
- How the SIB1-BR transmission timing is determined ?
- How the Narrowband index for SIB1-BR is determined ?
- How Transport Block Size, TBS, for SIB1-BR is determined ?
- How to Configure the StartSymbol for SIB1-BR ?
- Information Element Details
- SystemInformationBlockType2
- How the SIB2 transmission timing is determined ?
- How the Narrowband index for SIB2 is determined ?
- How Transport Block Size, TBS, for SIB2 is determined ?
- How to Configure the StartSymbol for SIB2 ?
- Information Element Details
- Example : MIB/SIB1/SIB2 with 1.4 Mhz System Bandwidth
- Example : MIB/SIB1/SIB2 on Spectrum Analyzer with 10 Mhz System Bandwidth
- Reference
MasterInformationBlock
A BL UE starts from the MIB, just as a legacy UE does. The MIB is still carried on PBCH, and it still gives the UE the system bandwidth and the SFN. Two things change for LTE-M. One field now points the UE to SIB1-BR, and PBCH can be repeated so that a UE in poor coverage can still decode it. Let's take the schedule first and then the contents.
Based on 36.331 5.2.1.2 Scheduling, MIB scheduling is described as below :
The MIB uses a fixed schedule with a periodicity of 40 ms and repetitions made within 40 ms. The first transmission of the MIB is scheduled in subframe #0 of radio frames for which the SFN mod 4 = 0, and repetitions are scheduled in subframe #0 of all other radio frames. For TDD/FDD system with a bandwidth larger than 1.4 MHz that supports BL UEs or UEs in CE, MIB transmission may be repeated in subframe#9 of the previous radio frame for FDD and subframe #5 of the same radio frame for TDD.
This implies that in BL/CE FDD case, a new MIB is transmitted over two subframe (subframe #9 and #0) every 40 ms. But MIB is retransmitted at every subframe where SFN mod 4 is not 0. Therefore, if you see the MIB transmission on spectrum analyzer, you would see the MIB transmission over two subframe at every 10 ms as you see in Example : MIB/SIB1/SIB2 on Spectrum Analyzer
The quote above follows the Release 13 wording. The 36.331 v19.3.0 text adds one more place for a repetition. The MIB may also be repeated again in subframe #0 of the same radio frame, in addition to subframe #9 of the previous radio frame for FDD and subframe #5 for TDD. These extra repetitions are optional, so a cell may send them or leave them out.
Following is the contents of MIB for BL/CE (LTE-M1) :
Following is based on
MasterInformationBlock ::= SEQUENCE {
dl-Bandwidth ENUMERATED {
n6, n15, n25, n50, n75, n100},
phich-Config PHICH-Config,
systemFrameNumber BIT STRING (SIZE (8)),
schedulingInfoSIB1-BR-r13 INTEGER (0..31),
systemInfoUnchanged-BR-r15 BOOLEAN,
partEARFCN-r17 CHOICE {
spare BIT STRING (SIZE (2)),
earfcn-LSB BIT STRING (SIZE (2))
},
spare BIT STRING (SIZE (1))
}
Two fields in the listing above were added after Release 13, and both took their bits from spare. The field systemInfoUnchanged-BR-r15 arrived in Release 15. Value TRUE tells a BL UE that SIB1-BR and the SI messages have not changed over the SI validity time. The UE can then keep its stored copies instead of reading them again, and each of those reads is a long run of repeated PDSCH.
The field partEARFCN-r17 arrived in Release 17 for NTN. Its earfcn-LSB choice carries the 2 least significant bits of the EARFCN for NTN bands where the 100 kHz raster is used. To make room for both fields, spare shrank from 5 bits to 1 bit, so the MIB is still the same size.
schedulingInfoSIB1-BR-r13 : This indicate whether SystemInformationBlockType1-BR is scheduled or not and if it is scheduled, what is the repetition pattern of the SystemInformationBlockType1-BR. If this IE is set to be 0, it means SystemInformationBlockType1-BR is not scheduled. If this IE is a none zero value, it means SystemInformationBlockType1-BR is scheduled and the repetition pattern is defined in the following table.
<36.213-Table 7.1.6-1: Number of repetitions for PDSCH carrying SystemInformationBlockType1-BR for BL/CE UE.>

phich-Config : This IE will be ignored in LTE M1(BL/CE) UE (Refer to 36.331 MasterInformationBlock section for confirm).
Example 1
The capture below is one MIB from a test cell. In this capture, dl-Bandwidth is n50, which is a 10 MHz cell, and schedulingInfoSIB1-BR-r13 is 1. From 36.213 Table 7.1.6-1, value 1 means SIB1-BR is sent with 4 PDSCH repetitions, and from 36.213 Table 7.1.7.2.7-1 its TBS is 208 bits. The last field is still a 5 bit spare, so this capture predates the Release 15 and Release 17 fields in the listing above.
Decoded RRC message,
BCCH-BCH-Message ::= SEQUENCE
+-message ::= SEQUENCE
+-dl-Bandwidth ::= ENUMERATED [n50]
+-phich-Config ::= SEQUENCE
| +-phich-Duration ::= ENUMERATED [normal]
| +-phich-Resource ::= ENUMERATED [half]
+-systemFrameNumber ::= BIT STRING SIZE(8) [00000000]
+-schedulingInfoSIB1-BR-r13 ::= INTEGER (0..31) [1]
+-spare ::= BIT STRING SIZE(5) [00000]
One MIB field points to SIB1-BR : schedulingInfoSIB1-BR-r13 is the index into both the repetition table and the TBS table of 36.213.Value 0 means no SIB1-BR : a cell that sends 0 does not schedule SIB1-BR at all.Release 15 and Release 17 used the spare bits : systemInfoUnchanged-BR-r15 and partEARFCN-r17 now leave only 1 spare bit.phich-Config is still sent and still ignored : the MIB format is shared with legacy UEs, so the field stays even though a BL UE does not use it.
SystemInformationBlockType1-BR
The overall function and the information carried by SIB1-BR is similar to SIB1 of legacy LTE. The contents of SIB1-BR can be categorized as below.
- PLMN
- Cell Selection Criteria
- Scheduling information for SIB2 and other SIBs.
One of the major difference between SIB1-BR and legacy LTE SIB1 is about resource allocation (time domaining scheduling and frequency domain location). In case of legacy LTE, the scheduling for SIB1 is determined by relatively simple logic as described in LTE : SIB scheduling. However, in LTE BL/CE, SIB1-BR scheduling is much complicated as described in this section.
The fundamental logics for SIB1-BR scheduling is defined in 36.211-6.4.1 Physical downlink shared channel for BL/CE UEs, but you would need a couple of additional specifications (e.g, 36.213, 36.331) for the full details. Or just read this page :)
How the SIB1-BR transmission timing is determined ?
The time domain scheduling for SIB1-BR is determined by only a single IE (information element) in MIB. However, real scheduling is pretty complex. Then how the only one parameter can determined such a complicated scheduling. One of the most common trick for this kind of case is to use various kinds of predefined tables and the IE in RRC message just point to a specific record in the table.
In case of SIB1-BR case, the time domain scheduling is defined by two tables : 36.211-Table 6.4.1-1 and Table 6.4.1-2. How can we figure out which of the two tables to use ? It is the system bandwidth. If the system bandwidth is same or lower than 3 Mhz, 36.211-Table 6.4.1-1 will be applied and if the system bandwidth is greater than 3 Mhz, 36.211-Table 6.4.1-2 will be applied.
Now let's look inside the table Table 6.4.1-2. You see three records highlighted in different colors. Now the question is how we can figure out which records to use ? (In case of Table 6.4.1-1, there is only one record. so you don't have to worry about this). It is determined by another table : 36.213-Table 7.1.6-1. You can associate the two tables (36.213-Table 7.1.6-1 and 36.211-Table 6.4.1-2) by color coding.
Then the last question is how can we figure out which color (4 or 8 or 16) in 36.213-Table 7.1.6-1 ? It is defined by schedulingInfoSIB1-BR-r13 in MIB.

How the Narrowband index for SIB1-BR is determined ?
Now let's look into how the frequency domain location for SIB1-RB. Unfortunately we have to do a little bit of math to figure this out whether you like it or not :). The frequency domain location (Narrowband Index) is determined by following equation. You don't have to care too much about the equation unless you are not a baseband engineer who has to implement this algorithm. The only thing you need to know is that the frequency domain location (Narrowband Index) changes at every transmission.
Following is from 36.211 - 6.4.1 Physical downlink shared channel for BL/CE UEs.

Following is my Matlab code implementing the above equation. Please let me know if you find any problem with this code.
N_ID_cell = 309;
%Sj = [0 3]; % when N_DL_RB = 25
Sj = [0 1 2 5 6 7]; % when N_DL_RB = 50
%Sj = [0 1 2 3 4 7 8 9 10 11]; % when N_DL_RB = 75
%Sj = [0 1 2 3 4 5 6 9 10 11 12 13 14 15]; % when N_DL_RB = 100
N_S_NB = length(Sj);
N_DL_RB = 50;
if (N_DL_RB < 12)
m = 1;
elseif ((N_DL_RB >= 12) & (N_DL_RB <= 50) )
m = 2;
else % if(N_DL_RB > 50)
m = 4;
end;
for i = 0:(m-1)
j = mod((mod(N_ID_cell,N_S_NB) + i * floor(N_S_NB/m)),N_S_NB);
nNB = Sj(j+1)
end;
Result :-------------------------------------------------------------
nNB = 5, 0
How Transport Block Size, TBS, for SIB1-BR is determined ?
The Transport Block Size for SIB1-BR is also determined by a predefined table 36.213-Table 7.1.7.2.7-1 as shown below. The index in the table is determined by schedulingInfoSIB1-BR-r13 IE in MIB.

How to Configure the StartSymbol for SIB1-BR ?
How can UE figure out the start position (start OFDM Symbol) of PDSCH carrying SIB1-BR ? Since LTE-M1 does not support (PCFICH), there should be another mechanism for UE to figure out how many OFDM symbols should be reserved for the control signal for legacy LTE. Theoretically LTE-M1 would not need to reserver the first 1 or 2 or 3 or 4 symbols for control signal since LTE-M1 does not use PCFICH, PHIBH, PDCCH. However, it should consider on any possible collision with legacy LTE operation. So it should leave out the first 1 or 2 or 3 or 4 symbols when it is allocating PDSCH. Then you would the question at the beginning : How can UE figure out the start position (start OFDM Symbol) of PDSCH carrying SIB1-BR ?.
The answer is 'it is determined by a predefined rule as below'.
In 36.213-7.1.6.4A PDSCH starting position for BL/CE UEs, it stated as follows :
- l_DataStart = 3 when the system bandwidth > 10 RB //This is for the case where System BW > 1.4 Mhz
- l_DataStart = 4 when the system bandwidth <= 10 RB //This is for the case where System BW = 1.4 Mhz
In case of PDSCH for SIB1-BR, l_DataStart is determined as follows
Information Element Details
The listing below is SystemInformationBlockType1 with the extensions that carry the BL/CE fields. SIB1-BR reuses the legacy SIB1 structure. Most of what is specific to LTE-M sits in bandwidthReducedAccessRelatedInfo-r13, inside SystemInformationBlockType1-v1310-IEs. The field notes after the listing explain the fields that the scheduling sections above depend on.
Following is based on
SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1
SystemInformationBlockType1 ::= SEQUENCE {
cellAccessRelatedInfo SEQUENCE {
plmn-IdentityList PLMN-IdentityList,
trackingAreaCode TrackingAreaCode,
cellIdentity CellIdentity,
cellBarred ENUMERATED {barred, notBarred},
intraFreqReselection ENUMERATED {allowed, notAllowed},
csg-Indication BOOLEAN,
csg-Identity CSG-Identity OPTIONAL -- Need OR
},
cellSelectionInfo SEQUENCE {
q-RxLevMin Q-RxLevMin,
q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP
},
p-Max P-Max OPTIONAL, -- Need OP
freqBandIndicator FreqBandIndicator,
schedulingInfoList SchedulingInfoList,
tdd-Config TDD-Config OPTIONAL, -- Cond TDD
si-WindowLength ENUMERATED {
ms1, ms2, ms5, ms10, ms15, ms20,
ms40},
systemInfoValueTag INTEGER (0..31),
nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL
}
SystemInformationBlockType1-v1310-IEs ::= SEQUENCE {
hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR
eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR
cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP
bandwidthReducedAccessRelatedInfo-r13 SEQUENCE {
si-WindowLength-BR-r13 ENUMERATED {
ms20, ms40, ms60, ms80, ms120,
ms160, ms200, spare},
si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF,
every8thRF},
schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR
fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE {
subframePattern10-r13 BIT STRING (SIZE (10)),
subframePattern40-r13 BIT STRING (SIZE (40))
} OPTIONAL, -- Need OP
fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP
startSymbolBR-r13 INTEGER (1..4),
si-HoppingConfigCommon-r13 ENUMERATED {on,off},
si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP
systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR
} OPTIONAL, -- Cond BW-reduced
nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL
}
SystemInformationBlockType1-v1320-IEs ::= SEQUENCE {
freqHoppingParametersDL-r13 SEQUENCE {
mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR
interval-DLHoppingConfigCommonModeA-r13 CHOICE {
interval-FDD-r13 ENUMERATED {int1, int2, int4, int8},
interval-TDD-r13 ENUMERATED {int1, int5, int10, int20}
} OPTIONAL, -- Need OR
interval-DLHoppingConfigCommonModeB-r13 CHOICE {
interval-FDD-r13 ENUMERATED {int2, int4, int8, int16},
interval-TDD-r13 ENUMERATED { int5, int10, int20, int40}
} OPTIONAL, -- Need OR
mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR
} OPTIONAL, -- Cond Hopping
nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL
}
SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13
SchedulingInfo-BR-r13 ::= SEQUENCE {
si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13),
si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712, b808, b936}
}
nonCriticalExtension ==> lead to SystemInformationBlockType1-v1310-IEs
The note above is a shortcut. SystemInformationBlockType1 itself points to SystemInformationBlockType1-v890-IEs, and the chain passes through the earlier extensions before it reaches SystemInformationBlockType1-v1310-IEs.
The listing now follows 36.331 v19.3.0, and three details differ from the Release 13 text. First, schedulingInfoList-BR-r13 is now under Cond SI-BR, so it is mandatory whenever schedulingInfoSIB1-BR-r13 in the MIB is greater than 0. Second, freqHoppingParametersDL-r13 is now under Cond Hopping. It is mandatory when si-HoppingConfigCommon-r13 is on, and mpdcch-pdsch-HoppingOffset-r13 inside it is now OPTIONAL. Third, SystemInformationBlockType1-v1320-IEs no longer ends the chain. Its nonCriticalExtension continues to SystemInformationBlockType1-v1350-IEs and later extensions, and this page does not list them.
startSymbolBR : This indicate OFDM starting symbol(l_DataStart) for any MPDCCH, PDSCH scheduled on the same cell except the PDSCH carrying SystemInformationBlockType1-BR. Values 1, 2, and 3 are applicable for dl-Bandwidth greater than 10 resource blocks. Values 2, 3, and 4 are applicable otherwise (TS 36.331). In 36.213-7.1.6.4A PDSCH starting position for BL/CE UEs, it stated as follows :
- l_DataStart = 3 when the system bandwidth > 10 RB
- l_DataStart = 4 when the system bandwidth <= 10 RB
- l'_DataStart is given by the higher layer parameter startSymbolBR
- In case when the subframe is MBSFN Subframe and UE is configured for CEModeA
- l_DataStart = min(2,l'_DataStart)
- In case when the subframe is non MBSFN Subframe
- l_DataStart = l'_DataStart (i.e, startSymbolBR is used as it is)
In case of PDSCH for SIB1-BR, l_DataStart is determined as follows
In case of PDSCH for non SIB1-BR(User Data), l_DataStart is determined as follows
In 36.213 v19.4.0 the min(2, l'_DataStart) rule covers one more case. It applies when the subframe is a special subframe or an MBSFN subframe, for a UE in CEModeA. The special subframe exists only in TDD, so the list above describes the FDD case completely.
si-RepetitionPattern : This indicate in which radio frame within SI Window a SI message can be transmitted. For example, if it is configured as 'everyRF', it means in any radio frame in SI Window a SI message can be transmitted. if it is configured as every2ndRF, it means that SI message can be transmitted in every second radio frame from the beginning of SI Window.
fdd-DownlinkOrTddSubframeBitmapBR : This indicate which subframe can be used for downlink. '1' in the bitmap indicate the corresponding subframe can be used for downlink transmission. If this IE is missing (omit), all the non-MBSFN subframe can be used for downlink transmission. This pattern can be repeated over 10 ms or 40 ms depending on the configuration of the following subfield.
Following is based on
subframePattern10-r13 BIT STRING (SIZE (10)),
subframePattern40-r13 BIT STRING (SIZE (40))
fdd-UplinkSubframeBitmapBR : This indicate which subframe can be used for uplink. '1' in the bitmap indicate the corresponding subframe can be used for uplink transmission.
si-Narrowband : This indicate the narrowband index through which SI message for BL/CE UE.
si-TBS : This indicates Transport Block Size that is used to transmit SI message and the values for this IE came from the highlighed region of 36.213 Table 7.1.7.2.1-1: Transport block size table

Example 1
The first capture is a SIB1-BR from a test cell, and it fills in almost every optional field. Look at bandwidthReducedAccessRelatedInfo-r13 near the end. For SIB2, si-Narrowband-r13 is 1 and si-TBS-r13 is b152, and si-HoppingConfigCommon-r13 is on, so freqHoppingParametersDL-r13 follows it.
Decoded RRC message,
+-c1 ::= CHOICE [systemInformationBlockType1-BR-r13]
+-systemInformationBlockType1-BR-r13 ::= SEQUENCE [001]
+-cellAccessRelatedInfo ::= SEQUENCE [0]
| +-plmn-IdentityList ::= SEQUENCE OF SIZE(1..maxPLMN-r11[6]) [1]
| | +-PLMN-IdentityInfo ::= SEQUENCE
| | +-plmn-Identity ::= SEQUENCE [1]
| | | +-mcc ::= SEQUENCE OF SIZE(3) OPTIONAL:Exist
| | | | +-MCC-MNC-Digit ::= INTEGER (0..9) [0]
| | | | +-MCC-MNC-Digit ::= INTEGER (0..9) [0]
| | | | +-MCC-MNC-Digit ::= INTEGER (0..9) [1]
| | | +-mnc ::= SEQUENCE OF SIZE(2..3) [2]
| | | +-MCC-MNC-Digit ::= INTEGER (0..9) [0]
| | | +-MCC-MNC-Digit ::= INTEGER (0..9) [1]
| | +-cellReservedForOperatorUse ::= ENUMERATED [reserved]
| +-trackingAreaCode ::= BIT STRING SIZE(16) [0000000000000000]
| +-cellIdentity ::= BIT STRING SIZE(28) [0000000000000000000000000000]
| +-cellBarred ::= ENUMERATED [barred]
| +-intraFreqReselection ::= ENUMERATED [allowed]
| +-csg-Indication ::= BOOLEAN [FALSE]
| +-csg-Identity ::= BIT STRING OPTIONAL:Omit
+-cellSelectionInfo ::= SEQUENCE [0]
| +-q-RxLevMin ::= INTEGER (-70..-22) [-70]
| +-q-RxLevMinOffset ::= INTEGER OPTIONAL:Omit
+-p-Max ::= INTEGER OPTIONAL:Omit
+-freqBandIndicator ::= INTEGER (1..maxFBI[64]) [1]
+-schedulingInfoList ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
| +-SchedulingInfo ::= SEQUENCE
| +-si-Periodicity ::= ENUMERATED [rf8]
| +-sib-MappingInfo ::= SEQUENCE OF SIZE(0..maxSIB-1[31]) [0]
+-tdd-Config ::= SEQUENCE OPTIONAL:Omit
+-si-WindowLength ::= ENUMERATED [ms1]
+-systemInfoValueTag ::= INTEGER (0..31) [0]
+-nonCriticalExtension ::= SEQUENCE [11] OPTIONAL:Exist
+-lateNonCriticalExtension ::= OCTET STRING CONSTRAINTED [0000000100000000] OPTIONAL:Exist
| +-SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE [00]
| +-multiBandInfoList ::= SEQUENCE OF OPTIONAL:Omit
| +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-ims-EmergencySupport-r9 ::= ENUMERATED OPTIONAL:Omit
+-cellSelectionInfo-v920 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-tdd-Config-v1130 ::= SEQUENCE OPTIONAL:Omit
+-cellSelectionInfo-v1130 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-cellAccessRelatedInfo-v1250 ::= SEQUENCE [0]
| +-category0Allowed-r12 ::= ENUMERATED OPTIONAL:Omit
+-cellSelectionInfo-v1250 ::= SEQUENCE OPTIONAL:Omit
+-freqBandIndicatorPriority-r12 ::= ENUMERATED OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [11111] OPTIONAL:Exist
+-hyperSFN-r13 ::= BIT STRING SIZE(10) [0000000000] OPTIONAL:Exist
+-eDRX-Allowed-r13 ::= ENUMERATED [true] OPTIONAL:Exist
+-cellSelectionInfoCE-r13 ::= SEQUENCE [0] OPTIONAL:Exist
| +-q-RxLevMinCE-r13 ::= INTEGER (-70..-22) [-70]
| +-q-QualMinRSRQ-CE-r13 ::= INTEGER OPTIONAL:Omit
+-bandwidthReducedAccessRelatedInfo-r13 ::= SEQUENCE [11111] OPTIONAL:Exist
| +-si-WindowLength-BR-r13 ::= ENUMERATED [ms20]
| +-si-RepetitionPattern-r13 ::= ENUMERATED [everyRF]
| +-schedulingInfoList-BR-r13 ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
| | +-SchedulingInfo-BR-r13 ::= SEQUENCE
| | +-si-Narrowband-r13 ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [1]
| | +-si-TBS-r13 ::= ENUMERATED [b152]
| +-fdd-DownlinkOrTddSubframeBitmapBR-r13 ::= CHOICE [subframePattern10-r13]
| | +-subframePattern10-r13 ::= BIT STRING SIZE(10) [0000000000]
| +-fdd-UplinkSubframeBitmapBR-r13 ::= BIT STRING SIZE(10) [0000000000]
| +-startSymbolBR-r13 ::= INTEGER (1..4) [1]
| +-si-HoppingConfigCommon-r13 ::= ENUMERATED [on]
| +-si-ValidityTime-r13 ::= ENUMERATED [true] OPTIONAL:Exist
| +-systemInfoValueTagList-r13 ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
| +-SystemInfoValueTagSI-r13 ::= INTEGER (0..3) [0]
+-nonCriticalExtension ::= SEQUENCE [11] OPTIONAL:Exist
+-freqHoppingParametersDL-r13 ::= SEQUENCE [1111] OPTIONAL:Exist
| +-mpdcch-pdsch-HoppingNB-r13 ::= ENUMERATED [nb2] OPTIONAL:Exist
| +-interval-DLHoppingConfigCommonModeA-r13 ::= CHOICE [interval-FDD-r13]
| | +-interval-FDD-r13 ::= ENUMERATED [int1]
| +-interval-DLHoppingConfigCommonModeB-r13 ::= CHOICE [interval-FDD-r13]
| | +-interval-FDD-r13 ::= ENUMERATED [int2]
| +-mpdcch-pdsch-HoppingOffset-r13 ::= INTEGER (1..maxAvailNarrowBands-r13[16])[1]
+-nonCriticalExtension ::= SEQUENCE OPTIONAL:Exist
HEX : 48 40 04 02 00 00 00 00 00 00 00 00 00 00 60 20 04 97 C0 00 1F 00 00 00 00 00 00 7E 00 00
Two values in this capture need a warning. The first is cellBarred, which is barred, so a UE does not camp on this cell. Both subframe bitmaps are all zeros, and a 0 in the bitmap marks a subframe that BL/CE UEs cannot use. Read this capture for its structure, not as a working configuration.
Example 2
The second capture comes from a cell that UEs can use, and it is shorter. Here cellBarred is notBarred, both subframe bitmaps are all ones, and si-HoppingConfigCommon-r13 is off, so freqHoppingParametersDL-r13 is absent. For SIB2, si-Narrowband-r13 is 7 and si-TBS-r13 is b600, a larger TB than in the first capture.
Decoded RRC message,
+-systemInformationBlockType1-BR-r13 ::= SEQUENCE [001]
+-cellAccessRelatedInfo ::= SEQUENCE [0]
| +-plmn-IdentityList ::= SEQUENCE OF SIZE(1..maxPLMN-r11[6]) [1]
| | +-PLMN-IdentityInfo ::= SEQUENCE
| | +-plmn-Identity ::= SEQUENCE [1]
| | | +-mcc ::= SEQUENCE OF SIZE(3) OPTIONAL:Exist
| | | | +-MCC-MNC-Digit ::= INTEGER (0..9) [0]
| | | | +-MCC-MNC-Digit ::= INTEGER (0..9) [0]
| | | | +-MCC-MNC-Digit ::= INTEGER (0..9) [1]
| | | +-mnc ::= SEQUENCE OF SIZE(2..3) [2]
| | | +-MCC-MNC-Digit ::= INTEGER (0..9) [0]
| | | +-MCC-MNC-Digit ::= INTEGER (0..9) [1]
| | +-cellReservedForOperatorUse ::= ENUMERATED [notReserved]
| +-trackingAreaCode ::= BIT STRING SIZE(16) [0000000000000001]
| +-cellIdentity ::= BIT STRING SIZE(28) [0000000000000000000000000001]
| +-cellBarred ::= ENUMERATED [notBarred]
| +-intraFreqReselection ::= ENUMERATED [allowed]
| +-csg-Indication ::= BOOLEAN [FALSE]
| +-csg-Identity ::= BIT STRING OPTIONAL:Omit
+-cellSelectionInfo ::= SEQUENCE [0]
| +-q-RxLevMin ::= INTEGER (-70..-22) [-70]
| +-q-RxLevMinOffset ::= INTEGER OPTIONAL:Omit
+-p-Max ::= INTEGER OPTIONAL:Omit
+-freqBandIndicator ::= INTEGER (1..maxFBI[64]) [1]
+-schedulingInfoList ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
| +-SchedulingInfo ::= SEQUENCE
| +-si-Periodicity ::= ENUMERATED [rf16]
| +-sib-MappingInfo ::= SEQUENCE OF SIZE(0..maxSIB-1[31]) [0]
+-tdd-Config ::= SEQUENCE OPTIONAL:Omit
+-si-WindowLength ::= ENUMERATED [ms20]
+-systemInfoValueTag ::= INTEGER (0..31) [1]
+-nonCriticalExtension ::= SEQUENCE [01] OPTIONAL:Exist
+-lateNonCriticalExtension ::= OCTET STRING OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-ims-EmergencySupport-r9 ::= ENUMERATED OPTIONAL:Omit
+-cellSelectionInfo-v920 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-tdd-Config-v1130 ::= SEQUENCE OPTIONAL:Omit
+-cellSelectionInfo-v1130 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-cellAccessRelatedInfo-v1250 ::= SEQUENCE [0]
| +-category0Allowed-r12 ::= ENUMERATED OPTIONAL:Omit
+-cellSelectionInfo-v1250 ::= SEQUENCE OPTIONAL:Omit
+-freqBandIndicatorPriority-r12 ::= ENUMERATED OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [00110] OPTIONAL:Exist
+-hyperSFN-r13 ::= BIT STRING OPTIONAL:Omit
+-eDRX-Allowed-r13 ::= ENUMERATED OPTIONAL:Omit
+-cellSelectionInfoCE-r13 ::= SEQUENCE [0] OPTIONAL:Exist
| +-q-RxLevMinCE-r13 ::= INTEGER (-70..-22) [-70]
| +-q-QualMinRSRQ-CE-r13 ::= INTEGER OPTIONAL:Omit
+-bandwidthReducedAccessRelatedInfo-r13 ::= SEQUENCE [11100] OPTIONAL:Exist
| +-si-WindowLength-BR-r13 ::= ENUMERATED [ms20]
| +-si-RepetitionPattern-r13 ::= ENUMERATED [everyRF]
| +-schedulingInfoList-BR-r13 ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
| | +-SchedulingInfo-BR-r13 ::= SEQUENCE
| | +-si-Narrowband-r13 ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [7]
| | +-si-TBS-r13 ::= ENUMERATED [b600]
| +-fdd-DownlinkOrTddSubframeBitmapBR-r13 ::= CHOICE [subframePattern10-r13]
| | +-subframePattern10-r13 ::= BIT STRING SIZE(10) [1111111111]
| +-fdd-UplinkSubframeBitmapBR-r13 ::= BIT STRING SIZE(10) [1111111111] OPTIONAL:Exist
| +-startSymbolBR-r13 ::= INTEGER (1..4) [2]
| +-si-HoppingConfigCommon-r13 ::= ENUMERATED [off]
| +-si-ValidityTime-r13 ::= ENUMERATED OPTIONAL:Omit
| +-systemInfoValueTagList-r13 ::= SEQUENCE OF OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit
HEX : 48 40 04 03 00 01 00 00 00 18 00 00 10 50 A4 91 80 70 00 66 7F FF FB
SystemInformationBlockType2
SIB2 is the first SI message a BL UE reads after SIB1-BR, and it holds what the UE needs for random access. SIB2 has no scheduling table of its own. SIB1-BR decides when SIB2 is sent, in which narrowband and with which TBS. So each subsection below starts from a field in SIB1-BR.
As in legacy LTE, the role of SIB 2 in LTE-M1 to broadcast the information as below.
- RACH Configuration
- Common Channel Configuration
- Cell Barring Configuration
How the SIB2 transmission timing is determined ?
SIB2 is sent inside an SI window, and three SIB1-BR fields place that window and the transmissions inside it. The image below puts the three fields on one time line, with time running from top to bottom. The green arrows mark the periodicity and the window, and the red bars mark the SIB2 transmissions.

SIB2 repeats once per si-Periodicity. Inside each SI window, si-RepetitionPattern-r13 decides which radio frames carry it.
si-Periodicity sets the distance between windows : it is counted in radio frames and comes from schedulingInfoList in SIB1-BR.si-WindowLength-BR-r13 sets the length of each window : it is counted in subframes, from ms20 to ms200.si-RepetitionPattern-r13 sets which radio frames in the window are used : the values are everyRF, every2ndRF, every4thRF and every8thRF, and the first transmission is in the first radio frame of the window.Several red bars sit in one window : SIB2 is repeated inside the window, and a UE in poor coverage combines the repetitions.
How the Narrowband index for SIB2 is determined ?
The location of SIB2 transmission in frequency domain is determined by the si-Narrowband-r13 in SIB1. If you want to figure out the exact PRB(Physical Resource Block) for the specified narrowband index, refer to Narrowband page.
Decoded RRC message,
+-bandwidthReducedAccessRelatedInfo-r13 ::= SEQUENCE [11111] OPTIONAL:Exist | +-si-WindowLength-BR-r13 ::= ENUMERATED [ms20] | +-si-RepetitionPattern-r13 ::= ENUMERATED [everyRF] | +-schedulingInfoList-BR-r13 ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1] | | +-SchedulingInfo-BR-r13 ::= SEQUENCE | | +-si-Narrowband-r13 ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [1] | | +-si-TBS-r13 ::= ENUMERATED [b152]
How Transport Block Size, TBS, for SIB2 is determined ?
SIB2 has no TBS table like the one for SIB1-BR. SIB1-BR gives the size directly, one si-TBS value per SI message, in bits. The only thing left to work out is the I_TBS that gives that size.
The transport block size that is used to transmit the SIB2 message is also determined by a SIB1 paramter, called si-TBS as shown below.
Decoded RRC message,
+-bandwidthReducedAccessRelatedInfo-r13 ::= SEQUENCE [11111] OPTIONAL:Exist | +-si-WindowLength-BR-r13 ::= ENUMERATED [ms20] | +-si-RepetitionPattern-r13 ::= ENUMERATED [everyRF] | +-schedulingInfoList-BR-r13 ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1] | | +-SchedulingInfo-BR-r13 ::= SEQUENCE | | +-si-Narrowband-r13 ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [1] | | +-si-TBS-r13 ::= ENUMERATED [b152]
Since PDSCH carrying SIB2 takes up the full LTE-M1 bandwidth (1.4 Mhz, 6 RB), you can figure out I_TBS(MCS) from following table.

How to Configure the StartSymbol for SIB2 ?
For SIB1-BR, the system bandwidth fixes the start symbol. For SIB2 the network chooses the value instead. It broadcasts the value once in SIB1-BR, and the same value then applies to every later MPDCCH and PDSCH in the cell except SIB1-BR.
The StartSymbol (the first OFDM symbol for the PDSCH carrying SIB2) is also determined by SIB1 parameter called startSymbolBR-r13 as shown below.
Decoded RRC message,
+-nonCriticalExtension ::= SEQUENCE [00110] OPTIONAL:Exist +-hyperSFN-r13 ::= BIT STRING OPTIONAL:Omit +-eDRX-Allowed-r13 ::= ENUMERATED OPTIONAL:Omit +-cellSelectionInfoCE-r13 ::= SEQUENCE [0] OPTIONAL:Exist +-bandwidthReducedAccessRelatedInfo-r13 ::= SEQUENCE [11100] OPTIONAL:Exist | +-si-WindowLength-BR-r13 ::= ENUMERATED [ms20] | +-si-RepetitionPattern-r13 ::= ENUMERATED [everyRF] | +-schedulingInfoList-BR-r13 ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1] | +-fdd-DownlinkOrTddSubframeBitmapBR-r13 ::= CHOICE [subframePattern10-r13] | +-fdd-UplinkSubframeBitmapBR-r13 ::= BIT STRING SIZE(10) [1111111111] OPTIONAL:Exist | +-startSymbolBR-r13 ::= INTEGER (1..4) [2]
The capture above sets startSymbolBR-r13 to 2, so the PDSCH carrying SIB2 starts at OFDM symbol 2. 36.331 allows 1, 2 and 3 when dl-Bandwidth is greater than 10 resource blocks, and 2, 3 and 4 otherwise.
Information Element Details
The listing below is SystemInformationBlockType2 and every IE it pulls in on the way to the BL/CE RACH fields. It is long because the path from SIB2 to prach-ParametersListCE-r13 passes through RadioResourceConfigCommonSIB, RACH-ConfigCommon and PRACH-ConfigSIB-v1310. The two field notes after the listing explain the BL/CE fields at the end of that path.
Following is based on
SystemInformationBlockType2 ::= SEQUENCE {
ac-BarringInfo SEQUENCE {
ac-BarringForEmergency BOOLEAN,
ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP
ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP
} OPTIONAL, -- Need OP
radioResourceConfigCommon RadioResourceConfigCommonSIB,
ue-TimersAndConstants UE-TimersAndConstants,
freqInfo SEQUENCE {
ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP
ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}
OPTIONAL, -- Need OP
additionalSpectrumEmission AdditionalSpectrumEmission
},
mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR
timeAlignmentTimerCommon TimeAlignmentTimer,
...,
lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL,
[[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP
ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP
]],
[[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP
]],
[[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP
ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP
ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP
ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP
]],
[[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP
]],
[[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP
acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP
]],
[[
udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR
udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR
cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP
useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP
]],
[[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP
]],
[[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP
videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP
]],
[[ plmn-InfoList-r15 PLMN-InfoList-r15 OPTIONAL -- Need OP
]],
[[ cp-EDT-r15 ENUMERATED {true} OPTIONAL, -- Need OR
up-EDT-r15 ENUMERATED {true} OPTIONAL, -- Need OR
idleModeMeasurements-r15 ENUMERATED {true} OPTIONAL, -- Need OR
reducedCP-LatencyEnabled-r15 ENUMERATED {true} OPTIONAL -- Need OR
]],
[[ mbms-ROM-ServiceIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR
]],
[[ rlos-Enabled-r16 ENUMERATED {true} OPTIONAL, -- Need OR
earlySecurityReactivation-r16 ENUMERATED {true} OPTIONAL, -- Need OR
cp-EDT-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
up-EDT-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
cp-PUR-EPC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
up-PUR-EPC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
cp-PUR-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
up-PUR-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
mpdcch-CQI-Reporting-r16 ENUMERATED {fourBits, both} OPTIONAL, -- Need OR
rai-ActivationEnh-r16 ENUMERATED {true} OPTIONAL, -- Need OR
idleModeMeasurementsNR-r16 ENUMERATED {true} OPTIONAL -- Need OR
]],
[[ gnss-PositionFixDurationReporting-r18 ENUMERATED {true} OPTIONAL, -- Need OR
freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Need OR
freqInfoAerial-r18 AdditionalSpectrumEmission-r18 OPTIONAL, -- Need OR
multiBandInfoListAerial-r18 SEQUENCE (SIZE (1..maxMultiBands)) OF
AdditionalSpectrumEmission-r18 OPTIONAL -- Need OR
]],
[[ cp-CB-Msg3-EDT-r19 ENUMERATED {true} OPTIONAL, -- Need OR
up-CB-Msg3-EDT-r19 ENUMERATED {true} OPTIONAL -- Need OR
]]
}
SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE {
multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR
nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL
}
SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE {
ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax
nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL
}
AC-BarringConfig ::= SEQUENCE {
ac-BarringFactor ENUMERATED {
p00, p05, p10, p15, p20, p25, p30, p40,
p50, p60, p70, p75, p80, p85, p90, p95},
ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
ac-BarringForSpecialAC BIT STRING (SIZE(5))
}
MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig
AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12
AC-BarringPerPLMN-r12 ::= SEQUENCE {
plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11),
ac-BarringInfo-r12 SEQUENCE {
ac-BarringForEmergency-r12 BOOLEAN,
ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP
ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP
} OPTIONAL, -- Need OP
ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP
ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP
ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP
ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP
ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP
ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP
}
ACDC-BarringForCommon-r13 ::= SEQUENCE {
acdc-HPLMNonly-r13 BOOLEAN,
barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13
}
ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13
ACDC-BarringPerPLMN-r13 ::= SEQUENCE {
plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11),
acdc-OnlyForHPLMN-r13 BOOLEAN,
barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13
}
BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13
BarringPerACDC-Category-r13 ::= SEQUENCE {
acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13),
acdc-BarringConfig-r13 SEQUENCE {
ac-BarringFactor-r13 ENUMERATED {
p00, p05, p10, p15, p20, p25, p30, p40,
p50, p60, p70, p75, p80, p85, p90, p95},
ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}
} OPTIONAL -- Need OP
}
UDT-Restricting-r13 ::= SEQUENCE {
udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR
udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR
}
UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13
UDT-RestrictingPerPLMN-r13 ::= SEQUENCE {
plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11),
udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR
}
CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13
CIOT-OptimisationPLMN-r13::= SEQUENCE {
up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP
cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP
attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP
}
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,
...,
[[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR
]],
[[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR
]],
[[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
]],
[[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR
pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR
freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR
pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR
pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR
prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR
pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR
]],
[[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR
prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR
pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR
]],
[[ prach-Config-v1530 PRACH-ConfigSIB-v1530 OPTIONAL, -- Cond EDT
ce-RSS-Config-r15 RSS-Config-r15 OPTIONAL, -- Need OR
wus-Config-r15 WUS-Config-r15 OPTIONAL, -- Need OR
highSpeedConfig-v1530 HighSpeedConfig-v1530 OPTIONAL -- Need OR
]],
[[ uplinkPowerControlCommon-v1540 UplinkPowerControlCommon-v1530 OPTIONAL -- Need OR
]],
[[ wus-Config-v1560 WUS-Config-v1560 OPTIONAL -- Need OR
]],
[[
wus-Config-v1610 WUS-Config-v1610 OPTIONAL, -- Need OR
highSpeedConfig-v1610 HighSpeedConfig-v1610 OPTIONAL, -- Need OR
crs-ChEstMPDCCH-ConfigCommon-r16 CRS-ChEstMPDCCH-ConfigCommon-r16 OPTIONAL, -- Need OR
gwus-Config-r16 GWUS-Config-r16 OPTIONAL, -- Need OR
uplinkPowerControlCommon-v1610 UplinkPowerControlCommon-v1610 OPTIONAL, -- Need OR
rss-MeasConfig-r16 ENUMERATED {enabled} OPTIONAL, -- Need OR
rss-MeasNonNCL-r16 ENUMERATED {enabled} OPTIONAL, -- Need OR
puncturedSubcarriersDL-r16 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR
highSpeedInterRAT-NR-r16 BOOLEAN OPTIONAL -- Need OR
]],
[[
pcch-Config-v1700 PCCH-Config-v1700 OPTIONAL, -- Need OR
ntn-ConfigCommon-r17 SEQUENCE {
ta-Report-r17 ENUMERATED {enabled} OPTIONAL, -- Need OR
t318-r17 ENUMERATED {
ms0, ms50, ms100, ms200,
ms500, ms1000, ms2000, ms4000},
prach-TxDuration-r17 PRACH-TxDuration-r17 OPTIONAL, -- Need OR
pucch-TxDuration-r17 PUCCH-TxDuration-r17 OPTIONAL, -- Need OR
pusch-TxDuration-r17 PUSCH-TxDuration-r17 OPTIONAL -- Need OR
} OPTIONAL -- Cond NTN
]],
[[
cb-Msg3-ConfigSIB-r19 CB-Msg3-ConfigSIB-r19 OPTIONAL -- Need OR
]]
}
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,
...,
[[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON
]],
[[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3
]],
[[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
]],
[[
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
]],
[[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR
prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR
pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR
tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3
]],
[[
tdd-Config-v1450 TDD-Config-v1450 OPTIONAL -- Cond TDD3
]],
[[ uplinkPowerControlCommon-v1530 UplinkPowerControlCommon-v1530 OPTIONAL, -- Need ON
highSpeedConfig-v1530 HighSpeedConfig-v1530 OPTIONAL -- Need OR
]],
[[
highSpeedConfig-v1610 HighSpeedConfig-v1610 OPTIONAL, -- Need OR
uplinkPowerControlCommon-v1610 UplinkPowerControlCommon-v1610 OPTIONAL, -- Need OR
highSpeedInterRAT-NR-r16 BOOLEAN OPTIONAL -- Need ON
]],
[[ ntn-ConfigCommon-r17 SEQUENCE {
ta-Report-r17 ENUMERATED {enabled} OPTIONAL, -- Need OR
t318-r17 ENUMERATED {
ms0, ms50, ms100, ms200, ms500,
ms1000, ms2000, ms4000, ms6000},
prach-TxDuration-r17 PRACH-TxDuration-r17 OPTIONAL, -- Need OR
pucch-TxDuration-r17 PUCCH-TxDuration-r17 OPTIONAL, -- Need OR
pusch-TxDuration-r17 PUSCH-TxDuration-r17 OPTIONAL -- Need OR
} OPTIONAL -- Cond NTN
]]
}
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
]],
[[ edt-SmallTBS-Subset-r15 ENUMERATED {true} OPTIONAL -- Cond EDT-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},
...,
[[ edt-Parameters-r15 SEQUENCE {
edt-LastPreamble-r15 INTEGER(0..63),
edt-SmallTBS-Enabled-r15 BOOLEAN,
edt-TBS-r15 ENUMERATED {b328, b408, b504, b600, b712,
b808, b936, b1000or456},
mac-ContentionResolutionTimer-r15 ENUMERATED {sf240, sf480, sf960,
sf1920, sf3840, sf5760, sf7680, sf10240} OPTIONAL -- Need OP
} OPTIONAL -- Cond EDT
]]
}
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}
} OPTIONAL, -- Cond MP
prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR
prach-ParametersListCE-r13 PRACH-ParametersListCE-r13
}
PRACH-Config ::= SEQUENCE {
rootSequenceIndex INTEGER (0..837),
prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON
}
PRACH-Config-v1310 ::= SEQUENCE {
rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP
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}
} OPTIONAL, -- Cond MP
prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR
prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP
initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR
}
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} OPTIONAL, -- Need OP
maxNumPreambleAttemptCE-r13
ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP
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
RSRP-ThresholdsPrachInfoList : UE determines which prach resources it will use (i.e, which CE level it will notify to network) based on this parameter. 36.331 describes as follows :
The criterion for BL UEs and UEs in CE to select PRACH resource set. Up to 3 RSRP threshold values are signalled to determine the CE level for PRACH, see TS 36.213. The first element corresponds to RSRP threshold 1, the second element corresponds to RSRP threshold 2 and so on, see TS 36.321 . The UE shall ignore this field if only one CE level, i.e. CE level 0, is configured in prach-ParametersListCE. The number of RSRP thresholds present in rsrp-ThresholdsPrachInfoList is equal to the number of CE levels configured in prach-ParametersListCE minus one. A UE that supports powerClass-14dBm shall correct the RSRP threshold values before applying them as follows:
RSRP threshold = Signalled RSRP threshold - min{0, (14-min(23, P-Max))} where P-Max is the value of p-Max field in SystemInformationBlockType1-BR.
prach-ParametersListCE : BL CE UE is supposed to use different PRACH resources depending on CE Level. This IE configures which prach resources the UE has to use for a specific CE level. 36.331 describes as follows :
Configures PRACH parameters for each CE level. The first entry in the list is the PRACH parameters of CE level 0, the second entry in the list is the PRACH parameters of CE level 1, and so on.
The rsrp-ThresholdsPrachInfoList quote above uses the Release 13 wording. In 36.331 v19.3.0, the first element is the RSRP threshold of CE level 1, the second is that of CE level 2, and so on. The UE ignores the field if only CE level 0 is configured in prach-ParametersListCE.
Compared with the Release 13 text, the v19.3.0 listing carries many more extension groups. SystemInformationBlockType2 gained groups for EDT in Release 15, for PUR, RLOS and 5GC EDT in Release 16, for aerial UEs in Release 18 and for CB-Msg3-EDT in Release 19. RadioResourceConfigCommonSIB gained wus-Config-r15, ce-RSS-Config-r15, gwus-Config-r16 and ntn-ConfigCommon-r17, among others. RACH-CE-LevelInfo-r13 gained edt-Parameters-r15, and the Preamble Group page explains it.
Example 1
The capture below is a complete SIB2 from a test cell with a single CE level. Look for the Release 13 fields in two places. The list rach-CE-LevelInfoList-r13 sits in the extension of rach-ConfigCommon, and prach-ParametersListCE-r13 sits in prach-ConfigCommon-v1310 near the end of radioResourceConfigCommon.
Decoded RRC message,
+-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 | | +-modificationPeriodCoeff ::= ENUMERATED [n2] | +-pcch-Config ::= SEQUENCE | | +-defaultPagingCycle ::= ENUMERATED [rf64] | | +-nB ::= ENUMERATED [halfT] | +-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 | | +-referenceSignalPower ::= INTEGER (-60..50) [0] | | +-p-b ::= INTEGER (0..3) [1] | +-pusch-ConfigCommon ::= SEQUENCE | | +-pusch-ConfigBasic ::= SEQUENCE | | | +-n-SB ::= INTEGER (1..4) [1] | | | +-hoppingMode ::= ENUMERATED [interSubFrame] | | | +-pusch-HoppingOffset ::= INTEGER (0..98) [0] | | | +-enable64QAM ::= BOOLEAN [FALSE] | | +-ul-ReferenceSignalsPUSCH ::= SEQUENCE | | +-groupHoppingEnabled ::= BOOLEAN [FALSE] | | +-groupAssignmentPUSCH ::= INTEGER (0..29) [0] | | +-sequenceHoppingEnabled ::= BOOLEAN [FALSE] | | +-cyclicShift ::= INTEGER (0..7) [0] | +-pucch-ConfigCommon ::= SEQUENCE | | +-deltaPUCCH-Shift ::= ENUMERATED [ds2] | | +-nRB-CQI ::= INTEGER (0..98) [4] | | +-nCS-AN ::= INTEGER (0..7) [6] | | +-n1PUCCH-AN ::= INTEGER (0..2047) [0] | +-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 | | | +-deltaF-PUCCH-Format1 ::= ENUMERATED [deltaF-2] | | | +-deltaF-PUCCH-Format1b ::= ENUMERATED [deltaF5] | | | +-deltaF-PUCCH-Format2 ::= ENUMERATED [deltaF-2] | | | +-deltaF-PUCCH-Format2a ::= ENUMERATED [deltaF-2] | | | +-deltaF-PUCCH-Format2b ::= ENUMERATED [deltaF-2] | | +-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 [1000011] OPTIONAL:Exist | +-bcch-Config-v1310 ::= SEQUENCE OPTIONAL:Exist | | +-modificationPeriodCoeff-v1310 ::= ENUMERATED [n64] | +-pcch-Config-v1310 ::= SEQUENCE OPTIONAL:Omit | +-freqHoppingParameters-r13 ::= SEQUENCE 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 [01] | | +-prach-ConfigIndex-r13 ::= INTEGER (0..63) [3] | | +-prach-FreqOffset-r13 ::= INTEGER (0..94) [1] | | +-prach-StartingSubframe-r13 ::= ENUMERATED OPTIONAL:Omit | | +-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 | +-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 OPTIONAL:Omit | +-pucch-NumRepetitionCE-Msg4-Level1-r13 ::= ENUMERATED OPTIONAL:Omit | +-pucch-NumRepetitionCE-Msg4-Level2-r13 ::= ENUMERATED OPTIONAL:Omit | +-pucch-NumRepetitionCE-Msg4-Level3-r13 ::= ENUMERATED OPTIONAL:Omit +-ue-TimersAndConstants ::= SEQUENCE | +-t300 ::= ENUMERATED [ms2000] | +-t301 ::= ENUMERATED [ms600] | +-t310 ::= ENUMERATED [ms2000] | +-n310 ::= ENUMERATED [n20] | +-t311 ::= ENUMERATED [ms1000] | +-n311 ::= ENUMERATED [n4] | +-EXTENSION ::= SEQUENCE [0] | +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit +-freqInfo ::= SEQUENCE [00] | +-ul-CarrierFreq ::= INTEGER OPTIONAL:Omit | +-ul-Bandwidth ::= ENUMERATED OPTIONAL:Omit | +-additionalSpectrumEmission ::= INTEGER (1..32) [1] +-mbsfn-SubframeConfigList ::= SEQUENCE OF OPTIONAL:Omit +-timeAlignmentTimerCommon ::= ENUMERATED [infinity] 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 5C 38 78 A2 18 10 02 18 20 00 01 03 CD C3 01 C0
With only one CE level, the capture gives that level the whole preamble range. In the capture, firstPreamble-r13 is 0 and lastPreamble-r13 is 63, which is numberOfRA-Preambles minus 1 for n64. It also carries one RSRP threshold, 60. A UE ignores that threshold, because 36.331 says so when only CE level 0 is configured.
SIB1-BR schedules SIB2 : the window, the narrowband, the TBS and the start symbol all come from SIB1-BR fields.The BL/CE RACH fields sit in extensions : rach-CE-LevelInfoList-r13 extends rach-ConfigCommon, and prach-ParametersListCE-r13 sits in prach-ConfigCommon-v1310.One CE level can use every preamble : firstPreamble-r13 0 and lastPreamble-r13 63 cover the full range when there is no second level to separate.The number of thresholds is one less than the number of levels : a threshold marks the boundary between two levels, so one level needs none.
Example : MIB/SIB1/SIB2 with 1.4 Mhz System Bandwidth
This example follows one 1.4 MHz cell from its MIB and SIB1-BR to the transmissions on the air. In a 1.4 MHz cell the whole system bandwidth is one narrowband, so there is no narrowband to choose. The table at the end lists every transmission with its SFN, subframe, TBS and repetition number. You can check the rules from the sections above against it.
< MIB > ------------------------------------------------------------------------
Decoded RRC message,
BCCH-BCH-Message ::= SEQUENCE
+-message ::= SEQUENCE
+-dl-Bandwidth ::= ENUMERATED [n6]
+-phich-Config ::= SEQUENCE
| +-phich-Duration ::= ENUMERATED [normal]
| +-phich-Resource ::= ENUMERATED [half]
+-systemFrameNumber ::= BIT STRING SIZE(8) [00000000]
+-schedulingInfoSIB1-BR-r13 ::= INTEGER (0..31) [10]
+-spare ::= BIT STRING SIZE(5) [00000]
< SIB1-BR > ------------------------------------------------------------------------
Decoded RRC message,
+-systemInformationBlockType1-BR-r13 ::= SEQUENCE [001]
+-cellAccessRelatedInfo ::= SEQUENCE [0]
| +-plmn-IdentityList ::= SEQUENCE OF SIZE(1..maxPLMN-r11[6]) [1]
| +-trackingAreaCode ::= BIT STRING SIZE(16) [0000000000000001]
| +-cellIdentity ::= BIT STRING SIZE(28) [0000000000000000000000000001]
| +-cellBarred ::= ENUMERATED [notBarred]
| +-intraFreqReselection ::= ENUMERATED [allowed]
| +-csg-Indication ::= BOOLEAN [FALSE]
| +-csg-Identity ::= BIT STRING OPTIONAL:Omit
+-cellSelectionInfo ::= SEQUENCE [0]
+-p-Max ::= INTEGER OPTIONAL:Omit
+-freqBandIndicator ::= INTEGER (1..maxFBI[64]) [1]
+-schedulingInfoList ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
| +-SchedulingInfo ::= SEQUENCE
| +-si-Periodicity ::= ENUMERATED [rf8]
| +-sib-MappingInfo ::= SEQUENCE OF SIZE(0..maxSIB-1[31]) [0]
+-tdd-Config ::= SEQUENCE OPTIONAL:Omit
+-si-WindowLength ::= ENUMERATED [ms20]
+-systemInfoValueTag ::= INTEGER (0..31) [1]
+-nonCriticalExtension ::= SEQUENCE [01] OPTIONAL:Exist
+-lateNonCriticalExtension ::= OCTET STRING OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-ims-EmergencySupport-r9 ::= ENUMERATED OPTIONAL:Omit
+-cellSelectionInfo-v920 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-tdd-Config-v1130 ::= SEQUENCE OPTIONAL:Omit
+-cellSelectionInfo-v1130 ::= SEQUENCE OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [001] OPTIONAL:Exist
+-cellAccessRelatedInfo-v1250 ::= SEQUENCE [0]
+-cellSelectionInfo-v1250 ::= SEQUENCE OPTIONAL:Omit
+-freqBandIndicatorPriority-r12 ::= ENUMERATED OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE [00110] OPTIONAL:Exist
+-hyperSFN-r13 ::= BIT STRING OPTIONAL:Omit
+-eDRX-Allowed-r13 ::= ENUMERATED OPTIONAL:Omit
+-cellSelectionInfoCE-r13 ::= SEQUENCE [0] OPTIONAL:Exist
| +-q-RxLevMinCE-r13 ::= INTEGER (-70..-22) [-70]
| +-q-QualMinRSRQ-CE-r13 ::= INTEGER OPTIONAL:Omit
+-bandwidthReducedAccessRelatedInfo-r13 ::= SEQUENCE [11100] OPTIONAL:Exist
| +-si-WindowLength-BR-r13 ::= ENUMERATED [ms40]
| +-si-RepetitionPattern-r13 ::= ENUMERATED [everyRF]
| +-schedulingInfoList-BR-r13 ::= SEQUENCE OF SIZE(1..maxSI-Message[32]) [1]
| | +-SchedulingInfo-BR-r13 ::= SEQUENCE
| | +-si-Narrowband-r13 ::= INTEGER (1..maxAvailNarrowBands-r13[16]) [1]
| | +-si-TBS-r13 ::= ENUMERATED [b504]
| +-fdd-DownlinkOrTddSubframeBitmapBR-r13 ::= CHOICE [subframePattern10-r13]
| | +-subframePattern10-r13 ::= BIT STRING SIZE(10) [1111111111]
| +-fdd-UplinkSubframeBitmapBR-r13 ::= BIT STRING SIZE(10) [1111111111] OPTIONAL:Exist
| +-startSymbolBR-r13 ::= INTEGER (1..4) [2]
| +-si-HoppingConfigCommon-r13 ::= ENUMERATED [off]
| +-si-ValidityTime-r13 ::= ENUMERATED OPTIONAL:Omit
| +-systemInfoValueTagList-r13 ::= SEQUENCE OF OPTIONAL:Omit
+-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit
|
No |
SFN |
SubFrame |
SIB |
TBS |
Qm |
RV |
MCS |
RB-START |
Narrowband Index |
RepetitionNo |
New Transmission |
PDSCH StartSymbol |
|
1 |
8 |
0 |
MIB |
24 |
|
|
|
|
|
|
|
|
|
2 |
8 |
0 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
0 |
1 |
2 |
|
3 |
8 |
1 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
1 |
0 |
2 |
|
4 |
8 |
2 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
2 |
0 |
2 |
|
5 |
8 |
3 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
3 |
0 |
2 |
|
6 |
8 |
4 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
4 |
0 |
2 |
|
7 |
8 |
5 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
5 |
0 |
2 |
|
8 |
8 |
6 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
6 |
0 |
2 |
|
9 |
8 |
7 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
7 |
0 |
2 |
|
10 |
8 |
8 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
8 |
0 |
2 |
|
11 |
8 |
9 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
9 |
0 |
2 |
|
12 |
9 |
0 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
10 |
0 |
2 |
|
13 |
9 |
1 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
11 |
0 |
2 |
|
14 |
9 |
2 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
12 |
0 |
2 |
|
15 |
9 |
3 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
13 |
0 |
2 |
|
16 |
9 |
4 |
SIB1 |
504 |
2 |
0 |
10 |
0 |
0 |
0 |
1 |
4 |
|
17 |
9 |
5 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
15 |
0 |
2 |
|
18 |
9 |
6 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
16 |
0 |
2 |
|
19 |
9 |
7 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
17 |
0 |
2 |
|
20 |
9 |
8 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
18 |
0 |
2 |
|
21 |
9 |
9 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
19 |
0 |
2 |
|
22 |
10 |
0 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
20 |
0 |
2 |
|
23 |
10 |
1 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
21 |
0 |
2 |
|
24 |
10 |
2 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
22 |
0 |
2 |
|
25 |
10 |
3 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
23 |
0 |
2 |
|
26 |
10 |
4 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
24 |
0 |
2 |
|
27 |
10 |
5 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
25 |
0 |
2 |
|
28 |
10 |
6 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
26 |
0 |
2 |
|
29 |
10 |
7 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
27 |
0 |
2 |
|
30 |
10 |
8 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
28 |
0 |
2 |
|
31 |
10 |
9 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
29 |
0 |
2 |
|
32 |
11 |
0 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
30 |
0 |
2 |
|
33 |
11 |
1 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
31 |
0 |
2 |
|
34 |
11 |
2 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
32 |
0 |
2 |
|
35 |
11 |
3 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
33 |
0 |
2 |
|
36 |
11 |
4 |
SIB1 |
504 |
2 |
2 |
10 |
0 |
0 |
1 |
0 |
4 |
|
37 |
11 |
5 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
35 |
0 |
2 |
|
38 |
11 |
6 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
36 |
0 |
2 |
|
39 |
11 |
7 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
37 |
0 |
2 |
|
40 |
11 |
8 |
SIB2 |
504 |
2 |
3 |
5 |
0 |
0 |
38 |
0 |
2 |
|
41 |
11 |
9 |
SIB2 |
504 |
2 |
1 |
5 |
0 |
0 |
39 |
0 |
2 |
|
42 |
12 |
0 |
MIB |
24 |
|
|
|
|
|
|
|
|
|
43 |
13 |
4 |
SIB1 |
504 |
2 |
3 |
10 |
0 |
0 |
2 |
0 |
4 |
|
44 |
15 |
4 |
SIB1 |
504 |
2 |
1 |
10 |
0 |
0 |
3 |
0 |
4 |
|
45 |
16 |
0 |
MIB |
24 |
|
|
|
|
|
|
|
|
|
46 |
16 |
0 |
SIB2 |
504 |
2 |
0 |
5 |
0 |
0 |
0 |
1 |
2 |
|
47 |
16 |
1 |
SIB2 |
504 |
2 |
2 |
5 |
0 |
0 |
1 |
0 |
2 |
Let's check the table against the two captures. The MIB sets schedulingInfoSIB1-BR-r13 to 10. 36.213 Table 7.1.6-1 gives 4 repetitions for value 10, and 36.213 Table 7.1.7.2.7-1 gives a TBS of 504. The table shows exactly that: SIB1 appears in 4 radio frames out of every 8, each time with TBS 504.
Those 4 radio frames are SFN 9, 11, 13 and 15, always in subframe 4. A 1.4 MHz cell has 6 resource blocks, so 36.211 Table 6.4.1-1 applies. With 4 repetitions in frame structure type 1, SIB1-BR is in subframe 4 of the odd radio frames when N_ID_cell mod 2 is 1. So this cell has an odd physical cell ID. PDSCH StartSymbol is 4, which is the fixed value for SIB1-BR when the system bandwidth is 10 RB or less.
SIB2 follows the SIB1-BR fields. In the capture, si-WindowLength-BR-r13 is ms40 and si-RepetitionPattern-r13 is everyRF. So SIB2 fills the 40 subframes from SFN 8 subframe 0 to SFN 11 subframe 9. si-Periodicity is rf8, so the next window starts at SFN 16. The TBS is 504 from si-TBS b504, and the start symbol is 2 from startSymbolBR-r13. Finally, si-Narrowband-r13 is 1, and 36.331 maps field value 1 to narrowband index 0, which is the index in the table.
One detail is easy to miss. SIB1-BR takes subframe 4 of SFN 9 and SFN 11 inside the SIB2 window. SIB2 is not sent in those two subframes, and repetition numbers 14 and 34 are missing from the table. So the table counts every subframe of the window, including the ones that SIB1-BR takes.
SIB1-BR repeats in odd frames in this cell : 4 repetitions per 8 radio frames, in subframe 4, with an odd N_ID_cell.SIB2 fills its whole window : everyRF with ms40 gives 40 consecutive subframes, every 8 radio frames.SIB1-BR takes priority over SIB2 : the two subframes SIB1-BR uses inside the window are skipped for SIB2.The start symbols differ : 4 for SIB1-BR because the cell is 1.4 MHz, and 2 for SIB2 from startSymbolBR-r13.
Example : MIB/SIB1/SIB2 on Spectrum Analyzer with 10 Mhz System Bandwidth
The rules above are easier to trust when you can see them on the air. This section looks at a 10 MHz LTE-M cell on a spectrum analyzer, where each channel appears as a block of energy in time and frequency. A 10 MHz cell has 50 resource blocks, so SIB1-BR uses 36.211 Table 6.4.1-2 and hops between narrowbands.
The image below is a spectrogram. Time runs from left to right over 500 ms, and frequency runs from top to bottom over the 10 MHz. The strip at the top is a zoom of the 40 ms marked on the time axis. The coloured boxes mark PDSCH carrying SIB2 in blue, PDSCH carrying SIB1 in yellow, PBCH in pink and PSS/SSS in black.

SIB1-BR appears regularly in two frequency positions, while SIB2 appears less often and in one position. The two positions of SIB1-BR are the narrowband hopping of 36.211 6.4.1.
The yellow boxes sit in two rows : SIB1-BR alternates between two narrowbands. For 50 resource blocks, m is 2 in the 36.211 6.4.1 equation, so the index i takes two values.The two rows alternate : each row repeats about every 40 ms, so SIB1-BR appears about every 20 ms. That matches 4 repetitions per 8 radio frames, in every second radio frame.The blue boxes stay in one row : SIB2 uses the single narrowband given by si-Narrowband-r13, and it repeats less often than SIB1-BR.The pink PBCH boxes come in pairs : the zoom shows the MIB in two neighbouring subframes, which is the repetition in subframe #9 before subframe #0.PSS/SSS stays in the centre : these legacy signals sit in the middle 6 resource blocks, which is why the SIB1-BR narrowbands exclude that region.
The Matlab code in the SIB1-BR section gives the same result for a cell with 50 resource blocks and N_ID_cell 309. It prints narrowband 5 and narrowband 0, two narrowbands for the two values of i. The exact narrowband indices of the cell on the spectrum analyzer are not known, but the two rows are the pattern that the code predicts.
Reference
[1] 3GPP TS 36.331 V13.2.0 (2016-06)
[2] 3GPP TS 36.213 V13.2.0 (2016-06)
[3] 3GPP TS 36.331 v19.3.0 - clause 5.2.1.2 and the MasterInformationBlock, SystemInformationBlockType1-BR and SystemInformationBlockType2 information elements with their field descriptions
[4] 3GPP TS 36.213 v19.4.0 - Table 7.1.6-1, clause 7.1.6.4A and Table 7.1.7.2.7-1
[5] 3GPP TS 36.211 v19.3.0 - clause 6.4.1 with Table 6.4.1-1 and Table 6.4.1-2