4G/LTE - LTE NB

 

 

 

MIB/SIB and Scheduling

 

It seems there is pretty big difference in terms of design concept between LTE and LTE-NB MIB/SIBs. To me, LTE-NB design concept seems closer to WCDMA MIB/SIB logic.

Overall operation of MIB/SIB for LTE-NB is described in 36.300 7.4 as summarized below.

  • MIB-NB and SystemInformationBlockType1-NB uses fixed scheduling (Same as legacy LTE)
  • The periodicity of MIB-NB is 640 ms (The periodicity of MIB in legacy LTE is 40 ms)
  • The periodicity of SIB1-NB is 2560 ms (The periodicity of SIB1 in legacy LTE is 80 ms)
  • MIB-NB contains all the information required to aquire SIB1 (In legacy LTE, SIB1 decoding information is configured by DCI 1A, not by MIB)
  • SIB1-NB contains all the information to aquire other SIBs (In legacy LTE, SIB1 carries only periodicity information of other SIBs, all other information required to decode other SIBs are carried by DCI 1A, not by SIB1)
  • BCCH and other logical channel cannot be transmitted in the same subframe (Different from Legacy LTE)
  • UE is not required to detect SIB changes in RRC_CONNECTED state (Different from legacy LTE. So, if network wants the UE to aquire the changed SIB, it may trigger RRC Release to put UE into IDLE mode and detect the changed SIBs.)

The practical effect is that an NB-IoT UE never needs a DCI to read system information. It learns where SIB1-NB is from MIB-NB, and where every other SI message is from SIB1-NB. The sections below follow that chain, from the decoding procedure through MIB-NB and SIB1-NB to SIB2-NB, with a decoded example for each message.

Followings are the topics with the details.

MIB/SIB Decoding Procedure

A UE that has just found an NB-IoT cell knows only its timing and its cell ID. Before it can send a preamble, it has to read MIB-NB, SIB1-NB and SIB2-NB, and each one tells it where to find the next.

When we think of MIB/SIB decoding, we usually think of following factors

  • i) In what order each of the SIB is decoded ?
  • ii) What kind of configuration information UE need to get to decode SIBs
  • iii) How a UE get those configuration information (by DCI ? or Higher layer signaling message ? )

The answer to all of these questions may be answered (hopefully) by a single illustration shown below. First, just take a look at this figure and see if you can make your own story to explain the process to others. (This kind of practice would be very helpful for you to learn anything new)

LTE-NB system information decoding sequence from cell search to MIB, SIB1 and SIB2 with the parameters used at each step

Each step gives the UE what it needs for the next one: cell search finds MIB-NB, schedulingInfoSIB1-r13 finds SIB1-NB, and the SIB1-NB scheduling fields find SIB2-NB and the other SIBs.

As you see, in terms of sequence of decoding SIB LTE-NB has no special differences from the legacy LTE or LTE-BL/CE(M1). It goes as MIB decoding --> SIB1 --> SIB2 and others.

In terms of SIB1 decoding, LTE-NB(M2) take a similar approach to LTE-M1 which is a little different from the legacy LTE. In LTE-NB, a parameter in MIB (as shown in (2)) determines the exact transmission timing and periodicity and PHY/MAC configuration. This is similar concept to LTE BL/CE(M1). It is a little bit different from legacy LTE in which SIB1 decoding information is predefined by 3GPP specification and DCI.

In terms of SIB2 and other SIB decoding, all the information that is required to decode these SIBs are informed to UE via SIB 1 parameters as shown in (3). DCI is not used here.

The most outstanding difference between LTE-NB(M2) and the legacy LTE SIB decoding is that DCI is not used in LTE-NB SIB decoding.  All the information (even PHY/MAC) that is required to decode SIBs are notified to UE over MIB or SIB1 as illustrated above.

  • Step (1) is cell search : NPSS, NSSS and NPBCH give timing, the cell ID and MIB-NB.
  • Step (2) uses one MIB-NB field : schedulingInfoSIB1-r13 fixes the repetitions and the TBS of SIB1-NB.
  • Step (3) uses four SIB1-NB fields : si-Periodicity-r13, si-RepetitionPattern-r13, sib-MappingInfo-r13 and si-TB-r13.
  • No DCI anywhere in the chain : every scheduling parameter comes from MIB-NB or SIB1-NB.

The same chain tells the UE when to read it again. MIB-NB carries systemInfoValueTag, and a change in it means that some SI message has changed. SIB1-NB can add a value tag for each SI message, systemInfoValueTagSI, so the UE can reacquire only the SI messages whose tags have changed. 36.331 v19.3.0 clause 5.2.1.3 describes both tags.

An NB-IoT UE in RRC_CONNECTED is not required to acquire system information, except in a few cases such as while T311 is running. So when essential system information changes, E-UTRAN may release the connection instead. In RRC_IDLE, E-UTRAN may notify the UE about an SI update through Direct Indication information in DCI format N2.

