5G/NR - OSI Scheduling

 

 

 

OSI (Other SI) Scheduling

OSI mean Other SI (i.e, SIBs other than SIB1). The scheduling/broadcasting of OSI is specified as follows. Two separate mechanisms have to be in place before a UE can read one of those SIBs. The network has to say when the message carrying it is on the air. It also has to say where the UE should look for the PDCCH that points at it. The two bullets below name the field that carries each half.

How OSI is scheduled

A SIB other than SIB1 never travels on its own. It is packed into an SI message together with other SIBs, and the SI message is what carries a schedule. Everything below follows from that one packing decision, because the schedule belongs to the message rather than to any individual SIB inside it.

38.331 constrains what may share a message. Only SIBs with the same periodicity can be mapped into one SI message. SIBs and posSIBs are never mixed, so a message carries one kind or the other. Each SI message is transmitted inside a periodically recurring window, and the windows of different SI messages do not overlap. Within one window only the corresponding message is on the air, and it may be repeated inside that window with the same content.

The window start is computed rather than signalled, at least in the original form. The UE takes n, the order of entry of the SI message in schedulingInfoList. It then works out the integer x = (n - 1) × w, where w is si-WindowLength. The window then starts at slot number x mod N, in the radio frame for which SFN mod T equals FLOOR(x / N). T is the si-Periodicity of that message, and N is the number of slots in a radio frame.

Release 17 changed that arithmetic, and the reason is worth stating. Deriving the window position from list order means that inserting one message shifts every message after it. SI-SchedulingInfo-v1700 adds schedulingInfoList2, and its entries carry si-WindowPosition-r17 directly. For those entries the UE computes x = (si-WindowPosition - 1) × w instead, so the position no longer depends on where the entry sits in the list.

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

                SI-SchedulingInfo-v1700 ::=         SEQUENCE {
                    schedulingInfoList2-r17             SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo2-r17,
                    dummy                               SI-RequestConfig                OPTIONAL
                }
                
                SchedulingInfo2-r17 ::=             SEQUENCE {
                    si-BroadcastStatus-r17              ENUMERATED {broadcasting, notBroadcasting},
                    si-WindowPosition-r17               INTEGER (1..256),
                    si-Periodicity-r17                  ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512},
                    sib-MappingInfo-r17                 SIB-Mapping-v1700
                }
                
                SI-SchedulingInfo-v1740 ::=         SEQUENCE {
                    si-RequestConfigRedCap-r17          SI-RequestConfig                OPTIONAL   -- Cond REDCAP-MSG-1
                }
                
                SI-SchedulingInfo-v1800 ::=         SEQUENCE {
                    si-RequestConfigMSG1-Repetition-r18         SI-RequestConfigRepetition-r18
                                                                                        OPTIONAL,  -- Cond MSG-1
                    si-RequestConfigRedCap-MSG1-Repetition-r18  SI-RequestConfigRepetition-r18
                                                                                        OPTIONAL,  -- Cond REDCAP-MSG-1
                    si-RequestConfigSUL-MSG1-Repetition-r18     SI-RequestConfigRepetition-r18
                                                                                        OPTIONAL   -- Cond SUL-MSG-1
                }
                

si-BroadcastStatus decides whether the message is on the air at all. When it reads notBroadcasting, the UE has to ask for the message, and si-RequestConfig carries the random access resources for that request. SI-RequestResources names a preamble start index, an association period index and an SSB occasion mask index. An on-demand request therefore uses a reserved preamble rather than an ordinary random access attempt.

The schedule settles when a message is transmitted. The field searchSpaceOtherSystemInformation settles where the UE looks for it, and 38.331 states that condition precisely. If that field is set to zero, the PDCCH monitoring occasions for an SI message inside the window are the same as the monitoring occasions for SIB1. If it is not set to zero, the occasions come from the search space that the field names.

  • The SI message is the scheduled unit : a SIB carries no schedule of its own, and only SIBs sharing a periodicity can travel in one message.
  • Windows never overlap : within one SI window only one SI message is transmitted, so the window itself identifies the message.
  • Release 15 derives the window and Release 17 signals it : schedulingInfoList uses list order, and schedulingInfoList2 carries si-WindowPosition-r17 instead.
  • notBroadcasting means the UE must ask : si-BroadcastStatus decides whether a message is transmitted, and si-RequestConfig supplies the preamble resources for requesting it.
  • Zero is a value, not an absence : searchSpaceOtherSystemInformation set to zero puts SI monitoring on the same occasions as SIB1.

