4G/LTE - BL/CE

 

 

 

MIB/SIB

 

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

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 36.331 v19.3.0 (Release 19)

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.>

36.213 Table 7.1.6-1, number of PDSCH repetitions for SIB1-BR by schedulingInfoSIB1-BR-r13 value

 

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, tester tree format. Field values are from a captured message, not from the specification.

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.

 

schedulingInfoSIB1-BR-r13 mapped through 36.213 Table 7.1.6-1 onto 36.211 Tables 6.4.1-1 and 6.4.1-2

 

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.  

 

36.211 6.4.1 equations for the SIB1-BR narrowband set and narrowband index

 

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.

 

schedulingInfoSIB1-BR-r13 mapped onto 36.213 Table 7.1.7.2.7-1, the TBS table for SIB1-BR

 

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 :

    In case of PDSCH for SIB1-BR, l_DataStart is determined 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

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 36.331 v19.3.0 (Release 19)

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 :

    In case of PDSCH for SIB1-BR, l_DataStart is determined as follows

    • l_DataStart = 3 when the system bandwidth > 10 RB
    • l_DataStart = 4 when the system bandwidth <= 10 RB

    In case of PDSCH for non SIB1-BR(User Data), l_DataStart is determined as follows

    • 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 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 36.331 v19.3.0 (Release 19)

            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

36.213 TBS table with the 6 PRB column for I_TBS 0 to 9 highlighted as the si-TBS values

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, tester tree format. Field values are from a captured message, not from the specification.

+-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, tester tree format. Field values are from a captured message, not from the specification.

+-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 time line showing si-Periodicity, si-WindowLength-BR-r13 and si-RepetitionPattern-r13

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, tester tree format. Field values are from a captured message, not from the specification.

+-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, tester tree format. Field values are from a captured message, not from the specification.

+-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.

 

36.213 TBS table with the 6 PRB column for I_TBS 0 to 9 highlighted as the si-TBS values

 

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, tester tree format. Field values are from a captured message, not from the specification.

+-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 36.331 v19.3.0 (Release 19)

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, tester tree format. Field values are from a captured message, not from the specification.

+-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, tester tree format. Field values are from a captured message, not from the specification.

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, tester tree format. Field values are from a captured message, not from the specification.

+-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.

 

Spectrogram of a 10 MHz LTE-M cell over 500 ms with PBCH, PSS/SSS and the PDSCH for SIB1 and SIB2 marked

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