MIB-NB

In normal LTE, MIB carries very simple set of information. However, in LTE-NB MIB carries relatively large set of information. It carries following high level information.

  • i) System Timing : SFN(Partial data), HyperSFN(Partial data)
  • ii) Scheduling Information for SIB1-NB
  • iii) Access Barring
  • iv) Operation Mode Information for LTE-NB

Followings are from 36.331 5.2.1.2a Scheduling for NB-IoT MIB scheduling.

  • Uses a fixed schedule with a periodicity of 640 ms and repetitions made within 640 ms.
  • The first transmission of the MIB-NB is scheduled in subframe #0 of radio frames for which the SFN mod 64 = 0
  • Repetitions are scheduled in subframe #0 of all other radio frames.
  • The transmissions are arranged in 8 independently decodable blocks of 80 ms duration

The TDD version follows the same pattern in another subframe. 36.331 v19.3.0 clause 5.2.1.2a sends MasterInformationBlock-TDD-NB in subframe #9 instead of subframe #0, with the same 640 ms period and the same 8 blocks of 80 ms.

Following is based on 36.331 v19.3.0 (Release 19)

MasterInformationBlock-NB ::=   SEQUENCE {
    systemFrameNumber-MSB-r13       BIT STRING (SIZE (4)),
    hyperSFN-LSB-r13                BIT STRING (SIZE (2)),
    schedulingInfoSIB1-r13          INTEGER (0..15),
    systemInfoValueTag-r13          INTEGER (0..31),
    ab-Enabled-r13                  BOOLEAN,
    operationModeInfo-r13           CHOICE {
        inband-SamePCI-r13              Inband-SamePCI-NB-r13,
        inband-DifferentPCI-r13         Inband-DifferentPCI-NB-r13,
        guardband-r13                   Guardband-NB-r13,
        standalone-r13                  Standalone-NB-r13
    },
    additionalTransmissionSIB1-r15  BOOLEAN,
    ab-Enabled-5GC-r16              BOOLEAN,
    partEARFCN-r17                  CHOICE {
        spare                           BIT STRING (SIZE (2)),
        earfcn-LSB                      BIT STRING (SIZE (2))
    },
    spare                           BIT STRING (SIZE (6))
}

ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5}

Guardband-NB-r13 ::=            SEQUENCE {
    rasterOffset-r13                ChannelRasterOffset-NB-r13,
    spare                           BIT STRING (SIZE (3))
}

Inband-SamePCI-NB-r13 ::=       SEQUENCE {
    eutra-CRS-SequenceInfo-r13      INTEGER (0..31)
}

Inband-DifferentPCI-NB-r13 ::=  SEQUENCE {
    eutra-NumCRS-Ports-r13          ENUMERATED {same, four},
    rasterOffset-r13                ChannelRasterOffset-NB-r13,
    spare                           BIT STRING (SIZE (2))
}

Standalone-NB-r13 ::=           SEQUENCE {
    spare                           BIT STRING (SIZE (5))
}

The listing above is the v19.3.0 text. Three fields have been added since Release 13, and they take bits from the spare field, which has shrunk from 11 bits to 6. So MIB-NB stays at the same size.

  • additionalTransmissionSIB1-r15 : TRUE adds a SIB1-NB transmission in subframe #3. E-UTRAN sets it only when schedulingInfoSIB1 gives 16 repetitions.
  • ab-Enabled-5GC-r16 : TRUE enables access barring for UEs connected to 5GC, alongside ab-Enabled-r13 for EPC.
  • partEARFCN-r17 : earfcn-LSB carries the 2 least significant bits of the EARFCN for NTN bands that use a 100 kHz raster.

ab-Enabled : It stands for "access barring Enabled". If this IE is enabled, UE shall wait for SystemInformationBlockType14-NB before initiating RRC connection establishment or resume

operationModeInfo : This IE indicates the operation mode of the LTE-NB. There are four different types of Operation Mode as listed below.

  • Inband-SamePCI : indicates an in-band deployment and that the NB-IoT and LTE cell share the same physical cell id and have the same number of NRS and CRS ports.
  • Inband-DifferentPCI : indicates an in-band deployment and that the NB-IoT and LTE cell have different physical cell id.
  • guardband : indicates a guard-band deployment.
  • standalone : indicates a standalone deployment

schedulingInfoSIB1 : This IE indicates the index of the following table. The IE value itself is indicates I_TBS for SIB1-NB transmission and for each I_TBS different number of repetition occurs as mapped in the second column (Number of NPDSCH repetitions).

< 36.213 Table 16.4.1.3-3: Number of repetitions for NPDSCH carrying SystemInformationBlockType1-NB >

36.213 Table 16.4.1.3-3 number of NPDSCH repetitions for each value of schedulingInfoSIB1-NB

