[RFE] A new OVN monitor agent running on each compute node

Bug #1998608 reported by Rodolfo Alonso
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
In Progress
Wishlist
Rodolfo Alonso

Bug Description

The OVN architecture allows to avoid spawning compute agents like L3, DHCP or the specific ML2 agent (OVS, SRIOV, etc). This is because the local OVS service is configured by the local ovn-controller running on each node. This ovn-controller reads from the OVN SB database and executed the needed changes in the local OVS database and OF tables.

However that removes the ability of Neutron to directly interact with each compute node. For example, in [1][2] I proposed a POC of how to implement the ML2/OVS QoS extension for HW offloaded ports. With the current driver implementations, the HW offloaded ports do not apply the QoS rules on the VF of the port representors. That means we have a parity gap between virtio ports and HWOL ports.

While with ML2/OVS this gap can be closed with [1][2] as a workaround, in ML2/OVN this is not feasible. This RFE proposed to implement an OVN monitor agent that will run on each compute node, **if needed**, that will implement generic features/tools/operations not yet provided by ovn-controller or the interface drivers.

The first feature to be implemented is the QoS extension for the port representor ports; in particular egress bandwidth limit rules and egress minimum bandwidth rules.

[1]https://review.opendev.org/c/openstack/neutron/+/815037
[2]https://review.opendev.org/c/openstack/neutron/+/816537

Related Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165497

Changed in neutron:
assignee: nobody → Rodolfo Alonso (rodolfo-alonso-hernandez)
tags: added: ovn qos rfe
Changed in neutron:
importance: Undecided → Wishlist
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/+/866480

Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/867359

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/867526

Revision history for this message
Rodolfo Alonso (rodolfo-alonso-hernandez) wrote :

RFE approved, spec requested.

tags: added: rfe-approved
removed: rfe
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron-specs (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron-specs/+/868076

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/869909

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/870024

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/870115

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/867526
Committed: https://opendev.org/openstack/neutron/commit/14d0ff0317f1fc7f366283a920f579112081725f
Submitter: "Zuul (22348)"
Branch: master

commit 14d0ff0317f1fc7f366283a920f579112081725f
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Thu Dec 8 05:49:53 2022 +0100

    Add ``devlink.get_port`` method for devlink ports

    Added ``devlink.get_port`` method that provides information about
    a devlink port [1]. It is used to retrieve information about a port
    representor connected to a local OVS instance (aka: hardware offloaded
    ports). This method reports the PF PCI address, the PF index, the VF
    index and the PF name; the PF name will be used to enforce the QoS
    policies on the SR-IOV parent device (similar to what is done in the
    ML2/SRIOV agent).

    [1]https://www.kernel.org/doc/html/latest/networking/devlink/devlink-port.html

    Related-Bug: #1998608
    Change-Id: I34daf554cabcf17cb6371d510d5827457012516d

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

Reviewed: https://review.opendev.org/c/openstack/neutron-specs/+/868076
Committed: https://opendev.org/openstack/neutron-specs/commit/f116fcd004db2af2ffeecdbf96428c542a6a74c6
Submitter: "Zuul (22348)"
Branch: master

commit f116fcd004db2af2ffeecdbf96428c542a6a74c6
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Sat Dec 10 22:56:37 2022 +0100

    OVN Neutron Agent and hardware offloaded QoS extension.

    Change-Id: I3d1c17303c6aa4491fa156ebed76babe23593663
    Related-Bug: #1998608

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (master)

Change abandoned by "Rodolfo Alonso <email address hidden>" on branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/866480
Reason: Superseded by https://review.opendev.org/c/openstack/neutron/+/870024 and subsequent patches.

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

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

commit b6750fb2b80453f4efb2706ed8a8ef1e1e5db37e
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Wed Dec 7 08:30:00 2022 +0100

    [OVN] Add vnic_type and binding profile capabilities to LSP info

    In order to decide if a port is a hardware offloaded port by just
    reading the OVN Logical_Switch_Port register, it is needed the
    VNIC type and the binding profile cababilities.

    The maintenance task will only update those LSP ports that belong
    to direct Neutron ports to avoid an unnecessary database load.

    Related-Bug: #1998608
    Change-Id: I5febe9d3eeef6c5b5f6d972b9e8ebfef541458ac

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.opendev.org/c/openstack/neutron/+/869909
Committed: https://opendev.org/openstack/neutron/commit/78c3d52bb4f81dc338370240fd3da587dbb3a5e2
Submitter: "Zuul (22348)"
Branch: master

commit 78c3d52bb4f81dc338370240fd3da587dbb3a5e2
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Thu Jan 5 20:27:01 2023 +0100

    [OVN] Introduce the new OVN Neutron Agent

    This patch introduces the new OVN Neutron Agent definition in the
    OVN agent list and creates a new class ``OVNNeutronAgent``.

    Related-Bug: #1998608
    Change-Id: I57de801473fc30f06acf1bc8a65cb2ff76b2954a

description: updated
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

commit d0c7bb653af16ddf310579966d2f6583da866f4c
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Jan 6 04:05:13 2023 +0100

    [OVN] Implementation of OVN Neutron Agent

    This patch implements the OVN Neutron Agent executable, the extension
    manager engine, the agent extension abstract class and the configuration
    section.

    Related-Bug: #1998608
    Change-Id: I94bb98217e03f9ac314cb9723da277a23368649c

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/872528

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/870115
Committed: https://opendev.org/openstack/neutron/commit/54eff20a7226bf782c9db65112bf1e175519d60e
Submitter: "Zuul (22348)"
Branch: master

commit 54eff20a7226bf782c9db65112bf1e175519d60e
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Sat Jan 7 05:32:53 2023 +0100

    [OVN] New OVN Neutron Agent extension: QoS for HWOL

    Added a new OVN Neutron Agent extension: QoS for hardware offloaded
    ports. This extension will enforce the minimum bandwidth and maximum
    bandwidth egress QoS rules for ports with hardware offload (DevLink
    ports).

    This extension uses the "ip-link" commands to set the "ceil" and
    "rate" parameters on the corresponding virtual functions.

    Related-Bug: #1998608
    Change-Id: Id436e43868fa0d3fbc843adb55f333582ed0134f

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

commit abfa8940b16e3fdf8120042919646cdf3f1e32aa
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Thu Feb 2 13:26:35 2023 +0100

    [OVN] Fix the OVN Agent config file location

    The "ovn_agent.ini" file should be in "/etc/neutron/plugins/ml2",
    same as any other ML2 mechanism driver agent configuration.

    Related-Bug: #1998608
    Change-Id: I3f0e948202b522df162ed67fe669a6ff8e90ab41

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.