GFBR / MFBR / Session-AMBR / UE-AMBR / ARP — Bandwidth, Priority and the "Which Priority?" Problem¶
Learning objectives¶
After reading this chapter, you will be able to:
- Explain that GFBR / MFBR are parameters of GBR QoS Flows only, and that Non-GBR bandwidth is controlled by Session-AMBR / UE-AMBR
- Explain the difference between Session-AMBR and UE-AMBR in scope (PDU Session / UE) and enforcement point (UE / NG-RAN / UPF)
- Explain that a 5QI is not a bandwidth value, and that bandwidth is carried separately by GFBR / MFBR / AMBR
- Explain that the three elements of ARP (Priority Level / Pre-emption Capability / Pre-emption Vulnerability) are for admission / pre-emption and, per 3GPP, do not represent a packet scheduling priority (treatment in transport DSCP or RAN implementations is a separate matter)
- When you see "Priority" in a trace or log, identify whether it is ARP / 5QI / Precedence / Paging / vendor-internal
- Isolate "low throughput," "a GBR Flow cannot be created" and "high ARP but still slow" per parameter and per interface
Prerequisites¶
- QoS Flow / QFI / 5QI — basics of QoS Flow, QFI and 5QI (this chapter keeps them to a minimum)
- QoS — the overall 5G QoS model (GBR / Non-GBR, QoS profile / QoS rules / QER)
- PFCP and PDR / FAR / QER / URR — the QER on the UPF side
- Supplementary: PCF / N7 / N10 / N2 / QoS Dictionary
The focus of this chapter (Level ∞ Deep Dive)
QoS summarized "GBR is the floor, AMBR is the ceiling." This chapter digs into at what granularity that floor and ceiling apply, from which NF, in which IE on which interface they are carried, and who enforces them. It also sorts out the most common source of confusion in the field: "Priority = 1 — which priority?"
Why — "decide the 5QI and the QoS is decided" is not true¶
If a QoS design meeting only decides "voice uses 5QI=1," the following questions remain unanswered:
- How many kbps are guaranteed for that voice Flow?
- How far beyond the guarantee may it go?
- When the radio is busy and a new voice Flow cannot be admitted, may an existing Flow be evicted?
- How much may Non-GBR Internet traffic use across the whole PDU Session, and across the whole UE?
A 5QI is a number that indicates "which QoS characteristics"; it carries neither a bandwidth value nor a priority for admission or eviction. Separate parameters (GFBR / MFBR / Session-AMBR / UE-AMBR / ARP) take care of those (TS 23.501 §5.7.2).
Analogy: The 5QI is the "seat class (reserved / unreserved)," GFBR is the "number of seats already reserved," MFBR is the "maximum number of seats that group may use," Session-AMBR / UE-AMBR is the "cap on how many people may sit in unreserved seats (per group / per family)," and ARP is the rule for "when the train is full, may someone be asked to get off to let a later group board (and is this group one that can be asked to get off)?" The role of ARP in the specifications is not to decide "how fast the train runs."
What — the overall picture of the parameters¶
Resource Types and the parameters they have¶
There are three Resource Types for a QoS Flow: GBR / Delay-critical GBR / Non-GBR (TS 23.501 §5.7.3.2). Which bandwidth parameters a Flow has depends on this classification.
| Parameter | Granularity | GBR / Delay-critical GBR | Non-GBR | Specified in |
|---|---|---|---|---|
| 5QI | QoS Flow | Yes | Yes | TS 23.501 §5.7.2.1 |
| ARP | QoS Flow | Yes | Yes | TS 23.501 §5.7.2.2 |
| GFBR (UL / DL) | QoS Flow | Yes | No | TS 23.501 §5.7.2.5 |
| MFBR (UL / DL) | QoS Flow | Yes | No | TS 23.501 §5.7.2.5 |
| Session-AMBR (UL / DL) | PDU Session | Not applicable | Applies (sum of Non-GBR within the Session) | TS 23.501 §5.7.2.6 |
| UE-AMBR (UL / DL) | UE | Not applicable | Applies (sum of Non-GBR across the UE) | TS 23.501 §5.7.2.6 |
Traffic on GBR Flows is outside the AMBR
Session-AMBR / UE-AMBR apply only to Non-GBR QoS Flows (TS 23.501 §5.7.2.6). Traffic on GBR Flows is not counted toward the AMBR; it is handled individually by GFBR / MFBR. Note that "Session-AMBR = total bandwidth of the PDU Session" is not true.
Viewed as a hierarchy¶
flowchart TD
UE["UE
UE-AMBR (cap on the Non-GBR sum)"] --> S1["PDU Session A
Session-AMBR"]
UE --> S2["PDU Session B
Session-AMBR"]
S1 --> F1["QoS Flow (Non-GBR)
5QI / ARP"]
S1 --> F2["QoS Flow (Non-GBR)
5QI / ARP"]
S1 --> F3["QoS Flow (GBR)
5QI / ARP / GFBR / MFBR"]
S2 --> F4["QoS Flow (Non-GBR)
5QI / ARP"]
- The sum F1 + F2 is constrained by Session A's Session-AMBR, and the sum F1 + F2 + F4 by the UE-AMBR.
- F3 (GBR) is counted toward neither AMBR; it is handled by its own GFBR / MFBR.
What — GFBR / MFBR (GBR QoS Flows only)¶
TS 23.501 §5.7.2.5 defines GFBR (UL / DL) and MFBR (UL / DL) as additional parameters that only GBR QoS Flows have.
| Parameter | Meaning |
|---|---|
| GFBR (Guaranteed Flow Bit Rate) | The bit rate that the network guarantees to provide to the QoS Flow, averaged over the Averaging Window (TS 23.501 §5.7.3.6) |
| MFBR (Maximum Flow Bit Rate) | The highest bit rate expected by the QoS Flow. Excess traffic may be discarded or delayed by rate control (shaping / policing) at the UE / RAN / UPF |
Bit Rate
▲
│ ───────────── MFBR … anything above this is subject to rate control
│ ↑
│ │ GFBR to MFBR: flows if there is room
│ │ (sharing among QoS Flows is decided by the 5QI Priority Level)
│ ───────────── GFBR … guaranteed by the network
│ ↑ guaranteed range
└───────────────────────────►
Sharing between GFBR and MFBR is decided by the 5QI Priority Level, not ARP
TS 23.501 §5.7.2.5 states that bit rates above the GFBR and up to the MFBR may be provided with a relative priority determined by the Priority Level of the QoS Flows (§5.7.3.3). The Priority Level here belongs to the 5QI's QoS characteristics, not to ARP.
- "GFBR = 5 Mbps" does not mean "no more than 5 Mbps." The cap is the MFBR.
- Conversely, "GFBR = 5 Mbps" does not mean "the user can always measure 5 Mbps." The guarantee is an average over the Averaging Window, and nothing flows if the application sends nothing. A separate mechanism (Notification Control, TS 23.501 §5.7.2.4) exists for notifying when the GFBR can no longer be maintained, e.g. because radio conditions deteriorate.
- UL and DL can be set independently.
What — Session-AMBR and UE-AMBR (caps for Non-GBR groups)¶
Session-AMBR¶
Session-AMBR is the cap on the bit rate that can be expected for the sum of all Non-GBR QoS Flows of a PDU Session (TS 23.501 §5.7.2.6).
PDU Session 10 (Session-AMBR DL = 100 Mbps)
├─ QFI 1 Non-GBR 40 Mbps ┐
├─ QFI 2 Non-GBR 30 Mbps ├─ the cap is reached at 100 Mbps in total
├─ QFI 3 Non-GBR 30 Mbps ┘
└─ QFI 4 GBR managed separately by GFBR/MFBR (not counted toward Session-AMBR)
- Each QFI does not get 100 Mbps. It is a cap on the aggregate.
- Where the value comes from: the SMF either uses the subscribed Session-AMBR from the UDM (N10, SM subscription data via Nudm_SDM) as is, modifies it based on local policy, or uses the authorized Session-AMBR from the PCF (N7) (TS 23.501 §5.7.2.6).
- The SMF signals the decided Session-AMBR to the UPF, the UE and the (R)AN. It is signalled to the (R)AN so that the (R)AN can calculate the UE-AMBR, described below (same clause).
UE-AMBR¶
UE-AMBR is the cap on the bit rate that can be expected for the sum of all Non-GBR QoS Flows of all PDU Sessions of a UE (TS 23.501 §5.7.2.6).
- Where the value comes from: the AMF provides it to the (R)AN based on the subscribed UE-AMBR from the UDM (N8, Access and Mobility Subscription data) or a serving-network UE-AMBR obtained from the PCF (e.g. for roaming subscribers; the Release in which it was introduced is to be confirmed). The UE-AMBR is provided by the AMF to the (R)AN, and the SMF does not handle it (TS 23.501 §5.7.2.6).
- The (R)AN sets its UE-AMBR to the smaller of "the sum of the Session-AMBRs of all PDU Sessions with an active user plane at that (R)AN" and "the received UE-AMBR" (TS 23.501 §5.7.2.6).
Example: received UE-AMBR = 300 Mbps
active PDU Sessions: Session-AMBR 100 Mbps + 50 Mbps = 150 Mbps
→ UE-AMBR actually used by the (R)AN = min(150, 300) = 150 Mbps
MFBR and AMBR are not \"the same maximum speed\"
MFBR is the cap for one GBR QoS Flow, Session-AMBR is the cap for the Non-GBR group within a PDU Session, and UE-AMBR is the cap for the Non-GBR group within a UE. They share the word "Maximum," but they are designed so that their targets do not overlap. There is also an MBR per PCC Rule (SDF), which is enforced in the UPF (TS 23.501 §5.7.1.8 / TS 23.503 §6.3.1, to be confirmed).
What — differences in enforcement point (UE / RAN / UPF)¶
"Who actually limits the rate" differs per parameter. The following summarizes TS 23.501 §5.7.1.8 (AMBR / MFBR enforcement and rate limitation; the sub-clause number is to be confirmed) and §5.7.2.6.
flowchart LR
UE["UE
UL: rate limitation
with Session-AMBR"] -- "Uu" --> RAN["NG-RAN
UL/DL: UE-AMBR
GFBR assurance and MFBR for GBR Flows"]
RAN -- "N3" --> UPF["UPF
Session-AMBR (QER)
MFBR / per-SDF MBR (QER)"]
UPF -- "N6" --> DN["DN"]
The MFBR enforcement points in the diagram are to be confirmed, as shown in the table below.
| Parameter | UE | NG-RAN | UPF | Main reference |
|---|---|---|---|---|
| Session-AMBR | UL rate limitation (if received) | Used to calculate the UE-AMBR | Enforcement (DL in each UPF terminating N6; the UL split in UL CL / BP configurations is to be confirmed) | TS 23.501 §5.7.1.8 / §5.7.2.6 |
| UE-AMBR | — | UL / DL enforcement | — | TS 23.501 §5.7.1.8 / §5.7.2.6 |
| GFBR | Receives the value in the QoS flow description | Secured by admission control and radio scheduling | A GBR can be set in the QER (handling in the UPF is implementation dependent) | TS 23.501 §5.7.2.5 |
| MFBR | UL rate limitation (to be confirmed) | UL / DL enforcement (to be confirmed) | DL enforcement (QER MBR, to be confirmed) | TS 23.501 §5.7.1.8 (to be confirmed) |
The UE-AMBR is invisible to the UPF
The UE-AMBR is a parameter passed from the AMF to the (R)AN and does not appear in a PFCP QER. When "the UPF's QERs are correct but throughput is capped per UE," check the UE Aggregate Maximum Bit Rate on the NGAP side and the effective value calculated by the (R)AN.
What — a 5QI is not a bandwidth value¶
A 5QI points to QoS characteristics such as Resource Type / Priority Level / Packet Delay Budget / Packet Error Rate / Averaging Window / Maximum Data Burst Volume (TS 23.501 §5.7.3; standardized 5QIs are in the table in §5.7.4). No bit rate value is included anywhere.
5QI = X
├─ Resource Type … GBR / Delay-critical GBR / Non-GBR
├─ Priority Level … relative scheduling priority (not ARP)
├─ Packet Delay Budget
├─ Packet Error Rate
└─ Averaging Window etc. … GBR types only
✕ no bandwidth value → GFBR / MFBR / AMBR carry it separately
For the concrete characteristic values of each 5QI, refer to the table in TS 23.501 §5.7.4 (this chapter does not list the values). The basics of 5QI and QFI are covered in QoS Flow / QFI / 5QI.
What — ARP (Allocation and Retention Priority)¶
The three elements of ARP (TS 23.501 §5.7.2.2)¶
| Element | Values | Meaning |
|---|---|---|
| Priority Level | 1 to 15 (1 is the highest) | The relative importance of a resource request. Used to decide whether a new QoS Flow is accepted or rejected under resource limitation (typically admission control of GBR traffic), and which existing QoS Flow to pre-empt |
| Pre-emption Capability | enabled / disabled | Whether this Flow may take resources already assigned to a Flow with a lower Priority Level |
| Pre-emption Vulnerability | enabled / disabled | Whether this Flow's resources may be taken to admit a Flow with a higher Priority Level |
The same clause states that Priority Levels 1 to 8 should only be assigned to services authorized to receive prioritized treatment within the serving network, and 9 to 15 to resources authorized by the home network and thus applicable when the UE is roaming.
flowchart TD
N["Request for a new QoS Flow
(ARP Priority Level = 2, Capability = enabled)"] --> A{"Does the (R)AN
have spare resources?"}
A -- "Yes" --> OK["Admitted (ARP plays almost no role)"]
A -- "No" --> B{"Is there an existing Flow
with a lower Priority Level
and Vulnerability = enabled?"}
B -- "Yes" --> P["Pre-empt the existing Flow and admit"]
B -- "No" --> R["Reject the new Flow
(admission failure)"]
The selection algorithm (which existing Flow to choose, what counts as "resource shortage") is (R)AN implementation dependent.
ARP is not a scheduling priority (its purpose in the specifications)¶
In 3GPP, the purpose of ARP is the decision to admit / retain / evict a Flow (admission / pre-emption) (TS 23.501 §5.7.2.2). The scheduling priority among QoS Flows is carried by the 5QI Priority Level (§5.7.3.3), and the treatment of packets after admission is decided mainly by the 5QI QoS characteristics (Priority Level, Packet Delay Budget, etc.) and GFBR / MFBR, together with the (R)AN scheduler.
Two caveats apply, however:
- DSCP marking on the N3 transport network may be based on the 5QI and ARP (TS 23.501 §5.7.1.6 / §5.7.1.7, to be confirmed), so in deployments that use an ARP → DSCP mapping, the treatment in the transport network can change with ARP. The UPF does not receive ARP itself; the SMF decides the DL DSCP value and passes it to the UPF in the PFCP FAR (Transport Level Marking in the Forwarding Parameters) (TS 29.244 §8.2.12, to be confirmed).
- Whether the (R)AN scheduler refers to ARP is implementation dependent.
A principle stated explicitly in EPC
In 4G, TS 23.401 §4.7.3 explicitly states that ARP should not influence a bearer's packet forwarding treatment (scheduling and rate control) (clause number and wording to be confirmed). 5G ARP follows the same idea: TS 23.501 §5.7.2.2 defines ARP as input for admission / pre-emption decisions.
ARP is not sent to the UE¶
ARP is used mainly for (R)AN admission / pre-emption and as a binding parameter when the SMF binds PCC Rules to a QoS Flow (TS 23.501 §5.7.1.5 / TS 23.503 §6.1.3.2.4, to be confirmed). It is included in the NGAP QoS Flow Level QoS Parameters, but not in the NAS QoS flow description (to the UE) nor in the PFCP QER (to the UPF) (TS 24.501 §9.11.4.12 / TS 29.244 §7.5.2.5, to be confirmed). "There is no ARP in the UE log" is normal.
How — when you see "Priority," which priority is it?¶
"Priority = 1" alone is not enough information. Before discussing anything, identify at least which of the following it is.
| What it is called | What it really is | Direction of the value | What it affects | Where it appears | Specified in |
|---|---|---|---|---|---|
| ARP Priority Level | An element of ARP | 1 to 15, smaller is higher | Admission / pre-emption | N7 (arp in the QoS data), N2 (Allocation and Retention Priority) | TS 23.501 §5.7.2.2 |
| 5QI Priority Level | A 5QI QoS characteristic | Smaller is higher (range to be confirmed) | Scheduling among QoS Flows, sharing between GFBR and MFBR, which Flows' requirements are prioritized under congestion | Default value of the 5QI. Appears on N7 / N2 when overridden by signaling | TS 23.501 §5.7.3.3 |
| Precedence | Evaluation order of PDRs / QoS rules / PCC rules | Smaller is evaluated first | Which rule is matched (not the strength of QoS) | N4 (PDR), N1 (QoS rule), N7 (PCC rule) | TS 29.244 §8.2.11, TS 23.501 §5.7.1.9 (to be confirmed) |
| Paging Priority / Paging Policy Indicator | Paging priority and differentiation | — | Paging priority and distinguishing paging policies | N2 (Paging), N4 (PPI in the QER) | Under TS 23.501 §5.4.3 (sub-clause to be confirmed) |
| RAN scheduler internal priority | gNB implementation | Implementation dependent | Actual scheduling | gNB logs / counters | Implementation dependent |
| Vendor internal priority / DSCP | Core / transport implementation and configuration | Implementation dependent | Queue selection, DSCP marking on N3 transport | Product configuration, DSCP in the IP header | Implementation dependent (operational design) |
Analogy: ARP is the membership rank that decides "can you get into a full restaurant, or will someone give up their seat," the 5QI Priority Level is "the order in which dishes are served after you sit down," and Precedence is "which reception desk's rule is applied first." A high membership rank does not mean your food arrives sooner.
The 5QI Priority Level can be overridden
Standardized 5QIs have a default Priority Level, but when a Priority Level is signalled together with the 5QI, that value is used instead of the default (TS 23.501 §5.7.3.3, to be confirmed). When "the 5QI is 9 but the Priority Level differs from the table," check whether a Priority Level is carried on N7 / N2.
How — the flow PCF → SMF → RAN / UPF / UE¶
Call Flow (QoS decision and distribution during PDU Session Establishment)¶
sequenceDiagram
participant UDM
participant AMF
participant SMF
participant PCF
participant UPF
participant gNB
participant UE
Note over AMF,UDM: At Registration: the AMF obtains the subscribed UE-AMBR (N8)
SMF->>UDM: Nudm_SDM_Get (SM subscription data)
UDM-->>SMF: subscribed Session-AMBR, default 5QI / ARP
opt Dynamic PCC
SMF->>PCF: Npcf_SMPolicyControl_Create
PCF-->>SMF: SM Policy Decision
(authorized Session-AMBR, default QoS, PCC Rules, QoS data)
end
Note over SMF: Decide 5QI / ARP / GFBR / MFBR per QoS Flow
Decide the Session-AMBR
SMF->>UPF: PFCP Session Establishment
Create QER (Session-AMBR / MFBR / GFBR / QFI)
UPF-->>SMF: Response
SMF->>AMF: Namf_Communication_N1N2MessageTransfer
N2 SM (PDU Session AMBR, QoS Flow Level QoS Parameters)
N1 SM (Session-AMBR, QoS rules, QoS flow descriptions)
AMF->>gNB: PDU Session Resource Setup Request
(UE Aggregate Maximum Bit Rate if needed)
Note over gNB: Admission decision using ARP
Calculate the UE-AMBR
gNB->>UE: DRB setup via RRC + NAS (PDU Session Establishment Accept)
gNB-->>AMF: PDU Session Resource Setup Response
The whole procedure is TS 23.502 §4.3.2.2.1 (UE-requested PDU Session Establishment, non-roaming). For how N1 / N2 / N4 connect, see PDU Session Establishment Deep Dive. GBR Flows are often added after PDU Session establishment by PDU Session Modification (TS 23.502 §4.3.3.2) (e.g. the voice Flow in VoNR). What the PCF decides and how is covered in the next chapter, PCF / SM Policy Association / PCC Rule.
Signal Flow — which IE on which segment carries each parameter¶
| Parameter | N7 (PCF→SMF, TS 29.512) | N4 (SMF→UPF, TS 29.244) | N2 (SMF→AMF→gNB, TS 38.413) | N1 (SMF→UE, TS 24.501) |
|---|---|---|---|---|
| 5QI | 5QI in the QoS data / default QoS | — (not in the QER; only the QFI) | 5QI Descriptor in the QoS Flow Level QoS Parameters | 5QI in the QoS flow description |
| ARP | ARP in the QoS data / default QoS | — | Allocation and Retention Priority in the QoS Flow Level QoS Parameters | — (not sent) |
| GFBR | GBR (UL / DL) in the QoS data | GBR in the QER | Guaranteed Flow Bit Rate in the GBR QoS Flow Information | GFBR in the QoS flow description |
| MFBR | MBR (UL / DL) in the QoS data | MBR in the QER | Maximum Flow Bit Rate in the GBR QoS Flow Information | MFBR in the QoS flow description |
| Session-AMBR | Authorized Session-AMBR in the Session Rule | MBR in the per-Session QER | PDU Session Aggregate Maximum Bit Rate | Session-AMBR IE |
| UE-AMBR | — (not on N7. PCF → AMF is N15 / Npcf_AMPolicyControl, TS 29.507, to be confirmed) | — | UE Aggregate Maximum Bit Rate (set by the AMF) | — |
IE and attribute names are conceptual correspondences; exact names and structures are to be confirmed per TS version. The N7 QoS data types are defined under TS 29.512 §5.6.2, and the common data types (ARP, BitRate, etc.) under TS 29.571 §5 (sub-clause numbers to be confirmed).
In the UPF, QERs express both the AMBR and the MFBR¶
As seen in PFCP and PDR / FAR / QER / URR, one PDR can reference multiple QERs. The SMF typically uses this to layer a per-QoS-Flow QER and a per-PDU-Session QER. That the MBR of a QER can represent the Session-AMBR / the QoS Flow MBR / the SDF MBR is shown in TS 23.501 §5.8.2.11.4 (QoS Enforcement Rule, to be confirmed).
DL PDR (Non-GBR traffic of QFI 1)
├─ QER #10 QFI=1 ← DL QFI marking
└─ QER #1 MBR = Session-AMBR ← shared by all Non-GBR PDRs in the Session
DL PDR (GBR traffic of QFI 4)
└─ QER #20 QFI=4, MBR=MFBR, GBR=GFBR ← does not reference the Session-AMBR QER
How QERs are allocated (how shared QERs are built, how per-SDF MBRs are layered) is SMF implementation dependent.
Value representations differ per segment¶
| Segment | Representation | Note |
|---|---|---|
| N7 (JSON) | String (e.g. "100 Mbps") |
String with unit (TS 29.571, to be confirmed) |
| N4 (PFCP) | Integer (kbps) | The MBR / GBR IEs are in kbps (TS 29.244 §8.2.8 / §8.2.9, to be confirmed) |
| N2 (NGAP) | Integer (bps) | Bit Rate is in bit/s (TS 38.413 §9.3.1.4, to be confirmed) |
| N1 (NAS) | Unit field + value | The Session-AMBR IE is a pair of a unit (multiples of 1 kbps, 1 Mbps, etc.) and a value (TS 24.501 §9.11.4.14, to be confirmed) |
The same 100 Mbps is displayed as 100000 on N4 and 100000000 on N2. Align the units before comparing.
Packet Analysis (Wireshark)¶
Display filters¶
| Filter | Purpose |
|---|---|
ngap |
All of N2. PDU Session Resource Setup / Modify, Initial Context Setup |
pfcp |
All of N4. Create QER / Update QER |
pfcp.msg_type == 50 or pfcp.msg_type == 52 |
Session Establishment / Modification Request (message type values from TS 29.244 §7.3; the field name is to be confirmed per Wireshark version) |
nas-5gs |
N1. PDU Session Establishment Accept / Modification Command |
http2 |
N7 (contents readable only if TLS can be decrypted) |
Each of N7 / N2 / N1 / N4 is only one cross-section of "the moment QoS was decided." The trick is to line up the four segments for the same PDU Session in the same time window.
Decode example (conceptual)¶
The following is a conceptual representation of the display structure; the values are fictitious (capture needed).
NGAP PDUSessionResourceSetupRequest
└─ PDUSessionResourceSetupRequestTransfer
├─ PDUSessionAggregateMaximumBitRate
│ ├─ DL: 100000000 bits/s
│ └─ UL: 50000000 bits/s
└─ QosFlowSetupRequestList
├─ QosFlowSetupRequestItem
│ ├─ qosFlowIdentifier: 1
│ └─ qosFlowLevelQosParameters
│ ├─ qosCharacteristics: nonDynamic5QI (5QI=9)
│ └─ allocationAndRetentionPriority
│ ├─ priorityLevelARP: 8
│ ├─ pre-emptionCapability: shall-not-trigger-pre-emption
│ └─ pre-emptionVulnerability: pre-emptable
└─ QosFlowSetupRequestItem
├─ qosFlowIdentifier: 4
└─ qosFlowLevelQosParameters
├─ qosCharacteristics: nonDynamic5QI (5QI=1)
├─ allocationAndRetentionPriority ...
└─ gBR-QosInformation
├─ maximumFlowBitRateDL / UL
└─ guaranteedFlowBitRateDL / UL
PFCP Session Establishment Request
├─ Create QER
│ ├─ QER ID: 1
│ ├─ Gate Status: UL=OPEN, DL=OPEN
│ └─ MBR: UL=50000 kbps, DL=100000 kbps ← Session-AMBR
└─ Create QER
├─ QER ID: 20
├─ Gate Status: UL=OPEN, DL=OPEN
├─ MBR: UL=…, DL=… ← MFBR
├─ GBR: UL=…, DL=… ← GFBR
└─ QFI: 4
Order of checks¶
flowchart LR
A["① N7
values authorized by the PCF"] --> B["② N4
QER MBR / GBR"]
A --> C["③ N2
AMBR / ARP / GFBR / MFBR"]
C --> D["④ N2 Response
any Failed to Setup?"]
A --> E["⑤ N1
Session-AMBR / QoS flow description to the UE"]
Check whether the values decided by the PCF (①) reach the UPF (②), the RAN (③) and the UE (⑤) with the same meaning. If a Flow sent in ③ appears in the QoS Flow Failed to Setup List in ④, it was not admitted on the RAN side.
Trouble Shooting¶
| Symptom | Likely cause | Check point | Logs | Packets | Resolution |
|---|---|---|---|---|---|
| Throughput lower than the subscription (Non-GBR) | Session-AMBR / UE-AMBR smaller than expected; the PCF authorized a lower value than the subscription data | Session-AMBR on N1, PDU Session AMBR and UE AMBR on N2, per-Session QER on N4, authorized value on N7 | SMF / AMF / PCF logs | nas-5gs / ngap / pfcp / http2 |
Fix the values in subscription data / PCF policy |
| One session slows down when multiple PDU Sessions are up | The (R)AN limits the whole UE by the UE-AMBR | The smaller of the received UE-AMBR and the sum of active Session-AMBRs | gNB logs | ngap |
Review the subscribed UE-AMBR / AM Policy |
| Only a specific application is capped | Its traffic is on a GBR Flow and limited by MFBR, or by a per-SDF MBR | PDR Precedence and QFI, QER MBR | UPF logs | pfcp |
Fix the PCC Rule MBR / Flow assignment |
| Off by a factor of 10 or 1000 from the configured value | Mixing up kbps / bps / Mbps | Raw value and unit on each segment | Configuration | pfcp / ngap |
Reconfigure with consistent units |
| A GBR Flow cannot be created (Default Flow succeeds) | (R)AN admission failure (resource shortage, low ARP / Pre-emption Capability = disabled), unsupported 5QI, no GFBR / MFBR in the PCC Rule | QoS Flow Failed to Setup List and Cause in the N2 Response, QoS data on N7 | gNB / SMF logs | ngap / http2 |
Check ARP and GFBR design, radio capacity, 5QI support |
| A GBR Flow suddenly disappears during a call | Pre-empted by a Flow with higher ARP (Vulnerability = enabled); GFBR could not be maintained, this was notified via Notification Control, and the SMF / PCF decided to release the Flow (TS 23.501 §5.7.2.4) | Release / Notify and Cause on N2, report from SMF to PCF | gNB / SMF / PCF logs | ngap / http2 |
Set Vulnerability = disabled for important Flows; review capacity design |
| Still slow / high delay even after raising ARP | The purpose of ARP in the specifications is admission / pre-emption; scheduling priority after establishment is on the 5QI side | 5QI (Priority Level, PDB), GFBR / MFBR, RAN scheduler, DSCP on N3, congestion | gNB / transport logs | ngap / gtp |
Review the 5QI and GBR design. Changing ARP is in principle not a way to improve delay after establishment (in deployments using an ARP → DSCP mapping, transport-network treatment can change) |
| Changing the Session-AMBR has no effect | PFCP Update QER or N2 / N1 updates are not being sent | All three directions N4 / N2 / N1 in PDU Session Modification | SMF logs | pfcp / ngap / nas-5gs |
Confirm updates in all three directions |
Isolation order for "throughput is low"¶
flowchart TD
S["Throughput lower than expected"] --> T{"Is the traffic on a GBR Flow
or a Non-GBR Flow?"}
T -- "GBR" --> G["MFBR / per-SDF MBR
(N2 and QER)"]
T -- "Non-GBR" --> U["UE-AMBR
(N2 and the RAN's effective value)"]
U --> SA["Session-AMBR
(N1 / N2 / QER)"]
G --> Q["QER Gate Status / MBR"]
SA --> Q
Q --> R["RAN QoS and radio quality"]
R --> D["Limits in transport and on the DN side"]
The key is to first establish "which QoS Flow carries this traffic (GBR or Non-GBR)." Looking for the Session-AMBR for traffic on a GBR Flow will not give you an answer. For checking PDR matching and the QFI, see PDR / PDI / F-TEID / SDF Filter / Precedence.
Boundary between 3GPP specifications and vendor implementations¶
| Defined by 3GPP | Decided by vendors / operations |
|---|---|
| Meaning and scope of GFBR / MFBR / Session-AMBR / UE-AMBR / ARP | How each value is chosen (mapping to tariff plans, design per 5QI) |
| Who enforces (UE / RAN / UPF) and the AMBR Averaging Window | Rate-control method (token bucket, shaping / policing, queue depth), implementation on ASIC / DPDK |
| ARP value range and the meaning of pre-emption permissions | The RAN's admission control / pre-emption selection algorithm and criteria for resource shortage |
| 5QI QoS characteristics and the meaning of the Priority Level | RAN scheduler algorithm, 5QI → DSCP mapping |
| IEs and encodings on N7 / N4 / N2 / N1 | CLIs such as show subscriber qos / show qos statistics, counter names |
For example, "which hardware queue in the UPF polices the MFBR, and how" is outside the scope of 3GPP.
Comparison with EPC (4G)¶
| Item | 4G EPC | 5GC |
|---|---|---|
| Unit of guarantee / cap | GBR / MBR of an EPS Bearer | GFBR / MFBR of a QoS Flow |
| QoS characteristics | QCI | 5QI |
| Cap per Session / APN | APN-AMBR (sum over all PDN connections to the same APN) | Session-AMBR (per PDU Session) |
| Cap per UE | UE-AMBR (enforced by the eNB; set by the MME from the subscribed value and the sum of APN-AMBRs; TS 23.401 §4.7.3, to be confirmed) | UE-AMBR (enforced by the (R)AN; calculated by the (R)AN from the sum of Session-AMBRs and the received value) |
| ARP | Priority Level 1 to 15, Capability / Vulnerability | Same structure (TS 23.501 §5.7.2.2) |
| ARP and forwarding treatment | Explicitly stated to have no influence (TS 23.401 §4.7.3, to be confirmed). Treatment of ARP in transport-level marking is to be confirmed | Purpose is admission / pre-emption (TS 23.501 §5.7.2.2). Transport-network marking (N3 DSCP may be based on the 5QI and ARP, §5.7.1.6 / §5.7.1.7) is a separate matter (to be confirmed) |
The biggest difference is APN-AMBR → Session-AMBR: 4G caps "per APN (multiple PDN connections to the same APN together)," whereas 5G caps "per PDU Session" (the 4G provision is TS 23.401 §4.7.3, to be confirmed).
3GPP Specification¶
| Spec | Clause | Content |
|---|---|---|
| TS 23.501 / TS 23.503 | §5.7.1.5 / §6.1.3.2.4 | QoS Flow binding (ARP is one of the binding parameters; to be confirmed) |
| TS 23.501 | §5.7.1.6 / §5.7.1.7 | DL / UL traffic (including N3 DSCP marking; to be confirmed) |
| TS 23.501 | §5.7.1.8 | AMBR / MFBR enforcement and rate limitation (sub-clause number to be confirmed) |
| TS 23.501 | §5.7.1.9 | Precedence Value (to be confirmed) |
| TS 23.501 | §5.7.2.1 / §5.7.2.2 | 5QI / ARP |
| TS 23.501 | §5.7.2.4 / §5.7.2.5 / §5.7.2.6 | Notification Control / Flow Bit Rates (GFBR, MFBR) / Aggregate Bit Rates (Session-AMBR, UE-AMBR) |
| TS 23.501 | §5.7.3.2 / §5.7.3.3 / §5.7.3.6 | Resource Type / Priority Level / Averaging Window |
| TS 23.501 | §5.7.4 | Standardized 5QI to QoS characteristics mapping |
| TS 23.501 | Under §5.4.3 | Paging Policy Differentiation and Paging Priority (sub-clause to be confirmed) |
| TS 23.501 | §5.8.2.11.4 | QoS Enforcement Rule (the QER MBR represents the Session-AMBR / QoS Flow MBR / SDF MBR; to be confirmed) |
| TS 23.502 | §4.3.2.2.1 / §4.3.3.2 | PDU Session Establishment / Modification (non-roaming) |
| TS 23.503 | §6.3 / §6.3.1 / §6.4 | PCC Rule / PCC Rule information elements (per-SDF MBR, etc.) / Session Rule (to be confirmed) |
| TS 29.512 | Under §5.6.2 | Npcf_SMPolicyControl data types (QoS data, Session Rule; sub-clauses to be confirmed) |
| TS 29.571 | Under §5 | Common data types (ARP, BitRate, Ambr; to be confirmed) |
| TS 29.507 | — | Npcf_AMPolicyControl (handling of the UE-AMBR to be confirmed) |
| TS 29.244 | §7.3 / §7.5.2.5 | PFCP message types / Create QER (to be confirmed) |
| TS 29.244 | §8.2.7 / §8.2.8 / §8.2.9 | Gate Status / MBR / GBR (to be confirmed) |
| TS 38.413 | §8.2.1 / §8.2.3 / §8.3.1 | PDU Session Resource Setup / Modify / Initial Context Setup (to be confirmed) |
| TS 38.413 | §9.3.1.4 / §9.3.1.12 / §9.3.4.1 | Bit Rate / QoS Flow Level QoS Parameters / PDU Session Resource Setup Request Transfer (to be confirmed) |
| TS 24.501 | §9.11.4.12 / §9.11.4.13 / §9.11.4.14 | QoS flow descriptions / QoS rules / Session-AMBR (to be confirmed) |
| TS 23.401 | §4.7.3 | EPC bearer level QoS parameters (for comparison; to be confirmed) |
Summary¶
- GFBR / MFBR are parameters of GBR QoS Flows only (including Delay-critical GBR). GFBR is the guarantee and MFBR the cap; sharing between them is decided by the 5QI Priority Level
- Non-GBR bandwidth is capped by Session-AMBR (per PDU Session) and UE-AMBR (per UE). Traffic on GBR Flows is not counted toward the AMBR
- Enforcement: Session-AMBR = UE (UL) and UPF, UE-AMBR = (R)AN. The AMF passes the UE-AMBR to the (R)AN, and it never appears in PFCP
- A 5QI is not a bandwidth value. Bandwidth is carried separately by GFBR / MFBR / AMBR
- ARP has three elements — Priority Level (1 to 15), Pre-emption Capability and Pre-emption Vulnerability — and its purpose in the specifications is admission / pre-emption. Scheduling priority among QoS Flows is carried by the 5QI Priority Level. ARP is not sent to the UE or the UPF (with caveats: it may be used for N3 DSCP marking, and its treatment in RAN implementations varies)
- When you see "Priority," identify whether it is ARP / 5QI / Precedence / Paging / vendor-internal. The units of values (kbps / bps) also differ per segment
Check your understanding¶
Q1. A GBR QoS Flow is configured with GFBR = 10 Mbps, MFBR = 20 Mbps and ARP = high priority. Which description is most appropriate? A. 10 Mbps is the maximum rate and 20 Mbps the guaranteed rate, and ARP directly specifies the packet scheduling priority / B. GFBR and MFBR apply only to Non-GBR QoS Flows, and ARP determines the GTP-U TEID / C. 10 Mbps is the guaranteed bit rate of the GBR QoS Flow, 20 Mbps is that Flow's maximum bit rate, and ARP mainly relates to resource admission / retention / pre-emption / D. GFBR, MFBR and ARP are names for the same QoS parameter on different interfaces
Answer: C. GFBR is the guarantee and MFBR the cap (TS 23.501 §5.7.2.5). ARP is a parameter for admission / pre-emption (§5.7.2.2); packet scheduling is decided by the 5QI QoS characteristics (Priority Level, etc., §5.7.3.3) and the (R)AN scheduler. A reverses GFBR / MFBR and misdescribes ARP, B reverses GBR / Non-GBR, and D ignores that they are three separate parameters.
Q2. A UE has two PDU Sessions (Session-AMBR DL = 100 Mbps and 50 Mbps), and the subscribed UE-AMBR DL is 300 Mbps. With both user planes active, what DL UE-AMBR does the (R)AN use? Does this value appear in a UPF QER?
150 Mbps. The (R)AN uses the smaller of the sum of the Session-AMBRs of PDU Sessions with an active user plane (150 Mbps) and the received UE-AMBR (300 Mbps) (TS 23.501 §5.7.2.6). The UE-AMBR is a parameter the AMF passes to the (R)AN over NGAP, and the (R)AN also enforces it, so it does not appear in a PFCP QER.
Q3. You raised the ARP Priority Level of the voice GBR Flow to 1, but delay under congestion did not improve. What should you check?
The purpose of ARP in the specifications is deciding whether to admit / retain / evict a Flow (TS 23.501 §5.7.2.2); the priority for forwarding packets after admission is in principle carried by the 5QI side. What affects delay is the 5QI QoS characteristics (Priority Level, Packet Delay Budget), the GFBR / MFBR values, (R)AN scheduling, and DSCP marking and congestion on the N3 transport (if your deployment maps DSCP from the 5QI and ARP, check that mapping too; §5.7.1.6 / §5.7.1.7, to be confirmed). Also check on N7 / N2 whether the 5QI Priority Level has been overridden by signaling (TS 23.501 §5.7.3.3).
Q4. The PDU Session and the Default QoS Flow succeed, but only an additional GBR Flow cannot be created. What do you look at first on N2?
The QoS Flow Failed to Setup List in the PDU Session Resource Setup Response (or Modify Response) and its Cause. If admission failed due to resource shortage, the new Flow's ARP Priority Level and Pre-emption Capability, and the existing Flows' Pre-emption Vulnerability, come into play. Also check whether the GBR QoS Flow Information (GFBR / MFBR) in the Request is reasonable, whether the gNB supports the 5QI, and whether the PCC Rule on N7 contains GBR values.
Next Step¶
- Previous chapter: basics of QoS Flow, QFI and 5QI → QoS Flow / QFI / 5QI
- Next chapter: how the PCF decides these values and passes them to the SMF → PCF / SM Policy Association / PCC Rule
- The QER that executes the values in the UPF → PFCP and PDR / FAR / QER / URR / PDR / PDI / F-TEID / SDF Filter / Precedence
- Where the values come from (subscription data) → N10 / N8 / UDM
- Procedures that add or modify GBR Flows → PDU Session Modification / VoNR
- Overview and terminology → QoS / QoS Dictionary / PCF / N2 / N4 / N7