< 36.213 Table 16.4.1.5.2-1:Transport block size (TBS) table for NPDSCH carrying SystemInformationBlockType1-NB >

36.213 Table 16.4.1.5.2-1 transport block size for NPDSCH carrying SIB1-NB for each I TBS

The same index selects both values. For example, schedulingInfoSIB1 = 4 means 8 repetitions and ITBS = 4, which is a TBS of 328 bits.

Read the two tables together and a pattern shows. The repetition number cycles through 4, 8 and 16, and the TBS rises in steps of three: 208, 328, 440 and 680 bits. So schedulingInfoSIB1 picks one of three coverage levels and one of four SIB1-NB sizes at the same time. 36.213 v19.4.0 keeps both tables unchanged for FDD, and adds separate tables for TDD.

systemFrameNumber-MSB : We need 10 bits to represents SFN(0~1023). This IE represents 4 MSB of SFN and 6 remaining bits are derived implicitely from PBCH decoding process.

Example 1

Decoded BCCH-BCH-Message-NB, tester tree format. Field values are from a captured message, not from the specification.

BCCH-BCH-Message-NB
    message
        systemFrameNumber-MSB-r13: 00 [bit length 4, 4 LSB pad bits, 0000 .... decimal value 0]
        hyperSFN-LSB-r13: 00 [bit length 2, 6 LSB pad bits, 00.. .... decimal value 0]
        schedulingInfoSIB1-r13: 4 NPDSCH repetitions - TBS 208 bits (0)
        systemInfoValueTag-r13: 0
        .... ...0 ab-Enabled-r13: False
        operationModeInfo-r13: standalone-r13 (3)
            standalone-r13
                spare: 00 [bit length 5, 3 LSB pad bits, 0000 0... decimal value 0]
        spare: 0000 [bit length 11, 5 LSB pad bits, 0000 0000  000. .... decimal value 0]

The capture above is a small cell in standalone mode. The field schedulingInfoSIB1-r13 is 0, so SIB1-NB is sent with 4 repetitions and a TBS of 208 bits. It was taken before Release 15, so it ends in 11 spare bits and has no additionalTransmissionSIB1-r15 or later field.

SIB1-NB

SIB1-NB is the last message with a fixed schedule. Everything after it, SIB2-NB included, is found through the scheduling fields that SIB1-NB carries, so SIB1-NB has to reach every UE in the cell, including those in deep coverage.

Like in normal (Legacy) LTE, SIB1-NB also carries the information as follows :

  • i) Cell Access Related Information - PLMN Identity List, PLMN Identity, TA Code, Cell identity & Cell Status
  • ii) Cell Selection Information - Minimum Receiver Level
  • iii) Scheduling Information (Scheduling Information for other SIBs) - SI message type & Periodicity, SIB mapping Info, SI Window length

In terms of transmission schedule, SIB1-NB is transmitted as follows (based on 36.331 5.2.1.2a Scheduling for NB-IoT MIB scheduling)

  • Transmitted at a fixed schedule with a periodicity of 2560 ms (256 Radio Frames)
  • Transmitted in subframe #4 of every other frame in 16 continuous frames
  • The starting frame for the first transmission of the SIB1-NB is derived from the cell PCID and the number of repetitions within the 2560 ms period and repetitions are made, equally spaced, within the 2560 ms period
  • TBS for SystemInformationBlockType1-NB and the repetitions made within the 2560 ms are indicated by schedulingInfoSIB1 field in the MIB-NB

36.331 v19.3.0 clause 5.2.1.2a adds two cases to this schedule. When additionalTransmissionSIB1 is TRUE in MIB-NB, SIB1-NB is also sent in subframe #3 of the same radio frames. For TDD, SIB1-NB on the anchor carrier uses subframe #0 or subframe #4, and schedulingInfoSIB1 in MIB-TDD-NB says which.

As mentioned above, SIB1 periodicity is predefined to be same in all eNB, but the offset (Starting subframe = the subframe where the first SIB1 is transmitted) gets different depending on schedulingInfoSIB1 in MIB based on following tables.

36.213 Table 16.4.1.3-3 and Table 16.4.1.3-4 linked to show the SIB1-NB starting radio frame for each repetition number and cell ID

The number of repetitions from Table 16.4.1.3-3 selects a block of Table 16.4.1.3-4. The cell ID NIDNcell then selects the starting radio frame within the 256-frame period.

  • 4 repetitions : four possible starting frames, 0, 16, 32 or 48, chosen by NIDNcell mod 4.
  • 8 repetitions : two starting frames, 0 or 16, chosen by NIDNcell mod 2.
  • 16 repetitions : two starting frames, 0 or 1, chosen by NIDNcell mod 2.
  • The cell ID sets the offset : neighbouring cells with different cell IDs can start SIB1-NB in different frames.

Following is ASN structure of SIB1 defined in 3GPP 36.331.

Following is based on 36.331 v19.3.0 (Release 19)

