Paging in 5G NR
Paging occasions, idle/inactive DRX, and CN vs RAN paging.
Every other downlink transmission in NR is addressed to a UE the gNB is already talking to. Paging is the exception, and it exists because of one design decision made much higher up: a UE in RRC_IDLE reselects cells freely and tells nobody. It does not report its serving cell, it does not answer polls, and it keeps its receiver off almost all the time. The 5GC knows only which tracking areas the UE registered in, possibly hundreds of cells across dozens of gNBs. RRC_INACTIVE narrows this but does not remove it -- the anchor gNB knows only a RAN Notification Area.
Contents
- 01Why Paging Exists, and What Triggers It
- 02Three Kinds of Page: CN, RAN, and Identity-Free
- 03The Channel Chain: PCCH, PCH, PDSCH and P-RNTI
- 04Paging Frames and Paging Occasions: the Arithmetic
- 05Two Worked PF/PO Derivations
- 06Inside a Paging Occasion: Monitoring Occasions and Beams
- 07DCI Format 1_0 with P-RNTI, and the Short Message
- 08The Paging RRC Message
- 09What the UE Does When It Is Paged
- 10RAN Paging in Detail: RNA, I-RNTI and the Anchor gNB
- 11Latency, Capacity and Repetition at the AMF
- 12Rel-17 and Rel-18: Early Indication, Subgrouping, eDRX, RedCap
- 13Paging Policy Differentiation and Paging Priority
- 14Configuration Reference: ASN.1, Ranges and Timers
- 15Failure Modes and What Each One Means
- 16Illustrative Message Traces
- 17Release Deltas: Rel-15 to Rel-18
- 18Reading Paging in Logs: A Checklist
- 19Glossary
- 20References
1. Why Paging Exists, and What Triggers It
Every other downlink transmission in NR is addressed to a UE the gNB is already talking to. Paging is the exception, and it exists because of one design decision made much higher up: a UE in RRC_IDLE reselects cells freely and tells nobody. It does not report its serving cell, it does not answer polls, and it keeps its receiver off almost all the time. The 5GC knows only which tracking areas the UE registered in, possibly hundreds of cells across dozens of gNBs. RRC_INACTIVE narrows this but does not remove it -- the anchor gNB knows only a RAN Notification Area.
So when something downlink-bound arrives, the network cannot unicast. It must broadcast a short notification over an area, in a way that costs the UE almost no battery to check and costs the network almost no capacity to send. That is the whole problem paging solves, and every peculiarity of the mechanism -- the identity hash, the sparse wake-up schedule, the fixed well-known RNTI, the 32-record cap -- follows from it.
| Trigger | Who initiates | UE state reached | Identity in the record | What the UE does |
|---|---|---|---|---|
| Downlink user data on an established PDU session, UE is CM-IDLE | AMF, prompted by the SMF over N11 | RRC_IDLE | ng-5G-S-TMSI | RRCSetupRequest with establishmentCause = mt-Access, then a NAS Service Request |
| Downlink user data for a UE in RRC_INACTIVE | The anchor gNB itself, over Xn | RRC_INACTIVE | fullI-RNTI | RRCResumeRequest with resumeCause = mt-Access |
| Mobile-terminated SMS or a NAS notification | AMF | RRC_IDLE | ng-5G-S-TMSI | Same as MT data; the NAS payload differs, the RRC procedure does not |
| Mobile-terminated voice call | AMF, with pagingCause = voiceCall (Rel-17) and a Paging Priority | RRC_IDLE | ng-5G-S-TMSI | Same, but the UE may prioritise access and the gNB may pre-empt other load |
| Notification relating to non-3GPP access | AMF, with accessType present in the record | RRC_IDLE | ng-5G-S-TMSI | Responds over 3GPP access on behalf of a non-3GPP session |
| BCCH modification -- a System Information change | The gNB | any state that monitors paging | none -- short message only | Re-acquires the changed SI at the next modification period boundary |
| ETWS primary/secondary or CMAS notification | The gNB, on CBC/AMF instruction | any state | none -- short message only | Acquires SIB6, SIB7 and/or SIB8 immediately |
| RAN paging exhausted for an RRC_INACTIVE UE | The anchor gNB releases the context, then the AMF pages | RRC_IDLE (context already gone) | ng-5G-S-TMSI | RRCSetupRequest; the resume attempt is no longer possible |
Table 1. Paging triggers, the identity each one uses, and the RRC procedure it provokes. The last two rows carry no UE identity at all, which is why they behave completely differently in logs.
The single most useful thing to know about a page you are looking at is which identity it carries. A record with ng-5G-S-TMSI came from the AMF and will be answered with RRCSetupRequest. A record with fullI-RNTI came from a gNB and will be answered with RRCResumeRequest. A DCI with no paging record at all came from the local gNB's broadcast machinery and will be answered by nothing. These are three different subsystems that happen to share one physical channel.
2. Three Kinds of Page: CN, RAN, and Identity-Free
The specifications talk about CN-initiated paging and RAN-initiated paging TS 38.300 cl. 9.2.5. They are genuinely different procedures with different originators, different scopes, different identities and different recovery behaviour. They share only the last hop.
| CN paging | RAN paging | Short-message-only | |
|---|---|---|---|
| Originator | AMF | Last serving (anchor) gNB | Local gNB |
| Transport to the RAN | NGAP PAGING to every gNB with a cell in the TAI List for Paging | XnAP RAN PAGING to every gNB in the RAN Notification Area | None -- generated locally |
| Area | Registration Area (the registered TAI list) | RAN Notification Area from ran-NotificationAreaInfo | The cell, or the cells sharing an SI area |
| UE identity carried | ng-5G-S-TMSI, 48 bits | fullI-RNTI, 40 bits | None |
| UE state addressed | RRC_IDLE (and RRC_INACTIVE after RAN paging gives up) | RRC_INACTIVE only | All three states |
| UE response | RRCSetupRequest, cause mt-Access | RRCResumeRequest, cause mt-Access | Re-acquire SI / read SIB6-8 |
| Cost of failure | AMF retries, then may implicitly deregister the UE | Anchor releases the context; falls back to CN paging | Stale SI in the UE until the next acquisition |
| Where its configuration lives | AMF policy + registered TAI list | suspendConfig in RRCRelease | si-SchedulingInfo and modificationPeriodCoeff in SIB1 |
Table 2. The three things a P-RNTI transmission can be. Only the first two involve a Paging RRC message at all.
The third case deserves emphasis because it surprises people. When the Short Messages Indicator in the DCI is set to 10, the DCI carries eight bits of short message and schedules no PDSCH. There is no Paging message, no pagingRecordList, no UE identity anywhere in the transmission. Every UE that happens to be awake in that occasion decodes it and acts on it. It is a cell-wide broadcast flag delivered through the paging channel, and it is how SI changes and emergency notifications reach sleeping UEs without a per-UE message.
3. The Channel Chain: PCCH, PCH, PDSCH and P-RNTI
A Paging message travels a deliberately minimal path. It is an RRC message, it is placed on the PCCH logical channel, PCCH maps to the PCH transport channel, and PCH is carried on PDSCH. There is no PDCP entity, and the RLC entity is in Transparent Mode -- no header, no segmentation, no ARQ, no ciphering, no integrity protection. The full channel picture is in the companion 06 Channel Mapping document.
| Layer | What carries paging here | What is absent, and why it matters |
|---|---|---|
| RRC | PCCH-Message containing a Paging message TS 38.331 cl. 6.2.1 | No transaction identifier and no acknowledgement -- a page is fire and forget. The network learns it worked only when the UE accesses. |
| PDCP | -- | No PDCP at all. Paging is unciphered and unintegrity-protected by construction, which is why it can carry only a temporary identity. |
| RLC | Transparent Mode | No segmentation. The whole Paging message must fit one transport block, which is the real reason maxNrofPageRec is 32. |
| MAC | PCCH logical channel -> PCH transport channel | No MAC subheader multiplexing with other logical channels, no HARQ process, no retransmission. |
| PHY | PDSCH scheduled by DCI format 1_0 with the CRC scrambled by P-RNTI | No UE-specific scrambling, so every UE in the occasion descrambles the same transmission successfully. |
Table 3. Paging's protocol stack is mostly holes. Each absence is a design choice that shows up somewhere else as a constraint.
P-RNTI is fixed at 0xFFFE TS 38.321 cl. 7.1. It is not allocated, not signalled and not per-cell; every NR UE in the world descrambles paging DCI with the same value. That is what makes paging monitoring possible for a UE with no context.
| RNTI | Value | Addresses | Note |
|---|---|---|---|
| P-RNTI | 0xFFFE | Paging and short messages | Fixed by the spec |
| SI-RNTI | 0xFFFF | Broadcast System Information | Fixed by the spec |
| RA-RNTI | 0x0001 .. 0xFFEF | Random Access Response | Computed from the PRACH occasion; see 03 Random Access |
| C-RNTI / TC-RNTI | 0x0001 .. 0xFFEF | One UE in one cell | Allocated by the gNB |
| PEI-RNTI | 0x0001 .. 0xFFEF | Paging Early Indication, DCI 2_7 | Rel-17; configured, not fixed |
Table 4. Where P-RNTI sits in the RNTI space. The two fixed values are at the top of the range precisely so they never collide with an allocated C-RNTI.
Which search space the UE monitors is set by pagingSearchSpace in PDCCH-ConfigCommon TS 38.213 cl. 10.1. The value 0 has a special meaning: the UE monitors the same search space it used for SIB1, i.e. searchSpaceZero in CORESET#0. Any other value points at a configured SearchSpace. A cell that leaves pagingSearchSpace unset but expects paging elsewhere is one of the more entertaining ways to make a cell that attaches fine and never receives a call.
4. Paging Frames and Paging Occasions: the Arithmetic
A UE cannot afford to check every paging opportunity in a cell, and the network cannot afford to repeat every page in all of them. NR therefore assigns each UE a deterministic subset of opportunities, derived from a hash of the UE's own identity and the cell's broadcast paging configuration. Both sides compute it independently and must agree exactly TS 38.304 cl. 7.1.
4.1 The formulae
UE_ID = 5G-S-TMSI mod 1024 -- the low 10 bits of the 5G-S-TMSI
Paging Frame (PF):
(SFN + PF_offset) mod T = (T div N) x (UE_ID mod N)
Paging Occasion index within the PF:
i_s = floor(UE_ID / N) mod Ns
T the UE's paging DRX cycle, in radio frames
N number of paging frames in one cycle T
PF_offset frame offset applied to the whole pattern
Ns number of paging occasions per paging frame -- 1, 2 or 4
SFN system frame number, 0 .. 1023The PF equation is a congruence, not an assignment: it does not give one SFN, it gives the residue class of SFNs that are paging frames for this UE. With T = 64 there are 1024 / 64 = 16 matching frames in each SFN wrap.
4.2 Where N, Ns, T and PF_offset come from
This is the point at which people who learned paging on LTE go wrong. In LTE, N and Ns were derived arithmetically from nB and T. NR does not have nB. N and PF_offset come together out of a single CHOICE, and Ns is a separate enumeration:
| Parameter | Source | Values | Effect |
|---|---|---|---|
| T | defaultPagingCycle in SIB1 PCCH-Config, or a UE-specific value; the shortest applicable value wins | rf32, rf64, rf128, rf256 -> 320, 640, 1280, 2560 ms | The wake-up period. Doubling T halves paging power draw and doubles worst-case paging latency. |
| N | The chosen branch of nAndPagingFrameOffset | oneT -> T; halfT -> T/2; quarterT -> T/4; oneEighthT -> T/8; oneSixteenthT -> T/16 | How many frames in the cycle are paging frames. Fewer PFs concentrates all UEs into fewer frames. |
| PF_offset | The INTEGER inside that branch (absent, so 0, for oneT) | halfT 0..1, quarterT 0..3, oneEighthT 0..7, oneSixteenthT 0..15 | Slides the whole PF pattern in time. Used to stagger paging load between neighbouring cells. |
| Ns | ns in PCCH-Config | four, two, one | Paging occasions per PF. maxPO-perPF is 4, so Ns cannot exceed 4. |
| UE_ID | 5G-S-TMSI mod 1024, i.e. the low 10 bits | 0 .. 1023 | The hash. Only 1024 distinct values exist, so UEs necessarily share occasions. |
Table 5. Every input to the PF/PO calculation, and what changing it does. N and PF_offset are two halves of one ASN.1 CHOICE and cannot be set independently of each other.
Do not carry the LTE relations N = min(T, nB) and Ns = max(1, nB/T) into NR. There is no nB in PCCH-Config. If you see a tool or a script computing NR paging occasions from nB, it is producing LTE answers, and they will be right only in the accidental cases where oneT and ns=one happen to line up. The symptom is a tool that predicts the correct PF for some UEs in a cell and not others.
4.3 Which paging cycle wins
T can be configured from three directions at once, and the rule is that the shortest value applies -- a UE that has been told to check more often always checks more often TS 38.304 cl. 7.1:
| Source of T | Where it appears | Applies in | Precedence |
|---|---|---|---|
defaultPagingCycle | SIB1 -> downlinkConfigCommon -> pcch-Config | RRC_IDLE and RRC_INACTIVE | The fallback. Always present, because it also defines the BCCH modification period. |
| NAS-provided UE-specific DRX | UE specific DRX parameters negotiated in the NAS Registration procedure; relayed to the gNB in the NGAP Paging DRX IE | RRC_IDLE and RRC_INACTIVE | Wins over the default if shorter. |
ran-PagingCycle | suspendConfig inside RRCRelease | RRC_INACTIVE only | Wins over the default if shorter; considered alongside any NAS value. |
Table 6. Sources of the paging cycle. The shortest wins -- which means a UE-specific value can only ever make a UE wake up more often, never less.
The gNB must know the UE-specific cycle to compute the same PF. For CN paging that knowledge arrives in the Paging DRX IE of the NGAP PAGING message; for RAN paging it is in the RAN PAGING message over Xn. If either is missing, the gNB falls back to defaultPagingCycle and computes a different PF than the UE is listening on -- and because the PF equation depends on T on both sides, the two patterns generally do not even intersect. The symptom is a UE that registers perfectly, passes periodic registration updates, and never receives a terminating call.
4.4 How much capacity the arithmetic buys
N x Ns is the number of distinct paging occasions in one cycle, and it is always at most 1024 because that is all the UE_ID space there is. Dividing 1024 by N x Ns gives the number of UE_ID values sharing each occasion, which is the sharing factor that determines how many paging records a single occasion may need to carry.
| T | nAndPagingFrameOffset | ns | N | Ns | Occasions per cycle | UE_IDs per occasion | Cycle length |
|---|---|---|---|---|---|---|---|
| rf32 | oneT | one | 32 | 1 | 32 | 32 | 320 ms |
| rf64 | oneT | two | 64 | 2 | 128 | 8 | 640 ms |
| rf64 | quarterT(2) | four | 16 | 4 | 64 | 16 | 640 ms |
| rf128 | oneT | two | 128 | 2 | 256 | 4 | 1.28 s |
| rf128 | oneEighthT(3) | four | 16 | 4 | 64 | 16 | 1.28 s |
| rf256 | oneT | four | 256 | 4 | 1024 | 1 | 2.56 s |
| rf256 | oneSixteenthT(7) | one | 16 | 1 | 16 | 64 | 2.56 s |
Table 7. Representative configurations. The bottom row is a pathological one: 64 UE_IDs funnelled into each of only 16 occasions per 2.56 s, which will overflow maxNrofPageRec in any busy cell.
5. Two Worked PF/PO Derivations
The arithmetic is short enough to do by hand, and doing it by hand is the only way to be certain that a UE and a gNB agree. Both examples below use real-shaped 5G-S-TMSI values and carry through to an SFN you could look for in a log.
5.1 One paging frame per frame, two occasions in it
This is the configuration in the original worked example, expanded. defaultPagingCycle = rf128, nAndPagingFrameOffset = oneT (so N = T = 128 and PF_offset = 0), ns = two (so Ns = 2).
5G-S-TMSI = 0x0041 5C31 0154 (48 bits: AMF Set ID 1, AMF Pointer 1, 5G-TMSI 0x5C310154)
UE_ID = 5G-S-TMSI mod 1024 = low 10 bits of 0x0154 = 340
T = 128, N = 128, PF_offset = 0, Ns = 2
PF: (SFN + 0) mod 128 = (128 div 128) x (340 mod 128)
= 1 x 84
= 84
-> paging frames are the SFNs with SFN mod 128 = 84, i.e.
84, 212, 340, 468, 596, 724, 852, 980 in each 1024-frame wrap
PO: i_s = floor(340 / 128) mod 2 = 2 mod 2 = 0
-> the first paging occasion inside that frame
Wake-up period = 128 x 10 ms = 1.28 s
Sharing: N x Ns = 256 occasions per cycle, 1024 / 256 = 4 UE_IDs share this occasion.
The UE therefore keeps its receiver off for 127 of every 128 radio frames, and even in frame 84 it only opens the receiver for the few symbols of the first paging occasion. Everything else in the cell -- other UEs' pages, other occasions, the other paging frame slots -- is invisible to it and can be slept through.
5.2 Sixteen paging frames per cycle, four occasions in each
The second example uses a configuration much closer to what a loaded macro cell ships: a shorter cycle, a sparse PF pattern with an offset to stagger against neighbours, and the maximum four occasions per frame.
5G-S-TMSI = 0x0041 1CB4 2E77 (5G-TMSI 0x1CB42E77)
0x2E77 = 11895; 11895 mod 1024 = 11895 - 11 x 1024 = 631
-> UE_ID = 631 (equivalently, the low 10 bits 10 0111 0111)
defaultPagingCycle = rf64 -> T = 64
nAndPagingFrameOffset = quarterT(2) -> N = 64 / 4 = 16, PF_offset = 2
ns = four -> Ns = 4
PF: (SFN + 2) mod 64 = (64 div 16) x (631 mod 16)
631 = 39 x 16 + 7, so 631 mod 16 = 7
(SFN + 2) mod 64 = 4 x 7 = 28
SFN mod 64 = 26
-> paging frames at SFN 26, 90, 154, 218, ... 986
PO: i_s = floor(631 / 16) mod 4 = 39 mod 4 = 3
-> the fourth and last paging occasion in that frame
Cross-check with the other UE: UE_ID 340 in this same cell
340 mod 16 = 4 -> (SFN + 2) mod 64 = 4 x 4 = 16 -> SFN mod 64 = 14
floor(340/16) = 21 -> i_s = 21 mod 4 = 1
-> two UEs in one cell, 12 frames and two occasions apart.
Sharing: N x Ns = 64 occasions, 1024 / 64 = 16 UE_IDs per occasion.
The UE_ID hash uses only the low 10 bits of the 5G-S-TMSI, so it changes whenever the AMF reallocates the 5G-GUTI. That is intentional -- it prevents an observer from tracking a subscriber by watching which occasion it wakes in -- but it means that during a GUTI reallocation the UE and the AMF must switch occasion at the same moment. A page issued against the old 5G-S-TMSI after the UE has adopted the new one lands in an occasion the UE is no longer listening to.
5.3 Paging latency for a given cycle
Paging latency is dominated by one thing: how long the page has to wait for the UE's next occasion. Everything else -- NGAP transport, scheduling, Random Access, RRCSetup -- is tens of milliseconds.
Take T = 64 (640 ms). A page arrives at the gNB at a uniformly random point in the cycle.
wait for the next PO: worst case 640 ms, mean 320 ms
+ PDSCH + UE decode: ~2 ms
+ Random Access to a usable grant: ~10 ms (see 03 Random Access)
+ RRCSetup / RRCSetupComplete: ~20-30 ms
+ NAS Service Request round trip: ~30-40 ms
-> first downlink packet delivered: mean ~0.4 s, worst ~0.72 s
Same sums at other cycles, wait component only:
T = rf32 320 ms -> mean 160 ms, worst 320 ms
T = rf128 1.28 s -> mean 640 ms, worst 1.28 s
T = rf256 2.56 s -> mean 1.28 s, worst 2.56 s
eDRX 5.12 s -> mean 2.56 s, worst 5.12 s
If the first attempt is unanswered and the AMF retries after its paging timer (commonly ~6 s), the second attempt lands at 6 s plus a fresh wait -- so a single missed page costs roughly an order of magnitude more than the cycle length.
6. Inside a Paging Occasion: Monitoring Occasions and Beams
A paging occasion is not an instant. It is a set of PDCCH monitoring occasions -- by default one per actually transmitted SSB, so that the same page is repeated on every beam the cell sweeps and a UE anywhere in the cell can hear it TS 38.304 cl. 7.1. S is the number of SSBs actually transmitted, taken from ssb-PositionsInBurst in SIB1, not the maximum the band allows.
The numbering rule matters more than it looks. PDCCH monitoring occasions for paging are numbered sequentially from zero starting at the first one in the paging frame, and occasions that overlap uplink symbols are skipped before numbering. In a TDD cell the monitoring-occasion index and the slot index therefore diverge immediately, and any hand calculation that assumes they are the same will point at the wrong slot.
| Quantity | Where it comes from | Typical | Consequence of getting it wrong |
|---|---|---|---|
| S | Count of 1 bits in ssb-PositionsInBurst (SIB1) | 4 on FR1 mid-band, 8-64 on FR2 | Too small and the page is not repeated on every beam, so UEs on unswept beams miss it; the symptom is beam-correlated paging loss. |
| Start of PO i_s | Default i_s x S, or the (i_s+1)-th entry of firstPDCCH-MonitoringOccasionOfPO | default | If Ns x S exceeds the number of usable monitoring occasions in the frame, later POs spill into the following frame. |
firstPDCCH-MonitoringOccasionOfPO | PCCH-Config, optional; the CHOICE branch encodes the SCS and the T fraction | absent on simple cells | Present but wrong and POs land on top of each other -- two occasions share monitoring occasions and paging records get mixed. |
| X (Rel-17) | nrofPDCCH-MonitoringOccasionPerSSB-InPO | 1 | Multiplies the occasion count per SSB; used for repetition in coverage-limited and RedCap deployments. |
Table 8. What defines the shape of a paging occasion. S x X monitoring occasions per PO, Ns POs per PF.
firstPDCCH-MonitoringOccasionOfPO is a SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER, and its CHOICE branch name encodes the subcarrier spacing and the N-to-T ratio together -- for example sCS30KHZoneT-SCS15KHZhalfT covers 30 kHz with oneT and 15 kHz with halfT. Picking the branch that does not match the cell's SCS and nAndPagingFrameOffset gives an integer range that is silently too small or too large. This is one of the fields most often copied between cells without adjustment.
7. DCI Format 1_0 with P-RNTI, and the Short Message
The DCI the UE hunts for in its monitoring occasions is format 1_0 with the CRC scrambled by P-RNTI. It is the same format used for fallback scheduling, but with a different field set: the HARQ fields are gone and two paging-specific fields take their place TS 38.212 cl. 7.3.1.2.1.
| Field | Bits | Range | What it does |
|---|---|---|---|
| Short Messages Indicator | 2 | 01, 10, 11 (00 reserved) | Says whether this DCI schedules a PDSCH, carries a short message, or both. Decode this first -- everything else depends on it. |
| Short Message | 8 | bitmap, see below | Cell-wide flags. Present and meaningful only when the indicator is 10 or 11; otherwise reserved. |
| Frequency domain resource assignment | ceil(log2(N x (N+1) / 2)) | 13 bits for N = 106 | RIV for the PDSCH carrying the Paging message. Meaningless when the indicator is 10. |
| Time domain resource assignment | 4 | 0 .. 15 | Row index into the PDSCH time-domain allocation table. |
| VRB-to-PRB mapping | 1 | 0 = non-interleaved, 1 = interleaved | Interleaving is the usual choice for a broadcast transmission -- it spreads the small transport block across the band. |
| Modulation and coding scheme | 5 | 0 .. 31 | Always low-order in practice: a page must reach the cell edge with no channel knowledge and no HARQ. |
| TB scaling | 2 | 0 .. 3 -> scaling 1, 0.5, 0.25, reserved | Scales the transport block size down so the tiny paging payload does not force an absurdly low MCS. |
| Reserved | 6 | set to zero | Rel-15 padding. Later releases have taken bits from here for new indications; a non-zero value is not automatically an error. |
Table 9. DCI format 1_0 with P-RNTI, field by field. Total 41 bits at a 106-PRB BWP, plus a 24-bit CRC scrambled by 0xFFFE.
| Short Messages Indicator | Scheduling info present | Short message present | What the UE does |
|---|---|---|---|
| 00 | -- | -- | Reserved; treat as an error and discard |
| 01 | yes | no | Decode the PDSCH and look for its own identity in pagingRecordList |
| 10 | no | yes | Act on the eight short-message bits; there is no PDSCH to decode |
| 11 | yes | yes | Both: act on the short message and decode the paging records |
Table 10. The two-bit indicator, which is the branch point for the whole reception procedure in §9.
7.1 The eight short-message bits
| Bit | Name | Set to 1 means | What the UE must do |
|---|---|---|---|
| 1 | systemInfoModification | A BCCH modification other than SIB6, SIB7 or SIB8 is coming | Re-acquire the changed SI at the start of the next modification period. See 17 System Information. |
| 2 | etwsAndCmasIndication | An ETWS primary notification, an ETWS secondary notification and/or a CMAS notification is present | Acquire SIB6 / SIB7 / SIB8 immediately -- this one is not deferred to a boundary. |
| 3 | systemInfoModification-eDRX (Rel-17) | A BCCH modification for UEs whose eDRX cycle is longer than the BCCH modification period | eDRX UEs act on this bit instead of bit 1, because they can sleep straight through a whole modification period. |
| 4 - 8 | -- | not used in this release | Shall be ignored by the receiver. Do not treat a non-zero value here as a decode failure. |
Table 11. Short Message bit assignments, TS 38.331 Table 6.5-1. Bits 1 and 2 are Rel-15; bit 3 arrived with Rel-17 eDRX.
Every UE monitoring paging acts on the short message, including UEs in RRC_CONNECTED. A connected UE must check for systemInfoModification in some paging occasion at least once per modification period, and an ETWS/CMAS-capable UE must check for etwsAndCmasIndication at least once per defaultPagingCycle. This is why defaultPagingCycle is not purely an idle-mode parameter -- it also sets the granularity of SI change notification for the whole cell, through modificationPeriodCoeff x defaultPagingCycle.
8. The Paging RRC Message
When the indicator says a PDSCH is scheduled, the transport block carries a PCCH-Message whose only useful content is a Paging message. It is a small, flat structure with one list in it.
PCCH-Message ::= SEQUENCE {
message PCCH-MessageType
}
PCCH-MessageType ::= CHOICE {
c1 CHOICE { paging Paging },
messageClassExtension SEQUENCE {}
}
Paging ::= SEQUENCE {
pagingRecordList PagingRecordList OPTIONAL, -- Need N
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension Paging-v1700-IEs OPTIONAL
}
PagingRecordList ::= SEQUENCE (SIZE(1..maxNrofPageRec)) OF PagingRecord
-- maxNrofPageRec INTEGER ::= 32
PagingRecord ::= SEQUENCE {
ue-Identity PagingUE-Identity,
accessType ENUMERATED {non3GPP} OPTIONAL, -- Need N
...
}
PagingUE-Identity ::= CHOICE {
ng-5G-S-TMSI NG-5G-S-TMSI, -- BIT STRING (SIZE (48))
fullI-RNTI I-RNTI-Value, -- BIT STRING (SIZE (40))
...
}
-- Rel-17 extension
Paging-v1700-IEs ::= SEQUENCE {
pagingRecordList-v1700 PagingRecordList-v1700 OPTIONAL, -- Need N
nonCriticalExtension SEQUENCE {} OPTIONAL
}
PagingRecord-v1700 ::= SEQUENCE {
pagingCause-r17 ENUMERATED {voiceCall} OPTIONAL -- Need N
}Listing 1. Abridged from TS 38.331. ... marks extension markers. The Rel-17 cause list is parallel to the main record list -- the n-th entry of one corresponds to the n-th entry of the other.
| IE | Type | Presence | What it tells you |
|---|---|---|---|
pagingRecordList | 1 .. 32 records | Optional | Absent when the DCI carried only a short message. Its length is the single best load indicator in a paging log. |
ue-Identity | CHOICE of ng-5G-S-TMSI (48 bit) or fullI-RNTI (40 bit) | Mandatory in a record | Which of the two paging types this record belongs to. There is no other field that distinguishes them. |
accessType | ENUMERATED {non3GPP} | Optional | Present means the page relates to a non-3GPP access session. Absent means 3GPP access -- the enumeration has only one value, so absence carries the other meaning. |
pagingCause (Rel-17) | ENUMERATED {voiceCall} | Optional | Lets the UE know a voice call is waiting so it can prioritise access and skip low-priority backoff. |
Table 12. Paging record IEs. accessType is a single-valued enumeration, which is a common source of confusion when reading a decode that simply omits it.
Thirty-two records is a hard ceiling, and there is no segmentation available: PCCH runs over RLC Transparent Mode, so the whole Paging message must fit one transport block. A gNB with more than 32 UEs to page in one occasion must defer the surplus to the next occurrence of that occasion -- one full cycle later. In a 2.56 s cycle that is a 2.56 s latency step function, and it appears in logs as paging latency that is fine at moderate load and then abruptly terrible.
9. What the UE Does When It Is Paged
1. Wake at the computed PO. The UE opens its receiver for the S x X monitoring occasions of its own PO and monitors pagingSearchSpace for DCI format 1_0 with the CRC descrambled by P-RNTI 0xFFFE.
2. No DCI: go back to sleep. This is the overwhelmingly common outcome and costs a handful of symbols of receiver time.
3. Read the Short Messages Indicator. It decides whether there is a short message, a PDSCH, or both (§7).
4. Act on the short message if present. SI change is deferred to the next modification period boundary; ETWS/CMAS is acted on immediately. This happens regardless of whether the UE is individually paged.
5. Decode the PDSCH if scheduled and walk pagingRecordList comparing ue-Identity against the UE's own 5G-S-TMSI (in RRC_IDLE) or its fullI-RNTI (in RRC_INACTIVE).
6. No match: go back to sleep. The records belonged to the other UE_IDs sharing this occasion. This is normal, not an error, and its rate is governed by the sharing factor from §4.4.
7. Match in RRC_IDLE: initiate RRC connection establishment. RRCSetupRequest with establishmentCause = mt-Access, and NAS then sends a Service Request. See 03 Random Access for the access itself and 15 RRC Procedures for the establishment.
8. Match in RRC_INACTIVE: initiate resume. RRCResumeRequest with resumeCause = mt-Access, carrying shortI-RNTI and a resumeMAC-I. See 14 RRC States.
One consequence worth stating plainly: a paged UE does not reply to the page. It starts an access procedure. There is no acknowledgement of the Paging message anywhere in the protocol, so from the network's point of view the only evidence a page arrived is an RRCSetupRequest or an RRCResumeRequest with cause mt-Access turning up within a plausible window. If it does not, the network cannot distinguish page not delivered from page delivered and ignored.
mt-Access in the establishment or resume cause is the fingerprint of a successful page. When you are trying to establish whether paging works in a cell, do not count paging transmissions -- count mt-Access accesses and divide by the number of pages the gNB was asked to send. That ratio is the only end-to-end measure of paging that exists, because nothing else in the protocol closes the loop.
10. RAN Paging in Detail: RNA, I-RNTI and the Anchor gNB
RRC_INACTIVE exists so that a UE with intermittent traffic can keep its AS context, its bearers and its NG-U tunnel while behaving, on the air, almost like an idle UE. The price is that somebody has to keep that context, and that somebody -- the anchor gNB -- becomes responsible for finding the UE again. RAN paging is that mechanism.
| Element | Where it is configured | Values / shape | Why it matters |
|---|---|---|---|
fullI-RNTI / shortI-RNTI | suspendConfig in RRCRelease | 40 bits / 24 bits | The full value appears in the paging record; the short value is what fits in RRCResumeRequest on CCCH. Both must encode enough to identify the anchor gNB. |
ran-NotificationAreaInfo | suspendConfig | CHOICE of cellList (up to 16 PLMN entries of cells) or ran-AreaConfigList | Defines where RAN paging is sent and where the UE may move without reporting. Small area, cheap paging, frequent RNA updates. |
ran-PagingCycle | suspendConfig | rf32 .. rf256 | The RRC_INACTIVE paging cycle. Considered alongside NAS and default values; shortest wins. |
t380 | suspendConfig | min5, min10, min20, min30, min60, min120, min360, min720 | Periodic RNA update timer. On expiry the UE resumes with cause rna-Update purely to prove it is still there. |
| Paging attempt count | gNB implementation, mirrored in the XnAP Paging Attempt Information | vendor-specific | How many RAN paging rounds before the anchor gives up and releases the context to the AMF. |
Table 13. RAN paging configuration, all of it delivered in one suspendConfig at release time. The UE cannot be reconfigured while it is inactive.
Two details of the arithmetic are easy to get wrong. First, the paging occasion for an RRC_INACTIVE UE is still computed from UE_ID = 5G-S-TMSI mod 1024 -- not from the I-RNTI. The identity that appears in the record and the identity that selects the occasion are different things. Second, ran-PagingCycle competes with, rather than replaces, the default and NAS cycles: the shortest applicable value still wins.
If the UE has drifted outside its RNA without performing an RNA update -- which happens if it moved fast, or if the RNA was configured smaller than the actual mobility pattern -- RAN paging is transmitted in cells the UE cannot hear. The recovery path works, but it is slow: the anchor exhausts its paging attempts, releases the UE context to the AMF, the AMF moves the UE to CM-IDLE, and then CN paging finds it across the whole registration area. Total time is the RAN paging budget plus a full CN paging cycle. In logs this shows up as an RRCSetupRequest with cause mt-Access from a UE you last saw being suspended -- a resume that became a setup.
When the UE does answer at a neighbour, the new gNB decodes the I-RNTI to find the anchor and issues an XnAP RETRIEVE UE CONTEXT REQUEST. The anchor validates the resumeMAC-I -- a short MAC-I computed over the request, covered in the companion 27 AS Security Mode document -- and returns the AS security context, the bearer configuration and the NG-U endpoints. If the anchor cannot be reached, or refuses, the new gNB has no context to resume and must fall back to RRCSetup, which the UE sees as having its resume rejected.
11. Latency, Capacity and Repetition at the AMF
11.1 What a cell can carry
Paging capacity is the product of occasions per second and records per occasion. Both are small numbers, and the result is the reason paging load is a real dimensioning concern in dense urban cells.
Configuration from §5.2: T = rf64 (640 ms), N = 16, Ns = 4.
occasions per cycle = N x Ns = 64
occasions per second = 64 / 0.64 s = 100
records per occasion = maxNrofPageRec = 32
-> ceiling = 100 x 32 = 3200 paging records per second
But the records are not free to place: a UE_ID may only be paged in its occasion, and 1024 / 64 = 16 UE_IDs share each one. The practical limit per occasion is therefore 32 records drawn from 16 UE_IDs -- ample -- while the pathological row of the table in §4.4 (N = 16, Ns = 1, T = rf256) gives
occasions per second = 16 / 2.56 = 6.25
ceiling = 6.25 x 32 = 200 records per second
with 64 UE_IDs funnelled into each occasion. Same cell, same air interface, sixteen times less paging capacity -- purely from nAndPagingFrameOffset and ns.
11.2 Repetition and area escalation at the AMF
The AMF does not page once. It runs a paging strategy, and the shape of that strategy is operator policy rather than a fixed procedure TS 23.501 cl. 5.4.4 TS 23.502. A typical escalation:
| Attempt | Scope | Driven by | What it costs |
|---|---|---|---|
| 1 | The last known gNB, or the cells in the NGAP Assistance Data for Paging (Recommended Cells / Recommended RAN Nodes) | Assistance data the RAN supplied at release, and the AMF's own record | One or a few cells' worth of paging capacity |
| 2 | The last known tracking area | AMF policy | One TA's gNBs |
| 3 | The full registered TAI list | AMF policy; Paging Attempt Information carries the attempt count and the Next Paging Area Scope | Every gNB in the registration area |
| give up | None -- the AMF stops paging | The paging timer expiring for the last attempt | The SMF is told delivery failed; buffered packets are dropped or held; the implicit deregistration timer may eventually deregister the UE |
Table 14. A representative CN paging escalation. The details are policy, but the shape -- narrow first, widen on failure -- is universal, and the Paging Attempt Information IE exists to let the RAN see where in the sequence it is.
The narrow first attempt is worth understanding when you are diagnosing "paging works sometimes". If the first attempt is scoped to recommended cells and the UE has reselected away from them, attempt 1 always fails and the call connects on attempt 2 or 3 -- adding several seconds. The paging success rate looks acceptable and the paging latency is terrible. Correlate the Paging Attempt Count against setup latency before blaming the air interface.
12. Rel-17 and Rel-18: Early Indication, Subgrouping, eDRX, RedCap
Everything in §4 through §9 is Rel-15 and is still the core of the mechanism. Rel-17 added a layer above it whose sole purpose is to stop UEs from decoding pages that were never for them.
12.1 Paging Early Indication
The expensive part of a paging occasion for the UE is not the PDCCH monitoring -- it is everything before it: waking the receiver, running AGC, re-synchronising to the SSB, and tracking time and frequency. A UE does all of that and then, in the overwhelming majority of occasions, finds nothing. Paging Early Indication (PEI) puts a much cheaper signal a configurable distance ahead of the PO: DCI format 2_7, addressed by a configured PEI-RNTI, saying only there is or is not a page coming in the next group of occasions. A UE that sees no PEI can skip the full wake-up entirely.
12.2 Paging subgrouping
PEI is per group of POs, which would still wake every UE sharing those POs. Subgrouping refines it: the 1024 UE_IDs mapped to a PO are divided into subgroups, and the PEI payload carries one bit per subgroup. A UE wakes only if its own subgroup bit is set. Two ways of assigning a subgroup exist:
| Method | Assigned by | Configuration | Trade-off |
|---|---|---|---|
| UE_ID based | The UE itself, arithmetically | subgroupsNumForUEID in SubgroupConfig | Free -- no signalling, works for any UE -- but the split is arbitrary and cannot follow traffic patterns. |
| CN assigned | The AMF, delivered to the UE over NAS and to the gNB in the NGAP UE Paging Subgroup ID | subgroupsNumPerPO bounds the total | Can group UEs by behaviour or subscription, but needs support and signalling on both sides. |
Table 15. Subgrouping methods, TS 38.304 and TS 38.331 PEI-Config. A cell may configure both, with CN-assigned taking precedence for UEs that have an assignment.
PEI and subgrouping change nothing about the PF/PO arithmetic, the P-RNTI, the DCI or the Paging message. They are a filter in front of the occasion. If PEI is misconfigured, UEs skip real pages and there is nothing wrong with any of the paging configuration you would normally check -- the pages are transmitted correctly and simply not listened to. The distinguishing symptom is paging failure that disappears when PEI is disabled while every other parameter stays the same.
12.3 Extended DRX
For a device that only ever reports a meter reading, even a 2.56 s paging cycle is a large fraction of its power budget. Rel-17 eDRX extends the cycle far beyond what the 10-bit SFN can express, by adding a hyper-frame layer on top:
| Item | RRC_IDLE eDRX | RRC_INACTIVE eDRX | Note |
|---|---|---|---|
| Cycle range | 2.56 s up to 10485.76 s (about 2.9 hours) | up to 10.24 s | The inactive case is deliberately modest -- the anchor must hold the context for the whole cycle. |
| Where it is negotiated | NAS, during registration | eDRX-Config in suspendConfig | Idle-mode eDRX is a core-network negotiation, not an RRC one. |
| Broadcast permission | eDRX-AllowedIdle in SIB1 | SIB1 | A cell must advertise that it supports eDRX before a UE may use it. |
| Timing anchor | Hyper-SFN (H-SFN), which increments each time the SFN wraps (every 10.24 s) | SFN only | For cycles longer than 10.24 s the SFN alone cannot identify the occasion. |
| Paging window | A Paging Time Window (PTW) inside the paging hyper-frame; ordinary PF/PO arithmetic applies within it | not used | So the §4 formulae are not replaced, only scoped: the UE first finds its PTW, then its PF and PO inside it. |
Table 16. eDRX, approximately. Cycle values and the PTW mechanism follow TS 38.304; exact enumerations differ between the idle and inactive cases and should be read from the release you are working against.
eDRX is why Short Message bit 3 exists. A UE on a 655 s cycle can sleep through dozens of BCCH modification periods, so the ordinary systemInfoModification flag -- which says change at the next boundary -- is useless to it. systemInfoModification-eDRX carries the change indication on a horizon that an eDRX UE can actually act on.
12.4 RedCap
Reduced Capability UEs may be confined to a separate initial downlink BWP, and paging follows them there: Rel-17 allows a separate firstPDCCH-MonitoringOccasionOfPO for the RedCap initial BWP, and separate PCCH-Config fields where the RedCap BWP differs. The practical consequence is that one cell can have two disjoint sets of paging monitoring occasions, and a page for a RedCap UE placed in the non-RedCap occasion is simply never heard. Rel-17 also introduced nrofPDCCH-MonitoringOccasionPerSSB-InPO, which repeats each occasion, specifically to recover the link budget a one-antenna RedCap receiver loses.
13. Paging Policy Differentiation and Paging Priority
Not all downlink packets deserve the same paging effort. A TCP keep-alive and a voice call both trigger paging, and treating them identically means either wasting capacity on the first or under-serving the second. Two independent mechanisms address this.
| Mechanism | Set by | Carried in | What it changes |
|---|---|---|---|
| Paging Policy Differentiation | The SMF, from the DSCP of the downlink packet, expressed as a Paging Policy Indicator | N11 towards the AMF, per PDU session | Which paging strategy the AMF applies -- how many attempts, how fast it escalates area, whether it pages at all for this traffic class. |
| Paging Priority | The AMF, from the ARP of the affected bearer or from MPS/MCS subscription | The Paging Priority IE of NGAP PAGING | Lets the gNB pre-empt other paging load, and lets it keep paging under overload control when lower-priority pages are being shed. |
pagingCause (Rel-17) | The AMF, when the trigger is a voice call | The Paging RRC message itself, in PagingRecord-v1700 | Reaches the UE, not just the gNB -- so the UE can prioritise its own access and skip low-priority access barring. |
Table 17. Three ways to say "this page matters more". The first two are invisible to the UE; the third is the only one it can see.
Paging Priority and pagingCause are separately configured and can disagree. A page carrying a high Paging Priority but no pagingCause will be treated urgently by the gNB and ordinarily by the UE. If terminating voice setup times are marginal, check both -- the gNB half of the prioritisation is often enabled while the Rel-17 UE-facing half is not.
14. Configuration Reference: ASN.1, Ranges and Timers
The broadcast paging configuration lives at SIB1 -> servingCellConfigCommon -> downlinkConfigCommon -> pcch-Config. That is the whole cell-level configuration; everything else is either UE-specific (suspendConfig, NAS DRX) or derived.
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..maxPO-perPF))
OF INTEGER (0..139),
sCS30KHZoneT-SCS15KHZhalfT SEQUENCE (SIZE (1..maxPO-perPF))
OF INTEGER (0..279),
sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT
SEQUENCE (SIZE (1..maxPO-perPF))
OF INTEGER (0..559),
... -- five further SCS / T-fraction branches
} OPTIONAL, -- Need R
...,
[[ -- Rel-17 additions
nrofPDCCH-MonitoringOccasionPerSSB-InPO-r17 INTEGER (2..4) OPTIONAL,
]]
}
PagingCycle ::= ENUMERATED {rf32, rf64, rf128, rf256}
maxPO-perPF INTEGER ::= 4
-- where it sits
DownlinkConfigCommonSIB ::= SEQUENCE {
frequencyInfoDL FrequencyInfoDL-SIB,
initialDownlinkBWP BWP-DownlinkCommon, -- contains pagingSearchSpace
bcch-Config BCCH-Config, -- modificationPeriodCoeff
pcch-Config PCCH-Config,
...
}
-- RRC_INACTIVE side, delivered once at release
SuspendConfig ::= SEQUENCE {
fullI-RNTI I-RNTI-Value,
shortI-RNTI ShortI-RNTI-Value,
ran-PagingCycle PagingCycle,
ran-NotificationAreaInfo RAN-NotificationAreaInfo OPTIONAL,
t380 PeriodicRNAU-TimerValue OPTIONAL,
nextHopChainingCount NextHopChainingCount,
...
}Listing 2. Abridged from TS 38.331. ... marks omitted branches, members and extension markers.
| Parameter | ASN.1 values | Typical | Effect |
|---|---|---|---|
defaultPagingCycle | rf32, rf64, rf128, rf256 | rf128 (1.28 s) | Cell-wide paging cycle and the basis of the BCCH modification period. |
nAndPagingFrameOffset | oneT / halfT / quarterT / oneEighthT / oneSixteenthT, each with its offset | oneT or quarterT | Sets N and PF_offset together. Sparser N concentrates paging into fewer frames. |
ns | four, two, one | two or four | Paging occasions per PF; bounded by maxPO-perPF = 4. |
firstPDCCH-MonitoringOccasionOfPO | 1..4 integers, range set by the CHOICE branch | absent | Explicit placement of each PO's first monitoring occasion. Needed when the default i_s x S does not fit the frame. |
nrofPDCCH-MonitoringOccasionPerSSB-InPO | 2 .. 4 (Rel-17) | absent | Repeats each monitoring occasion per SSB for coverage. |
pagingSearchSpace | SearchSpaceId 0 .. 39 | 0 | 0 means reuse searchSpaceZero in CORESET#0. Anything else must be a configured search space. |
modificationPeriodCoeff | n2, n4, n8, n16 | n4 | Multiplies defaultPagingCycle to give the BCCH modification period; see 17 System Information. |
ran-PagingCycle | rf32 .. rf256 | rf64 | RRC_INACTIVE paging cycle, per UE. |
ran-NotificationAreaInfo | cellList or ran-AreaConfigList | a handful of cells | Scope of RAN paging and of movement without reporting. |
eDRX-AllowedIdle | present / absent (Rel-17) | absent | Cell-level permission for idle-mode eDRX. |
Table 18. Paging parameter reference. All the cell-level fields are in SIB1, so any change to them is a BCCH modification and is itself announced by a short message.
| Timer / counter | Where | Range or typical | What its expiry means |
|---|---|---|---|
| Paging cycle T | UE and gNB, computed | 320 ms .. 2.56 s (longer with eDRX) | Not a timer as such -- the period between the UE's occasions. |
t380 | UE, from suspendConfig | min5 .. min720 | Periodic RNA update due. The UE resumes with cause rna-Update and is usually sent straight back to RRC_INACTIVE. |
T319 | UE, UE-TimersAndConstants | ms100 .. ms2000, often ms1000 | RRCResumeRequest sent, no RRCResume received. UE goes to RRC_IDLE and the resume is lost -- a paged UE becomes unreachable until it re-registers. |
T300 | UE, UE-TimersAndConstants | ms100 .. ms2000, often ms1000 | RRCSetupRequest sent, no RRCSetup. Connection establishment failure; the page effectively failed at the last hop. |
AMF paging timer (T3513) | AMF | commonly ~6 s | No Service Request arrived. Triggers the next paging attempt or abandonment. |
| RAN paging attempt budget | Anchor gNB | vendor-specific, a few attempts | Anchor releases the UE context to the AMF; escalates to CN paging. |
| Implicit deregistration timer | AMF | operator policy, typically 54 minutes plus the periodic registration timer | The AMF stops believing the UE exists. All subsequent paging is pointless until the UE registers again. |
Table 19. Timers that bound a paging attempt at each level. Note how the scales differ: milliseconds at RRC, seconds at NAS, tens of minutes at the AMF's reachability logic.
15. Failure Modes and What Each One Means
Paging fails silently. There is no acknowledgement, no error message and no counter that increments at the point of failure -- the first symptom is usually a user complaint about missed calls. The failure modes below are ordered roughly by how often they are the actual cause.
| Failure | Detected by | What the UE does | Diagnostic pointer |
|---|---|---|---|
| gNB and UE disagree on T (UE-specific DRX not reaching the gNB) | Nobody, directly -- only the AMF paging timer | Nothing. It sleeps through the page it was sent. | Compare the NGAP Paging DRX IE against the UE's NAS-negotiated DRX. The PF residue differs entirely, so success rate collapses rather than degrades. |
| 5G-S-TMSI mismatch after GUTI reallocation | Nobody | Sleeps through pages sent against the old identity | Correlate the reallocation timestamp against the missed pages. Transient by nature; persistent means a reallocation that one side did not complete. |
| UE outside its RNA, no RNA update performed | Anchor gNB, when RAN paging attempts run out | Nothing until CN paging finds it; then answers with RRCSetupRequest | A suspended UE that reappears as a setup rather than a resume. Usually means the RNA is smaller than the real mobility pattern, or t380 is too long. |
| TAI list / TAC misconfiguration | Nobody -- the page is delivered to the wrong gNBs | Nothing | Check that every cell's broadcast TAC actually appears in the TAI lists the AMF hands out. A cell with a TAC nobody registers in is invisible to paging while working perfectly otherwise. |
pagingSearchSpace or CORESET mismatch | Nobody | Never finds the DCI | Cell-wide, affects every UE equally, and coincides with a config change. If SIB1 acquisition works but paging never does, this is the first thing to check. |
| More than 32 UEs to page in one occasion | gNB scheduler | Nothing wrong; the surplus is simply late | Paging latency that steps up by a whole cycle under load. Fix by raising N x Ns, not by shortening T. |
firstPDCCH-MonitoringOccasionOfPO inconsistent with the SCS / T-fraction branch | Nobody | Monitors the wrong occasions, or two POs collapse onto one | Affects a subset of UE_IDs -- specifically those whose i_s maps to the misplaced entry. Partial paging failure with a clean arithmetic signature. |
| Ns x S exceeds the usable monitoring occasions in the PF | Nobody | Monitors an occasion in the following frame | TDD cells with many SSBs and Ns = 4. Recount usable occasions after removing UL-overlapping ones (§6). |
| PEI or subgroup misconfiguration (Rel-17) | Nobody | Skips the wake-up entirely | Paging failure that vanishes when PEI is disabled with everything else unchanged. |
| Anchor unreachable over Xn during resume | New gNB, on RETRIEVE UE CONTEXT failure | Receives RRCSetup instead of RRCResume; context and bearers are rebuilt | Xn transport or anchor state. Costs the whole point of RRC_INACTIVE but is not a paging failure as such. |
T319 expiry after answering a RAN page | UE | Goes to RRC_IDLE; the page is lost | The page reached the UE and the response failed. Look at Random Access and the resume, not at paging. |
Table 20. Paging failure modes. Note how many rows say "detected by nobody" -- paging has almost no built-in observability, which is why the mt-Access ratio in §9 is worth instrumenting.
Three of these -- DRX mismatch, TAI misconfiguration and search-space mismatch -- produce a UE that registers successfully, sustains data sessions it originates itself, and passes every test that does not involve someone calling it. Mobile-originated traffic works perfectly. Only mobile-terminated traffic fails. If that is the shape of the complaint, start at paging and not at the radio.
16. Illustrative Message Traces
Illustrative trace. Field names and encodings follow 3GPP; the values are constructed for this document and are not a capture from any deployed or lab network.
16.1 The broadcast configuration, and the occasion it implies
SIB1
servingCellConfigCommon
downlinkConfigCommon
initialDownlinkBWP
pdcch-ConfigCommon
pagingSearchSpace ............ 0 -- reuse searchSpaceZero
bcch-Config
modificationPeriodCoeff ....... n4 -- mod period = 4 x T
pcch-Config
defaultPagingCycle ............ rf64 -- T = 64 frames = 640 ms
nAndPagingFrameOffset
quarterT ..................... 2 -- N = 16, PF_offset = 2
ns ............................ four -- Ns = 4
firstPDCCH-MonitoringOccasionOfPO
(absent) -- default: PO starts at i_s x S
ssb-PositionsInBurst
inOneGroup .................... 10001000 -- S = 4 transmitted SSBs
-- UE-side derivation for 5G-S-TMSI 0x00411CB42E77
UE_ID = 0x2E77 & 0x3FF = 631
631 mod 16 = 7 -> (SFN+2) mod 64 = 4 x 7 = 28
SFN mod 64 = 26
i_s = floor(631/16) mod 4 = 39 mod 4 = 3
-> monitor PF SFN 26, 90, 154, ... ; PO index 3; MOs 12..15Listing 3. pcch-Config as decoded from SIB1, with the derivation of §5.2 carried straight through to the monitoring occasions.
16.2 A CN page, delivered and answered
09:41:12.104 [NGAP-DL] PAGING
UE Paging Identity
fiveG-S-TMSI ......... 0x00411CB42E77
Paging DRX ............. v64 -- matches the UE's NAS DRX
TAI List for Paging .... [ TAC 0x000101, TAC 0x000102 ]
Paging Priority ........ (absent)
Paging Attempt Information
Paging Attempt Count ..... 1
Intended Nr of Attempts ... 3
Next Paging Area Scope .... changed
09:41:12.105 [SCHED] paging record queued
UE_ID .................. 631 (5G-S-TMSI mod 1024)
target PF .............. SFN 26 (next occurrence SFN 794)
target PO .............. i_s 3 -> MOs 12..15, slots 15..18
wait ................... 428 ms
09:41:12.533 [PHY-DL] PDCCH, DCI 1_0, CRC scrambled by P-RNTI 0xFFFE
SFN 794 slot 15 (MO 12, SSB #0 beam)
Short Messages Indicator ... 01 -- scheduling info only
Frequency domain res alloc . RIV 0x0C82 -> 8 PRB from PRB 12
Time domain res alloc ...... row 2 (S=2, L=12)
VRB-to-PRB mapping ......... 1 -- interleaved
MCS ........................ 2
TB scaling ................. 0
-- repeated in MOs 13,14,15 on SSB #1,#2,#3
09:41:12.534 [RRC-DL-PCCH] Paging (18 octets)
pagingRecordList: 2 records
[0] ue-Identity
ng-5G-S-TMSI ...... 0x00411CB42E77 -- our UE
accessType .......... (absent) -- i.e. 3GPP access
[1] ue-Identity
ng-5G-S-TMSI ...... 0x0041 7702 1E77 -- a different UE_ID 631
09:41:12.536 [RRC] own 5G-S-TMSI matched in record 0
-> initiate RRC connection establishment
09:41:12.548 [MAC-UL] RA preamble 41, RA-RNTI 1287
09:41:12.571 [RRC-UL] RRCSetupRequest
ue-Identity
ng-5G-S-TMSI-Part1 ... 0x1CB42E77
establishmentCause .... mt-Access -- the paging fingerprint
09:41:12.594 [RRC-DL] RRCSetup
09:41:12.612 [RRC-UL] RRCSetupComplete + NAS Service Request
09:41:12.618 [NGAP-UL] INITIAL UE MESSAGE (RRCEstablishmentCause mt-Access)
-- end to end from PAGING to INITIAL UE MESSAGE: 514 ms,
of which 428 ms was waiting for the paging occasionListing 4. A complete CN paging success. The second record shows the sharing effect: another UE_ID 631 in the same occasion, whose 5G-S-TMSI differs everywhere except the low ten bits.
16.3 A RAN page answered at a neighbour cell
14:07:55.880 [GTP-U] DL PDU on NG-U TEID 0x0000A17C
UE state ............... RRC_INACTIVE since 14:03:22
fullI-RNTI ............. 0x1A2B3C4D5E
ran-PagingCycle ........ rf64
14:07:55.881 [RAN-PAGE] RAN paging initiated, attempt 1 of 2
RNA .................... cellList, 12 cells across 2 gNBs
14:07:55.882 [XNAP-DL] RAN PAGING -> neighbour gNB
UE RAN Paging Identity . I-RNTI 0x1A2B3C4D5E
RAN Paging Area ........ 12 cells
Paging DRX ............. v64
14:07:56.204 [RRC-DL-PCCH] (neighbour cell) Paging (11 octets)
pagingRecordList: 1 record
[0] ue-Identity
fullI-RNTI ........ 0x1A2B3C4D5E -- RAN paging, not CN
14:07:56.206 [RRC] fullI-RNTI matched -> resume (not setup)
14:07:56.231 [RRC-UL] RRCResumeRequest on CCCH
resumeIdentity (shortI-RNTI) .. 0x3C4D5E
resumeMAC-I ................... 0x9B41
resumeCause ................... mt-Access
14:07:56.234 [XNAP-UL] RETRIEVE UE CONTEXT REQUEST -> anchor gNB
I-RNTI ........................ 0x1A2B3C4D5E
14:07:56.241 [XNAP-DL] RETRIEVE UE CONTEXT RESPONSE
resumeMAC-I verified .......... ok
AS security context, DRB config, PDCP SN status
14:07:56.258 [RRC-DL] RRCResume on SRB1 (integrity protected, ciphered)
14:07:56.281 [RRC-UL] RRCResumeComplete
14:07:56.286 [NGAP-UL] PATH SWITCH REQUEST -> AMF
-- the AMF was never involved in the paging itself, only in the path switchListing 5. RAN paging with the UE answering under a different gNB. The record carries fullI-RNTI, which is the only thing in the transmission that distinguishes it from a CN page.
16.4 A short message with no paging record at all
22:15:00.008 [PHY-DL] PDCCH, DCI 1_0, CRC scrambled by P-RNTI 0xFFFE
SFN 512 slot 0
Short Messages Indicator ... 10 -- short message ONLY
Short Message .............. 0b10000000
bit 1 systemInfoModification ...... 1
bit 2 etwsAndCmasIndication ....... 0
bit 3 systemInfoModification-eDRX . 0
bits 4..8 ......................... 0 (ignored)
-- no PDSCH scheduled, no Paging message, no UE identity
22:15:00.009 [RRC] SI change indicated
current modification period ends at SFN 768
-> re-acquire SIB1 and changed SI from SFN 768
22:41:33.120 [PHY-DL] PDCCH, DCI 1_0, P-RNTI 0xFFFE
Short Messages Indicator ... 11 -- short message AND paging
Short Message .............. 0b01000000
bit 2 etwsAndCmasIndication ....... 1
22:41:33.121 [RRC] ETWS/CMAS indicated -> acquire SIB6/SIB7/SIB8 now
(not deferred to a modification period boundary)
22:41:33.122 [RRC-DL-PCCH] Paging (12 octets)
pagingRecordList: 1 record
[0] ng-5G-S-TMSI ..... 0x0041 88C1 04B2 -- not our UE
22:41:33.123 [RRC] no identity match -> no access initiated,
but the ETWS action above still appliesListing 6. The two identity-free cases. The second shows indicator 11: the short message is acted on even though the paging record belongs to somebody else.
16.5 A UE that is never reachable
-- UE registers and works normally for mobile-originated traffic
10:02:11.400 [NAS] Registration Accept
5G-GUTI ................ 0x0041 1CB4 2E77
Requested DRX param .... 32 radio frames -- UE asked for rf32
Negotiated DRX param ... 32 radio frames
-- UE therefore uses T = 32 (shortest applicable), and computes
631 mod 16 = 7 -> (SFN+2) mod 32 = (32 div 16) x 7 = 14 -> SFN mod 32 = 12
-> PF at SFN 12, 44, 76, ...
10:14:38.002 [NGAP-DL] PAGING
fiveG-S-TMSI ........... 0x00411CB42E77
Paging DRX ............. (absent) -- ** not relayed **
10:14:38.003 [SCHED] no Paging DRX IE -> fall back to defaultPagingCycle rf64
gNB computes (SFN+2) mod 64 = 28 -> SFN mod 64 = 26
target PF .............. SFN 26
10:14:38.240 [PHY-DL] paging transmitted at SFN 26, PO i_s 3
-- the UE was awake at SFN 12 and 44, asleep at 26. Nothing is logged as an
error anywhere: the gNB transmitted, the UE slept.
10:14:44.010 [NGAP-DL] PAGING Paging Attempt Count 2 (AMF timer expired)
10:14:50.015 [NGAP-DL] PAGING Paging Attempt Count 3
10:14:56.020 [AMF] paging abandoned, SMF notified of delivery failure
-- diagnostic: compare the negotiated NAS DRX against the NGAP Paging DRX IE.
T differs -> the PF residues differ -> the two patterns never intersect.Listing 7. The most expensive paging bug there is: a UE-specific DRX cycle that the AMF negotiated and then failed to relay. Every layer reports success.
17. Release Deltas: Rel-15 to Rel-18
| Release | Change | Why it matters when reading paging |
|---|---|---|
| Rel-15 | CN and RAN paging; PF/PO arithmetic; P-RNTI 0xFFFE; DCI 1_0 with short message bits 1-2; Paging with up to 32 records | The baseline. Everything in §3 to §9 is Rel-15 and has not changed. |
| Rel-15 | accessType in PagingRecord | Distinguishes a page for a non-3GPP access session. Absent means 3GPP, which reads as a missing field in many decoders. |
| Rel-16 | NGAP Paging Attempt Information (attempt count, intended attempts, next area scope); Paging Origin for voice | Makes the AMF's escalation visible from the RAN, which is what lets you separate page missed from page not yet sent widely enough. |
| Rel-16 | Paging Policy Differentiation hardening -- PPI derived from DSCP, per-PDU-session paging policy | Two pages for the same UE can now legitimately get different treatment depending on which flow triggered them. |
| Rel-17 | Paging Early Indication -- DCI 2_7, PEI-RNTI, pei-Config | A UE can skip the wake-up entirely. A page can now be correctly transmitted and correctly not heard. |
| Rel-17 | Paging subgrouping -- UE_ID-based and CN-assigned subgroups in the PEI payload | Refines PEI from per-PO to per-subgroup. Adds a second identity-derived quantity that both sides must agree on. |
| Rel-17 | eDRX in RRC_IDLE (up to hours, with H-SFN and a Paging Time Window) and in RRC_INACTIVE (up to 10.24 s) | SFN alone no longer identifies an occasion. Also the reason short message bit 3 exists. |
| Rel-17 | pagingCause = voiceCall in PagingRecord-v1700 | The first paging information that reaches the UE rather than just the gNB. |
| Rel-17 | RedCap: separate initial DL BWP, separate firstPDCCH-MonitoringOccasionOfPO, nrofPDCCH-MonitoringOccasionPerSSB-InPO | One cell can have two disjoint sets of paging occasions. A page in the wrong set is never heard. |
| Rel-17 | Small Data Transmission from RRC_INACTIVE | A RAN-paged UE may exchange data without ever reaching RRC_CONNECTED, so a successful page need not produce a state change. |
| Rel-18 | Network energy saving: cell DTX/DRX aligned with paging occasions; further PEI refinements | Paging occasions become one of the few times a lightly loaded cell transmits at all, so they dominate its energy profile. |
| Rel-18 | NTN paging enhancements -- longer windows and propagation-aware occasion placement | The occasion the UE monitors and the occasion the gNB transmits in can be separated by more than a frame. |
Table 21. Paging-relevant changes by release. Feature presence should be confirmed against the UE capability exchange -- see the companion 26 UE Capability document.
18. Reading Paging in Logs: A Checklist
1. Read the record identity first. ng-5G-S-TMSI means CN paging and expect RRCSetupRequest. fullI-RNTI means RAN paging and expect RRCResumeRequest. No record at all means a short message, and expect no response from anyone (§1, §8).
2. Compute UE_ID by hand. Take the low ten bits of the 5G-S-TMSI. Then run the PF congruence and the i_s expression from §4 with the cell's own pcch-Config. If your computed PF does not match the SFN the page was transmitted in, stop -- you have found the bug.
3. Check that T is the same on both sides. Compare the NAS-negotiated DRX, the NGAP Paging DRX IE, ran-PagingCycle if the UE was inactive, and defaultPagingCycle. The shortest should win everywhere. A missing Paging DRX IE is the single most common cause of a UE that only fails mobile-terminated (§4.3, §16.5).
4. Decode the Short Messages Indicator before anything else in the DCI. With value 10 there is no PDSCH, so an absent Paging message is correct behaviour and not a decode failure (§7).
5. Count the paging records. A list running at or near 32 in a busy hour means the occasion is saturated and pages are being deferred a whole cycle. The fix is more occasions (N x Ns), not a shorter cycle (§8, §11.1).
6. Convert monitoring-occasion index to slot index properly. Occasions overlapping uplink symbols are skipped before numbering, so in a TDD cell the two indices differ. Recount before concluding the gNB transmitted in the wrong place (§6).
7. Look for the mt-Access cause. mt-Access is the only end-to-end evidence that a page was received. Count mt-Access accesses against pages requested; nothing else in the protocol closes the loop (§9).
8. Check the Paging Attempt Count on the NGAP message. If terminating calls connect but connect slowly, and the attempt count is routinely 2 or 3, the problem is the AMF's first narrow attempt missing rather than the air interface (§11.2).
9. For an RRC_INACTIVE UE, check the RNA and the RNA-update timer before the radio. t380 too long, or an RNA smaller than the real mobility pattern, and RAN paging misses. A resume that arrives as a setup means RAN paging never reached the UE and CN paging cleaned up afterwards (§10).
10. If PEI is enabled, disable it once as a control. A paging failure that disappears with PEI off, with every other parameter unchanged, is a PEI or subgroup problem and no amount of PF/PO arithmetic will find it (§12.2).
19. Glossary
| Term | Expansion | Meaning in this document |
|---|---|---|
| PF | Paging Frame | A radio frame whose SFN satisfies the PF congruence for a given UE_ID. There are N of them per cycle T. |
| PO | Paging Occasion | One of the Ns opportunities inside a PF, itself a set of S x X PDCCH monitoring occasions -- one per transmitted SSB. |
| MO | PDCCH Monitoring Occasion | One chance to detect the paging DCI. Numbered from zero within the PF, skipping occasions that overlap uplink symbols. |
| UE_ID | -- | 5G-S-TMSI mod 1024. The hash that selects PF and PO. Only 1024 values exist, so UEs share occasions. |
| T | Paging DRX cycle | The UE's wake-up period in radio frames. The shortest of the default, NAS and RAN values applies. |
| N / Ns | -- | Paging frames per cycle / paging occasions per paging frame. From nAndPagingFrameOffset and ns respectively -- not from nB as in LTE. |
| P-RNTI | Paging RNTI | Fixed at 0xFFFE. Scrambles the CRC of the paging DCI, so every UE can descramble it without any context. |
| Short Message | -- | Eight bits in the DCI carrying cell-wide flags. Needs no PDSCH and carries no UE identity. |
| 5G-S-TMSI | 5G Temporary Mobile Subscription Identifier | 48 bits: AMF Set ID, AMF Pointer and the 32-bit 5G-TMSI. The paging identity for RRC_IDLE and the source of UE_ID. |
| I-RNTI | Inactive RNTI | 40-bit fullI-RNTI in the paging record, 24-bit shortI-RNTI in RRCResumeRequest. Identifies both the UE and its anchor gNB. |
| TAI / RNA | Tracking Area Identity / RAN Notification Area | The scope of CN paging and of RAN paging respectively. The RNA is usually the smaller of the two. |
| PEI | Paging Early Indication | Rel-17 DCI 2_7 ahead of the PO saying whether waking fully is worth it. |
| PTW | Paging Time Window | The eDRX window inside a paging hyper-frame within which the ordinary PF/PO arithmetic applies. |
| PPD / PPI | Paging Policy Differentiation / Indicator | Lets the core apply different paging effort to different traffic classes, derived from the downlink packet's DSCP. |
20. References
- 3GPP TS 38.304 -- UE procedures in Idle mode and RRC Inactive state. Clause 7 (paging), clause 7.1 (discontinuous reception, the PF and i_s formulae, monitoring occasion numbering,
firstPDCCH-MonitoringOccasionOfPO), clause 5 (cell selection and reselection, which determines where a page must be sent). - 3GPP TS 38.331 -- RRC protocol specification. Clause 5.2 (paging reception and short message handling), clause 5.3.13 (RRC connection resume), clause 6.2 (
PCCH-Message,Paging,PagingRecord,PagingUE-Identity,PCCH-Config,SuspendConfig,PEI-Config), clause 6.5 and Table 6.5-1 (Short Message bit definitions). - 3GPP TS 38.212 -- Multiplexing and channel coding. Clause 7.3.1.2.1 (DCI format 1_0, including the P-RNTI field set and the Short Messages Indicator).
- 3GPP TS 38.213 -- Physical layer procedures for control. Clause 10.1 (search spaces,
pagingSearchSpaceand Type2-PDCCH common search space). - 3GPP TS 38.321 -- MAC protocol specification. Clause 7.1 (RNTI values, including P-RNTI = 0xFFFE).
- 3GPP TS 38.300 -- NR overall description. Clause 9.2.5 (paging), clause 9.2.2 (RRC states and the RRC_INACTIVE model that RAN paging serves).
- 3GPP TS 38.413 -- NGAP. The
PAGINGmessage and its IEs: UE Paging Identity, Paging DRX, TAI List for Paging, Paging Priority, Assistance Data for Paging, Paging Attempt Information, UE Radio Capability for Paging. - 3GPP TS 38.423 -- XnAP. The
RAN PAGINGmessage, andRETRIEVE UE CONTEXT REQUEST/RESPONSEused when a paged UE resumes at a different gNB. - 3GPP TS 23.501 -- System architecture. Clause 5.4.4 (paging policy differentiation), clause 5.3 (registration and connection management states, CM-IDLE and CM-CONNECTED).
- 3GPP TS 23.502 -- Procedures for the 5G System. Network-triggered Service Request, which is the procedure CN paging sits inside.
- 3GPP TS 24.501 -- NAS protocol for 5GS. UE specific DRX parameters in the Registration procedure, and the AMF paging timer.
- 3GPP TS 38.306 -- UE radio access capabilities. The capability bits gating eDRX, PEI and subgrouping support.
Companion documents in this set
- 02 Radio Frame Structure -- SFN, radio frames and slots, which the whole PF/PO calculation indexes.
- 03 Random Access -- what a paged UE does immediately after a match.
- 06 Channel Mapping -- the PCCH / PCH / PDSCH chain of §3 in its full context.
- 11 DRX -- connected-mode DRX, the same idea applied to a UE that already has a C-RNTI.
- 13 RRC Overview -- the RRC layer and its bearers; PCCH is the one logical channel with no SRB.
- 14 RRC States -- RRC_INACTIVE,
suspendConfig, I-RNTI and the RNA update procedure that RAN paging depends on. - 15 RRC Procedures --
RRCSetupandRRCResumein detail. - 17 System Information / 18 MIB and SIB1 IEs -- where
pcch-Configis broadcast, and the modification period the short message refers to. - 26 UE Capability -- where support for eDRX, PEI and subgrouping is declared.
- 27 AS Security Mode -- the
resumeMAC-Ithat validates a RAN-paged resume, and why thePagingmessage itself cannot be protected.