Roaming Quality of Service (QoS) Control

Table 1. Feature History

Feature Name

Release Information

Description

Quality of Service (QoS) Control for Inbound Roamers

2025.04.0

The Roaming Quality of Service (QoS) Control feature gives operators in a visited network full control to manage and enforce QoS for inbound roamers, protecting local user experience from being degraded by visiting users.

Command introduced:

profile qos vplmn_qos { ambr ul ambr_ul | ambr dl ambr_dl | qi5 qci_value | arp priority-level priority_value | arp preempt-cap { not_preempt | may_preempt } | arp preempt-vuln { not_preemptable | preemptable} }

Used to configure a QoS profile with specific AMBR, QCI, and ARP parameters.

Default Setting: Disabled – Configuration Required

Roaming Quality of Service (QoS) Control

The Roaming Quality of Service (QoS) Control feature allows a Visited Public Land Mobile Network (VPLMN) to manage the Quality of Service for inbound roamers. This feature ensures the VPLMN can negotiate and enforce QoS profiles. It applies to both default and dedicated bearers for visiting users in the VPLMN peering nodes.

Operators gain control over the maximum QoS provided to visiting users. This control prevents visiting users from negatively impacting the service quality for local users.

The VPLMN QoS (VQOS) feature is enabled by default on both the Visited Session Management Function (VSMF) and the Home Session Management Function (HSMF) after an upgrade. No additional configuration is necessary to enable this feature.

To use this feature, you must associate an appropriate QoS profile with a Data Network Name (DNN) profile in the VSMF. You must also associate an appropriate compliance profile in the HSMF.

The system allows you to configure specific behavior for the VSMF. This behavior triggers negotiation when the VSMF receives a create response from the HSMF.

  • Override Configuration: The VSMF overrides the Home Public Land Mobile Network (HPLMN) values with the VPLMN values. This occurs if the HPLMN upgrades any QoS parameters that are part of the VPLMN QoS.

  • Reject Configuration: The VSMF rejects session establishment. This occurs if the HPLMN upgrades any QoS parameters that are part of the VPLMN QoS.

You can achieve per-partner behavior by configuring a Public Land Mobile Network (PLMN) based subscriber policy. Link this policy with a unique DNN policy, DNN profile, and QoS profile.

The HPLMN typically honors VPLMN QoS. For trusted partners, revalidating the HPLMN returned QoS is not necessary. The negotiation algorithm in the HPLMN might differ. Operators must consider this before enabling the configuration.

For QoS modification, the VSMF supports changes to QoS Identifier (QCI), Allocation and Retention Priority (ARP), and session Aggregate Maximum Bit Rate (AMBR). These changes are supported as long as the values remain within the VPLMN QoS limits. The system identifies QoS flows by the QoS Flow Identifier (QFI) parameter.

For dedicated bearers, the VSMF can downgrade QoS values received from the HPLMN. This applies if the HPLMN values are higher than local values. The VSMF does not send an update to the HSMF in this case. The system does not downgrade HPLMN QCI.

The system supports local QoS configuration per QCI. Based on the received HPLMN QCI, the VSMF identifies and applies the associated VPLMN QoS values.

  • The system does not send Guaranteed Bit Rate (GBR) and Maximum Bit Rate (MBR) for non-GBR bearers, even if configured.

  • Configuration allows multiple ARP priority levels under the same QCI.

  • If the system finds a match with QCI and ARP priority, it overrides the remaining values based on the configuration.

  • If a match is found in the qosFlow and the modified-priority-level is configured, then modified-priority-level takes precedence over the arp-priority-level.

With a reject configuration, the VSMF rejects the VSMF update request. This occurs if the HPLMN QoS is better than the VPLMN QoS.

How QoS Control Feature Works for Inbound Roamers

The VSMF and HSMF negotiate the VQOS feature. They include this feature in their "supportedFeatures" list.