SystemInformationBlockType1-NB ::=  SEQUENCE {
    hyperSFN-MSB-r13                    BIT STRING (SIZE (8)),
    cellAccessRelatedInfo-r13           SEQUENCE {
        plmn-IdentityList-r13               PLMN-IdentityList-NB-r13,
        trackingAreaCode-r13                TrackingAreaCode,
        cellIdentity-r13                    CellIdentity,
        cellBarred-r13                      ENUMERATED {barred, notBarred},
        intraFreqReselection-r13            ENUMERATED {allowed, notAllowed}
    },
    cellSelectionInfo-r13               SEQUENCE {
        q-RxLevMin-r13                      Q-RxLevMin,
        q-QualMin-r13                       Q-QualMin-r9
    },
    p-Max-r13                           P-Max                   OPTIONAL,   -- Need OP
    freqBandIndicator-r13               FreqBandIndicator-NB-r13,
    freqBandInfo-r13                    NS-PmaxList-NB-r13              OPTIONAL,   -- Need OR
    multiBandInfoList-r13               MultiBandInfoList-NB-r13        OPTIONAL,   -- Need OR
    downlinkBitmap-r13                  DL-Bitmap-NB-r13                OPTIONAL,   -- Cond SIB1
    eutraControlRegionSize-r13          ENUMERATED {n1, n2, n3}         OPTIONAL,   -- Cond inband
    nrs-CRS-PowerOffset-r13             ENUMERATED {dB-6,      dB-4dot77, dB-3,
                                                    dB-1dot77, dB0,       dB1,
                                                    dB1dot23,  dB2,       dB3,
                                                    dB4,       dB4dot23,  dB5,
                                                    dB6,       dB7,       dB8,
                                                    dB9}        OPTIONAL,   -- Cond inband-SamePCI
    schedulingInfoList-r13              SchedulingInfoList-NB-r13,
    si-WindowLength-r13                 ENUMERATED {ms160, ms320, ms480, ms640,
                                                    ms960, ms1280, ms1600, spare1},
    si-RadioFrameOffset-r13             INTEGER (1..15)     OPTIONAL,   -- Need OP
    systemInfoValueTagList-r13          SystemInfoValueTagList-NB-r13   OPTIONAL,   -- Need OR
    lateNonCriticalExtension            OCTET STRING                    OPTIONAL,
    nonCriticalExtension                SystemInformationBlockType1-NB-v1350    OPTIONAL
}

PLMN-IdentityList-NB-r13 ::=        SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13

PLMN-IdentityInfo-NB-r13 ::=        SEQUENCE {
    plmn-Identity-r13                       PLMN-Identity,
    cellReservedForOperatorUse-r13          ENUMERATED {reserved, notReserved},
    attachWithoutPDN-Connectivity-r13       ENUMERATED {true}   OPTIONAL    -- Need OP
}

SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13

SchedulingInfo-NB-r13::=        SEQUENCE {
    si-Periodicity-r13              ENUMERATED {rf64, rf128, rf256, rf512,
                                                rf1024, rf2048, rf4096, spare},
    si-RepetitionPattern-r13        ENUMERATED {every2ndRF, every4thRF, every8thRF,
                                                every16thRF},
    sib-MappingInfo-r13             SIB-MappingInfo-NB-r13,
    si-TB-r13                       ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680}
}

SystemInfoValueTagList-NB-r13 ::=   SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF
                                        SystemInfoValueTagSI-r13

SIB-MappingInfo-NB-r13 ::=          SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13

SIB-Type-NB-r13 ::=                 ENUMERATED {
                                        sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13,
                                        sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14,
                                        sibType20-NB-r14, sibType22-NB-r14}

SystemInformationBlockType1-NB-v1350 ::=    SEQUENCE {
    cellSelectionInfo-v1350             CellSelectionInfo-NB-v1350  OPTIONAL,   -- Cond Qrxlevmin
    nonCriticalExtension                SystemInformationBlockType1-NB-v1430    OPTIONAL
}

SystemInformationBlockType1-NB-v1430 ::=    SEQUENCE {
    cellSelectionInfo-v1430             CellSelectionInfo-NB-v1430      OPTIONAL,   -- Need OR
    nonCriticalExtension                SystemInformationBlockType1-NB-v1450                    OPTIONAL
}

SystemInformationBlockType1-NB-v1450 ::= SEQUENCE {
    nrs-CRS-PowerOffset-v1450               ENUMERATED {dB-6,  dB-4dot77, dB-3,
                                                    dB-1dot77, dB0,       dB1,
                                                    dB1dot23,  dB2,       dB3,
                                                    dB4,       dB4dot23,  dB5,
                                                    dB6,       dB7,       dB8,
                                                    dB9}        OPTIONAL,   -- Cond inband-SamePCI-ExceptAnchor
    nonCriticalExtension                SystemInformationBlockType1-NB-v1530                    OPTIONAL
}

