5G/NR - MIB / SIB                                           Home : www.sharetechnote.com

 

 

 

 

MIB / SIB

 

Overall functionality and structure of MIB / SIB  of NR is almost same as LTE, but there is one major differeces between NR and LTE. In LTE (actually all other techology except NR), all the SIBs are broadcast periodically regardless of whether UE want it or not. However, in NR there are two different types of SIBs. One type is the one being transmitted periodically like SIBs in LTE and the other type is the one being transmitted only when there is the request from UE.  

 

 

 

Overall MIB/SIB Transmission Flow

 

Overall MIB / SIB transmission and relationships among SIBs is illustrated as below (38.331 - 5.2 System information)  

 

 

 

 

MIB/SIB Aquisition Process

 

MIB / SIB acquisition process would vary depending on cases. I will describe the overall MIB/SIB acquisition process with various cases.

 

 

< Case 1 : Upon Power On and No Stored SIB in UE, No-OnDemand SI indication >

    i) Power On

    ii) Search Cell and Decode MIB

    iii) Store the decoded MIB

    iv) Check if CellBarred = barred, stop there and if not, move to next step.

    v) Using the parameters in MIB, try decoding SIB1.

    vi) [if SIB1 decoding is successful] store the infromation and then move to next step.

    vii) [assuming that SIB1 indicate No On-Demand SI] Decode Other SIBs (SI)

 

 

< Case 2 : Upon Power On and No Stored SIB in UE, OnDemand SI indication >

    i) Power On

    ii) Search Cell and Decode MIB

    iii) Store the decoded MIB

    iv) Check if CellBarred = barred, stop there and if not, move to next step.

    v) Using the parameters in MIB, try decoding SIB1.

    vi) [if SIB1 decoding is successful] store the infromation and then move to next step.

    vii) [assuming that SIB1 indicate On-Demand SI] Check the RRC Status (NOTE : Based on 38.331-5.2.2.3.3]

      a) if RRC Status is in RRC_IDLE or RRC_INACTIVE

      • Trigger lower layer to initiate preamble transmission procedure
      • Aquire the requiested SI messages when Acknowledgement for SI request is received

      b) if RRC Status is in RRC_CONNECTED

      • [Process is not defined yet.]

 

 

 

MasterInformationBlock

 

 

Followings are the overall characteristics of MIB (MasterInformationBlock). See 38.331-5.2.1 and 38.213-4.1 for further details of MIB scheduling.

  • Transmitted over BCH / PBCH
  • Transmitted with the periodicity of 80 ms and within this 80 ms repeatative transmission happens
  • For initial cell selection, a UE may assume that half frames with SS/PBCH blocks occur with a periodicity of 2 frames
  • Includes the parameters that are required to decode SIB1 (SystemInformationType1)

 

  

MIB ::= SEQUENCE {

    systemFrameNumber                   BIT STRING (SIZE (6)),

    subCarrierSpacingCommon             ENUMERATED {scs15or60, scs30or120},

    ssb-SubcarrierOffset                INTEGER (0..15),

    dmrs-TypeA-Position                 ENUMERATED {pos2, pos3},

    pdcch-ConfigSIB1                    INTEGER (0..255),

    cellBarred                          ENUMERATED {barred, notBarred},

    intraFreqReselection                ENUMERATED {allowed, notAllowed},

    spare                               BIT STRING (SIZE (1))

}

 

 

subCarrierSpacingCommon : Indicates the Subcarrier spacing for SIB1, Msg.2/4 for initial access and SI-messages. Values 15 and 30 kHz are applicable for carrier frequencies < 6GHz; Values 60 and 120 kHz are applicable for carrier frequencies > 6GHz

 

ssb-subcarrierOffset : This corresponds to k_ssb(38.213). Indicates the frequency domain offset between SSB and the overall resource block grid in number of subcarriers. If k_ssb requires the value higher than 15, it is represented by the combination of a PBCH data field and ssb-subcarrierOffset.

 

