Reflective QoS & the SDAP Header in 5G NR
The SDAP header fields and how reflective QoS lets the UE mirror downlink mapping in uplink.
Reflective QoS is a neat shortcut: instead of the network signalling the UE an explicit set of uplink QoS rules, the UE watches the downlink and mirrors what it sees. See a flow arrive with a given QFI on a given DRB, and send your matching uplink traffic the same way. It is specified across TS 23.501 (the 5G QoS model) and TS 37.324 (the SDAP protocol), and it turns two spare bits in the downlink header into a whole signalling-free way of steering uplink traffic.
Introduction
Reflective QoS is the 5G mechanism that lets a UE work out its own uplink QoS handling by observing the downlink, rather than being told every rule explicitly. It spans two specifications: the QoS-model behaviour (the RQA authorization, the derived QoS rule, the reflective-QoS timer) lives in TS 23.501 and its NAS realisation, while the header bits that carry it (RQI, RDI) and the SDAP handling live in TS 37.324.
It comes into play whenever the network wants a flow's uplink to match its downlink treatment without spending signalling on it — typically for the many short-lived, symmetric, best-effort flows a UE generates. It is optional and per-flow: the network authorizes it with RQA, triggers it with a bit on ordinary user-plane packets, and lets a timer clean it up. Nothing extra is sent on the control plane.
Because it is inferred rather than signalled, reflective QoS is a feature you must understand as a lifecycle — authorize, trigger, refresh, expire — and as a division of labour between two layers (NAS and AS) driven by two separate bits. Get those two axes straight and the whole feature is simple.
On this page
Why Reflective QoS is Needed
In plain words: imagine two people passing notes across a room. The first time, the sender writes the full address and delivery instructions on the note. The reply doesn't need all that again — the replier just looks at how the incoming note was handled and sends the answer back the same way. Reflective QoS is the UE doing exactly that: it treats its uplink like a reply, copying the handling of the downlink it just received, so the network never has to spell out separate uplink instructions.
Without reflective QoS, every uplink flow needs an explicitly signalled QoS rule: the network has to build a packet filter set, a QFI and a precedence, and push it to the UE over NAS — and update or tear it down later. For a handful of long-lived flows that is fine. But a busy UE can open and close many short conversations (each a fresh IP flow), and most of them are symmetric — a request out, a response in, or a stream whose uplink mirrors its downlink. Signalling a bespoke uplink rule for each is pure overhead and adds setup latency.
Reflective QoS removes that overhead for exactly those flows. Since the network is already sending the downlink and already knows the correct treatment, it simply marks that downlink and lets the UE infer the matching uplink handling. The recurring cost drops to a single bit riding on packets the network was going to send anyway, and the mapping stays in step automatically as traffic comes and goes.
The Core Idea
Every uplink packet a UE sends has to answer two questions before it leaves the phone. First, at the NAS layer: which QoS flow does this packet belong to? โ i.e. which QFI should be stamped on it. Second, at the AS layer inside SDAP: which DRB (radio bearer) should carry a packet with that QFI? The network could answer both by explicitly signalling the UE a full set of rules over NAS and RRC. Reflective QoS avoids that entirely: for any flow the network is already sending downlink, the UE can derive both answers by copying the treatment it observes on the received packets. No explicit uplink rule is signalled at all.
A mechanism where the UE builds its uplink packet→QoS-flow mapping (a NAS QoS rule) and its uplink QoS-flow→DRB mapping by mirroring the downlink treatment it observes, instead of being told those mappings explicitly.
It saves signalling. The network never has to build, send and update a full set of uplink rules per UE; it just marks the downlink it is already transmitting, and the UE keeps its uplink mapping in step automatically.
The downlink SDAP header carries RQI and RDI alongside the QFI. When set, they instruct the UE's NAS and SDAP layers respectively to create or refresh a mapping; the UE then sends the matching uplink flow on the same DRB with the same QFI.
One sentence: reflective QoS = "the uplink copies the downlink." If a flow arrives on DRB X carrying QFI q, the UE learns to classify its own matching uplink into flow q and send it on DRB X โ with no explicit uplink rule ever signalled.
The scheme is deliberately one-directional. The UE mirrors the network; the network never mirrors the UE, because the network already owns the authoritative mapping and configures its own downlink. That asymmetry is why every field that drives reflection lives only in the downlink header, and why the whole feature has to be explicitly authorized by the network before a UE is allowed to apply it โ which we will come to with the RQA attribute.
The SDAP Header, Field by Field
Reflective QoS rides entirely on the SDAP Data PDU header, so it only works on a DRB that has been configured with an SDAP header present (sdap-HeaderDL = present). A headerless DRB carries no QFI, RQI or RDI, and therefore cannot drive reflection at all. The header is a single octet, but its layout differs between downlink and uplink because only the downlink needs the two reflection bits.
| Bit position (octet) | Downlink field | Uplink field | Meaning |
|---|---|---|---|
| Bit 8 (MSB) | RDI | D/C | DL: Reflective QoS flow to DRB mapping Indication. UL: Data/Control PDU indicator (the uplink reuses this bit position for a different purpose). |
| Bit 7 | RQI | R | DL: Reflective QoS Indication (triggers the NAS derived QoS rule). UL: Reserved bit, set to 0. |
| Bits 6–1 | QFI | QFI | QoS Flow Identifier (6 bits, so 0–63). Present in both directions; identifies which of the PDU session's QoS flows the packet belongs to. |
Two things stand out. First, the QFI is only 6 bits, capping a PDU session at 64 distinct QoS flows. Second, the uplink header simply has no RQI/RDI โ it carries the QFI the UE has chosen, a D/C bit distinguishing an SDAP data PDU from a control PDU, and a reserved bit. There is nothing for the UE to "reflect back" to the network, which is exactly as intended: reflection flows one way. When the UE finally transmits, all it does is stamp the QFI it derived into that 6-bit field and hand the packet to the DRB it derived.
Spec note: the SDAP Data PDU formats, the RQI/RDI bit positions, and the SDAP handling of reflective mapping are defined in TS 37.324. The QoS-flow-level authorization (RQA), the derived QoS rule and the reflective-QoS timer belong to the 5G QoS model in TS 23.501 and its NAS realisation in the 5GSM procedures.
RQI and RDI โ Two Bits, Two Layers
The two reflection bits look similar but act on different layers and update different things. Getting the split clear is the whole point of understanding reflective QoS.
| Bit | Full name | Layer that acts | What the UE updates |
|---|---|---|---|
RQI | Reflective QoS Indication | NAS (5GSM) | Create or refresh a derived QoS rule: build a packet filter from the received packet so future matching uplink packets are classified into this flow's QFI. |
RDI | Reflective QoS flow to DRB mapping Indication | AS / SDAP | Create or update the uplink QFI→DRB mapping: send uplink of this QFI on the DRB the downlink packet arrived on. |
Walk through what happens when a downlink SDAP data PDU arrives with both bits set. The SDAP entity reads RDI = 1, notes the QFI in the header and the DRB the PDU came in on, and installs the mapping "uplink traffic of this QFI goes on this DRB." Independently, because RQI = 1, SDAP informs the NAS layer, which inspects the packet (its IP 5-tuple, for example) and constructs a derived QoS rule: a packet filter plus the QFI to apply. From then on, when the application generates an uplink packet that matches that filter, NAS stamps it with the derived QFI, and SDAP routes it onto the DRB the RDI step selected. The UE has reconstructed the network's full uplink treatment from a single received packet.
The two bits are independent. RDI alone updates only the radio-bearer choice; RQI alone updates only the NAS classification. In practice a flow that the network wants fully reflected will see both set, but the fields are separable so the network can, for instance, reflect the DRB mapping while leaving the flow classification to an explicitly signalled rule. Note also that the downlink RQI is carried end-to-end: the UPF sets a Reflective QoS Indicator in the N3 GTP-U encapsulation header, and the gNB relays it as the RQI bit in the SDAP header over the air.
RQI/RDI set teaches the UE both its NAS classification and its DRB mapping; subsequent uplink of flow q is stamped QFI q on DRB X, and the derived rule is aged out by the reflective-QoS timer if the downlink stops.RQA โ Authorizing Reflection per Flow
The UE is not allowed to reflect just because it saw a bit set. Reflective QoS must first be authorized for the specific QoS flow, and that authorization is carried by the RQA (Reflective QoS Attribute) โ a NAS-level, per-QoS-flow parameter. During PDU session establishment or modification, the SMF may include the RQA among the QoS flow's parameters (in the QoS profile toward the RAN and in the QoS rules toward the UE). The presence of RQA on a flow tells the UE: "for this flow, if you receive a downlink packet with RQI set, you are permitted to derive and maintain a QoS rule for it."
RQA is an optional per-QoS-flow attribute signalled by the network (from the SMF, via NAS) indicating that reflective QoS may apply to that flow.
It scopes the feature. Only flows the operator wants handled reflectively get RQA; without it the RQI bit carries no authority and the UE will not build a derived rule.
RQA is set in the QoS profile / QoS flow parameters at session setup or modification. It is a standing authorization; the actual per-packet trigger to (re)build the derived rule is the RQI bit in each downlink SDAP header.
It is worth separating the two roles cleanly. RQA is the authorization, signalled once (and infrequently) at the QoS-flow level over NAS. RQI is the trigger, carried on every downlink data packet that should refresh the reflected state. So even with reflective QoS in use, the only recurring signalling is a single bit riding on user-plane packets the network was already going to send โ there is no separate control message per rule. That is the whole economy of the scheme.
The Reflective-QoS Timer and Ageing Rules
A reflected mapping is only an inference from recent downlink activity, so it must not live forever. If a flow stops arriving downlink, the evidence the UE used to learn its mapping has gone, and keeping the derived rule indefinitely would waste UE state and risk sending uplink on a bearer or flow the network no longer expects. The 5G QoS model handles this with a per-rule reflective-QoS timer (the RQ Timer), whose value the network provides โ either a specific value per PDU session or a default value that applies when none is signalled.
The mechanics are simple. When a downlink packet with RQI set arrives for a flow, the UE creates the derived QoS rule if it does not exist, or refreshes it if it does โ and in either case (re)starts the timer associated with that rule. Continued downlink traffic keeps restarting the timer, so an active flow's derived rule never expires. If the downlink goes quiet and the timer runs out without a refresh, the UE deletes the derived QoS rule. The flow's uplink then falls back to whatever mapping remains โ an explicitly signalled rule if one exists, otherwise the default QoS rule and the default DRB โ until a new reflected packet re-establishes it.
Lifecycle: a derived rule is created by a downlink packet with RQI set (on an RQA-authorized flow), refreshed and its timer restarted by continued downlink of the same flow, and removed automatically when the reflective-QoS timer expires. The network never sends an explicit tear-down.
The RQ timer value is signalled to the UE over NAS. It is carried as the Reflective QoS Timer value in the PDU session's session-management parameters; when the network does not signal a specific value, a default (order of tens of seconds) applies. The timer is per derived rule, so different reflected flows age out independently based on their own downlink activity.
This self-cleaning behaviour is exactly what makes reflective QoS safe to leave on as a lightweight default. Mappings appear on their own when traffic flows, refresh themselves while it continues, and disappear on their own when it stops โ all without the network ever issuing a create, modify or delete command for them.
Reflective vs Explicit Mapping
Reflective QoS does not replace explicit signalling; the two coexist, and the UE holds both kinds of rule at once. Explicitly signalled QoS rules come to the UE over NAS during PDU session establishment or modification and are authoritative and long-lived. Derived QoS rules are the reflected ones, built from the downlink and aged by the timer. When the UE classifies an uplink packet, signalled rules take precedence over derived rules, and any packet matching no rule at all is handled by the default QoS rule on the default DRB.
| Aspect | Reflective (derived) mapping | Explicit (signalled) mapping |
|---|---|---|
| Where the rule comes from | Derived by the UE from received downlink packets | Signalled by the network over NAS / RRC |
| Trigger | RQI/RDI bits in the DL SDAP header | PDU Session Establishment / Modification, RRCReconfiguration |
| Authorization needed | RQA set on the QoS flow | None beyond the signalling itself |
| Lifetime | Aged out by the reflective-QoS (RQ) timer | Persists until explicitly modified or removed |
| Signalling cost | One bit per user-plane packet; no control messages | Dedicated NAS/RRC messages per rule |
| Precedence at the UE | Lower โ used only where no signalled rule matches | Higher โ always wins over a derived rule |
| Best suited to | Dynamic, bursty, or numerous flows; non-GBR default handling | GBR flows and any flow needing deterministic, network-pinned treatment |
So when is explicit mapping preferred despite the extra signalling? Whenever the network needs certainty rather than inference. A guaranteed-bit-rate flow, a flow with strict latency requirements, or any flow whose uplink treatment must be fixed and predictable is better served by an explicit rule that does not depend on downlink activity to stay alive and cannot be aged out at an awkward moment. Reflective QoS shines in the opposite regime: large numbers of ordinary, best-effort or dynamically appearing flows where hand-configuring uplink rules for each would be pure overhead, and where "follow the downlink" is a perfectly good policy.
Note: reflective and explicit mapping are not mutually exclusive per UE or even per PDU session. A single session can have some flows pinned by signalled rules and others handled reflectively; the RQA attribute is what marks which flows are candidates for reflection.
LTE ↔ NR: LTE has no reflective QoS at all. In EPS, uplink packet classification is driven entirely by the UL TFT (Traffic Flow Template) the network signals per dedicated bearer — there is no way for the UE to infer uplink treatment from the downlink, and there is no per-flow authorization attribute like RQA because QoS is per-bearer, not per-flow. Reflective QoS is a genuinely new 5G capability, made possible only by the per-flow model and the RQI/RDI bits in the SDAP header.
⚠ Common pitfalls / gotchas
- Assuming
RQIalone is enough. WithoutRQAset on the flow, the UE ignoresRQIand builds no derived rule — authorization (NAS) and trigger (per-packet bit) are two different things. - Reflective QoS on a headerless DRB. If the DRB has no SDAP header, there are no
QFI/RQI/RDIbits to carry, so reflection is impossible on that bearer regardless ofRQA. - Forgetting derived rules age out. If the downlink for a flow goes quiet, the RQ timer expires and the derived rule vanishes; uplink silently falls back to the default QoS rule / default DRB until fresh downlink re-establishes it.
- Expecting reflection to guarantee a rate. Reflected treatment is inferred, not admission-controlled — a GBR or strict-latency flow must be pinned with an explicit rule, never left to reflection.
What You Gain, and What It Costs
The headline benefit is reduced control signalling and faster adaptation. The network steers uplink QoS just by marking the downlink it is already transmitting โ no separate NAS round trip, no RRCReconfiguration to install or change an uplink rule, and no per-rule tear-down because the timer handles removal. For a busy cell with many UEs and many short-lived flows, avoiding a burst of dedicated signalling per flow per UE is a real saving in both control-plane load and setup latency.
The costs are modest but real. The UE carries a little more machinery: it must inspect downlink packets, build packet filters for derived rules, maintain the reflected QFI→DRB mapping, and run a timer per derived rule. There is a one-bit-per-packet header overhead for RQI and RDI (already part of the SDAP header octet, so effectively free once an SDAP header is present). And there is a philosophical cost: reflected treatment is inferred, not guaranteed, so it is inappropriate for flows that demand deterministic QoS. For those, the network spends the signalling and pins the rule explicitly. For everything else, reflective QoS is the lightweight default that keeps uplink and downlink consistent almost for free.
Summary
Reflective QoS is "the uplink copies the downlink": rather than signalling explicit uplink rules, the network marks the downlink it is already sending and the UE mirrors that treatment. It is specified in TS 23.501 (the QoS-model behaviour) and TS 37.324 (the SDAP header and handling), and it exists only because 5G QoS is per-flow.
Hold three things in mind. The two bits, two layers: RDI drives the AS/SDAP step (uplink QFI → same DRB the downlink arrived on); RQI drives the NAS step (build a derived QoS rule that classifies uplink into that QFI). The authorize-then-trigger split: RQA is the standing per-flow permission signalled once over NAS; RQI is the per-packet trigger. And the self-cleaning lifecycle: a derived rule is created on a marked packet, refreshed while downlink continues, and aged out by the reflective-QoS (RQ) timer when it stops.
Use it for the many ordinary, symmetric, bursty flows where "follow the downlink" is good enough; pin GBR and strict-latency flows with explicit rules that cannot be aged out. Reflective and explicit rules coexist per UE and even per PDU session, with signalled rules always taking precedence over derived ones.
Q. In one line, what is reflective QoS?
A. The UE derives its uplink QoS handling โ both the NAS packet→flow classification and the flow→DRB mapping โ by mirroring the downlink it receives, instead of the network signalling explicit uplink rules.
Q. What is the difference between RQI and RDI?
A. RQI (Reflective QoS Indication) acts at NAS โ it triggers the UE to create or refresh a derived QoS rule that classifies uplink packets into the flow's QFI. RDI (Reflective QoS flow to DRB mapping Indication) acts at AS/SDAP โ it triggers the UE to map that QFI's uplink onto the DRB the downlink arrived on. Both live only in the downlink SDAP header.
Q. What role does RQA play, and how is it different from RQI?
A. RQA (Reflective QoS Attribute) is the per-QoS-flow authorization signalled by the network at session setup/modification โ it says reflection may be used for this flow. RQI is the per-packet trigger that actually tells the UE to build/refresh the derived rule. No RQA, no reflection, even if RQI is set.
Q. How is a stale reflected rule removed?
A. Each derived QoS rule has a reflective-QoS (RQ) timer, restarted by every downlink packet with RQI set for that flow. If the downlink stops and the timer expires, the UE deletes the derived rule and the flow falls back to a signalled rule or the default QoS rule / default DRB.
Q. Why do RQI and RDI only exist in the downlink header?
A. Reflection is one-directional โ the UE mirrors the network, never the reverse. The network already knows its own mapping, so there is nothing to reflect on the uplink. The uplink SDAP header carries only the QFI, a D/C bit and a reserved bit.
Q. When would you use explicit signalled rules instead?
A. For flows needing deterministic, guaranteed treatment โ GBR flows or strict-latency flows โ where the mapping must be fixed and must not depend on downlink activity or be aged out by a timer. Reflective QoS is for the many ordinary flows where "follow the downlink" is good enough and saves signalling.
Quick LTE 4G / 5G NR Interview Questions โ What Reflective QoS Solves
Q. What is Reflective QoS actually solving, and what happens without it?
A. Reflective QoS lets the UE infer the correct uplink QoS Flow/bearer mapping for a new UL flow by observing how the network mapped the corresponding DL traffic, without needing an explicit NAS-signalled UL QoS rule for every flow. Without it, every new application-level flow would need explicit signalling from the network to tell the UE how to map its uplink traffic โ adding delay and signalling overhead for flows the network can already infer from symmetric traffic patterns (like a server response defining how a request's uplink should be treated).
Where this leads next
Reflective QoS is one half of how uplink mappings get set; the explicit mapping mechanics and the wider QoS framework complete the picture. Continue with the flow-to-DRB mapping detail, the protocol that carries these bits, and the model they serve.