SystemInformationBlockType1-NB-v1530 ::= SEQUENCE {
    tdd-Parameters-r15                      SEQUENCE {
        tdd-Config-r15                          TDD-Config-NB-r15,
        tdd-SI-CarrierInfo-r15                  ENUMERATED {anchor, non-anchor},
        tdd-SI-SubframesBitmap-r15              DL-Bitmap-NB-r13        OPTIONAL    -- Cond TDD-SI-NonAnchor
    }   OPTIONAL,   -- Cond TDD
    schedulingInfoList-v1530            SchedulingInfoList-NB-v1530     OPTIONAL,   -- Need OR
    nonCriticalExtension                SystemInformationBlockType1-NB-v1610    OPTIONAL
}

SystemInformationBlockType1-NB-v1610 ::= SEQUENCE {
    cellAccessRelatedInfo-5GC-r16           SEQUENCE {
        plmn-IdentityList-r16               PLMN-IdentityList-5GC-NB-r16,
        trackingAreaCode-5GC-r16            TrackingAreaCode-5GC-r15,
        cellIdentity-r16                    CellIdentity    OPTIONAL,   -- Need OP
        cellBarred-5GC-r16                  ENUMERATED {barred, notBarred}
    }   OPTIONAL,   -- Need OR
    nonCriticalExtension                SystemInformationBlockType1-NB-v1700    OPTIONAL
}

SystemInformationBlockType1-NB-v1700 ::= SEQUENCE {
    cellAccessRelatedInfo-NTN-r17           SEQUENCE {
        cellBarred-NTN-r17                      ENUMERATED {barred, notBarred},
        plmn-IdentityList-v1700             PLMN-IdentityList-NB-v1700  OPTIONAL -- Need OR
    } OPTIONAL, -- Need OR
    nonCriticalExtension                        SystemInformationBlockType1-NB-v1900    OPTIONAL
}

SystemInformationBlockType1-NB-v1900 ::= SEQUENCE {
    sf-OperationMode-r19                ENUMERATED {barred, notBarred}  OPTIONAL,   -- Need OP
    nonCriticalExtension                SystemInformationBlockType1-NB-v1920        OPTIONAL
}

SystemInformationBlockType1-NB-v1920 ::= SEQUENCE {
    pws-Support-r19                         ENUMERATED {true}   OPTIONAL,   -- Need OR
    nonCriticalExtension                        SEQUENCE {}                     OPTIONAL
}

The listing above ends with the v19.3.0 extension chain, which Release 13 left as an empty nonCriticalExtension. The chain adds cell selection extensions in v1350 and v1430, and a second NRS power offset in v1450. The v1530 extension adds TDD parameters and a second scheduling list. Later releases add 5GC access information in v1610, NTN access information in v1700, and sf-OperationMode-r19 and pws-Support-r19 in v1900 and v1920.

SIB-Type-NB-r13 has also changed. Its three spare values now carry sibType15-NB-r14, sibType20-NB-r14 and sibType22-NB-r14, so the list covers SIB3, SIB4, SIB5, SIB14, SIB15, SIB16, SIB20 and SIB22.

downlinkBitmap : This indicate which subframe can be used for downlink transmission. If this IE is missing, it is assumed that any subframe except NPSS/NSSS/NPBCH/SIB1-NB subframe can be used for downlink transmission.

eutraControlRegionSize : This applies only to in-band Operation mode. It indicates how many OFDM symbols are used for control region.

si-RadioFrameOffset : This indicates the Offset to calculate the start of the SI window in the unit of radio frames. If the field is absent, no offset is applied.

si-Periodicity : This sepcifies periodicity of SI message (SIB message other than SIB1) in the unit of radio frames.

si-WindowLength : This specifies the SI window size for all SI messages (SIB message other than SIB1) in the unit of ms.  

si-RepetitionPattern : This Indicates the starting radio frames within the SI window used for SI message transmission.

si-TB : This specifies the transport block size for the SI message it belongs to (SIB message other than SIB1) in the unit of bits.

36.331 v19.3.0 clause 5.2.1.2a adds two rules for these fields. The SI-windows of different SI messages never overlap, so only one SI message is sent within one SI-window. Within its window, an SI message is sent over 2 or 8 consecutive NB-IoT downlink subframes, depending on its TBS.

Example 1

Decoded SystemInformationBlockType1-NB, tester tree format. Field values are from a captured message, not from the specification.