An SMF that supports this feature handles QoS constraints from the VPLMN during a Home Routed (HR) PDU session establishment. It also handles QoS modification requests initiated by the VPLMN.

The VSMF selects the QoS from the QoS profile associated with the DNN profile. It then sends this QoS in the "vplmnQos IE" within the N16 Nsmf_PDUSession_Create Request to the HSMF. ARP PL, PCI and PVI are also part of the "vplmnQos IE". You can choose to configure only some parameters, such as AMBR, QCI, or ARP. The system includes whatever is configured in "vplmnQos".

The compliance profile configuration for the "npcf-smpolicycontrol" service supports version 17.15.0. The HSMF supports the VPLMN-QoS-Control feature on the N7 interface. It includes this feature in its supported features during negotiation if the compliance profile is version 17.15.0 or higher.

HSMF includes vplmnQoS received from VSMF in vplmnQos attribute to PCF along with subscribed QoS. PCF negotiates the QoS and sends the negotiated QoS which is same or inferior to vplmnQoS in the response to HSMF.

If IWK is enabled, then HSMF sends the negotiated ARP values in EBI assignment request to VSMF ( to AMF). HSMF sends the PCF returned QoS as is to VSMF in N16 response. This QoS is also sent to HUPF.

For the following cases, HSMF negotiates the vplmnQoS with the hplmnQoS locally and sends the negotiated QoS to VSMF in N16 response. If IWK is enabled, then HSMF also sends the negotiated ARP values in EBI assignment request to VSMF ( to AMF).

  • N7 is disabled.

  • N7 is in failopen state.

  • N7 & N10 disabled

HSMF forwards the received PCF QoS in case PCF not supporting VPLMN-QoS-Control feature.

HSMF sends the authorized session AMBR as the final negotiated AMBR value towards CHF.

The VSMF receives the QoS from the HSMF. It negotiates this QoS with its configured VPLMN QoS. It then sends the negotiated QoS on the N1, N2, and N4 interfaces. This occurs when the HPLMN does not support "vplmnQos" (VQOS feature on N16) and if the configuration is enabled.

If the N16 create response includes multiple flows and no 5QI matches the "vplmnQos", the SMF selects the non-GBR flow with the closest 5QI as the default flow. The system also considers the "defaultQosRuleInd IE". EBI assignment relies on the ARP values sent by the HSMF. If the VSMF overrides the QoS sent by the HPLMN, this does not affect the AMF.

Restrictions while using QoS Control for Inbound Roamers

Be aware of these restrictions when using QoS control feature for inbound roamers:

  • The VSMF does not decode the "MappedEpsBearerContext". This context comes encoded from the HSMF. Therefore, the "MappedEpsBearerContext" goes to the UE with the AMBR value encoded by the HSMF. The VSMF does not override this value.

  • The VSMF does not send any update back to the HSMF when it downgrades the QoS sent by the HSMF. This means the Home User Plane Function (HUPF) and Visited User Plane Function (VUPF) may be out of sync regarding QoS values. This can result in packet drops at the VUPF.

  • The VSMF stores the negotiated QoS. Runtime configuration changes of VPLMN QoS do not apply to active sessions.

  • During handover from a roamer to a homer, if the VPLMN has overridden the QoS sent by the HPLMN, the HPLMN cannot know about this. Therefore, the system cannot upgrade the QoS values in the UE as part of the handover.

  • VSMF change is not currently supported during handover. The HSMF does not take action to restrict QoS in the VPLMN and UE during handover or post-handover from 5G Radio Access Technology (RAT) to 4G RAT. Roaming Wi-Fi handover is not supported.

  • Guaranteed Bit Rate (GBR) is not supported for default bearer.

  • When the visited SMF overrides the QoS values provided by the home SMF, the vSMF also encodes and overrides the qosFlowDescription from the hSMF.

QoS Modificaion for Inbound Roamers

