This issue can be marked as Verified! Below steps were used to test the RFE: 1. 5 VMs created in compute-0 and 1 VM created in compute-1 2. All 5 VMs in compute-0 had a max bandwidth qos of 2Gbps and only 1 of those 5 had a min qos 1.7Gbps (test vm) 3. All VMs in compute-0 were configured as iperf3 clients connecting iperf3 server in the VM of compute-1 through diff ports (ex 5500, 5501 ...) 4. After applying the qos rules to ports, "tc class replace dev enp6s0 parent 1:0 classid 1:fffe htb rate 2Gbit ceil 2Gbit" This command was run on compute-0 5. It was observed that the test VM got the min bw while other VMs got rest of the bw equally divided among them. Create VM: openstack server create --image custom_neutron_guest_rhel_8.4 --flavor custom_neutron_guest_rhel_8.4 --network public --hypervisor-hostname compute-sa5qpm8m-1.ctlplane.example.com --os-compute-api-version 2.74 test_comp_1 sh-5.1$ openstack server list +--------------------------------------+-------------+--------+---------------------+-------------------------------+-------------------------------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+-------------+--------+---------------------+-------------------------------+-------------------------------+ | 6e5d0230-6019-49d3-9086-87fc605e58df | test_comp_1 | ACTIVE | public=172.38.0.69 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | | 347b9bb7-1f3e-4945-b9bb-0c0977671463 | test_comp_0 | ACTIVE | public=172.38.0.127 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | +--------------------------------------+-------------+--------+---------------------+-------------------------------+-------------------------------+ sh-5.1$ openstack server create --image custom_neutron_guest_rhel_8.4 --flavor custom_neutron_guest_rhel_8.4 --network public --hypervisor-hostname compute-sa5qpm8m-0.ctlplane.example.com --os-compute-api-version 2.74 other_vm_1_comp0 openstack server create --image custom_neutron_guest_rhel_8.4 --flavor custom_neutron_guest_rhel_8.4 --network public --hypervisor-hostname compute-sa5qpm8m-0.ctlplane.example.com --os-compute-api-version 2.74 other_vm_2_comp0 openstack server create --image custom_neutron_guest_rhel_8.4 --flavor custom_neutron_guest_rhel_8.4 --network public --hypervisor-hostname compute-sa5qpm8m-0.ctlplane.example.com --os-compute-api-version 2.74 other_vm_3_comp0 openstack server create --image custom_neutron_guest_rhel_8.4 --flavor custom_neutron_guest_rhel_8.4 --network public --hypervisor-hostname compute-sa5qpm8m-0.ctlplane.example.com --os-compute-api-version 2.74 other_vm_4_comp0 sh-5.1$ openstack server list +--------------------------------------+------------------+--------+---------------------+-------------------------------+-------------------------------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+------------------+--------+---------------------+-------------------------------+-------------------------------+ | 2ad2182d-95dd-4e72-9b62-cfbfe718372f | other_vm_4_comp0 | ACTIVE | public=172.38.0.164 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | | 95eb9ff8-3713-48eb-83ae-2ffce787f993 | other_vm_3_comp0 | ACTIVE | public=172.38.0.234 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | | 71b45114-29d6-407f-918c-759a1ffa1be3 | other_vm_2_comp0 | ACTIVE | public=172.38.0.152 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | | 6693a160-4d15-494c-95a2-51b1f1342d1a | other_vm_1_comp0 | ACTIVE | public=172.38.0.68 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | | 6e5d0230-6019-49d3-9086-87fc605e58df | test_comp_1 | ACTIVE | public=172.38.0.69 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | | 347b9bb7-1f3e-4945-b9bb-0c0977671463 | test_comp_0 | ACTIVE | public=172.38.0.127 | custom_neutron_guest_rhel_8.4 | custom_neutron_guest_rhel_8.4 | +--------------------------------------+------------------+--------+---------------------+-------------------------------+-------------------------------+ sh-5.1$ Create QOS: sh-5.1$ openstack network qos policy create no_min_bw +-----------------+--------------------------------------+ | Field | Value | +-----------------+--------------------------------------+ | created_at | 2025-07-08T09:40:52Z | | description | | | id | a883a2c3-2275-44b9-915a-402099e86005 | | is_default | False | | name | no_min_bw | | project_id | 81679e8407ed4baa8b5a0ff6e0ffcbb7 | | revision_number | 0 | | rules | [] | | shared | False | | tags | [] | | updated_at | 2025-07-08T09:40:52Z | +-----------------+--------------------------------------+ sh-5.1$ openstack network qos rule create no_min_bw --max-kbps 2000000 --egress --type bandwidth-limitopenstack network qos rule create no_min_bw --max-kbps 2000000 --egress --type bandwidth-limit^C sh-5.1$ openstack network qos rule create no_min_bw --max-kbps 2000000 --egress --type bandwidth-limit +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | direction | egress | | id | 109ed37c-a913-464a-8805-f0e056aa5358 | | max_burst_kbps | 0 | | max_kbps | 2000000 | | name | None | +----------------+--------------------------------------+ sh-5.1$ openstack network qos policy show no_min_bw --fit +-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | created_at | 2025-07-08T09:40:52Z | | description | | | id | a883a2c3-2275-44b9-915a-402099e86005 | | is_default | False | | name | no_min_bw | | project_id | 81679e8407ed4baa8b5a0ff6e0ffcbb7 | | revision_number | 1 | | rules | [{'max_kbps': 2000000, 'max_burst_kbps': 0, 'direction': 'egress', 'id': '109ed37c-a913-464a-8805-f0e056aa5358', 'qos_policy_id': 'a883a2c3-2275-44b9-915a-402099e86005', 'type': 'bandwidth_limit'}] | | shared | False | | tags | [] | | updated_at | 2025-07-08T09:41:35Z | +-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ sh-5.1$ sh-5.1$ openstack network qos policy create min_bw +-----------------+--------------------------------------+ | Field | Value | +-----------------+--------------------------------------+ | created_at | 2025-07-08T09:42:24Z | | description | | | id | 35940b8d-32c8-4579-809a-3960797337ee | | is_default | False | | name | min_bw | | project_id | 81679e8407ed4baa8b5a0ff6e0ffcbb7 | | revision_number | 0 | | rules | [] | | shared | False | | tags | [] | | updated_at | 2025-07-08T09:42:24Z | +-----------------+--------------------------------------+ sh-5.1$ openstack network qos rule create min_bw --min-kbps 1700000 --egress --type minimum-bandwidth +-----------+--------------------------------------+ | Field | Value | +-----------+--------------------------------------+ | direction | egress | | id | bbfdd873-e186-4f52-b8b6-f63860216654 | | min_kbps | 1700000 | | name | None | +-----------+--------------------------------------+ sh-5.1$ openstack network qos rule create min_bw --max-kbps 2000000 --egress --type bandwidth-limit +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | direction | egress | | id | f8744ac1-7080-483e-a0dd-02f9be69d84b | | max_burst_kbps | 0 | | max_kbps | 2000000 | | name | None | sh-5.1$ openstack network qos policy show min_bw --fit +-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | created_at | 2025-07-08T09:42:24Z | | description | | | id | 35940b8d-32c8-4579-809a-3960797337ee | | is_default | False | | name | min_bw | | project_id | 81679e8407ed4baa8b5a0ff6e0ffcbb7 | | revision_number | 2 | | rules | [{'max_kbps': 2000000, 'max_burst_kbps': 0, 'direction': 'egress', 'id': 'f8744ac1-7080-483e-a0dd-02f9be69d84b', 'qos_policy_id': '35940b8d-32c8-4579-809a-3960797337ee', 'type': 'bandwidth_limit'}, {'min_kbps': | | | 1700000, 'direction': 'egress', 'id': 'bbfdd873-e186-4f52-b8b6-f63860216654', 'qos_policy_id': '35940b8d-32c8-4579-809a-3960797337ee', 'type': 'minimum_bandwidth'}] | | shared | False | | tags | [] | | updated_at | 2025-07-08T09:42:39Z | +-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ sh-5.1$ Attach QOS to ports: sh-5.1$ openstack port list --server test_comp_0 +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | ed2e2418-6455-470b-9d48-bb6fba9116c5 | | fa:16:3e:6a:14:5d | ip_address='172.38.0.127', subnet_id='4a74079c-5b44-4d95-a63b-05da4a5a08da' | ACTIVE | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ sh-5.1$ openstack port list --server other_vm_1_comp0 +--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+ | 888b3588-4eb4-4498-8ef3-233c3e7342c1 | | fa:16:3e:b8:01:12 | ip_address='172.38.0.68', subnet_id='4a74079c-5b44-4d95-a63b-05da4a5a08da' | ACTIVE | +--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+ sh-5.1$ openstack port list --server other_vm_2_comp0 +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | 1dfb4d6d-a886-4e08-a550-0cb3ec817da6 | | fa:16:3e:d7:7f:d9 | ip_address='172.38.0.152', subnet_id='4a74079c-5b44-4d95-a63b-05da4a5a08da' | ACTIVE | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ sh-5.1$ openstack port list --server other_vm_3_comp0 +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | c7df1086-a45a-451c-9f7c-e7d4d66c32aa | | fa:16:3e:17:7c:e0 | ip_address='172.38.0.234', subnet_id='4a74079c-5b44-4d95-a63b-05da4a5a08da' | ACTIVE | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ sh-5.1$ openstack port list --server other_vm_4_comp0 +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ | c6ff20f7-de2d-4d39-b5ff-a7b2947be4a7 | | fa:16:3e:9f:f9:d3 | ip_address='172.38.0.164', subnet_id='4a74079c-5b44-4d95-a63b-05da4a5a08da' | ACTIVE | +--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+ sh-5.1$ openstack port set --qos-policy min_bw ed2e2418-6455-470b-9d48-bb6fba9116c5 openstack port set --qos-policy no_min_bw 888b3588-4eb4-4498-8ef3-233c3e7342c1 openstack port set --qos-policy no_min_bw 1dfb4d6d-a886-4e08-a550-0cb3ec817da6 openstack port set --qos-policy no_min_bw c7df1086-a45a-451c-9f7c-e7d4d66c32aa openstack port set --qos-policy no_min_bw c6ff20f7-de2d-4d39-b5ff-a7b2947be4a7 sh-5.1$ Start iperf on compute-1: [root@test-comp-1 ~]# iperf3 -s -D -p 5500 [root@test-comp-1 ~]# iperf3 -s -D -p 5501 [root@test-comp-1 ~]# iperf3 -s -D -p 5502 [root@test-comp-1 ~]# iperf3 -s -D -p 5503 [root@test-comp-1 ~]# iperf3 -s -D -p 5504 [root@test-comp-1 ~]# iperf3 -s -D -p 5505 [root@test-comp-1 ~]# Run test on compute-0 VM: -------------------------------- before tc command ------------------------------- [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-79.20 sec 17.6 GBytes 1.91 Gbits/sec 0 sender [ 5] 0.00-79.20 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@test-comp-0 ~]# [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-59.93 sec 13.3 GBytes 1.90 Gbits/sec 0 sender [ 5] 0.00-59.93 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-1-comp0 ~]# [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-52.07 sec 11.5 GBytes 1.90 Gbits/sec 0 sender [ 5] 0.00-52.07 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-2-comp0 ~]# - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-36.60 sec 8.09 GBytes 1.90 Gbits/sec 0 sender [ 5] 0.00-36.60 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-3-comp0 ~]# [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-24.62 sec 5.43 GBytes 1.89 Gbits/sec 0 sender [ 5] 0.00-24.62 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-4-comp0 ~]# ------- tc command -------- [root@compute-sa5qpm8m-0 zuul]# tc class replace dev enp6s0 parent 1:0 classid 1:fffe htb rate 2Gbit ceil 2Gbit [root@compute-sa5qpm8m-0 zuul]# ---------------- after tc command ---------------- [ 5] 381.00-382.00 sec 224 MBytes 1.88 Gbits/sec 0 2.71 MBytes [ 5] 382.00-383.00 sec 224 MBytes 1.88 Gbits/sec 0 2.71 MBytes [ 5] 383.00-384.00 sec 226 MBytes 1.90 Gbits/sec 0 2.71 MBytes [ 5] 384.00-384.15 sec 34.6 MBytes 1.90 Gbits/sec 0 2.71 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-384.15 sec 81.5 GBytes 1.82 Gbits/sec 0 sender [ 5] 0.00-384.15 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@test-comp-0 ~]# [ 5] 376.00-377.00 sec 1.62 MBytes 13.6 Mbits/sec 0 3.00 MBytes [ 5] 377.00-377.81 sec 1.25 MBytes 12.9 Mbits/sec 0 3.00 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-377.81 sec 449 MBytes 9.96 Mbits/sec 2 sender [ 5] 0.00-377.81 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-1-comp0 ~]# [ 5] 372.00-373.00 sec 1.38 MBytes 11.5 Mbits/sec 0 3.00 MBytes [ 5] 373.00-374.00 sec 1.38 MBytes 11.5 Mbits/sec 0 3.00 MBytes [ 5] 374.00-375.00 sec 1.62 MBytes 13.6 Mbits/sec 0 3.00 MBytes [ 5] 375.00-375.24 sec 256 KBytes 8.73 Mbits/sec 0 3.00 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-375.24 sec 445 MBytes 9.95 Mbits/sec 1 sender [ 5] 0.00-375.24 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-2-comp0 ~]# [ 5] 369.00-370.00 sec 1.38 MBytes 11.5 Mbits/sec 0 2.09 MBytes [ 5] 370.00-371.00 sec 1.38 MBytes 11.5 Mbits/sec 0 2.09 MBytes [ 5] 371.00-372.00 sec 1.38 MBytes 11.5 Mbits/sec 0 2.09 MBytes [ 5] 372.00-372.26 sec 384 KBytes 12.3 Mbits/sec 0 2.09 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-372.26 sec 438 MBytes 9.87 Mbits/sec 163 sender [ 5] 0.00-372.26 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-3-comp0 ~]# [ 5] 364.00-365.00 sec 1.38 MBytes 11.5 Mbits/sec 0 2.69 MBytes [ 5] 365.00-366.00 sec 1.38 MBytes 11.5 Mbits/sec 0 2.69 MBytes [ 5] 366.00-367.00 sec 1.38 MBytes 11.5 Mbits/sec 0 2.69 MBytes [ 5] 367.00-367.78 sec 1.12 MBytes 12.1 Mbits/sec 0 2.69 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-367.78 sec 2.34 GBytes 54.7 Mbits/sec 0 sender [ 5] 0.00-367.78 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-4-comp0 ~]# Test to increase min BW of 2 VMs: --------------------------------- change other_vm_1_comp0 to have min bw --------------------------------- sh-5.1$ openstack port set --qos-policy min_bw 888b3588-4eb4-4498-8ef3-233c3e7342c1 sh-5.1$ sh-5.1$ openstack port show 888b3588-4eb4-4498-8ef3-233c3e7342c1 | grep qos | qos_network_policy_id | None | | qos_policy_id | 35940b8d-32c8-4579-809a-3960797337ee | sh-5.1$ - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-54.70 sec 12.1 GBytes 1.91 Gbits/sec 0 sender [ 5] 0.00-54.70 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@test-comp-0 ~]# - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-47.27 sec 10.5 GBytes 1.91 Gbits/sec 0 sender [ 5] 0.00-47.27 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-1-comp0 ~]# - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-33.76 sec 7.48 GBytes 1.90 Gbits/sec 0 sender [ 5] 0.00-33.76 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-2-comp0 ~]# - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-27.89 sec 6.17 GBytes 1.90 Gbits/sec 0 sender [ 5] 0.00-27.89 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-3-comp0 ~]# - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-20.61 sec 4.55 GBytes 1.90 Gbits/sec 0 sender [ 5] 0.00-20.61 sec 0.00 Bytes 0.00 bits/sec receiver iperf3: interrupt - the client has terminated [root@other-vm-4-comp0 ~]# ----------------------------- set tc again ----------------------------- [root@compute-sa5qpm8m-0 zuul]# tc class replace dev enp6s0 parent 1:0 classid 1:fffe htb rate 2Gbit ceil 2Gbit [root@compute-sa5qpm8m-0 zuul]# -------------------------- results -------------------------- running both VM at min bw caused network to crash because of insufficient bandwidth