systemInformationBlockType1-r13
    hyperSFN-MSB-r13: 00 [bit length 8, 0000 0000 decimal value 0]
    cellAccessRelatedInfo-r13
        plmn-IdentityList-r13: 1 item
            Item 0
                PLMN-IdentityInfo-NB-r13
                    plmn-Identity-r13
                        mcc: 3 items
                            Item 0
                                MCC-MNC-Digit: 0
                            Item 1
                                MCC-MNC-Digit: 0
                            Item 2
                                MCC-MNC-Digit: 1
                        mnc: 2 items
                            Item 0
                                MCC-MNC-Digit: 0
                            Item 1
                                MCC-MNC-Digit: 1
                    cellReservedForOperatorUse-r13: notReserved (1)
                    attachWithoutPDN-Connectivity-r13: true (0)
        trackingAreaCode-r13: 0001 [bit length 16, 0000 0000  0000 0001 decimal value 1]
        cellIdentity-r13: 00000010
        cellBarred-r13: notBarred (1)
        intraFreqReselection-r13: allowed (0)
    cellSelectionInfo-r13
        q-RxLevMin-r13: -140dBm (-70)
        q-QualMin-r13: -34dB
    p-Max-r13: -30dBm
    freqBandIndicator-r13: 2
    eutraControlRegionSize-r13: n2 (1)
    nrs-CRS-PowerOffset-r13: dB6 (12)
    schedulingInfoList-r13: 1 item
        Item 0
            SchedulingInfo-NB-r13
                si-Periodicity-r13: rf64 (0)
                si-RepetitionPattern-r13: every4thRF (1)
                sib-MappingInfo-r13: 1 item
                    Item 0
                        SIB-Type-NB-r13: sibType3-NB-r13 (0)
                si-TB-r13: b256 (3)
    si-WindowLength-r13: ms160 (0)

The capture above schedules one SI message, which carries SIB3-NB. That message repeats every 64 radio frames with a TBS of 256 bits. Its SI-window is 160 ms long. The capture also carries eutraControlRegionSize-r13 and nrs-CRS-PowerOffset-r13, which are defined only for in-band operation. The MIB-NB capture of Example 1 shows standalone mode, so the two captures are not from the same cell configuration.

SIB2-NB

SIB2-NB carries the common radio resource configuration: random access, paging, NPDSCH, NPUSCH and power control. It is the SI message a UE needs before it can send its first preamble. The listing below follows its RACH branch down to NPRACH-Parameters-NB-r13, and the RACH page covers those NPRACH fields in detail.

Following is based on 36.331 v19.3.0 (Release 19)

SystemInformationBlockType2-NB-r13 ::=  SEQUENCE {
    radioResourceConfigCommon-r13           RadioResourceConfigCommonSIB-NB-r13,
    ue-TimersAndConstants-r13               UE-TimersAndConstants-NB-r13,
    freqInfo-r13                            SEQUENCE {
        ul-CarrierFreq-r13                      CarrierFreq-NB-r13          OPTIONAL,   -- Need OP
        additionalSpectrumEmission-r13          AdditionalSpectrumEmission
    },
    timeAlignmentTimerCommon-r13            TimeAlignmentTimer,
    multiBandInfoList-r13   SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission        OPTIONAL,   -- Need OR
    lateNonCriticalExtension                OCTET STRING                    OPTIONAL,
    ...,
    [[  cp-Reestablishment-r14              ENUMERATED {true}               OPTIONAL        -- Need OP
    ]],
    [[  servingCellMeasInfo-r14             ENUMERATED {true}               OPTIONAL,       -- Need OR
        cqi-Reporting-r14                   ENUMERATED {true}               OPTIONAL        -- Need OR
    ]],
    [[  enhancedPHR-r15                     ENUMERATED {true}       OPTIONAL,   -- Need OR
        freqInfo-v1530                      SEQUENCE {
            tdd-UL-DL-AlignmentOffset-r15       TDD-UL-DL-AlignmentOffset-NB-r15
        }   OPTIONAL,       -- Cond TDD
        cp-EDT-r15                          ENUMERATED {true}       OPTIONAL,   -- Need OR
        up-EDT-r15                          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
        rai-ActivationEnh-r16               ENUMERATED {true}       OPTIONAL    -- Need OR
    ]],
    [[  gnss-PositionFixDurationReporting-r18   ENUMERATED {true}       OPTIONAL    -- Need OR
    ]],
    [[  cp-CB-Msg3-EDT-r19                  ENUMERATED {true}       OPTIONAL,   -- Need OR
        up-CB-Msg3-EDT-r19                  ENUMERATED {true}       OPTIONAL    -- Need OR
    ]]
}

RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE {
    rach-ConfigCommon-r13                   RACH-ConfigCommon-NB-r13,
    bcch-Config-r13                         BCCH-Config-NB-r13,
    pcch-Config-r13                         PCCH-Config-NB-r13,
    nprach-Config-r13                       NPRACH-ConfigSIB-NB-r13,
    npdsch-ConfigCommon-r13                 NPDSCH-ConfigCommon-NB-r13,
    npusch-ConfigCommon-r13                 NPUSCH-ConfigCommon-NB-r13,
    dl-Gap-r13                              DL-GapConfig-NB-r13         OPTIONAL,       -- Need OP
    uplinkPowerControlCommon-r13            UplinkPowerControlCommon-NB-r13,
    ...,
    [[  nprach-Config-v1330                 NPRACH-ConfigSIB-NB-v1330   OPTIONAL        -- Need OR
    ]],
    [[  nprach-Config-v1450                 NPRACH-ConfigSIB-NB-v1450   OPTIONAL        -- Cond EnhPowerControl
    ]],
    [[  nprach-Config-v1530                 NPRACH-ConfigSIB-NB-v1530   OPTIONAL,   -- Need OR
        dl-Gap-v1530                        DL-GapConfig-NB-v1530       OPTIONAL,   -- Cond TDD
        wus-Config-r15                      WUS-Config-NB-r15           OPTIONAL    -- Need OR
    ]],
    [[  nprach-Config-v1550                 NPRACH-ConfigSIB-NB-v1550   OPTIONAL    -- Cond TDD1
    ]],
    [[
        gwus-Config-r16                     GWUS-Config-NB-r16          OPTIONAL,   -- Need OR
        nrs-NonAnchorConfig-r16             ENUMERATED {true}           OPTIONAL,   -- Need OR
        ue-SpecificDRX-CycleMin-r16         ENUMERATED {rf32, rf64, rf128, rf256, rf512,
                                                            rf1024}     OPTIONAL    -- Need OR
    ]],
    [[  ntn-ConfigCommon-r17                SEQUENCE {
            ta-Report-r17                   ENUMERATED {enabled}        OPTIONAL,   -- Need OR
            t318-r17                        ENUMERATED {
                                                ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000},
            nprach-TxDurationFmt01-r17      NPRACH-TxDurationFmt01-NB-r17   OPTIONAL,   -- Need OR
            nprach-TxDurationFmt2-r17       NPRACH-TxDurationFmt2-NB-r17    OPTIONAL,   -- Need OR
            npusch-TxDuration-r17           NPUSCH-TxDuration-NB-r17        OPTIONAL    -- Need OR
        }   OPTIONAL    -- Cond NTN
    ]],
    [[  cb-Msg3-ConfigSIB-NB-r19            CB-Msg3-ConfigSIB-NB-r19    OPTIONAL    -- Need OR
    ]]
}

RACH-ConfigCommon-NB-r13 ::=        SEQUENCE {
    preambleTransMax-CE-r13             PreambleTransMax,
    powerRampingParameters-r13          PowerRampingParameters,
    rach-InfoList-r13                   RACH-InfoList-NB-r13,
    connEstFailOffset-r13               INTEGER (0..15)                 OPTIONAL,   -- Need OP
    ...,
    [[  powerRampingParameters-v1450    PowerRampingParameters-NB-v1450 OPTIONAL    -- Need OR
    ]],
    [[ rach-InfoList-v1530              RACH-InfoList-NB-v1530  OPTIONAL -- Cond EDT
    ]]
}

RACH-InfoList-NB-r13 ::=    SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13

RACH-Info-NB-r13    ::=     SEQUENCE {
    ra-ResponseWindowSize-r13           ENUMERATED {
                                            pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10},
    mac-ContentionResolutionTimer-r13   ENUMERATED {
                                            pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64}
}

NPRACH-ConfigSIB-NB-r13 ::=         SEQUENCE {
    nprach-CP-Length-r13                ENUMERATED {us66dot7, us266dot7},
    rsrp-ThresholdsPrachInfoList-r13    RSRP-ThresholdsNPRACH-InfoList-NB-r13   OPTIONAL,   -- Need OR
    nprach-ParametersList-r13       NPRACH-ParametersList-NB-r13
}

NPRACH-ParametersList-NB-r13 ::=    SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13

NPRACH-Parameters-NB-r13::=         SEQUENCE {
    nprach-Periodicity-r13                  ENUMERATED {ms40, ms80, ms160, ms240,
                                                        ms320, ms640, ms1280, ms2560},
    nprach-StartTime-r13                    ENUMERATED {ms8, ms16, ms32, ms64,
                                                        ms128, ms256, ms512, ms1024},
    nprach-SubcarrierOffset-r13             ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1},
    nprach-NumSubcarriers-r13               ENUMERATED {n12, n24, n36, n48},
    nprach-SubcarrierMSG3-RangeStart-r13    ENUMERATED {zero, oneThird, twoThird, one},
    maxNumPreambleAttemptCE-r13             ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1},
    numRepetitionsPerPreambleAttempt-r13    ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128},
    npdcch-NumRepetitions-RA-r13            ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
                                                        r256, r512, r1024, r2048,
                                                        spare4, spare3, spare2, spare1},
    npdcch-StartSF-CSS-RA-r13               ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64},
    npdcch-Offset-RA-r13                    ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
}

RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range