If a PCF-initiated QoS change requests a QoS level higher than the locally configured vplmnQos for the default flow, the VSMF rejects the VSMF Update by sending a vsmfUpdatedData message that includes the qosFlowsFailedtoAddModList.


Note


Changes to QCI, ARP, or session AMBR are supported as long as the new values remain within the configured vplmnQos limits. QoS flow identification is based on the QFI parameter, which is specified in QosFlowSetupItem, QosFlowAddModifyRequestItem, or QosFlowReleaseRequestItem.


New Behavior for Inbound Roamers with QoS Control

Key behavior changes post implementing the QoS Feature:
  • Any QoS configuration (QCI, ARP, session AMBR) results in the VSMF sending "vplmnQos".

  • N4 establishment proceeds with configured values in QER and BLI. Hardcoded values send if no configuration exists.

  • If negotiation configuration is enabled, the VSMF performs QoS negotiation and applies the negotiated value or terminates the session.

Handover during QoS Control for Inbound Roamers

When a UE moves from a 5G roaming network to a home network (any RAT), the HSMF sends an N7 update to the PCF with "vplmnQosNotApp" set to "true". If the Home PCF (HPCF) accepted the "vplmnQoS" when the UE was roaming, the PCF upgrades the QoS if required during handover to the home network. This occurs when the SMF notifies the PLMN change.

When a UE moves to a 5G roaming network, the HSMF sends an N7 update to the PCF with "vplmnQosNotApp" set to "false". It also includes "vplmnQos" if it receives the same from the VSMF.

During session establishment in 4G, the UE receives 5G QoS values (session AMBR) in [e]PCO. These values are HPLMN QoS values. The VPLMN QoS feature works with the 5QI rejection feature and the 5QI NAS re-map feature.

How VPLMN QoS Control Works during 4G to 5G Roamer Handover

Workflow

These stages describe the VPLMN QoS during 4G to 5G roamer handover.

  1. Initial Setup: The PDU session and QoS flow are set up in the 4G System (4GS) before the UE moves to the roamer network.
  2. UE Move to Roamer Network: This event triggers the subsequent roaming procedure.
  3. VSMF to HSMF: The VSMF sends an "Nsmf_PDUSession_Create Request" message, including "VPlmnQoS", to the HSMF.
  4. HSMF Negotiation: The HSMF negotiates 4G QoS with the received VPLMN QoS. It determines the negotiated QoS ("negQos") as the lesser of "VplmnQos" and "ActiveQos".
  5. HSMF Response: The HSMF sends an "Nsmf_PDUSession_Create Resp" message, including "negQos", back to the VSMF.
  6. Policy Update: After handover completion, the HSMF sends an N7 "smPolicyUpdateRequest" message, including "vplmnQoS", to the H-PCF.
  7. PCF Response: The HSMF receives an N7 "smPolicyUpdateRequest Success" message, including "pcfQoS", from the H-PCF. If the "pcfQoS" is less than or greater than the "ActiveQos", the system triggers an N16 VsmfUpdate. The new "ActiveQos" is set to "pcfQoS".
  8. EBI Allocation Request: The VSMF sends an "EBI Allocation Req" to the UE.
  9. EBI Allocation Response: The VSMF receives an "EBI Allocation Response" from the UE.
  10. PDU Session Update Request: The HSMF sends an N16 PDU Session Update request to the UE.
  11. PDU Session Update Response: The HSMF receives an N16 PDU Session Update response from the UE.
  12. N4 Session Modification Request: The HSMF sends an N4 session Modification Request for flow QoS Modification to the H-UPF.
  13. N4 Session Modification Response: The HSMF receives an N4 session Modification Response from the H-UPF.

How VPLMN QoS Control Works during 5G Hoamer to 5G Roamer Handover

Workflow

