System Information Block does not changes as any other RRC messages, but it is not stay all the time like the print on a stone. SIB does changes in some cases. When the SIBs are changes, there should be some mechanism by which UE can be informed or can detect the changes and update the changed contents. In this page, I will talk about this process.
- How Network informs SIB changes
- When UE tries checking SIB changes
- 3GPP Description on SIB Changes and Notification
- Examples
- Reference
How Network informs SIB changes
A UE reads the SIBs once and then keeps them, so the network needs a way to tell it that a stored copy is out of date. LTE uses two signals for this. One is a counter in SIB1, and the other is a flag in the Paging message.
When a Network changes some information in a SIB, it would do a sequence of procedure as follows.
i) Transmit the modified SIB
ii) Transmit the SIB1 with changed systemInfoValueTag value
iii) Transmit a Paging message with systemInfoModification = true
Read the list as the three messages involved rather than as a strict time order. In 36.331 clause 5.2.1.3, the notification comes first. The network first notifies the UEs about the change, and it may do so throughout one modification period. In the next modification period, the network transmits the updated system information. So the Paging message with systemInfoModification belongs to the period before the new SIB content goes on air.
The modification period is the unit of this timing. Its length in radio frames is modificationPeriodCoeff x defaultPagingCycle, and SIB2 carries both values. The field modificationPeriodCoeff takes n2, n4, n8 or n16. The period boundaries are the radio frames with SFN mod m = 0, where m is the period length in radio frames. For example, the SIB2 in the captures below has modificationPeriodCoeff n4 and defaultPagingCycle rf128. Its modification period is therefore 4 x 128 = 512 radio frames, or 5.12 seconds.
Figure 1 shows two modification periods on one time line. The top row is the SI content on air, and the middle row is where the Paging messages go. The dashed lines are the modification period boundaries.
Figure 1. Timing of a system information change. The network announces the change during period n. It broadcasts the new content from the next boundary, where a UE that heard the Paging message starts to acquire it.
The boundaries are fixed by SFN : a change can take effect only at a radio frame with SFN mod m = 0.Paging repeats the flag in period n : the network can send systemInfoModification in paging occasions throughout that period. A UE that misses one occasion can still receive another.The value tag changes with the content : SIB1 in period n+1 carries the new systemInfoValueTag.
Not every SIB follows this timing. ETWS, CMAS, EAB and UAC parameters can change at any point in time. Satellite assistance information can too, except in discontinuous coverage scenarios. The first four have their own indication in the Paging message: etws-Indication, cmas-Indication, eab-ParamModification and uac-ParamModification. The network may also leave systemInfoValueTag unchanged when it updates parameters that change regularly, such as the time information in SIB8 and SIB16.
Notification comes before the change : the Paging message in period n announces content that is broadcast from period n+1.The period length comes from SIB2 : modificationPeriodCoeff x defaultPagingCycle, in radio frames.Warnings and barring skip the period : ETWS, CMAS, EAB and UAC changes take effect at any time and use their own paging indications.
When UE tries checking SIB changes
A UE in idle mode cannot read every SIB all the time, because that would cost power. So 36.331 gives it two cheap checks and one time limit. Each of them covers a different situation, as the paragraphs after the list show.
UE tries checking SIB changes in any of following cases
i) detected systemInfoValueTag changes within a modification period specified by modificationPeriodCoeff in SIB2
ii) received Paging message with systemInfoModification = true
The first check is the value tag. The field systemInfoValueTag in SIB1 is an integer from 0 to 31, and it covers the SI messages. A UE can compare it with the value it stored, for example when it returns from out of coverage. A different value means the stored SI messages are no longer valid. The tag does not cover SIB10, SIB11, SIB12 and SIB14, and in recent releases SIB31 and SIB33 are outside it too.
The second check is the Paging message. Consider a UE in RRC_CONNECTED, or a UE in RRC_IDLE whose DRX cycle is not longer than the modification period. That UE either checks systemInfoValueTag after the modification period boundary, or it looks for systemInfoModification at least modificationPeriodCoeff times during the modification period. If it receives no Paging message in that period, it may assume that no change will occur at the next boundary.
The third rule is a time limit. A UE considers stored system information invalid 3 hours after it last confirmed it as valid. BL UEs, UEs in CE and NB-IoT UEs use 24 hours instead. A BL UE or a UE in CE falls back to 3 hours when si-ValidityTime tells it to.
With eDRX, the second check changes. A UE in RRC_IDLE with a DRX cycle longer than the modification period cannot hear a Paging message in every period. It looks for systemInfoModification-eDRX instead, and it acquires the new system information at the next eDRX acquisition period boundary. Those boundaries are the H-SFN values with H-SFN mod 256 = 0. If a modification period boundary has passed since its last check, such a UE also checks systemInfoValueTag before it establishes or resumes an RRC connection.
The value tag is the check after a gap : a UE that was out of coverage compares systemInfoValueTag with its stored value.Paging is the check during normal operation : no systemInfoModification in a whole period means no change at the next boundary.Stored SI expires anyway : 3 hours for an ordinary UE, and 24 hours for BL, CE and NB-IoT UEs unless si-ValidityTime says otherwise.
3GPP Description on SIB Changes and Notification
Following is some of the clips (quotes) from 3GPP 36.331 about SIB changes and Notification. It may not sound very clear at the first glance, but I put these down to give you original source and formal descriptions.
36.331 - 5.2.1.3 System information validity and notification of changes
When the network changes (some of the) system information, it first notifies the UEs about this change, i.e. this may be done throughout a modification period.
...
The Paging message is used to inform UEs in RRC_IDLE and UEs in RRC_CONNECTED about a system information change. If the UE is in RRC_CONNECTED or uses a DRX cycle shorter than or equal to the modification period, and receives a Paging message including the systemInfoModification, it knows that the system information will change at the next modification period boundary
...
SystemInformationBlockType1 (or MasterInformationBlock-NB in NB-IoT) includes a value tag systemInfoValueTag, that indicates if a change has occurred in the SI messages. UEs may use systemInfoValueTag, e.g. upon return from out of coverage, to verify if the previously stored SI messages are still valid
....
The UE using a DRX cycle shorter than or equal to the modification period verifies that stored system information remains valid by either checking systemInfoValueTag in SystemInformationBlockType1 (or MasterInformationBlock-NB in NB-IoT) after the modification period boundary, or attempting to find the systemInfoModification indication at least modificationPeriodCoeff times during the modification period in case no paging is received, in every modification period. If no paging message is received by the UE during a modification period, the UE may assume that no change of system information will occur at the next modification period boundary.
36.331 - 5.3.2.3 Reception of the Paging message by the UE
Upon receiving the Paging message, the UE shall:
...
1> if the systemInfoModification is included; or
1> if the UE is configured with a DRX cycle longer than the modification period and the systemInfoModification-eDRX is included:
2> re-acquire the required system information using the system information acquisition procedure ...
Examples
The two examples below start from the same SIB1, SIB2 and SIB3, and they differ in one point: which SIB holds the changed IE. In Example 1 the change sits in SIB1 itself, next to systemInfoValueTag. In Example 2 the change sits in SIB2, so the network also has to send a new SIB1 with a new value tag. Every decoded block below is a capture from a log, so its values are not specification text.
Example 1 - SIB Modification - SIB1 Contents
In this example, I will show you a case where an IE (Information Elements) in SIB1 is changed. Since the changed IE and systemInfoValueTag is in the same SIB (SIB 1), eNB would trigger only two steps after the change as follows.
i) transmit the changed SIB 1 with the modified systemInfoValueTag and modified contents
ii) transmit Paging
< Original SIBs > ============================================
Decoded SIB1,
c1: systemInformationBlockType1 (1) ------------------------------------------------
systemInformationBlockType1
cellAccessRelatedInfo
plmn-IdentityList: 1 item
Item 0
PLMN-IdentityInfo
plmn-Identity
...
cellReservedForOperatorUse: notReserved (1)
trackingAreaCode: 0001
cellIdentity: 00000000
cellBarred: notBarred (1)
intraFreqReselection: notAllowed (1)
.... ..0. csg-Indication: False
cellSelectionInfo
q-RxLevMin: -110dBm (-55)
p-Max: 23dBm
freqBandIndicator: 4
schedulingInfoList: 2 items
Item 0
SchedulingInfo
si-Periodicity: rf16 (1)
sib-MappingInfo: 0 items
Item 1
SchedulingInfo
si-Periodicity: rf32 (2)
sib-MappingInfo: 1 item
Item 0
SIB-Type: sibType3 (0)
si-WindowLength: ms20 (5)
systemInfoValueTag: 0
nonCriticalExtension
nonCriticalExtension
ims-EmergencySupport-r9: true (0)
Decoded SI message carrying SIB2,
c1: systemInformation (0) ------------------------------------------------
systemInformation
criticalExtensions: systemInformation-r8 (0)
systemInformation-r8
sib-TypeAndInfo: 1 item
Item 0
sib-TypeAndInfo item: sib2 (0)
sib2
radioResourceConfigCommon
rach-ConfigCommon
...
maxHARQ-Msg3Tx: 4
bcch-Config
modificationPeriodCoeff: n4 (1)
pcch-Config
defaultPagingCycle: rf128 (2)
nB: oneT (2)
prach-Config
...
pdsch-ConfigCommon
referenceSignalPower: 18dBm
p-b: 0
pusch-ConfigCommon
....
pucch-ConfigCommon
...
soundingRS-UL-ConfigCommon: release (0)
release: NULL
uplinkPowerControlCommon
...
ul-CyclicPrefixLength: len1 (0)
ue-TimersAndConstants
t300: ms1000 (5)
t301: ms1000 (5)
t310: ms1000 (5)
n310: n1 (0)
t311: ms1000 (0)
n311: n1 (0)
freqInfo
additionalSpectrumEmission: 1
timeAlignmentTimerCommon: infinity (7)
Decoded SI message carrying SIB3,
c1: systemInformation (0) ------------------------------------------------
systemInformation
criticalExtensions: systemInformation-r8 (0)
systemInformation-r8
sib-TypeAndInfo: 1 item
Item 0
sib-TypeAndInfo item: sib3 (1)
sib3
cellReselectionInfoCommon
q-Hyst: dB0 (0)
cellReselectionServingFreqInfo
s-NonIntraSearch: 16dB (8)
threshServingLow: 16dB (8)
cellReselectionPriority: 4
intraFreqCellReselectionInfo
q-RxLevMin: -110dBm (-55)
p-Max: 23dBm
s-IntraSearch: 16dB (8)
.... ...0 presenceAntennaPort1: False
neighCellConfig: No MBSFN subframes are present...
t-ReselectionEUTRA: 0s
< After SIB Changes > ============================================
Decoded SIB1,
c1: systemInformationBlockType1 (1) ------------------------------------------------
systemInformationBlockType1
cellAccessRelatedInfo
plmn-IdentityList: 1 item
Item 0
PLMN-IdentityInfo
plmn-Identity
....
cellReservedForOperatorUse: notReserved (1)
trackingAreaCode: 0001
cellIdentity: 00000000
cellBarred: notBarred (1)
intraFreqReselection: notAllowed (1)
.... ..0. csg-Indication: False
cellSelectionInfo
q-RxLevMin: -120dBm (-60)
p-Max: 23dBm
freqBandIndicator: 4
schedulingInfoList: 2 items
Item 0
SchedulingInfo
si-Periodicity: rf16 (1)
sib-MappingInfo: 0 items
Item 1
SchedulingInfo
si-Periodicity: rf32 (2)
sib-MappingInfo: 1 item
Item 0
SIB-Type: sibType3 (0)
si-WindowLength: ms20 (5)
systemInfoValueTag: 1
nonCriticalExtension
nonCriticalExtension
ims-EmergencySupport-r9: true (0)
Decoded Paging message,
c1: paging (0) ------------------------------------------------
paging
systemInfoModification: true (0)
Compare the two SIB1 captures. Only two fields differ. The field q-RxLevMin changes from -110dBm to -120dBm, and systemInfoValueTag changes from 0 to 1. SIB2 and SIB3 are not captured again after the change, because their content did not change. The Paging message carries only systemInfoModification: true, so it does not say which SIB changed.
Example 2 - SIB Modification - SIB2 Contents
In this example, I will show you a case where an IE (Information Elements) in SIB2 is changed. Since the changed IE and systemInfoValueTag are in different SIBs (SIB 1 and SIB2), eNB would trigger three steps after the change as follows.
i) transmit the changed SIB2
ii) transmit SIB 1 with the modified systemInfoValueTag
iii) transmit Paging
< Original SIBs > ============================================
Decoded SIB1,
c1: systemInformationBlockType1 (1) ------------------------------------------------
systemInformationBlockType1
cellAccessRelatedInfo
plmn-IdentityList: 1 item
Item 0
PLMN-IdentityInfo
plmn-Identity
...
cellReservedForOperatorUse: notReserved (1)
trackingAreaCode: 0001
cellIdentity: 00000000
cellBarred: notBarred (1)
intraFreqReselection: notAllowed (1)
.... ..0. csg-Indication: False
cellSelectionInfo
q-RxLevMin: -110dBm (-55)
p-Max: 23dBm
freqBandIndicator: 4
schedulingInfoList: 2 items
Item 0
SchedulingInfo
si-Periodicity: rf16 (1)
sib-MappingInfo: 0 items
Item 1
SchedulingInfo
si-Periodicity: rf32 (2)
sib-MappingInfo: 1 item
Item 0
SIB-Type: sibType3 (0)
si-WindowLength: ms20 (5)
systemInfoValueTag: 0
nonCriticalExtension
nonCriticalExtension
ims-EmergencySupport-r9: true (0)
Decoded SI message carrying SIB2,
c1: systemInformation (0) ------------------------------------------------
systemInformation
criticalExtensions: systemInformation-r8 (0)
systemInformation-r8
sib-TypeAndInfo: 1 item
Item 0
sib-TypeAndInfo item: sib2 (0)
sib2
radioResourceConfigCommon
rach-ConfigCommon
...
maxHARQ-Msg3Tx: 4
bcch-Config
modificationPeriodCoeff: n4 (1)
pcch-Config
defaultPagingCycle: rf128 (2)
nB: oneT (2)
prach-Config
...
pdsch-ConfigCommon
referenceSignalPower: 18dBm
p-b: 0
pusch-ConfigCommon
....
pucch-ConfigCommon
...
soundingRS-UL-ConfigCommon: release (0)
release: NULL
uplinkPowerControlCommon
...
ul-CyclicPrefixLength: len1 (0)
ue-TimersAndConstants
t300: ms1000 (5)
t301: ms1000 (5)
t310: ms1000 (5)
n310: n1 (0)
t311: ms1000 (0)
n311: n1 (0)
freqInfo
additionalSpectrumEmission: 1
timeAlignmentTimerCommon: infinity (7)
Decoded SI message carrying SIB3,
c1: systemInformation (0) ------------------------------------------------
systemInformation
criticalExtensions: systemInformation-r8 (0)
systemInformation-r8
sib-TypeAndInfo: 1 item
Item 0
sib-TypeAndInfo item: sib3 (1)
sib3
cellReselectionInfoCommon
q-Hyst: dB0 (0)
cellReselectionServingFreqInfo
s-NonIntraSearch: 16dB (8)
threshServingLow: 16dB (8)
cellReselectionPriority: 4
intraFreqCellReselectionInfo
q-RxLevMin: -110dBm (-55)
p-Max: 23dBm
s-IntraSearch: 16dB (8)
.... ...0 presenceAntennaPort1: False
neighCellConfig: No MBSFN subframes are present...
t-ReselectionEUTRA: 0s
< After SIB Changes > ============================================
Decoded SIB1,
c1: systemInformationBlockType1 (1) ------------------------------------------------
systemInformationBlockType1
cellAccessRelatedInfo
plmn-IdentityList: 1 item
Item 0
PLMN-IdentityInfo
plmn-Identity
....
cellReservedForOperatorUse: notReserved (1)
trackingAreaCode: 0001
cellIdentity: 00000000
cellBarred: notBarred (1)
intraFreqReselection: notAllowed (1)
.... ..0. csg-Indication: False
cellSelectionInfo
q-RxLevMin: -110dBm (-55)
p-Max: 23dBm
freqBandIndicator: 4
schedulingInfoList: 2 items
Item 0
SchedulingInfo
si-Periodicity: rf16 (1)
sib-MappingInfo: 0 items
Item 1
SchedulingInfo
si-Periodicity: rf32 (2)
sib-MappingInfo: 1 item
Item 0
SIB-Type: sibType3 (0)
si-WindowLength: ms20 (5)
systemInfoValueTag: 1
nonCriticalExtension
nonCriticalExtension
ims-EmergencySupport-r9: true (0)
Decoded SI message carrying SIB2,
c1: systemInformation (0) ------------------------------------------------
systemInformation
criticalExtensions: systemInformation-r8 (0)
systemInformation-r8
sib-TypeAndInfo: 1 item
Item 0
sib-TypeAndInfo item: sib2 (0)
sib2
ac-BarringInfo
...1 .... ac-BarringForEmergency: True
ac-BarringForMO-Signalling
ac-BarringFactor: p00 (0)
ac-BarringTime: s4 (0)
ac-BarringForSpecialAC: f8
ac-BarringForMO-Data
ac-BarringFactor: p00 (0)
ac-BarringTime: s4 (0)
ac-BarringForSpecialAC: f8
radioResourceConfigCommon
rach-ConfigCommon
...
bcch-Config
modificationPeriodCoeff: n4 (1)
pcch-Config
defaultPagingCycle: rf128 (2)
nB: oneT (2)
prach-Config
...
pdsch-ConfigCommon
referenceSignalPower: 18dBm
p-b: 0
pusch-ConfigCommon
...
pucch-ConfigCommon
...
soundingRS-UL-ConfigCommon: release (0)
release: NULL
uplinkPowerControlCommon
...
ul-CyclicPrefixLength: len1 (0)
ue-TimersAndConstants
t300: ms1000 (5)
t301: ms1000 (5)
t310: ms1000 (5)
n310: n1 (0)
t311: ms1000 (0)
n311: n1 (0)
freqInfo
additionalSpectrumEmission: 1
timeAlignmentTimerCommon: infinity (7)
Decoded Paging message,
c1: paging (0) ------------------------------------------------
paging
systemInfoModification: true (0)
Here SIB1 changes only in systemInfoValueTag, from 0 to 1, and q-RxLevMin stays at -110dBm. The new SIB2 carries ac-BarringInfo, which the original SIB2 did not have. It sets ac-BarringForEmergency to True, and it gives ac-BarringForMO-Signalling and ac-BarringForMO-Data with ac-BarringFactor p00 and ac-BarringTime s4.
The factor p00 has a clear meaning. A UE with no valid special access class draws a random number between 0 and 1 and is barred unless that number is lower than the factor. With p00 no number is lower, so such a UE treats mobile originating signalling and data as barred. This is also why SIB1 had to change: the UE finds the new SIB2 only because the value tag and the Paging message tell it to look.
A change in SIB1 alone needs two messages : the new SIB1 already carries the new value tag.A change in any other SIB needs three : the changed SIB, a SIB1 with a new value tag, and the Paging message.The Paging message never names the SIB : the UE re-acquires the system information it needs and finds the difference itself.
Reference
- 36.331 v19.3.0 : Evolved Universal Terrestrial Radio Access (E-UTRA); Radio Resource Control (RRC); Protocol specification (Release 19). Clauses 5.2.1.3, 5.3.2.3 and 5.3.3.11, and the SystemInformationBlockType1, SystemInformationBlockType2 and BCCH-Config field descriptions.