dmrs-TypeA-Position : Indicates Position of (first) DL DM-RS.

 

pdcchConfigSIB1: Determines a bandwidth for PDCCH/SIB, a common ControlResourceSet (CORESET), a common search space and necessary PDCCH parameters. This corresponds to RMSI-PDCCH-Config.

 

 

NOTE : How many bits are required for BCCH/MIB ?

In many cases, we are using PBCH and MIB interchangeably.. but you would know that they are not exactly same. PBCH is the name of the channel that carries MIB in it. Simply put, PBCH is a kind of container and MIB is the contents of the container. So you may easily guess that the size of PBCH (the container) would be at least the same or larger than the size of MIB(the contents). In order to clarify on this, you should look at the ASN structure of BCCH for MIB transmission. It is defined as follows.

 

BCCH-BCH-Message ::=            SEQUENCE {

    message                               BCCH-BCH-MessageType

}

 

BCCH-BCH-MessageType ::=        CHOICE {

    mib                                      MIB,

    messageClassExtension           SEQUENCE {}

}

 

As you see here, BCCH-BCH is made of one choice parameter which has two elements (MIB or messageClassExtension). So this choice parameter requires 1 bit. As a result, BCCH-BCH bit length can be one of the followings :

    i) bit length of BCCH-BCH = bit length of mib + 1

    ii) bit length of BCCH-BCH = messageClassExtension + 1

At least in the latest spec (38.331 f03), messageClassExtension is not defined. So let's think of case 1. To calculate the case 1, let's figure out the bit length of mib message. It can be counted as follows.

 

MIB ::= SEQUENCE {

    systemFrameNumber                   BIT STRING (SIZE (6)), => 6 bits

    subCarrierSpacingCommon             ENUMERATED {scs15or60, scs30or120}, => 1 bit

    ssb-SubcarrierOffset                INTEGER (0..15), => 4 bits

    dmrs-TypeA-Position                 ENUMERATED {pos2, pos3},  => 1 bit

    pdcch-ConfigSIB1                    INTEGER (0..255), => 8 bits

    cellBarred                          ENUMERATED {barred, notBarred},  => 1 bit

    intraFreqReselection                ENUMERATED {allowed, notAllowed}, => 1 bit

    spare                               BIT STRING (SIZE (1)) => 1 bit

}

 

If you sum up all the number in red, you would get 23 bits. It means the size of MIB is 23 bits.

Therefore, the size of BCCH-BCH = 23 + 1 = 24 bit. This 24 bit is the input data (A) of PBCH transport channel Process

 

 

 

SystemInformationBlockType1

 

 

Followings are the overall characteristics of SIB1 (SystemInformationBlockType1)

  • Transmitted over DL-SCH
  • Transmitted with the periodicity of [X] ms and within this [X] ms repeatative transmission happens
  • Includes information regarding the availability and scheduling (e.g. periodcity, SI-window size) of other SIB
  • Indicates whether they (i.e. other SIBs) are provided via periodic broadcast basis or only on-demand basis
  • (If other SIBs are provided on-demand then SIB1) Includes information for the UE to perform SI request   

 

36.331-f30

 