These stages describe the VPLMN QoS during 5G hoamer to 5G roamer handover.

  1. Initial Setup: The PDU session and QoS flow are set up in the 5G System (5GS) before the UE moves to the roamer network.
  2. UE Move to Roamer Network: This event triggers the subsequent roaming procedure.
  3. VSMF to HSMF: The VSMF sends an "Nsmf_PDUSession_Create Request" message, including "VPlmnQoS", to the HSMF.
  4. HSMF Negotiation: The HSMF negotiates 5G QoS with the received VPLMN QoS. It determines the negotiated QoS ("negQos") as the lesser of "VplmnQos" and "ActiveQos".
  5. HSMF Response: The HSMF sends an "Nsmf_PDUSession_Create Resp" message, including "negQos", back to the VSMF.
  6. Policy Update: After handover completion, the HSMF sends an N7 "smPolicyUpdateRequest" message, including "vplmnQoS", to the H-PCF.
  7. PCF Response: The HSMF receives an N7 "smPolicyUpdateRequest Success" message, including "pcfQoS", from the H-PCF. If the "pcfQoS" is less than or greater than the "ActiveQos", the system triggers an N16 VsmfUpdate. The new "ActiveQos" is set to "pcfQoS".
  8. EBI Allocation Request: The VSMF sends an "EBI Allocation Req" to the UE.
  9. EBI Allocation Response: The VSMF receives an "EBI Allocation Response" from the UE.
  10. PDU Session Update Request: The HSMF sends an N16 PDU Session Update request to the UE.
  11. PDU Session Update Response: The HSMF receives an N16 PDU Session Update response from the UE.
  12. N4 Session Modification Request: The HSMF sends an N4 session Modification Request for flow QoS Modification to the H-UPF.
  13. N4 Session Modification Response: The HSMF receives an N4 session Modification Response from the H-UPF.

Configure VPLMN Profile QoS Parameters

To configure a QoS profile with specific AMBR, QCI, and ARP parameters, follow these steps:

Procedure


Step 1

Enter the QoS profile configuration mode.

profile qos qos_profile_name

Example:

[smf] smf# config 
[smf] smf(config)# profile qos vplmn-qos 

Step 2

Configure the uplink Aggregate Maximum Bit Rate (AMBR).

ambr ul ul_value

Example:

[smf] smf(config-qos-profile-vplmn-qos )# ambr ul 100000 Kbps 

Step 3

Configure the downlink Aggregate Maximum Bit Rate (AMBR).

ambr dl dl_value

Example:

[smf] smf(config-qos-profile-vplmn-qos )# ambr dl 100000 Kbps 

Step 4

Configure the QoS Class Identifier (QCI).

qi5 qci_value

Example:

[smf] smf(config-qos-profile-vplmn-qos )# qi5 5 

Step 5

Configure the ARP priority level.

arp priority-level priority_value

Example:

[smf] smf(config-qos-profile-vplmn-qos )# arp priority-level 6 

Step 6

Configure the ARP preemption capability.

arp preempt-cap { not_preempt | may_preempt }

Example:

[smf] smf(config-qos-profile-vplmn-qos )# arp preempt-cap not_preempt 

Step 7

Configure the ARP preemption vulnerability.

arp preempt-vuln { not_preemptable | preemptable }

Example:

[smf] smf(config-qos-profile-vplmn-qos )# arp preempt-vuln not_preemptable 

Step 8

Save and commit the configuration.


Associate QoS Profile with DNN Profile

To associate VPLMN QoS profile with a DNN profile, follow these steps:

Procedure


Step 1

Enter the DNN profile configuration mode.

profile dnn dnn_profile_name

Example:

[smf] smf# config 
[smf] smf(config)# profile dnn dnnprof-ims.roaming 

Step 2

Associate a QoS profile with the DNN profile.

qos-profile qos_profile_name

Example:

[smf] smf(config-dnn-profile-dnnprof-ims.roaming )# qos-profile vplmn-qos 

Step 3

