Bug 2077681 - [RFE] [P1] Implement QoS minimum bandwidth rules for ML2/OVN
Summary: [RFE] [P1] Implement QoS minimum bandwidth rules for ML2/OVN
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-neutron
Version: 17.1 (Wallaby)
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: z4
: ---
Assignee: Rodolfo Alonso
QA Contact: Bharath M V
URL:
Whiteboard:
Depends On: 2060310
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-04-21 21:57 UTC by Ihar Hrachyshka
Modified: 2024-11-06 10:46 UTC (History)
21 users (show)

Fixed In Version: openstack-neutron-18.5.1-1.20220823091141.464e88f.el9ost ovn22.03-22.03.0-74.el8fdp ovn23.06-23.06.0-141.el9fdp
Doc Type: Release Note
Doc Text:
RHOSP 17.1 does not support QoS minimum bandwidth in environments with the ML2/OVN mechanism driver.
Clone Of: 2060310
Environment:
Last Closed: 2024-10-30 08:15:27 UTC
Target Upstream Version:
Embargoed:
gurpsing: needinfo-


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1982951 0 None None None 2022-07-27 13:56:45 UTC
OpenStack gerrit 842292 0 None MERGED [OVN][QoS] Add minimum bandwidth rule support to ML2/OVN 2022-08-22 14:59:00 UTC
Red Hat Issue Tracker NFV-2500 0 None None None 2022-05-05 11:53:01 UTC
Red Hat Issue Tracker OSP-14825 0 None None None 2022-04-21 22:09:00 UTC

Description Ihar Hrachyshka 2022-04-21 21:57:51 UTC
This bug is to track Neutron OVN driver side of the implementation for qos min bandwidth limit API support.

+++ This bug was initially created as a clone of Bug #2060310 +++

The goal of this RFE is to add QoS minimum bandwidth guarantee rule support in core OVN. This new functionality should close the parity gap between Neutron ML2/OVS and ML2/OVN.

The scope of this RFE is limited to ports connected to physical networks (flat, VLAN); that means, VM ports that will egress traffic through a physical bridge.


Neutron ML2/OVS
===============
Now in ML2/OVS we provide minimum bandwidth only for those ports connected to physical networks (flat, VLAN). The QoS min-BW rules for a VM port are set in the physical bridge port where the VM port traffic leaves the node. The rationale for this is that the min-BW rules pretend to guarantee a certain BW for the VM traffic where the traffic is aggregated; this is in the physical port interface. [1] is the ML2/OVS implementation.

In ML2/OVS, the physical bridge interface port has a QoS register associated. This QoS register has several Queue registers, one per VM port. Each Queue register has a specific "queue-num" associated and the corresponding "other-config:min-rate" value.


Proposal
========
This RFE proposes to add a new parameter in DB NB "QoS.bandwdth" enumerate: ["rate", "burst", "minimum"]. The "match", "direction" and "priority" columns should work as now. In order to identify the egress port (physical bridge port), this RFE proposed to add a reference in "external_ids" (this is just an idea that could wrong due to my lack of knowledge in OVN internals).


Please, for more information you can reach me in IRC (ralonsoh), mail and this BZ.

Regards and thank you in advance.

[1]https://github.com/openstack/neutron/blob/b072cbf05f079519e379b2bfebe27846ae612275/neutron/plugins/ml2/drivers/openvswitch/agent/extension_drivers/qos_driver.py#L179-L190

--- Additional comment from Daniel Alvarez Sanchez on 2022-03-03 15:07:21 UTC ---

One important note is that, at the moment OVN is implementing QoS via netdev [0] and not using OVS meters when the parameters are applied to the LSP.options column [1] (instead of to the QoS table).

If we want HW offload, since OVS meters are not yet supported we could take a similar approach using either netdev/iproute to allow for HW offload?


[0] https://github.com/ovn-org/ovn/blob/5f7a985de0707539e4df1eab4c4150b24dbce622/controller/binding.c#L221
[1] https://github.com/ovn-org/ovn/blob/b988d5fa62d9dbecacb2c45defab8e7edde4c533/ovn-nb.xml#L1031-L1039

--- Additional comment from Ihar Hrachyshka on 2022-04-20 12:20:35 UTC ---

(In reply to Daniel Alvarez Sanchez from comment #1)
> One important note is that, at the moment OVN is implementing QoS via netdev
> [0] and not using OVS meters when the parameters are applied to the
> LSP.options column [1] (instead of to the QoS table).
> 
> If we want HW offload, since OVS meters are not yet supported we could take
> a similar approach using either netdev/iproute to allow for HW offload?
> 
> 
> [0]
> https://github.com/ovn-org/ovn/blob/5f7a985de0707539e4df1eab4c4150b24dbce622/
> controller/binding.c#L221
> [1]
> https://github.com/ovn-org/ovn/blob/b988d5fa62d9dbecacb2c45defab8e7edde4c533/
> ovn-nb.xml#L1031-L1039

This series should give us hw offload for ovs metering: https://patchwork.ozlabs.org/project/openvswitch/list/?series=293970

Comment 21 Lon Hohberger 2023-08-16 10:34:22 UTC
According to our records, this should be resolved by openstack-neutron-18.6.1-1.20230518200971.el9ost.  This build is available now.


Note You need to log in before you can comment on or make changes to this bug.