[OVN] FIP QoS and router QoS have the same priority

Bug #2110018 reported by Rodolfo Alonso
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Rodolfo Alonso

Bug Description

The default QoS priority for an OVN QoS rule is "OVN_QOS_DEFAULT_RULE_PRIORITY = 2002" [1].

A port connected to a router can have up to 3 QoS rules applied:
* The port QoS
* The router QoS
* The FIP QoS (when a FIP is assigned).

NOTE: the priority of the port QoS will be handled in other bug.

The problem is how to handle the priority of the router QoS and FIP QoS. Both rules are matching the egress/ingress gateway LRP (the FIP is also matching the IP address and the CR port, if present). According to [2], "if two QoS rules with the same priority both match, then the one actually applied to a packet is undefined". Because of that, we need to increase the priority of the FIP rules that will superseed the router QoS one.

[1]https://github.com/openstack/neutron/blob/aa4ab837a0390b1c1c3039fe0b196361178f5749/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L35
[2]https://www.ovn.org/support/dist-docs/ovn-nb.5.html

Jira reference: https://issues.redhat.com/browse/OSPRH-16265

Changed in neutron:
assignee: nobody → Rodolfo Alonso (rodolfo-alonso-hernandez)
description: updated
description: updated
Miro Tomaska (mtomaska)
Changed in neutron:
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/948894

Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/2025.1)

Fix proposed to branch: stable/2025.1
Review: https://review.opendev.org/c/openstack/neutron/+/949312

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/948894
Committed: https://opendev.org/openstack/neutron/commit/012327bb4dfa8ab1817fb03cac530a8daa109f98
Submitter: "Zuul (22348)"
Branch: master

commit 012327bb4dfa8ab1817fb03cac530a8daa109f98
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue May 6 10:08:36 2025 +0000

    [OVN] Change the OVN QoS rule priority for floating IPs

    The OVN QoS rules for router and floating IPs have the same priority
    and similar matches. For the router rule, the match is the gateway
    Logical_Router_Port, that always matches the traffic for the floating IP
    too. If two QoS rules with the same priority match, the selected one
    is not defined [1].

    This patch is increasing the priority of the floating IP OVN QoS rules
    to match before the router QoS rules.

    NOTE: the floating IP QoS rules are deleted matching the QoS external_ids
    [2], instead of creating the same QoS rule, thus the priority is not
    needed for the deletion.

    [1]https://www.ovn.org/support/dist-docs/ovn-nb.5.html
    [2]https://github.com/openstack/neutron/blob/123bd115f3b65ba09560685ad6cf68c6934a6535/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L451-L456

    Closes-Bug: #2110018
    Change-Id: If01a8783ac998b2a1f1249ab6f555dd1a5148ea8

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/2025.1)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/949312
Committed: https://opendev.org/openstack/neutron/commit/99369551687189b9791d57e67734bddb8a1d23d5
Submitter: "Zuul (22348)"
Branch: stable/2025.1

commit 99369551687189b9791d57e67734bddb8a1d23d5
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue May 6 10:08:36 2025 +0000

    [OVN] Change the OVN QoS rule priority for floating IPs

    The OVN QoS rules for router and floating IPs have the same priority
    and similar matches. For the router rule, the match is the gateway
    Logical_Router_Port, that always matches the traffic for the floating IP
    too. If two QoS rules with the same priority match, the selected one
    is not defined [1].

    This patch is increasing the priority of the floating IP OVN QoS rules
    to match before the router QoS rules.

    NOTE: the floating IP QoS rules are deleted matching the QoS external_ids
    [2], instead of creating the same QoS rule, thus the priority is not
    needed for the deletion.

    [1]https://www.ovn.org/support/dist-docs/ovn-nb.5.html
    [2]https://github.com/openstack/neutron/blob/123bd115f3b65ba09560685ad6cf68c6934a6535/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py#L451-L456

    Closes-Bug: #2110018
    Change-Id: If01a8783ac998b2a1f1249ab6f555dd1a5148ea8
    (cherry picked from commit 012327bb4dfa8ab1817fb03cac530a8daa109f98)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 26.0.1

This issue was fixed in the openstack/neutron 26.0.1 Epoxy release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 27.0.0.0b1

This issue was fixed in the openstack/neutron 27.0.0.0b1 Flamingo development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.