Associate a QoS profile with the DNN profile.

qos-profile qos_profile_name

Example:

[smf] smf(config-dnn-profile-dnnprof-ims.roaming )# qos-profile vplmn-qos 

Step 4

Save and commit the configuration.


Configure Spec Version in Compliance Profile

To configure the compliance profile for the npcf-smpolicycontrol service to support a specific version, follow these steps:

Procedure


Step 1

Enter the compliance profile configuration mode.

compliance profile compliance_profile_name

Example:

[smf] smf# config 
[smf] smf(config)# compliance profile  default-compliance-profile 

Step 2

Specify the service for which the compliance version is to be configured.

service service_name

Example:

[smf] smf(config-compliance-profile-default-compliance-profile )# service npcf-smpolicycontrol 

Step 3

Specify the supported version for the spec.

version spec version_number

Example:

[smf] smf(config-compliance-profile-default-compliance-profile )# service npcf-smpolicycontrol )# version spec  17.15.0 

To ensure the HSMF supports and negotiates the VPLMN-QoS-Control feature on the N7 interface, the compliance profile must be configured with a version of 17.15.0 or greater.

Step 4

Save and commit the configuration.


Configure VPLMN Local QoS per QCI

Key points:

  • Based on the received HPLMN QCI, the VSMF identifies the VPLMN QoS values associated with that QCI and applies them. The negotiated QoS value is then sent to the gNB, vUPF, and UE.

  • The MappedEpsBearerContext is not updated by the VPLMN.

  • gfbr and mfbr: These parameters are not sent for non-Guaranteed Bit Rate (GBR) bearers, even if they are configured.

  • Multiple ARP Priority Levels: The configuration allows for multiple arp-priority-level entries under the same QCI.

  • Matching Logic (QCI and ARP Priority): If a match is found with both the QCI and the ARP priority, the rest of the QoS values (e.g., arp-pci, arp-pvi, gfbr, mfbr) are overridden based on this specific configuration.

  • Matching Logic (QCI Only): SMF matches the configured QCI (5QI) and ARP priority level from the QoS profile with the QCI (5QI) and ARP priority level configured on the QoS flow. If you configure only the QCI (5QI) on the QoS profile, the system matches the flow based on the QCI (5QI) alone.

  • Reject Configuration: With a "reject" configuration (e.g., as part of vplmn-qos-negotiation dedicated terminate from a previous task), the VSMF rejects the VSMFUpdate request for dedicated flow creation if the HPLMN QoS is better than the VPLMN QoS.

To configure VPLMN supported local QoS per QCI, allowing the VSMF to apply specific VPLMN QoS values based on the received HPLMN QCI, follow these steps:

Procedure


Step 1

Enter the QoS profile configuration mode for the relevant VPLMN QoS profile.

profile qos qos_profile_name

Example:

[smf] smf# config 
[smf] smf(config)# profile qos  vplmn-qos 

Step 2

Configure the QoS flow parameters for a specific QCI, including ARP attributes and guaranteed/maximum flow bit rates.

qosflow qi qci_value { arp-priority-level arp_priority_level | arp-pci preempt_cap | arp-pvi preempt_vuln | modified-priority-level modified_priority_level | gfbr guaranteed_flow_bit_rate | mfbr maximum_flow_bit_rate }

  • QCI_value : The QoS Class Identifier (e.g., 5).

  • level : ARP priority level (e.g., 6).

  • preempt_cap : ARP preemption capability (e.g., NOT_PREEMPT or PREEMPT_CAPABLE).

  • preempt_vuln : ARP preemption vulnerability (e.g., NOT_PREEMPTABLE or PREEMPTABLE).

  • modified-priority-level : Specify the adjusted priority level for the QoS flow. The network function uses this value to override the original ARP priority level assigned to the flow.

  • guaranteed_flow_bit_rate : Guaranteed Flow Bit Rate (e.g., "10000 Kbps").

  • maximum_flow_bit_rate : Maximum Flow Bit Rate (e.g., "20000 Kbps").

