Radio Bearers: SRB & DRB in 5G NR
Signalling vs data radio bearers and how a bearer maps down through PDCP → RLC → logical channel.
A radio bearer is a named "pipe" between the UE and the gNB carrying one kind of traffic with one agreed treatment — a specific security setting, a specific reliability mode, and a specific scheduling priority. Signalling rides on Signalling Radio Bearers (SRB); user traffic rides on Data Radio Bearers (DRB). Everything the air interface carries sits on one bearer or another, and the bearer is nothing more than a vertical slice through the protocol stack that the network switches on with a single RRC message.
Introduction
A radio bearer is the unit in which the NR air interface (the Uu interface) carries traffic between the UE and the gNB. It is not a physical object but a configured chain of protocol entities — at most one SDAP, exactly one PDCP, one or two RLC entities, and a logical channel — that together give one stream of data a defined security, reliability and priority treatment (TS 38.331, TS 38.323, TS 38.322, TS 38.321).
Bearers are established and torn down throughout the connection lifecycle: the very first RRC message travels on SRB0 before any UE context exists, SRB1 comes up at RRCSetup, SRB2 and the first DRBs appear only after AS security is activated, and each PDU session's DRBs are added when the core requests user-plane resources. If you can say which bearer a message rides on, you already know how it is protected, how reliably it is delivered, and how urgently it is scheduled.
This page treats a bearer as exactly what it is — a vertical slice through the stack — and walks the two families (SRB and DRB), the mapping down to the transport channel, the IEs that configure each half, and the split/duplication shapes that dual connectivity and carrier aggregation rely on.
On this page
Why radio bearers exist
In plain words: think of the Uu interface as a shipping company and each bearer as a service tier. A signature-required registered letter (an SRB) is tracked, tamper-sealed and delivered before anything else; a bulk parcel stream (a DRB) is optimised for volume; a live phone call is a "don't bother re-delivering a late package" express tier (RLC-UM). Same trucks and roads underneath — different handling promises. A radio bearer is that promise, made concrete as a configured stack.
Concretely, different flows have irreconcilable needs, so one pipe cannot serve them all. RRC connection setup must work before any security exists, so it needs an unprotected, context-free bearer. NAS and RRC signalling need a reliable, protected channel so nothing is lost or forged. User data needs QoS-differentiated, high-throughput pipes, and real-time media would rather drop a late packet than wait for a retransmission. Giving each flow its own bearer lets each get exactly the stack configuration it needs — the right security, the right RLC mode, the right priority — with no compromise.
A logical connection over Uu built from one PDCP entity plus one or more RLC entities and a logical channel; DRBs add an SDAP entity on top.
Because control and user flows need different security, reliability and priority — a single pipe cannot satisfy all of them at once.
The gNB configures the stack with RRCReconfiguration (or RRCSetup for SRB1); configure the chain and the bearer exists, release it and it is gone.
What a Radio Bearer Is
Strip away the acronyms and a radio bearer is a promise about how one stream of data will be treated between the UE and the gNB over the Uu interface. That promise is realised physically as a chain of layer entities: at most one SDAP entity (data only), exactly one PDCP entity, one or two RLC entities, and a logical channel that the MAC schedules. Configure that chain and the bearer exists; tear the chain down and it is gone. There is no separate "bearer object" in the air interface — the bearer is the configured stack.
A logical connection over Uu, built from one PDCP entity plus one or more RLC entities and a logical channel. SRBs carry RRC and piggybacked NAS control; DRBs carry user-plane packets and add an SDAP entity on top of PDCP.
Different flows need different handling. RRC connection setup must work before any security exists; NAS needs a reliable protected channel; user data needs QoS-differentiated, high-throughput pipes. Giving each its own bearer lets each get exactly the stack configuration it needs, no compromise.
The gNB configures bearers with RRCReconfiguration (or RRCSetup for SRB1). radioBearerConfig defines the PDCP/SDAP end per bearer; CellGroupConfig carries the RLC-BearerConfig entries that define the RLC/MAC end per logical channel. See RRC Procedures.
Two things distinguish one bearer type from another, and it is worth fixing them now because everything else follows. First, what sits above PDCP: a DRB has an SDAP entity that maps QoS flows onto it, an SRB has nothing above PDCP because RRC feeds PDCP directly. Second, the RLC mode and security: SRB0 is transparent and unprotected, SRB1–3 are acknowledged and (after security activation) protected, and DRBs are ciphered and use either acknowledged or unacknowledged mode depending on the service. Get those two axes straight and the whole SRB/DRB zoo becomes a small, orderly table.
One bearer, one PDCP: the defining rule is that every radio bearer maps to exactly one PDCP entity. That PDCP entity feeds one RLC entity in the normal case, or two RLC entities when the bearer is split or duplicated. SRBs and DRBs differ mostly in what sits above PDCP (SDAP for DRBs, nothing for SRBs) and in their security and RLC mode — the PDCP anchor is common to both.
Signalling Radio Bearers (SRB0–SRB3)
SRBs carry control-plane messages: RRC messages themselves, and NAS messages piggybacked inside RRC containers. There are four of them, and each exists because of a specific gap the others cannot fill (TS 38.331). They are identified by an srb-Identity in the range 1–3 for the configured SRBs; SRB0 has no identity because it is never configured — it exists implicitly.
SRB0— carries RRC on theCCCHlogical channel usingRLC-TM(transparent mode) with no security. It is the bootstrap bearer: it exists implicitly before any dedicated configuration and needs no configuring. It carriesRRCSetupRequest/RRCSetupandRRCReestablishmentRequest/RRCReestablishment. Transparent mode is used because there is no UE context yet, so there is nothing to number, segment, or acknowledge against.SRB1— carries RRC messages, and (untilSRB2exists) all NAS messages, on theDCCHusingRLC-AM(acknowledged mode). It is created byRRCSetupand is the primary signalling bearer for the life of the connection. It carriesRRCSetupCompletewith the initial NASRegistration Requestpiggybacked inside itsdedicatedNAS-Message, and every laterRRCReconfiguration.SRB2— carries NAS messages on theDCCHusingRLC-AM, at lower priority thanSRB1. It is set up after AS security is activated, in theRRCReconfigurationthat followsSecurityModeCommand. Offloading bulky NAS traffic onto a lower-priority bearer stops it from starving urgent RRC signalling that must stay on SRB1.SRB3— used only in dual connectivity (EN-DC / NR-DC). It lets the UE exchange certain RRC messages directly with the secondary node (SN) without routing through the master node, which speeds up SCG (secondary cell group) reconfiguration and measurement reporting for the secondary leg.
| SRB | Logical channel | RLC mode | Security | Carries | Created by |
|---|---|---|---|---|---|
SRB0 | CCCH | TM | none | RRC connection setup / re-establishment | implicit (always present) |
SRB1 | DCCH | AM | after AS security | RRC + initial NAS (until SRB2 exists) | RRCSetup |
SRB2 | DCCH | AM | yes | NAS messages (lower priority than SRB1) | RRCReconfiguration after security |
SRB3 | DCCH | AM | yes | RRC direct to the secondary node | SN-initiated in dual connectivity |
Security ordering: SRB0 has no security because there is no context yet. SRB1 starts unprotected to carry RRCSetup, then becomes integrity- and confidentiality-protected once the AS SecurityModeCommand activates PDCP security. SRB2 and every DRB are only ever configured after security is on — you will never see a DRB added in the same message that first turns security on.
Fixed logical-channel identities: the SRBs occupy reserved LCIDs — SRB0 on CCCH uses LCID 0, and SRB1/SRB2/SRB3 use LCIDs 1/2/3 on DCCH. DRBs take logicalChannelIdentity values from 4 upward (the field's overall range is 1–32). Because the SRB LCIDs are fixed, the MAC can always demultiplex signalling without extra configuration.
Data Radio Bearers and the SDAP Cross-Link
A DRB carries user-plane packets belonging to a PDU session. What makes it different from an SRB is the layer that sits on top of its PDCP entity: the SDAP (Service Data Adaptation Protocol) entity. There is one SDAP entity per PDU session, and its job is to map QoS flows — each identified by a QFI (QoS Flow Identifier, a 6-bit value, 0–63) — onto DRBs. This is the crucial cross-link between the core-network QoS model and the radio: the 5G core thinks in QoS flows, the air interface thinks in DRBs, and SDAP is the translator between them. Each DRB is identified by a drb-Identity in the range 1–32. See SDAP and 5G QoS Model.
The mapping is many-to-few in a controlled way: one PDU session can have several DRBs, and one DRB can carry several QoS flows, but a single QoS flow is mapped to exactly one DRB at a time. SDAP can prepend a small header carrying the QFI so the receiver knows which flow a packet belongs to (controlled by sdap-HeaderDL/sdap-HeaderUL), and it supports reflective QoS, where the UE derives the uplink flow-to-DRB mapping from the downlink packets it observes rather than needing explicit signalling. DRBs always use PDCP ciphering, may optionally use PDCP integrity protection, and choose RLC-AM for reliable services or RLC-UM (unacknowledged mode) for latency-sensitive real-time services such as voice, where a late retransmission is worse than a lost packet.
Why the SDAP layer exists at all: in 4G the bearer was the unit of QoS end to end. In 5G the QoS flow is the finest-grained unit of QoS in the core, and the DRB is the unit over the air. SDAP decouples the two so the network can remap a flow to a different DRB — changing its radio treatment — without touching the PDU session. That is the whole point of the extra layer.
The Bearer as a Vertical Stack
Because a bearer is its configured chain of entities, the clearest way to see the SRB/DRB distinction is to draw the two stacks side by side. Both terminate in a shared MAC that multiplexes their logical channels onto one transport channel; the difference is entirely in the top of the stack.
The table below reads the DRB stack layer by layer, naming each entity and the one job it does for the bearer. Reading it top to bottom is the same as tracing a downlink packet from the core network down to the antenna.
| Layer | Entity per DRB | What it does for the bearer |
|---|---|---|
SDAP | one per PDU session | Maps QFI QoS flows onto this DRB; optionally adds the SDAP header carrying the QFI. |
PDCP | exactly one | Ciphering, optional integrity, header compression (ROHC), sequence numbering (SN 12 or 18 bits), reordering; the bearer's anchor point. |
RLC | one (or two if split/duplicated) | Segmentation/reassembly and, in AM, ARQ retransmission (AM SN 12/18 bits, UM SN 6/12 bits); UM/TM skip retransmission. |
Logical channel | one per RLC entity | The MAC's handle for the bearer: carries a logicalChannelIdentity, priority, and PBR. |
| MAC | shared | Multiplexes logical channels of all bearers onto the transport block by LCID; runs the scheduler and LCP. |
| Transport channel | shared | DL-SCH/UL-SCH handed to the physical layer for coding and transmission. |
Mapping Down to the Transport Channel
The single most useful sentence to memorise is the downward mapping chain. A radio bearer maps to one PDCP entity, which feeds one or more RLC entities, each tied to one logical channel with its own logicalChannelIdentity, which the MAC multiplexes onto one transport channel (UL-SCH or DL-SCH). For a DRB there is an SDAP entity above PDCP; for an SRB there is not. That chain never changes; only the number of RLC legs varies.
The logicalChannelIdentity (LCID) is the pivot of the whole scheme. It is the label the MAC writes into the subheader of each MAC SDU so the receiving MAC can demultiplex a transport block back into the right logical channels, and from there up the correct bearer stacks. Each logical channel also carries a priority (1–16, where a lower number means higher priority), a prioritised bit rate (prioritisedBitRate), and a logical channel group (logicalChannelGroup) — the three inputs to the MAC's Logical Channel Prioritisation (LCP) procedure that decides, slot by slot, how much of each bearer's data goes into the grant. SRB1 gets a high priority so signalling is served ahead of bulk data; SRB2 sits below it; DRBs are prioritised according to their QoS. Standard logical-channel types line up with bearer types: CCCH for SRB0, DCCH for the other SRBs, and DTCH for DRBs.
DRB establishment during PDU session setup: a DRB is not created out of nowhere. When the AMF asks the gNB to set up a PDU session, the gNB receives a PDU SESSION RESOURCE SETUP REQUEST over NG-C carrying the QoS flow profiles. The gNB decides how many DRBs to create and which QFIs map to each, then sends the UE an RRCReconfiguration that adds the DRB(s) via drb-ToAddModList and their RLC bearers via the cell group. The UE confirms with RRCReconfigurationComplete, and only then does user data flow. The DRB is the radio realisation of a slice of that PDU session.
Configuration: radioBearerConfig and RLC-BearerConfig
Bearer configuration is deliberately split across two IEs inside RRCReconfiguration, mirroring the two halves of the mapping chain (TS 38.331). This split is not bureaucratic tidiness — it is what makes split bearers and dual connectivity expressible at all.
radioBearerConfig defines the upper half, per bearer:
srb-ToAddModList— the SRBs to add or modify, each identified by its SRB identity, with optional PDCP settings and areestablishPDCP/discardOnPDCPflag.drb-ToAddModList— the DRBs to add or modify. Each entry has adrb-Identity, apdcp-Config(SN length,discardTimer, integrity/ciphering, and split-bearer parameters such asmoreThanOneRLCandprimaryPath), and ansdap-Confignaming thepdu-Session, the mappedQFIs, and header presence.drb-ToReleaseList/srb3-ToRelease— the counterparts that tear bearers down.
CellGroupConfig defines the lower half, per logical channel, as a list of RLC-BearerConfig entries in rlc-BearerToAddModList. Each RLC-BearerConfig binds a bearer to a logical channel and its scheduling treatment:
RLC-BearerConfig field | Meaning |
|---|---|
logicalChannelIdentity | The LCID this bearer's traffic is multiplexed under by the MAC (range 1–32). |
servedRadioBearer | Which bearer this RLC bearer serves (an srb-Identity or drb-Identity) — the link back up to radioBearerConfig. |
rlc-Config | RLC mode (am / um-Bi-Directional / um-Uni-Directional / tm) and its timers and SN length. |
mac-LogicalChannelConfig | Scheduling treatment: priority, prioritisedBitRate, bucketSizeDuration, logicalChannelGroup, and which cell groups/numerologies the LCH may use. |
The full set of top-level bearer-configuration IEs, and which part of the stack each one paints, is summarised below.
| IE | Container | Half of the stack it configures |
|---|---|---|
radioBearerConfig | RRCReconfiguration | SDAP + PDCP end, per bearer (the "what treatment" half). |
srb-ToAddModList | inside radioBearerConfig | SRB identities and their PDCP settings. |
drb-ToAddModList | inside radioBearerConfig | DRB identities, pdcp-Config, sdap-Config (QFI mapping). |
RLC-BearerConfig | inside CellGroupConfig | RLC + logical channel + MAC treatment, per RLC bearer. |
Why the split matters: radioBearerConfig lives with PDCP/SDAP, which for a split bearer can be anchored in one node, while the RLC-BearerConfig entries (in CellGroupConfig) live in different cell groups — the master cell group (MCG) and the secondary cell group (SCG). Separating the upper and lower halves is precisely what lets one PDCP entity attach to RLC bearers in two different cell groups. Collapse them into one IE and dual connectivity could not be described.
Split Bearers and PDCP Duplication
The phrase "one or more RLC entities" in the mapping rule is where the interesting cases live. Because a single PDCP entity may be associated with two RLC entities, a bearer can take one of two advanced shapes, both used in dual connectivity (DC) and carrier aggregation (CA).
A split bearer has its one PDCP entity routing PDUs down two legs — typically one RLC bearer in the MCG and one in the SCG. PDCP hands data to whichever leg has capacity, governed by ul-DataSplitThreshold and a primaryPath that says which leg to prefer for small volumes. Splitting aggregates the throughput of both legs onto one bearer, which is the point of NR-DC for data: a single DRB can be fed by two radios at once.
PDCP duplication uses the same two-RLC structure for the opposite goal: instead of splitting traffic, PDCP sends the same PDU down both legs, and the receiving PDCP discards the duplicate. Sending two copies over independent radio links buys diversity and drives the residual error rate down — the mechanism behind ultra-reliable low-latency (URLLC) transmission. Duplication can run across two carriers in CA (both RLC legs in the same cell group, different cells) or across MCG and SCG in DC, and it can be switched on and off dynamically by a MAC CE once configured. NR also allows duplication over up to four RLC legs in later releases for even stronger reliability. The enabling switch in configuration is moreThanOneRLC together with the pdcp-Duplication flag; the two legs are just two RLC-BearerConfig entries pointing at the same servedRadioBearer.
Split vs duplication in one line: both use one PDCP entity over two RLC legs. A split bearer sends different data on each leg to add up throughput; a duplicated bearer sends the same data on each leg to add up reliability. The structure is identical; only PDCP's routing decision differs.
Summary
A radio bearer is a configured vertical slice through the Uu stack, not a separate object: one SDAP (DRBs only) → exactly one PDCP → one or two RLC entities → one logical channel per RLC → the shared MAC → one transport channel. Configure the chain and the bearer exists; release it and it is gone.
Two axes classify every bearer. What sits above PDCP separates SRBs (nothing — RRC feeds PDCP directly, LCIDs 0–3) from DRBs (an SDAP entity mapping QFI flows, drb-Identity 1–32). Security and RLC mode separate the unprotected transparent SRB0 from the acknowledged, protected SRB1–3, and mark DRBs as always-ciphered with RLC-AM or RLC-UM per service. Security ordering is strict: SRB2 and DRBs only appear after AS security is on.
Configuration is split on purpose — radioBearerConfig paints the SDAP/PDCP upper half per bearer, while RLC-BearerConfig in CellGroupConfig paints the RLC/logical-channel/MAC lower half per leg. That very split is what lets one PDCP entity feed two RLC legs, giving split bearers (different data, more throughput) and duplicated bearers (same data, more reliability).
Quick Q&A
Q. Why does SRB0 use RLC-TM with no security, while SRB1–SRB3 use RLC-AM?
A. SRB0 exists before any UE context or security is established, so there is nothing to cipher with and no reliable feedback channel — transparent mode simply passes the CCCH message through. Once the connection and AS security are up, SRB1–3 use acknowledged mode on the DCCH for reliable, integrity- and confidentiality-protected delivery of RRC and NAS.
Q. State the full mapping rule from a radio bearer down to the transport channel.
A. One radio bearer → exactly one PDCP entity → one or more RLC entities (two for split/duplication) → one logical channel per RLC entity (with its logicalChannelIdentity) → the MAC multiplexes logical channels → one transport channel (UL-SCH/DL-SCH). DRBs add an SDAP entity above PDCP; SRBs do not.
Q. Which IEs configure a DRB, and which part of the stack does each cover?
A. In RRCReconfiguration: radioBearerConfig → drb-ToAddModList sets the pdcp-Config and sdap-Config (the upper, per-bearer half). CellGroupConfig → rlc-BearerToAddModList carries the RLC-BearerConfig entries that set logicalChannelIdentity, rlc-Config, and mac-LogicalChannelConfig (the lower, per-logical-channel half). Together they define the full SDAP→PDCP→RLC→MAC chain.
Q. How does a QoS flow end up on a particular DRB?
A. The gNB reads the QoS flow profiles from the PDU SESSION RESOURCE SETUP REQUEST, decides the flow-to-DRB mapping, and configures the DRB's SDAP entity via sdap-Config (naming the pdu-Session and mapped QFIs). At run time SDAP maps each packet's QFI onto the DRB — explicitly, or via reflective QoS derived from the downlink.
Q. A split bearer and a duplicated bearer both use two RLC entities under one PDCP — what is the difference?
A. A split bearer sends different PDCP PDUs down the two legs to aggregate throughput (governed by ul-DataSplitThreshold and primaryPath). A duplicated bearer sends the same PDU down both legs for reliability, with the receiver discarding duplicates. Same two-leg structure; opposite routing decision in PDCP.
Q. When and why is SRB3 used?
A. Only in dual connectivity. It lets the UE exchange RRC directly with the secondary node, so SCG-related reconfigurations and measurement reports do not have to be relayed through the master node — cutting latency for secondary-cell management.
LTE ↔ NR: LTE has the same SRB0/SRB1/SRB2 family and DRBs, but no SRB3 in single connectivity and, crucially, no SDAP layer — in EPS the EPS bearer was the end-to-end unit of QoS, so a DRB mapped one-to-one to an EPS bearer and there was nothing to translate. NR inserts SDAP so the finer-grained QoS flow (QFI) in the 5GC can be remapped onto DRBs without disturbing the PDU session. NR also splits configuration into radioBearerConfig + RLC-BearerConfig (LTE configured the whole bearer in one place), which is what makes NR's split/duplicated bearers across MCG and SCG expressible.
⚠ Common pitfalls / gotchas
- Expecting a DRB in the security-activation message.
SRB2and every DRB are configured only after the ASSecurityModeCommand— never in the same reconfiguration that first turns security on. Seeing a DRB there is a spec violation, not a shortcut. - Treating one QoS flow as splittable across DRBs. A DRB can carry many
QFIs, but a single QoS flow maps to exactly one DRB at a time. Assuming a flow can be striped across two DRBs breaks the SDAP model. - Confusing split with duplication. Both use one PDCP over two RLC legs; only the routing differs (different data vs identical data). Mixing them up leads to wrong expectations about throughput vs reliability.
- Forgetting
SRB0has no PDCP/security. It is transparent mode onCCCH— you cannot cipher or acknowledge it, which is exactly why re-establishment starts there. - Looking for the bearer in one IE. The upper half (
radioBearerConfig) and lower half (RLC-BearerConfiginCellGroupConfig) are configured separately; reading only one leaves half the bearer undefined.
Where to go next
You now have the bearer picture — the vertical stacks, the mapping down to the transport channel, and the IEs that switch them on. Open up the individual layers each bearer maps onto, and the QoS model that decides what a DRB must deliver.