Release 13 defined every field in the listing above without an extension group. 36.331 v19.3.0 adds groups for NPRACH format 2 and TDD, power ramping, early data transmission, WUS, NTN, and the Release 19 CB-Msg3 configuration. It also marks dl-Gap-r13, ul-CarrierFreq-r13, multiBandInfoList-r13, lateNonCriticalExtension and rsrp-ThresholdsPrachInfoList-r13 as OPTIONAL, which the Release 13 copy on this page did not show.

Example

Decoded SystemInformationBlockType2-NB, tester tree format. Field values are from a captured message, not from the specification.

sib2-r13
    radioResourceConfigCommon-r13
        rach-ConfigCommon-r13
            preambleTransMax-CE-r13: n20 (7)
            powerRampingParameters-r13
                powerRampingStep: dB4 (2)
                preambleInitialReceivedTargetPower: dBm-92 (14)
            rach-InfoList-r13: 1 item
                Item 0
                    RACH-Info-NB-r13
                        ra-ResponseWindowSize-r13: pp10 (7)
                        mac-ContentionResolutionTimer-r13: pp8 (4)
        bcch-Config-r13
            modificationPeriodCoeff-r13: n16 (0)
        pcch-Config-r13
            defaultPagingCycle-r13: rf128 (0)
            nB-r13: fourT (0)
            npdcch-NumRepetitionPaging-r13: r1 (0)
        nprach-Config-r13
            nprach-CP-Length-r13: us66dot7 (0)
            nprach-ParametersList-r13: 1 item
                Item 0
                    NPRACH-Parameters-NB-r13
                        nprach-Periodicity-r13: ms640 (5)
                        nprach-StartTime-r13: ms8 (0)
                        nprach-SubcarrierOffset-r13: n12 (1)
                        nprach-NumSubcarriers-r13: n12 (0)
                        nprach-SubcarrierMSG3-RangeStart-r13: one (3)
                        maxNumPreambleAttemptCE-r13: n10 (6)
                        numRepetitionsPerPreambleAttempt-r13: n1 (0)
                        npdcch-NumRepetitions-RA-r13: r16 (4)
                        npdcch-StartSF-CSS-RA-r13: v4 (2)
                        npdcch-Offset-RA-r13: zero (0)
        npdsch-ConfigCommon-r13
            nrs-Power-r13: 1dBm
        npusch-ConfigCommon-r13
            ack-NACK-NumRepetitions-Msg4-r13: 1 item
                Item 0
                    ACK-NACK-NumRepetitions-NB-r13: r1 (0)
            dmrs-Config-r13
                threeTone-BaseSequence-r13: 0
                threeTone-CyclicShift-r13: 0
                sixTone-CyclicShift-r13: 0
            ul-ReferenceSignalsNPUSCH-r13
                .... 0... groupHoppingEnabled-r13: False
                groupAssignmentNPUSCH-r13: 0
        uplinkPowerControlCommon-r13
            p0-NominalNPUSCH-r13: -92dBm
            alpha-r13: al1 (7)
            deltaPreambleMsg3-r13: -2dB (-1)
    ue-TimersAndConstants-r13
        t300-r13: ms2500 (0)
        t301-r13: ms2500 (0)
        t310-r13: ms0 (0)
        n310-r13: n1 (0)
        t311-r13: ms1000 (0)
        n311-r13: n1 (0)
    freqInfo-r13
        additionalSpectrumEmission-r13: 1
    timeAlignmentTimerCommon-r13: infinity (7)
                               sib-TypeAndInfo-r13 item: sib3-r13 (1)

The capture above configures one NPRACH resource with format 0, because nprach-CP-Length-r13 is us66dot7. That resource occurs every 640 ms, 8 ms into the period, on 12 subcarriers from subcarrier 12. RAR and Msg4 NPDCCH use 16 repetitions. The last line of the capture starts the next item of the SI message, and it is kept as captured.

  • nprach-Periodicity-r13 = ms640 : one NPRACH occasion every 640 ms.
  • nprach-SubcarrierOffset-r13 = n12 and nprach-NumSubcarriers-r13 = n12 : the preamble hops within subcarriers 12 to 23.
  • numRepetitionsPerPreambleAttempt-r13 = n1 : one repetition per attempt, which suits good coverage.
  • maxNumPreambleAttemptCE-r13 = n10 : up to 10 attempts at this coverage level.

Reference

[1] 3GPP TS 36.331

[2] NB-IoT : A SUSTAINABLE TECHNOLOGY FOR CONNECTING BILLIONS OF DEVICES (Ericsson)

[3] LTE evolution for IoT connectivity

[4] 3GPP TS 36.331 v19.3.0 - clause 5.2.1.2a for NB-IoT scheduling, MasterInformationBlock-NB, SystemInformationBlockType1-NB and SystemInformationBlockType2-NB

[5] 3GPP TS 36.213 v19.4.0 - Table 16.4.1.3-3, Table 16.4.1.3-4 and Table 16.4.1.5.2-1 for SIB1-NB