Step 3

Save and commit the configuration.


Configure VPLMN QoS Negotiation

This configuration is primarily used when the VSMF receives QoS from the HSMF and needs to negotiate it with the configured VPLMN QoS, especially in cases where the HPLMN does not support VPLMN QoS (VQOS feature on N16) or when the HSMF supports VQOS but the HPCF does not support VPLMN-QoS-Control.

  • The behavior configured here can be achieved per partner by configuring a PLMN (IMSI prefix) based subscriber policy and linking it with a unique DNN policy, DNN profile, and QoS profile.

  • MappedEpsBearerContext is received "encoded" from the HSMF and is not expected to be decoded by the VSMF. Therefore, the MappedEpsBearerContext is sent to the UE with the AMBR value encoded by the HSMF and is not overridden by the VSMF.

  • HPLMN is expected to honor VPLMN QoS, and with trusted partners, revalidating the HPLMN-returned QoS might not be necessary.


Note


The algorithm used for negotiation in HPLMN could be different. Operators should exercise caution and take necessary precautions before enabling this configuration.


To configure VPLMN QoS negotiation behavior on the VSMF, particularly for scenarios where HPLMN does not fully support VPLMN QoS or there are discrepancies in VQOS support, follow these steps:

Procedure


Step 1

Enter the QoS profile configuration mode for the relevant VPLMN QoS profile.

profile qos qos_profile_name

Example:

[smf] smf# config 
[smf] smf(config)# profile qos  vplmn-qos 

Step 2

Configure the VPLMN QoS negotiation behavior.

vplmn-qos-negotiation default { override | terminate }

  • override : With this configuration, the VSMF overrides the HPLMN values with the VPLMN values for QoS parameters.

  • terminate : With this configuration, the VSMF rejects the session establishment if the HPLMN has upgraded any of the QoS parameters that are part of the VPLMN QoS.

Step 3

Save and commit the configuration.


Configure VPLMN QoS Restriction for Dedicated Bearers

This configuration is necessary for the VSMF to restrict QoS based on locally configured values when it receives a VSMFUpdate for dedicated flow creation.

The override option allows the VSMF to enforce local QoS limits by downgrading HPLMN-provided QoS parameters if they are superior, without informing the HSMF. However, QCI values cannot be downgraded using this mechanism.

To configure VPLMN QoS restriction for dedicated bearers or flows, ensuring that the VSMF restricts QoS based on locally configured values, follow these steps:

Procedure


Step 1

Enter the QoS profile configuration mode for the relevant VPLMN QoS profile.

profile qos qos_profile_name

Example:

[smf] smf# config 
[smf] smf(config)# profile qos  vplmn-qos 

Step 2

Configure the VPLMN QoS negotiation behavior for dedicated bearers/flows.

vplmn-qos-negotiation dedicated { override | terminate }

  • override : With this configuration, the VSMF downgrades the QoS values received from the HPLMN with local values if the HPLMN values are higher (i.e., any of the QoS parameters are better). No update is sent to the HSMF. Note that there is no mechanism to downgrade the HPLMN QCI.

  • terminate : With this configuration, implies session termination if conditions are not met.

Step 3

Save and commit the configuration.


Bulk Statistics Output for QoS Control for Inbound Roamers

This feature introduces the following new bulk statistics:

  • policy_bearer_flow_stats: This debug level statistic provides information on rejected and override flows. To enable this statistic, use the following configuration:

    infra metrics verbose application
     metrics policy_bearer_flow_stats
      level debug
     exit
    exit

This feature introduces the following updates to the bulk statistics:

  • Disconnect Statistics: A new disconnect reason, disc_rel_due_to_vplmn_qos_failure, has been added. This reason is recorded when the VSMF terminates a session establishment due to a VPLMN QoS failure.