Radio bearer architecture
A radio bearer is a logical pipe between the UE and the network for a specific type of traffic. Each bearer maps to a specific QoS class and traverses a defined stack of protocol layers. 5G NR defines two types:
Signalling Radio Bearers (SRBs) carry RRC and NAS control messages. SRB0 uses the Common Control Channel before RRC connection. SRB1 (established at RRCSetup) carries all subsequent RRC signalling. SRB2 is established later for NAS messages.
Data Radio Bearers (DRBs) carry user data. Each DRB maps to a PDU session and QoS flow. DRBs are established in RRCReconfiguration after NAS registration.
Logical, transport, and physical channels
The RRC configuration maps each bearer to a chain of channels:
| Bearer type | Logical channel | Transport channel | Physical channel |
|---|---|---|---|
| SRB0 (pre-RRC) | CCCH | DL-SCH / UL-SCH | PDSCH / PUSCH (SI-RNTI / TC-RNTI) |
| SRB1 (our current) | DCCH | DL-SCH / UL-SCH | PDSCH / PUSCH (C-RNTI) |
| DRB (user data) | DTCH | DL-SCH / UL-SCH | PDSCH / PUSCH (C-RNTI) |
| Broadcast (SIB) | BCCH | BCH / DL-SCH | PBCH / PDSCH (SI-RNTI) |
| Paging | PCCH | PCH | PDSCH (P-RNTI) |
DRX — power saving in connected mode
Even in RRC_CONNECTED, the UE does not need to monitor the PDCCH every single slot. DRX (Discontinuous Reception) lets the UE sleep for defined periods, waking only at DRX occasions to check for scheduling assignments.
// DRX cycle = drx-LongCycleStartOffset drx-LongCycle = 160 ms ← wake every 160 ms (default) drx-OnDurationTimer = 10 ms ← monitor PDCCH for 10 ms after waking drx-InactivityTimer = 100 ms ← stay awake 100 ms after last DCI received drx-RetransmissionTimerDL = 4 ms ← stay awake for HARQ retransmissions // Power saving example: Active time = 10 ms on-duration + ~100 ms after data Sleep time = remaining ~50 ms per 160 ms cycle Duty cycle = ~31% (70% power reduction vs always-on)
Measurement configuration and reporting
In RRC_CONNECTED, the network configures the UE to measure signal quality of the serving cell and neighbouring cells. These measurements feed the handover algorithm — when a neighbour becomes significantly stronger than the serving cell, a handover is triggered.
| Event | Trigger | Typical use |
|---|---|---|
| A3 | Neighbour becomes offset better than serving | Intra-frequency handover ← most common |
| A1 | Serving cell above threshold | Cancel inter-freq measurements (save power) |
| A2 | Serving cell below threshold | Start inter-freq/RAT measurements |
| A4 | Neighbour above threshold | Conditional handover preparation |
| A5 | Serving below T1 AND neighbour above T2 | Inter-frequency handover |
RRCSetupComplete — closing the loop
The final RRC message in the initial access sequence. Sent by the UE on SRB1 after receiving and applying RRCSetup. It includes a NAS Registration Request piggybacked in the dedicatedNAS-Message field.
// RRCSetupComplete sent on SRB1 (C-RNTI=0x3A7F): RRCSetupComplete ::= SEQUENCE { rrc-TransactionIdentifier = 0, criticalExtensions: rrcSetupComplete: selectedPLMN-Identity = 1 ← index 1 → PLMN 244-05 registeredAMF = present ← reuse last known AMF guami = present ← last known GUAMI dedicatedNAS-Message: // NAS Registration Request (5GMM): messageType = 0x41 ← Registration Request registrationType = initialRegistration 5GS_mobile_identity: SUCI ← Subscription Concealed Identifier (privacy) // SUCI = ECIES-encrypted IMSI → AMF decrypts with AUSF requestedNSSAI = eMBB slice }