SIB1 ::=        SEQUENCE {

    cellSelectionInfo                   SEQUENCE {

        q-RxLevMin                          Q-RxLevMin,

        q-RxLevMinOffset                    INTEGER (1..8)      OPTIONAL,   -- Need R

        q-RxLevMinSUL                       Q-RxLevMin          OPTIONAL,   -- Need R

        q-QualMin                           Q-QualMin           OPTIONAL,   -- Need R

        q-QualMinOffset                     INTEGER (1..8)      OPTIONAL    -- Need R

    }    OPTIONAL,   -- Need S

    cellAccessRelatedInfo               CellAccessRelatedInfo,

    connEstFailureControl               ConnEstFailureControl   OPTIONAL,   -- Need R

    si-SchedulingInfo                   SI-SchedulingInfo       OPTIONAL,   -- Need R

    servingCellConfigCommon             ServingCellConfigCommonSIB    OPTIONAL,   -- Need R

    ims-EmergencySupport                ENUMERATED {true}             OPTIONAL,   -- Need R

    eCallOverIMS-Support                ENUMERATED {true}             OPTIONAL,   -- Cond Absent

    ue-TimersAndConstants               UE-TimersAndConstants         OPTIONAL,   -- Need R

 

    uac-BarringInfo                     SEQUENCE {

        uac-BarringForCommon                UAC-BarringPerCatList     OPTIONAL,   -- Need S

        uac-BarringPerPLMN-List             UAC-BarringPerPLMN-List   OPTIONAL,   -- Need S

        uac-BarringInfoSetList              UAC-BarringInfoSetList,

        uac-AccessCategory1-SelectionAssistanceInfo CHOICE {

            plmnCommon                      UAC-AccessCategory1-SelectionAssistanceInfo,

            individualPLMNList              SEQUENCE (SIZE (2..maxPLMN))

                                               OF UAC-AccessCategory1-SelectionAssistanceInfo

        }   OPTIONAL

    }     OPTIONAL,   -- Need R

 

    useFullResumeID                     ENUMERATED {true}    OPTIONAL,   -- Need N

    lateNonCriticalExtension            OCTET STRING         OPTIONAL,

    nonCriticalExtension                SEQUENCE{}           OPTIONAL

}

 

UAC-AccessCategory1-SelectionAssistanceInfo ::= ENUMERATED {a, b, c}

 

 

ServingCellConfigCommonSIB ::=      SEQUENCE {

    downlinkConfigCommon                DownlinkConfigCommonSIB,

    uplinkConfigCommon                  UplinkConfigCommonSIB   OPTIONAL,   -- Need R

    supplementaryUplink                 UplinkConfigCommonSIB   OPTIONAL,   -- Need R

    n-TimingAdvanceOffset               ENUMERATED { n0, n25560, n39936 }   OPTIONAL, -- Need S

    ssb-PositionsInBurst                    SEQUENCE {

        inOneGroup                          BIT STRING (SIZE (8)),

        groupPresence                       BIT STRING (SIZE (8))                                       OPTIONAL -- Cond Above6GHzOnly

    },

    ssb-PeriodicityServingCell          ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160},

    tdd-UL-DL-ConfigurationCommon       TDD-UL-DL-ConfigCommon    OPTIONAL, -- Cond TDD

    ss-PBCH-BlockPower                  INTEGER (-60..50),

    ...

}

 

DownlinkConfigCommonSIB ::=     SEQUENCE {

    frequencyInfoDL                 FrequencyInfoDL-SIB,

    initialDownlinkBWP              BWP-DownlinkCommon,

    bcch-Config                     BCCH-Config,

    pcch-Config                     PCCH-Config,

    ...

}

 

 

BCCH-Config ::=    SEQUENCE {  modificationPeriodCoeff   ENUMERATED {n2, n4, n8, n16},

    ...

}

 

 

PCCH-Config ::=             SEQUENCE {

    defaultPagingCycle                  PagingCycle,

    nAndPagingFrameOffset               CHOICE {

        oneT                                NULL,

        halfT                               INTEGER (0..1),

        quarterT                            INTEGER (0..3),

        oneEighthT                          INTEGER (0..7),

        oneSixteenthT                       INTEGER (0..15)

    },

    ns                                  ENUMERATED {four, two, one},

    firstPDCCH-MonitoringOccasionOfPO   CHOICE {

        sCS15KHZoneT                 SEQUENCE (SIZE (1..4)) OF INTEGER (0..139),

        sCS30KHZoneT-SCS15KHZhalfT   SEQUENCE (SIZE (1..4)) OF INTEGER (0..279),

        sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT                                 

                                     SEQUENCE (SIZE (1..4)) OF INTEGER (0..559),

        sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT             

                                     SEQUENCE (SIZE (1..4)) OF INTEGER (0..1119),

        sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT    

                                     SEQUENCE (SIZE (1..4)) OF INTEGER (0..2239),

        sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT                  

                                     SEQUENCE (SIZE (1..4)) OF INTEGER (0..4479),

        sCS120KHZoneEighthT-SCS60KHZoneSixteenthT                                   

                                     SEQUENCE (SIZE (1..4)) OF INTEGER (0..8959),

        sCS120KHZoneSixteenthT       SEQUENCE (SIZE (1..4)) OF INTEGER (0..17919)

    }   OPTIONAL,           -- Need R

    ...

}

 

 