RRC Parameters

The listings below are the chain that runs from SIB1 down to the search space. Read them in that order, because each one is reached from the one above it and the links inside the tiles follow the same path. The fields that carry the scheduling itself are highlighted.

The listings below are from 38.331, the NR RRC specification. Every IE here is an NR IE, and the version each tile was checked against is stamped above it.

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

SIB1 ::=                            SEQUENCE {
    cellSelectionInfo                   SEQUENCE {
        q-RxLevMin                          Q-RxLevMin,
        q-RxLevMinOffset                    INTEGER (1..8)              OPTIONAL,   -- Need S
        q-RxLevMinSUL                       Q-RxLevMin                  OPTIONAL,   -- Need R
        q-QualMin                           Q-QualMin                   OPTIONAL,   -- Need S
        q-QualMinOffset                     INTEGER (1..8)              OPTIONAL    -- Need S
    }                                                                   OPTIONAL,   -- Cond Standalone
    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,   -- Need R
    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    -- Need S
    }                                                                   OPTIONAL,   -- Need R
    useFullResumeID                     ENUMERATED {true}               OPTIONAL,   -- Need R
    lateNonCriticalExtension            OCTET STRING                    OPTIONAL,
            nonCriticalExtension                SIB1-v1610-IEs                  OPTIONAL
}
        

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

SI-SchedulingInfo ::=               SEQUENCE {
    schedulingInfoList                  SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo,
    si-WindowLength                     ENUMERATED {s5, s10, s20, s40, s80, s160, s320,
                                                    s640, s1280,  s2560-v1710, s5120-v1710},
    si-RequestConfig                    SI-RequestConfig                OPTIONAL,  -- Cond MSG-1
    si-RequestConfigSUL                 SI-RequestConfig                OPTIONAL,  -- Cond SUL-MSG-1
    systemInformationAreaID             BIT STRING (SIZE (24))          OPTIONAL,  -- Need R
    ...
}
        

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

SchedulingInfo ::=                  SEQUENCE {
    si-BroadcastStatus                  ENUMERATED {broadcasting, notBroadcasting},
    si-Periodicity                      ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512},
    sib-MappingInfo                     SIB-Mapping
}
        

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

SIB-Mapping ::=                     SEQUENCE (SIZE (1..maxSIB)) OF SIB-TypeInfo
        

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

SIB-TypeInfo ::=                    SEQUENCE {
    type                                ENUMERATED {sibType2, sibType3, sibType4, sibType5,
                                                    sibType6, sibType7, sibType8, sibType9,
            sibType10-v1610, sibType11-v1610,
                                                    sibType12-v1610, sibType13-v1610,
                                                    sibType14-v1610, spare3, spare2, spare1,... },
    valueTag                            INTEGER (0..31)                 OPTIONAL,  -- Cond SIB-TYPE
    areaScope                           ENUMERATED {true}               OPTIONAL   -- Need S
}
        

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

SI-RequestConfig ::=                SEQUENCE {
    rach-OccasionsSI                    SEQUENCE {
        rach-ConfigSI                       RACH-ConfigGeneric,
        ssb-perRACH-Occasion                ENUMERATED {oneEighth, oneFourth, oneHalf, one,
                                                        two, four, eight, sixteen}
    }                                                                   OPTIONAL,  -- Need R
    si-RequestPeriod                    ENUMERATED {one, two, four, six, eight, ten, twelve,
                                                    sixteen}            OPTIONAL,  -- Need R
    si-RequestResources                 SEQUENCE (SIZE (1..maxSI-Message)) OF SI-RequestResources
}
        

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

