RRC Connection Procedures in LTE 4G
Connection setup, reconfiguration, release and re-establishment — the core RRC flows with exact IEs.
Every LTE call, every data session, every attach begins the same way: a UE has to build, modify, and eventually tear down an RRC connection with the eNB. RRC is the control-plane language between UE and eNB (TS 36.331), and once you can read the handful of messages below — what each one carries, which bearer it rides, and what state change it drives — almost every signalling log you ever open in LTE becomes readable.
Introduction
Radio Resource Control (RRC) is the top of the LTE control-plane stack (TS 36.331). It is the layer that decides what radio configuration a UE runs with: which bearers exist, which measurements are active, which cell the UE is camped or connected on, and which security keys protect the link. Everything a UE does in RRC_CONNECTED — from the first attach to a mid-call handover to the final release — is driven by an RRC message pair.
These procedures sit directly on top of random access. The moment contention-based random access assigns the UE a temporary C-RNTI, the very next thing that happens is an RRC procedure: the UE sends RRCConnectionRequest as Msg3. From there RRC governs the entire connected lifecycle — setup, reconfiguration (adding bearers, arming measurements, commanding handover), re-establishment after a radio-link failure, and release back to idle. Rel-13 adds a suspend/resume fast path that is the direct ancestor of NR's RRC_INACTIVE.
Because each procedure is a small, fixed exchange — a request or command, an optional reply, and a complete — a signalling failure almost always lives in one identifiable message. Knowing which message is missing, malformed, or unacknowledged narrows the root cause enormously, which is exactly why reading these flows message by message pays off in the field.
On this page
Why RRC procedures are needed
In plain words: think of RRC as the paperwork and permits between a new tenant and a building manager. Before you can move furniture in (user data), you file a request at the front desk (RRCConnectionRequest on the unsecured SRB0), get handed a key and a mailbox (SRB1), sign the lease and hand over your ID (the NAS message in SetupComplete), and only then does the manager fit out the apartment with utilities (DRBs via reconfiguration). If you have to move rooms, that is a handover; if you trip and lose your key, re-establishment lets you back in without re-signing the whole lease — provided the manager still has your file.
Concretely, RRC exists because the radio link has to be built up in stages, each stage unlocking the next. The first message must leave the UE before any security context exists, so it rides an unsecured bearer. Once the eNB grants a dedicated bearer, the UE can carry its identity and NAS payload to the core. Once the core authenticates and AS security is switched on, data radio bearers and lower-priority NAS can be added. And because radio conditions and mobility constantly disturb this arrangement, RRC also needs procedures to repair a broken link (re-establishment), move it to a better cell (handover inside reconfiguration), and park it efficiently (release, suspend/resume). Each procedure is a controlled transition between well-defined states, which is what makes the connection predictable enough to debug.
Signalling Radio Bearers: which pipe each message rides
RRC messages never travel on a bare channel. Each one rides a Signalling Radio Bearer (SRB), and the SRB fixes the logical channel it uses, the RLC mode underneath it, and whether it is secured. Learn the three SRBs first and every flow below reads like a story rather than a wall of message names.
An SRB is a radio bearer reserved for control-plane traffic — RRC signalling plus piggybacked NAS. LTE defines three: SRB0, SRB1, and SRB2 (Rel-13 adds SRB1bis for the CIoT control-plane optimisation, but the classic three are what you meet daily).
The very first message must leave the UE before any security context exists, yet later messages must be ciphered and integrity-protected. A single bearer type cannot serve both roles, so the standard splits them: one unsecured bootstrap bearer and two secured working bearers.
SRB0 uses CCCH over RLC-TM with no PDCP and no security. SRB1 and SRB2 use DCCH over RLC-AM and are PDCP-protected once AS security is active. SRB1 carries RRC plus high-priority NAS; SRB2 carries lower-priority NAS only and is always configured after security activation.
| SRB | Logical channel | RLC mode | PDCP / security | Carries |
|---|---|---|---|---|
SRB0 | CCCH | RLC-TM | None | RRCConnectionRequest, RRCConnectionSetup, RRCConnectionReject, RRCConnectionReestablishmentRequest, RRCConnectionReestablishment, RRCConnectionReestablishmentReject |
SRB1 | DCCH | RLC-AM | PDCP (once security active) | Most RRC messages plus piggybacked high-priority NAS |
SRB2 | DCCH | RLC-AM | PDCP | Lower-priority NAS only (never RRC); set up after security |
Remember: SRB0 exists precisely because there is one moment — the start of every connection — when UE and eNB share no security context yet still must exchange messages. That is why it uses transparent-mode RLC on the common control channel and no ciphering. The instant a dedicated context exists, traffic moves to SRB1.
One more subtlety governs how RRC and NAS share these bearers. RRC can piggyback a NAS message inside an RRC message — the way RRCConnectionSetupComplete carries the initial NAS payload in dedicatedInfoNAS — or it can carry standalone NAS later in a DLInformationTransfer (downlink) or ULInformationTransfer (uplink) on SRB1 or SRB2. High-priority NAS, and any NAS sent before SRB2 exists, rides SRB1; once security is up and SRB2 is configured, ordinary NAS is steered onto SRB2 so it never competes with time-critical RRC signalling for the same bearer. This priority split is precisely why the standard bothered to define two secured SRBs instead of one.
How SRB0/CCCH is scheduled: the RRCConnectionSetup and RRCConnectionReject that ride SRB0 are carried on DL-SCH / PDSCH, scheduled by a PDCCH whose CRC is scrambled with the Temporary C-RNTI from Msg2 (in the common search space) — the UE has no C-RNTI yet. Once the connection is up, dedicated RRC on SRB1/SRB2 is scheduled by PDCCH scrambled with the UE's assigned C-RNTI in its UE-specific search space.
RRC Connection Setup: from idle to connected
A UE in RRC_IDLE that wants to send data or signalling first establishes an RRC connection. This three-message handshake is the one you will meet more often than any other, and it directly follows the random-access exchange that assigned the UE a temporary C-RNTI.
After winning contention-based random access, the UE sends RRCConnectionRequest as Msg3 on SRB0/CCCH. Its ue-Identity is either the s-TMSI — if the UE holds a valid one from a prior registration — or a 40-bit randomValue drawn locally. It also carries an establishmentCause such as mo-Data, mo-Signalling, mt-Access, emergency, highPriorityAccess, or (Rel-11/13) delayTolerantAccess / mo-VoiceCall. That cause is what the eNB uses to apply admission control and prioritisation; under load it may admit an emergency request while rejecting an mo-Data one. This message also starts the UE's T300 timer, which bounds the whole wait for a Setup or Reject.
The eNB answers with RRCConnectionSetup as Msg4, still on SRB0/CCCH. This message carries a radioResourceConfigDedicated that establishes SRB1 (its logicalChannelConfig and RLC-AM parameters) and configures the lower layers — MAC main configuration, physical-channel configuration, and the C-RNTI already handed out during random access. Once the UE applies this, it stops T300 and has a dedicated control bearer for the first time.
Now that SRB1 exists, the UE replies with RRCConnectionSetupComplete as Msg5 on SRB1/DCCH. This message carries selectedPLMN-Identity (an index into the PLMN list broadcast in SIB1), the registeredMME if the UE knows one from a previous attach, and crucially the dedicatedInfoNAS — the initial NAS message, typically an Attach Request or Service Request. The eNB extracts that NAS payload and forwards it to the MME inside the S1AP Initial UE Message, which creates the UE-associated S1 signalling connection at the core. Note that at this instant SRB1 is not yet ciphered — AS security has not been activated, so the setup handshake completes in the clear.
Spec: If the eNB cannot admit the request — congestion, no resources, or an operator policy — it answers Msg3 with RRCConnectionReject on SRB0 instead of a Setup. That message carries a waitTime (1–16 seconds) during which the UE must not retry, and Rel-10 adds an extendedWaitTime (up to 30 minutes) aimed at delay-tolerant machine-type devices. The UE stays in RRC_IDLE and applies access barring before trying again.
Reading connection setup in the logs
On a UE-side trace, connection setup is three RRC PDUs in quick succession with the C-RNTI already assigned by RACH. The fields that matter for debugging are the identity and cause in the Request, the SRB1 configuration in the Setup, and the NAS payload in the Complete.
Representative UE RRC log (LTE initial access) — illustrative, values vary by vendor/build:
| Field | Meaning | Example (from log) | Check |
|---|---|---|---|
ue-Identity | Identity in RRCConnectionRequest — s-TMSI if held, else randomValue. | s-TMSI 0x0C1D2E3F | A randomValue where an s-TMSI was expected hints the UE lost its registration; two UEs colliding here means contention was not truly resolved. |
establishmentCause | Why the UE is connecting; drives admission priority. | mo-Signalling | If Rejects cluster on mo-Data but not emergency, the eNB is shedding load by cause — a capacity issue, not a UE fault. |
T300 | Timer guarding the wait for Setup/Reject after the Request. | 1000 ms | Expiry with no Msg4 means the Setup never arrived — check DL coverage and eNB admission, then the UE retries per access barring. |
srb-ToAddModList | The SRB1 configuration inside radioResourceConfigDedicated. | srb-Identity 1 | Absent or malformed SRB1 config means the UE cannot send the Complete; watch for a re-establishment/RLF instead. |
dedicatedInfoNAS | The piggybacked initial NAS message forwarded to the MME. | Attach / Service Request | Missing NAS forwarding at the eNB (no S1AP Initial UE Message) strands the setup at RRC even though the air interface succeeded. |
✅ Debugging steps
- Confirm the
RRCConnectionRequestwas sent as Msg3 and that RACH contention actually resolved (the UE holds a validC-RNTI). - Check whether the eNB answered with
RRCConnectionSetuporRRCConnectionReject; a Reject is admission control, not a radio fault. - Verify
T300did not expire — a timeout points to a lost Msg4 (DL coverage / scheduling) rather than a rejected request. - Confirm the SRB1 config in the Setup was applied and the UE sent
RRCConnectionSetupCompleteonSRB1. - Trace the
dedicatedInfoNASonward: did the eNB emit the S1APInitial UE Messageto the MME?
⚠ Common causes of failure
- eNB admission control returns
RRCConnectionRejectunder congestion (with awaitTime) — the UE stays idle and backs off. T300expiry: Msg4 never decoded due to poor downlink, PDCCH congestion, or the eNB dropping the request.- UE cannot comply with the
radioResourceConfigDedicatedin the Setup, so no Complete is sent and the attempt fails. - NAS not forwarded (no S1AP Initial UE Message) — the RRC connection is up but the attach/service request stalls at the core.
- Access barring (from SIB2
ac-BarringInfo) blocks the attempt before Msg3 is even sent.
RRC Connection Reconfiguration: bearers, measurements, and handover
This is the workhorse of the connected state. Almost every change to a connected UE — adding a data bearer, configuring measurements, or moving to a new cell — arrives as an RRCConnectionReconfiguration on SRB1, and the UE always answers with RRCConnectionReconfigurationComplete.
To set up user data, the eNB sends RRCConnectionReconfiguration with a radioResourceConfigDedicated whose drb-ToAddModList adds one or more DRBs (each mapping an EPS bearer to an RLC/PDCP/logical-channel configuration), and it typically adds SRB2 in the same message via srb-ToAddModList. To configure measurements, the same message carries a measConfig that holds three linked lists: measObjectToAddModList (what to measure — EUTRA carriers, inter-RAT frequencies), reportConfigToAddModList (when to report — event A1–A6, B1/B2, periodic), and measIdToAddModList (which object is tied to which report). The UE combines these into active measurements whose reports drive later mobility decisions.
For a handover, the message additionally includes mobilityControlInfo. This is the field that turns an ordinary reconfiguration into an intra-LTE handover command: it names the targetPhysCellId, the target carrierFreq, a newUE-Identity (the C-RNTI to use in the target cell), a rach-ConfigDedicated that may reserve a contention-free RACH preamble, and a t304 guard timer. On receiving it, the UE detaches from the source cell, synchronises to the target, performs RACH there (contention-free if a dedicated preamble was given), and only then sends RRCConnectionReconfigurationComplete to the target eNB. If t304 expires first, the UE declares handover failure and moves to re-establishment.
Two properties of reconfiguration are easy to miss but matter in practice. First, it uses delta signalling: the message describes only what changes, so an "add" list such as drb-ToAddModList sits alongside "release" lists like drb-ToReleaseList, and anything not mentioned keeps its current value. Second, the procedure is strictly acknowledged — the network treats the configuration as applied only when RRCConnectionReconfigurationComplete arrives. If the UE cannot comply with the received configuration, it does not send a Complete; instead it triggers re-establishment, which is why a malformed or unsupported reconfiguration shows up in logs as an RLF-like recovery rather than an explicit error message.
Key intuition: The presence of mobilityControlInfo is the single switch between "stay and reconfigure" and "hand over now". Without it the UE applies the changes on its current cell; with it, the UE cuts over to the target PCell and RACHes there. Everything else in the message — DRBs, measConfig, security key refresh via nextHopChainingCount — can accompany either mode.
Reading reconfiguration / handover in the logs
The single most useful thing to spot in a reconfiguration trace is whether mobilityControlInfo is present, and if so, whether the UE completed RACH on the target before t304. A Complete sent on the target cell is the signature of a successful handover.
Representative log (intra-LTE handover) — illustrative, values vary by vendor/build:
| Field | Meaning | Example (from log) | Check |
|---|---|---|---|
mobilityControlInfo | Present → this reconfiguration is a handover command. | present | If absent, the UE stays on its current cell; do not read RACH/T304 issues into a plain reconfiguration. |
targetPhysCellId | PCI of the target cell the UE must sync to. | 222 | Confirm the target is actually the strongest neighbour in the triggering measurement report; a wrong target = too-early/wrong-cell HO. |
rach-ConfigDedicated | Contention-free preamble reserved on the target. | ra-PreambleIndex 12 | If missing, the UE must do contention-based RACH on the target — slower and collision-prone under load. |
t304 | Guard timer for completing access to the target. | ms1000 | Expiry = handover failure → UE starts T311 and attempts re-establishment; check target coverage and preamble. |
...ReconfigurationComplete | Acknowledgement, sent on the target after RACH. | on PCI 222 | No Complete = the UE could not comply or could not reach the target; expect an RLF-like recovery. |
✅ Debugging steps
- Determine whether
mobilityControlInfois present — it distinguishes a stay-put reconfiguration from a handover. - For a handover, check that the UE completed RACH on the target and sent
RRCConnectionReconfigurationCompletebeforet304expired. - For bearer changes, verify the
drb-ToAddModList/srb-ToAddModListdeltas apply cleanly against the UE's current config. - If no Complete appears, suspect a configuration the UE cannot comply with — look for a subsequent re-establishment rather than an explicit error.
- Cross-check the triggering
measConfigevent (A3 etc.) against the target PCI to catch too-early / too-late handovers.
⚠ Common causes of failure
t304expiry: the UE could not access the target cell in time (poor target coverage, wrong/blocked dedicated preamble) — declared handover failure.- UE cannot comply with the received configuration (unsupported combination, bad delta), so it silently triggers re-establishment.
- Wrong or stale target PCI/frequency from a mis-tuned
measConfig, causing too-early, too-late, or wrong-cell handover. - Missing
nextHopChainingCounthandling causing a security key mismatch after cutover. - The
RRCConnectionReconfigurationCompleteis lost on the target uplink, so the network never confirms the new config.
RRC Connection Release: going back to idle
When the network wants to free the connection, it sends RRCConnectionRelease on SRB1. A couple of optional fields decide not just that the UE goes idle, but exactly where it lands afterwards.
RRCConnectionRelease tears down the RRC connection and returns the UE to RRC_IDLE. It carries a mandatory releaseCause and may include redirectedCarrierInfo, idleModeMobilityControlInfo, and an extendedWaitTime.
Leaving an idle UE camped on the most suitable carrier saves it from a slow re-selection later — for example steering it to another LTE frequency for load balancing, or redirecting it to UTRAN/GERAN for CS fallback so a voice call can complete.
releaseCause takes values such as loadBalancingTAUrequired, cs-FallbackHighPriority, rrc-Suspend (Rel-13), or other. redirectedCarrierInfo names an EUTRA or inter-RAT carrier the UE tunes to as it goes idle; idleModeMobilityControlInfo supplies dedicated cell-reselection priorities that temporarily override the broadcast ones.
The redirection fields matter operationally. redirectedCarrierInfo is a hard steer — the UE camps on the named carrier immediately — whereas idleModeMobilityControlInfo is a softer bias, adjusting the priorities the UE weighs during autonomous reselection and running for a bounded t320 validity time. Together they let a network shape idle-mode distribution without any UE-specific signalling once the UE has actually gone idle.
✅ Debugging steps
- Read the
releaseCause— it tells you why the network released (load balancing, CS fallback, suspend, or normal). - Check for
redirectedCarrierInfo: after release, confirm the UE actually camped on the named carrier (and that the carrier is valid/available). - If reselection behaviour looks off, inspect
idleModeMobilityControlInfoand itst320validity — dedicated priorities override the broadcast ones only whilet320runs. - For CS fallback, verify the redirect target RAT (UTRAN/GERAN) is reachable so the voice call can complete.
⚠ Common causes of failure
- Redirect to a carrier or RAT the UE cannot find, leaving it to fall back to slow autonomous reselection (or briefly out of service).
- Ping-pong between LTE and a redirect target when idle priorities and broadcast priorities disagree.
extendedWaitTimeon a delay-tolerant device keeps it off the network longer than an operator expected.- Release interpreted as an unexpected drop when the cause is actually a deliberate steer (mis-read
releaseCause).
RRC Connection Re-establishment: recovering from failure
When the radio link breaks — radio link failure (RLF), handover failure, mobility-from-EUTRA failure, or an integrity-check failure — the UE does not want to start over from a fresh setup if it can avoid it. Re-establishment is the fast-recovery path, and it hinges on the network still holding the UE's context.
On detecting failure the UE starts timer T311, searches for a suitable cell, and if it finds one before T311 expires it sends RRCConnectionReestablishmentRequest on SRB0/CCCH and starts T301. Its ue-Identity is a triplet: the c-RNTI it held in the source cell, the source physCellId, and a shortMAC-I — a 16-bit truncated authentication token computed over the source cell identity, the source C-RNTI, and the target cell identity using the stored integrity key. The reestablishmentCause distinguishes reconfigurationFailure, handoverFailure, and otherFailure. The chosen cell uses the triplet to look up the prepared UE context; if the shortMAC-I verifies, it replies with RRCConnectionReestablishment carrying a radioResourceConfigDedicated that restores SRB1 and a nextHopChainingCount so the UE re-derives its keys. The UE sends RRCConnectionReestablishmentComplete, and the network then almost always follows with an RRCConnectionReconfiguration to restore SRB2 and the DRBs, since re-establishment alone brings back only SRB1.
The limits are strict and worth memorising. Re-establishment only succeeds if the target cell has a prepared context for this UE — typically a cell the source eNB primed over X2, or the source cell itself. If the selected cell has no context, or the shortMAC-I fails to verify, or T301 expires waiting for a reply, the cell sends RRCConnectionReestablishmentReject (or the UE times out), and the UE goes to RRC_IDLE and must perform a full fresh setup, followed by NAS recovery (Service Request / TAU). Likewise, if T311 expires before any suitable cell is found, recovery is abandoned and the UE falls back to idle. Re-establishment is therefore a best-effort optimisation, not a guarantee.
Spec: The shortMAC-I lets the target cell authenticate the UE without a full security handshake — it proves the UE holds the source context. Because SRB2 and DRBs are not restored by the re-establishment itself, user data stays suspended until the follow-on RRCConnectionReconfiguration completes.
Reading re-establishment in the logs
The re-establishment story is a timer race: T311 to find a cell, then T301 to get an answer. The ue-Identity triplet and the reestablishmentCause tell you what broke and whether the chosen cell could recognise the UE.
Representative UE log (RLF → re-establishment) — illustrative, values vary by vendor/build:
| Field | Meaning | Example (from log) | Check |
|---|---|---|---|
T311 | Bounds the search for a suitable cell after failure. | 5000 ms | Expiry with no cell found → UE goes to RRC_IDLE; a coverage-hole problem, not a context one. |
ue-Identity triplet | c-RNTI + source physCellId + shortMAC-I. | 0x4E2A / 111 / 0x9C3D | The chosen cell needs a prepared context for this triplet; a stranger cell cannot resolve it. |
shortMAC-I | Truncated integrity token proving the UE holds the source context. | 0x9C3D | If it fails to verify, the cell rejects — suspect a key/context mismatch or an X2-unprepared cell. |
reestablishmentCause | reconfigurationFailure / handoverFailure / otherFailure. | otherFailure | Points at what triggered recovery; handoverFailure ties back to a t304 expiry. |
T301 | Guards the wait for the network's reply. | 1000 ms | Expiry / Reject → RRC_IDLE; a valid Reestablishment before expiry keeps the UE connected. |
✅ Debugging steps
- Identify what triggered recovery (RLF cause, or
handoverFailureaftert304) and confirmT311started. - Check whether a suitable cell was found before
T311expired — a timeout is a coverage problem. - Verify the chosen cell had a prepared context (source cell or an X2-primed neighbour) and that
shortMAC-Iverified. - Confirm
RRCConnectionReestablishmentarrived beforeT301expired, then that a follow-onRRCConnectionReconfigurationrestoredSRB2/DRBs. - If Rejected, expect a full fresh setup and NAS recovery (Service Request / TAU).
⚠ Common causes of failure
T311expiry: no suitable cell found in time — the UE drops to idle (coverage hole).- Chosen cell has no prepared context (not primed over X2), so it cannot resolve the
ue-Identitytriplet. shortMAC-Iverification failure — wrong keys, wrong source cell identity, or a stale context.T301expiry orRRCConnectionReestablishmentReject→RRC_IDLEand full re-setup.- Re-establishment succeeds but the follow-on reconfiguration to restore DRBs never completes, leaving data suspended.
Suspend and Resume: the Rel-13 fast path
Rel-13 added a lighter idle transition for machine-type and bursty traffic: rather than fully releasing the UE, the network can suspend the connection and let the UE resume it later without repeating the full setup and security exchange. It is the LTE ancestor of NR's RRC_INACTIVE.
To suspend, the eNB sends an RRCConnectionRelease with releaseCause set to rrc-Suspend and a resumeIdentity (some material calls this the RRCConnectionSuspend action). The UE moves to RRC_IDLE but, unusually, stores its AS context — the security keys, the bearer configuration, and the resumeIdentity — instead of discarding them. The eNB stores the matching context too.
To resume, the UE sends RRCConnectionResumeRequest on SRB0/CCCH, carrying the resumeIdentity, a resumeCause, and a shortResumeMAC-I that authenticates against the stored context. The eNB looks up the context, and if the token verifies it replies with RRCConnectionResume, which restores SRB1, SRB2, and the DRBs in one shot and refreshes keys via a nextHopChainingCount. The UE applies the restored configuration and answers with RRCConnectionResumeComplete. Because the bearers and security come back together, resume reaches the data-ready state in far fewer messages than a cold setup — exactly the win for a sensor that wakes, sends a few bytes, and sleeps again. If the context is gone or the token fails, the eNB falls the UE back to a normal setup.
Setup vs Resume in one line: setup builds everything from nothing and needs a separate security-mode and reconfiguration round to become useful; resume replays a stored context and brings SRB1, SRB2, and the DRBs back in a single command, saving signalling and battery.
✅ Debugging steps
- Confirm the suspending
RRCConnectionReleasecarriedrrc-Suspendand aresumeIdentity, and that the UE stored (not discarded) its AS context. - On resume, verify the
RRCConnectionResumeRequestcarried the matchingresumeIdentityand a validshortResumeMAC-I. - Check whether the eNB replied with
RRCConnectionResume(context found) or fell the UE back toRRCConnectionSetup(context lost). - Confirm
SRB1/SRB2/DRBs and keys were restored in one shot and the UE sentRRCConnectionResumeComplete.
⚠ Common causes of failure
- eNB no longer holds the stored context (aged out, or the UE resumed on a cell without it) — fallback to full setup.
shortResumeMAC-Iverification failure from a key/context mismatch.- UE discarded or corrupted its stored AS context, so resume is impossible and a cold setup is forced.
resumeIdentitycollision or mismatch, so the eNB cannot look up the right context.
The full message map
Put the procedures side by side and the pattern is clear: a request or command message, an optional network reply, and a complete from the UE. The tables below are the ones worth keeping on a cheat sheet — the procedure map, the establishmentCause values, and the SRB each message rides.
| Procedure | Messages | Key IEs |
|---|---|---|
| Connection Setup | RRCConnectionRequest → RRCConnectionSetup → RRCConnectionSetupComplete | ue-Identity, establishmentCause, radioResourceConfigDedicated, selectedPLMN-Identity, dedicatedInfoNAS |
| Reject | RRCConnectionReject | waitTime, extendedWaitTime |
| Reconfiguration | RRCConnectionReconfiguration → RRCConnectionReconfigurationComplete | drb-ToAddModList, measConfig, mobilityControlInfo |
| Release | RRCConnectionRelease | releaseCause, redirectedCarrierInfo, idleModeMobilityControlInfo |
| Re-establishment | RRCConnectionReestablishmentRequest → RRCConnectionReestablishment → RRCConnectionReestablishmentComplete | ue-Identity{c-RNTI,physCellId,shortMAC-I}, reestablishmentCause, nextHopChainingCount |
| Suspend / Resume | RRCConnectionRelease(rrc-Suspend) → RRCConnectionResumeRequest → RRCConnectionResume → RRCConnectionResumeComplete | resumeIdentity, shortResumeMAC-I, resumeCause, nextHopChainingCount |
establishmentCause | When the UE sends it |
|---|---|
emergency | Emergency call/session — highest admission priority, bypasses most barring. |
highPriorityAccess | High-priority subscribers (e.g. access class 11–15). |
mt-Access | Mobile-terminated access — the UE was paged. |
mo-Signalling | Mobile-originated signalling with no user data (e.g. TAU, detach). |
mo-Data | Mobile-originated user data — the common case for uplink traffic. |
delayTolerantAccess | Rel-10 low-priority / MTC access, first to be barred or rejected under load. |
mo-VoiceCall | Rel-13 mobile-originated voice, letting the eNB prioritise VoLTE setup. |
| Message | SRB | Direction | Key IEs |
|---|---|---|---|
RRCConnectionRequest | SRB0 | UE → eNB | ue-Identity (s-TMSI/randomValue), establishmentCause |
RRCConnectionSetup | SRB0 | eNB → UE | radioResourceConfigDedicated (adds SRB1) |
RRCConnectionSetupComplete | SRB1 | UE → eNB | selectedPLMN-Identity, registeredMME, dedicatedInfoNAS |
RRCConnectionReject | SRB0 | eNB → UE | waitTime, extendedWaitTime |
RRCConnectionReconfiguration | SRB1 | eNB → UE | drb-ToAddModList, measConfig, mobilityControlInfo |
RRCConnectionReconfigurationComplete | SRB1 | UE → eNB | — |
RRCConnectionRelease | SRB1 | eNB → UE | releaseCause, redirectedCarrierInfo, idleModeMobilityControlInfo |
RRCConnectionReestablishmentRequest | SRB0 | UE → eNB | ue-Identity{c-RNTI,physCellId,shortMAC-I}, reestablishmentCause |
RRCConnectionReestablishment | SRB0 | eNB → UE | radioResourceConfigDedicated, nextHopChainingCount |
RRCConnectionReestablishmentComplete | SRB1 | UE → eNB | — |
RRCConnectionResumeRequest | SRB0 | UE → eNB | resumeIdentity, shortResumeMAC-I, resumeCause |
RRCConnectionResume | SRB1 | eNB → UE | radioResourceConfigDedicated, nextHopChainingCount |
LTE ↔ NR
The shape of every procedure survives into 5G NR (TS 38.331), but the message names lose the "Connection" infix and one whole state is added.
LTE ↔ NR: LTE's RRCConnectionRequest/Setup/SetupComplete become NR's RRCSetupRequest/RRCSetup/RRCSetupComplete; RRCConnectionReconfiguration becomes RRCReconfiguration (handover moves from mobilityControlInfo to reconfigurationWithSync); RRCConnectionReestablishment becomes RRCReestablishment; and RRCConnectionRelease becomes RRCRelease. LTE's Rel-13 suspend/resume is promoted to a first-class state in NR: RRC_INACTIVE, entered via RRCRelease with suspendConfig and resumed with RRCResumeRequest/RRCResume, using an I-RNTI instead of the LTE resumeIdentity.
| LTE (TS 36.331) | NR (TS 38.331) | Note |
|---|---|---|
RRCConnectionRequest | RRCSetupRequest | Same role; NR carries it as Msg3 too. |
RRCConnectionReconfiguration + mobilityControlInfo | RRCReconfiguration + reconfigurationWithSync | Handover trigger renamed; same "switch to hand over" idea. |
RRCConnectionReestablishment | RRCReestablishment | Same context-based fast recovery. |
Rel-13 suspend/resume (resumeIdentity) | RRC_INACTIVE (suspendConfig, I-RNTI) | Promoted from a stored-context trick to a full state. |
SRB0/SRB1/SRB2 | Same, plus SRB3 for direct SCG signalling in DC | NR adds an SRB for secondary-node RRC. |
Summary
The fastest way to read any LTE signalling log is to recognise which RRC procedure you are inside, then walk its fixed message pair. Setup is Request → Setup → SetupComplete on SRB0 then SRB1, guarded by T300, and it is where the first NAS message reaches the MME. Reconfiguration is the connected-state workhorse: no mobilityControlInfo means stay and reconfigure, presence means hand over under t304. Release parks the UE, optionally steering it with a redirect. Re-establishment is the context-based fast repair bounded by T311 then T301, and it only works if a prepared context and a valid shortMAC-I line up. Suspend/Resume is the battery-saving shortcut that replays a stored context in one command.
Because each procedure is a small, acknowledged exchange, a failure almost always localises to one message: a missing Setup (admission or coverage), an unacknowledged Reconfiguration (a config the UE could not comply with), a rejected Reestablishment (no context or bad token). Identify the procedure, find the message that did not complete, and the field that did not line up is usually the root cause.
Q. Which message actually carries the first NAS message to the network, and how does it reach the MME?
A. RRCConnectionSetupComplete carries the initial NAS message (Attach Request or Service Request) in its dedicatedInfoNAS. The eNB forwards it to the MME inside the S1AP Initial UE Message, creating the S1 signalling connection.
Q. What single IE turns an RRCConnectionReconfiguration into a handover, and what does it contain?
A. mobilityControlInfo. It names the targetPhysCellId, target carrierFreq, a newUE-Identity (target C-RNTI), a rach-ConfigDedicated, and the t304 timer, so the UE synchronises to and accesses the target cell rather than staying put.
Q. What does shortMAC-I do in re-establishment, and what are the limits of the procedure?
A. It is a truncated integrity token over the source/target cell IDs and source C-RNTI that lets the target authenticate the UE without a full handshake. Re-establishment only works if the target holds a prepared context and the token verifies before T301/T311 expire; otherwise the UE gets RRCConnectionReestablishmentReject and must do a full setup from RRC_IDLE.
Q. Why does the eNB send RRCConnectionReject instead of a Setup, and what does it include?
A. Under congestion or policy the eNB refuses admission and returns RRCConnectionReject on SRB0 with a waitTime (1–16 s), plus an optional extendedWaitTime for delay-tolerant devices. The UE stays idle and must not retry until the timer expires.
Q. How is Rel-13 suspend/resume faster than a normal setup?
A. Suspend is an RRCConnectionRelease with rrc-Suspend and a resumeIdentity; the UE stores its AS context. On RRCConnectionResumeRequest with a valid shortResumeMAC-I, the RRCConnectionResume restores SRB1, SRB2, and the DRBs and refreshes keys in one command — no separate security-mode or bearer-setup round trips.
Q. If a UE cannot comply with a received RRCConnectionReconfiguration, what happens?
A. It does not send a Complete. Instead it triggers re-establishment, so in a trace a non-compliant reconfiguration looks like an RLF-style recovery (Reestablishment Request) rather than an explicit error message.
Where this connects
The RRCConnectionRequest only arrives after Msg3, so start with Random Access. Between setup and reconfiguration the network turns on ciphering and integrity — see AS Security Mode. The failure paths that feed re-establishment come from RLM/RLF, and the IDLE / CONNECTED / suspended transitions these procedures drive are laid out in RRC States.