FrequencyInfoDL-SIB ::=             SEQUENCE {

    frequencyBandList                   MultiFrequencyBandListNR-SIB,

    offsetToPointA                      INTEGER (0..2199),

    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier

}

 

 

BWP-DownlinkCommon ::=      SEQUENCE {

    genericParameters   BWP,

    pdcch-ConfigCommon  SetupRelease { PDCCH-ConfigCommon }

    pdsch-ConfigCommon  SetupRelease { PDSCH-ConfigCommon }

    ...

}

 

 

BWP-Downlink ::=    SEQUENCE {

    bwp-Id              BWP-Id,

    bwp-Common          BWP-DownlinkCommon  

    bwp-Dedicated       BWP-DownlinkDedicated   

    ...

}

 

 

PDCCH-ConfigCommon ::=                  SEQUENCE {

    commonControlResourcesSets      SEQUENCE (SIZE(1..2)) OF ControlResourceSet     OPTIONAL,

    commonSearchSpaces              SEQUENCE (SIZE(1..4)) OF SearchSpace            OPTIONAL, 

    searchSpaceSIB1                         SearchSpaceId             OPTIONAL, 

    searchSpaceOtherSystemInformation       SearchSpaceId             OPTIONAL,  

    pagingSearchSpace                       SearchSpaceId             OPTIONAL,  

    ra-ControlResourceSet                   ControlResourceSetId      OPTIONAL,   

    ra-SearchSpace                          SearchSpaceId             OPTIONAL,

    ...

 

}

 

commonControlResourcesSets : A list of common control resource sets. Only CORESETs with ControlResourceSetId = 0 or 1 are allowed. The CORESET#0 corresponds to the CORESET configured in MIB (see pdcch-ConfigSIB1) and is used to provide that information to the UE by dedicated signalling during handover and (P)SCell addition. The CORESET#1 may be configured an used for RAR

 

commonSearchSpaces :  A list of additional common search spaces

 

searchSpaceSIB1 : ID of the search space for SIB1 message. Corresponds to L1 parameter 'rmsi-SearchSpace'

 

searchSpaceOtherSystemInformation : ID of the Search space for other system information, i.e., SIB2 and beyond. Corresponds to L1 parameter 'osi-SearchSpace'. If the field is absent, the monitoring occasions are derived as described in PDCCH Type 0 Common Search Space page.

 

pagingSearchSpace : ID of the Search space for paging. Corresponds to L1 parameter 'paging-SearchSpace'. If the field is absent, the monitoring occasions are derived as described in PDCCH Type 0 Common Search Space page.

 

ra-ControlResourceSet : CORESET configured for random access. When the field is absent the UE uses the CORESET according to pdcch-ConfigSIB1 which is associated with ControlResourceSetId = 0. Corresponds to L1 parameter 'rach-coreset-configuration'

 

ra-SearchSpace : ID of the Search space for random access procedure. Corresponds to L1 parameter 'ra-SearchSpace'.  If the field is absent, the monitoring occasions are derived as described in PDCCH Type 0 Common Search Space page.

 

 

UplinkConfigCommonSIB ::=               SEQUENCE {

    frequencyInfoUL                         FrequencyInfoUL-SIB,

    initialUplinkBWP                        BWP-UplinkCommon,

    timeAlignmentTimerCommon                TimeAlignmentTimer

}

 

 

