Overview
Network QoS (Quality of Service) policies enforce traffic controls at the virtual switch level on each hypervisor. Policies apply bandwidth limits, burst allowances, DSCP markings, and minimum bandwidth guarantees to individual ports or entire networks. Controls are enforced by the L2 agent — no guest OS configuration is required. Administrators create and optionally share policies; project users apply them to their ports and networks.Prerequisites
- Admin credentials sourced from
admin-openrc.sh - QoS service plugin enabled in your cluster (configured via XDeploy under Networking → Plugins)
- Open vSwitch or Linux Bridge L2 agent running on all compute nodes
QoS Rule Types
Xloud Networking supports four QoS rule types. Multiple rules of different types can be combined within a single policy.| Rule Type | CLI --type | Direction | Hardware Required | Description |
|---|---|---|---|---|
| Bandwidth Limit | bandwidth-limit | Egress / Ingress | No | Cap maximum throughput with optional burst allowance |
| DSCP Marking | dscp-marking | Egress only | No | Mark outgoing packets with a DSCP value for QoS-aware routing |
| Minimum Bandwidth | minimum-bandwidth | Egress / Ingress | Yes (SR-IOV) | Guarantee a minimum throughput floor |
| Minimum Packet Rate | minimum-packet-rate | Egress / Ingress | Yes (SR-IOV) | Guarantee a minimum packet-per-second rate |
Minimum bandwidth and minimum packet rate guarantees require SR-IOV hardware and a compatible network backend. Standard OVS-based ports support bandwidth limits and DSCP marking only.
Create a QoS Policy
- Dashboard
- CLI
Navigate to QoS Policies
Log in to the Xloud Dashboard (
https://connect.<your-domain>) as an administrator
and navigate to Admin → Network → QoS Policies. Click Create Policy.Define the policy
| Field | Value | Description |
|---|---|---|
| Name | e.g., 10mbps-limit | Descriptive label for the policy |
| Shared | Enabled | Makes the policy available to all projects |
| Default | Optional | Applies this policy to all new ports by default |
Add a bandwidth limit rule
Open the newly created policy and click Add Bandwidth Limit Rule:
| Field | Value | Description |
|---|---|---|
| Max Kbps | 10240 | Maximum sustained throughput (10 Mbps) |
| Max Burst Kbps | 20480 | Allowed burst above the limit (20 Mbps) |
| Direction | Egress | Traffic direction to limit |
Click Save to activate the rule.
Apply to a port or network
To apply to a specific port: navigate to Admin → Network → Ports, select the
port, click Edit Port, and set the QoS Policy field.To apply to an entire network: navigate to Admin → Network → Networks, select
the network, click Edit Network, and set the QoS Policy field.
Applying a QoS policy to a network sets a default for all new ports on that
network. Existing ports are not retroactively updated.
DSCP Marking
DSCP (Differentiated Services Code Point) marking tags outgoing packets so that upstream routers and switches can prioritize traffic flows. This is essential for real-time workloads such as VoIP, video conferencing, and database replication traffic.- Dashboard
- CLI
Open a QoS policy
Navigate to Admin → Network → QoS Policies and open an existing policy or
create a new one.
Add DSCP marking rule
Click Add DSCP Marking Rule and set the DSCP value:
| Traffic Class | DSCP Value | Use Case |
|---|---|---|
| Best Effort (BE) | 0 | Default traffic |
| Assured Forwarding 11 | 10 | Standard business traffic |
| Assured Forwarding 21 | 18 | Priority business traffic |
| Expedited Forwarding | 46 | VoIP, real-time traffic |
| Class Selector 3 | 24 | Database / transactional |
Click Save. The rule applies immediately to new packet flows on assigned ports.
Guaranteed Minimum Bandwidth
Minimum bandwidth rules provide a throughput floor — a guarantee that the port will always receive at least the specified bandwidth even under network congestion. This requires SR-IOV hardware and a compatible network backend.- CLI
- Minimum Packet Rate
Create minimum bandwidth policy for guaranteed throughput
Add 1 Gbps minimum bandwidth guarantee (egress)
Apply to an SR-IOV port
Manage QoS Policies
- List and Inspect
- Update Rules
- Remove and Delete
List all QoS policies
Show policy details
List rules in a policy
Per-Port vs. Per-Network QoS
| Scope | Application | Use Case |
|---|---|---|
| Per-port | Direct assignment to a specific port | Granular control per instance NIC — ideal for mixed workload environments |
| Per-network | Applied to a network; inherited by new ports | Consistent SLA enforcement across all instances on a tenant network |
| Combined | Network policy + port override | Set a default at network level; override for specific ports that need exceptions |
Validation
Confirm QoS enforcement is active after applying a policy:- Dashboard
- CLI
Navigate to Admin → Network → Ports and select the port. The QoS Policy field
should display the assigned policy name. Navigate to the instance and run a bandwidth
test from inside the guest to confirm enforcement.
Best Practices
Tiered Policy Names
Create named tiers —
bronze-10mbps, silver-100mbps, gold-1gbps — and share them
across projects for consistent, predictable service levels.Apply at Network Level
Apply QoS to networks for automatic inheritance. Override at the port level only
for exceptions that need different treatment from the network default.
Burst Sizing
Set burst to 2× the sustained limit. Short traffic spikes are absorbed by the burst
allowance without impacting the sustained throughput commitment.
Monitor with XIMP
Use Xloud XIMP to track port-level throughput in real time and confirm QoS policies
are enforcing expected limits under production load.
Troubleshooting
QoS policy not visible in Dashboard
QoS policy not visible in Dashboard
Cause: The QoS service plugin is not enabled in the Networking configuration.Resolution: In XDeploy, navigate to Networking → Plugins and enable the QoS plugin. Redeploy the networking service:Restart the L2 agent on all compute nodes after the plugin is enabled.
Redeploy networking service
Bandwidth limit not enforced
Bandwidth limit not enforced
Cause: The L2 agent on the compute node hosting the instance may not have the QoS extension loaded.Resolution: Verify the agent has the Look for
qos extension active:Check L2 agent capabilities
qos in the extensions list. If absent, restart the L2 agent on the affected compute node.Cannot delete QoS policy
Cannot delete QoS policy
Cause: The policy is still assigned to one or more ports or networks.Resolution: Find and clear all assignments:Remove assignments from each port, then retry the delete.
Find ports using the policy
Minimum bandwidth rule creation fails
Minimum bandwidth rule creation fails
Cause: Minimum bandwidth rules require SR-IOV hardware and a compatible backend (OVS-DPDK or SR-IOV). Standard OVS does not support minimum bandwidth enforcement.Resolution: Use bandwidth limit rules for maximum throughput control on standard OVS ports. Deploy SR-IOV ports for guaranteed minimum bandwidth requirements.
Next Steps
Network Quotas
Limit the number of networking resources per project alongside QoS controls
Provider Networks
Configure the physical network that QoS policies apply to at the hypervisor level
Service Architecture
Understand how L2 agents enforce QoS rules at the virtual switch level
Admin Troubleshooting
Diagnose QoS enforcement issues and L2 agent configuration problems