SI-RequestResources ::=             SEQUENCE {
    ra-PreambleStartIndex               INTEGER (0..63),
    ra-AssociationPeriodIndex           INTEGER (0..15)                 OPTIONAL,  -- Need R
    ra-ssb-OccasionMaskIndex            INTEGER (0..15)                 OPTIONAL   -- Need R
}
        

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

ServingCellConfigCommonSIB ::=      SEQUENCE {
    downlinkConfigCommon                DownlinkConfigCommonSIB,
    uplinkConfigCommon                  UplinkConfigCommonSIB           OPTIONAL,  -- Need R
    supplementaryUplink                 UplinkConfigCommonSIB           OPTIONAL,  -- Need R
    n-TimingAdvanceOffset               ENUMERATED { n0, n25600, n39936 } OPTIONAL, -- Need S
    ssb-PositionsInBurst                SEQUENCE {
        inOneGroup                          BIT STRING (SIZE (8)),
        groupPresence                       BIT STRING (SIZE (8))       OPTIONAL   -- Cond FR2-Only
    },
    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),
    ...,
    -- five extension groups follow, from Release 16 to Release 17, and none of them
    -- carry system information scheduling
    ...
}

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

DownlinkConfigCommonSIB ::=         SEQUENCE {
    frequencyInfoDL                     FrequencyInfoDL-SIB,
    initialDownlinkBWP                  BWP-DownlinkCommon,
    bcch-Config                         BCCH-Config,
    pcch-Config                         PCCH-Config,
    ...,
    [[
    pei-Config-r17                      PEI-Config-r17                  OPTIONAL,  -- Need R
    initialDownlinkBWP-RedCap-r17       BWP-DownlinkCommon              OPTIONAL   -- Need R
    ]],
    [[
    frequencyInfoDL-v1800               FrequencyInfoDL-SIB-v1800       OPTIONAL   -- Need R
    ]],
    [[
    lowPowerConfig-r19                  LowPowerConfig-r19              OPTIONAL,  -- Need R
    pagingAdaptPEI-Config-r19           PEI-Config-r19                  OPTIONAL   -- Need R
    ]]
}

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

BWP-DownlinkCommon ::=              SEQUENCE {
    genericParameters                   BWP,
    pdcch-ConfigCommon                  SetupRelease { PDCCH-ConfigCommon }  OPTIONAL,   -- Need M
    pdsch-ConfigCommon                  SetupRelease { PDSCH-ConfigCommon }   OPTIONAL,   -- Need M
    ...
}

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

PDCCH-ConfigCommon ::=              SEQUENCE {
    controlResourceSetZero              ControlResourceSetZero          OPTIONAL,  -- Cond InitialBWP-Only
    commonControlResourceSet            ControlResourceSet              OPTIONAL,  -- Need R
    searchSpaceZero                     SearchSpaceZero                 OPTIONAL,  -- Cond InitialBWP-Only
    commonSearchSpaceList               SEQUENCE (SIZE(1..4)) OF SearchSpace
                                                                        OPTIONAL,  -- Need R
    searchSpaceSIB1                     SearchSpaceId                   OPTIONAL,  -- Need S
    searchSpaceOtherSystemInformation   SearchSpaceId                   OPTIONAL,  -- Need S
    pagingSearchSpace                   SearchSpaceId                   OPTIONAL,  -- Need S
    ra-SearchSpace                      SearchSpaceId                   OPTIONAL,  -- Need S
    ...,
    -- four extension groups follow, from Release 16 to Release 17
    ...
}

Reference

[1] 3GPP TS 38.331 - NR; Radio Resource Control (RRC) protocol specification. Clause 5.2.2.1 for the SI message structure, clause 5.2.2.3.2 for the SI window, and clause 6.3.1 for every listing on this page.

[2] 3GPP TS 38.213 - NR; Physical layer procedures for control. Clause 13 for the CORESET0 and Type0-PDCCH arrangement that SIB1 monitoring is built on.