FrequencyInfoUL-SIB ::=           SEQUENCE {

    frequencyBandList               MultiFrequencyBandListNR-SIB     OPTIONAL,   -- Cond FDD-OrSUL

    absoluteFrequencyPointA         ARFCN-ValueNR             OPTIONAL,   -- Cond FDD-OrSUL

    scs-SpecificCarrierList         SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,

    p-Max                           P-Max         OPTIONAL,   -- Need S

    frequencyShift7p5khz            ENUMERATED {true}  OPTIONAL,   -- Cond FDD-OrSUL-Optional

    ...

}

 

 

BWP-UplinkCommon ::=                SEQUENCE {

    genericParameters                   BWP,

    rach-ConfigCommon                   SetupRelease { RACH-ConfigCommon }      OPTIONAL,   

    pusch-ConfigCommon                  SetupRelease { PUSCH-ConfigCommon }     OPTIONAL,

    pucch-ConfigCommon                  SetupRelease { PUCCH-ConfigCommon }     OPTIONAL,

    ...

}

 

 

RACH-ConfigCommon ::=  SEQUENCE {

    rach-ConfigGeneric              RACH-ConfigGeneric,

    totalNumberOfRA-Preambles       INTEGER (1..63)             OPTIONAL,   -- Need S

    ssb-perRACH-OccasionAndCB-PreamblesPerSSB   CHOICE {

        oneEighth  ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},

        oneFourth  ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},

        oneHalf    ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},

        one        ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},

        two        ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32},

        four       INTEGER (1..16),

        eight      INTEGER (1..8),

        sixteen    INTEGER (1..4)

    }   OPTIONAL,   -- Need M

 

    groupBconfigured      SEQUENCE {

        ra-Msg3SizeGroupA      ENUMERATED {b56, b144, b208, b256, b282, b480, b640, b800, b1000,

                                          spare7, spare6, spare5, spare4, spare3, spare2, spare1},

        messagePowerOffsetGroupB   ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12,

                                                dB15, dB18},

        numberOfRA-PreamblesGroupA          INTEGER (1..64)

    }   OPTIONAL,   -- Need R

 

    ra-ContentionResolutionTimer    ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64},

    rsrp-ThresholdSSB                       RSRP-Range          OPTIONAL,   -- Need R

    rsrp-ThresholdSSB-SUL                   RSRP-Range          OPTIONAL,   -- Need R

    prach-RootSequenceIndex                 CHOICE {

        l839                                    INTEGER (0..837),

        l139                                    INTEGER (0..137)

    },

    msg1-SubcarrierSpacing   SubcarrierSpacing,

    restrictedSetConfig      ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB},

    msg3-transformPrecoding  ENUMERATED {enabled} OPTIONAL,  -- Need R

    ...

}

 

 

RACH-ConfigGeneric ::=          SEQUENCE {

    prach-ConfigurationIndex         INTEGER (0..255),

    msg1-FDM                         ENUMERATED {one, two, four, eight},

    msg1-FrequencyStart              INTEGER (0..maxNrofPhysicalResourceBlocks-1),

    zeroCorrelationZoneConfig        INTEGER(0..15),

    preambleReceivedTargetPower      INTEGER (-200..-74),

    preambleTransMax                 ENUMERATED {n3,n4,n5,n6,n7,n8,n10,n20,n50,n100,n200},

    powerRampingStep                 ENUMERATED {dB0, dB2, dB4, dB6},

    ra-ResponseWindow                ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80}

}

 

 

 

Other SIBs (Periodic SIBs)

 

 

Followings are the overall characteristics of other SIBs (i.e, SIBs other than SIB1) that are transmitted by periodic broadcast

  • Transmitted over DL-SCH
  • Transmitted within periodically occurring time-domain window called SI-Window

 

 

 

Reference

 

[1]