[RFE] Expose Open vSwitch other_config column in the API

Bug #1990842 reported by Bence Romsics
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
New
Wishlist
Bence Romsics

Bug Description

Some of our performance sensitive users would like to tweak Open vSwitch's Tx packet steering option under OpenStack:

    https://docs.openvswitch.org/en/latest/topics/userspace-tx-steering/
    available since Open vSwitch v2.17.0:
        https://github.com/openvswitch/ovs/blob/7af5c33c1629b309cbcbe3b6c9c3bd6d3b4c0abf/NEWS#L103
        https://github.com/openvswitch/ovs/commit/c18e707b2f259438633af5b23df53e1409472871

To enable that, we would like to expose some OVS interface configuration in a Neutron port's binding_profile.
Consider for example:

    openstack port create port0 --binding-profile ovs_other_config=tx-steering:hash ...
    more generally: --binding-profile ovs_other_config=foo:bar,bar:baz
    or an alternative syntax: --binding-profile ovs:other_config='{"foo": "bar", "bar": "baz"}'

Given this information, ovs-agent can set the corresponding OVS interface's other_config (using the python native interface of course, not ovs-vsctl):

    sudo ovs-vsctl set Interface ovs-interface-of-port0 other_config:tx-steering=hash
    sudo ovs-vsctl set Interface ovs-interface-of-port0 other_config:foo=bar other_config:bar=baz

Revision history for this message
Bence Romsics (bence-romsics) wrote :

Discussion topics:

1) We could whitelist the keys we accept in ovs_other_config, if needed.
2) At first (or hopefully ever), we don't need to support changing this value for a bound port.
3) Here we expose backend specific information in the API. At least we can reject it at port binding if the port is not bound by the ovs mech driver.
4) Are OVN folks interested in implementing this?
5) Do we need an API extension for this? We usually treat binding_profile as a blob that can contain anything.

Changed in neutron:
importance: Undecided → Wishlist
summary: - RFE Expose Open vSwitch other_config column in the API
+ [RFE] Expose Open vSwitch other_config column in the API
Revision history for this message
Lajos Katona (lajos-katona) wrote :

We discussed this RFE on the drivers meeting (see [1]), and we agreed to approve this RFE, with the condition of a new API extension and new port field that allows admins to expose other_config settings. The next step is to have a spec for it.

[1]: https://meetings.opendev.org/meetings/neutron_drivers/2022/neutron_drivers.2022-09-30-14.01.log.html#l-13

tags: added: rfe-approved
Revision history for this message
sean mooney (sean-k-mooney) wrote (last edit ):

we really should not do this.

the biding procife is not somignt that neutron should be writing too.
and its not an interface that admin or end users should be useign.

if you were to expose this info it should be via a separate admin only field not the binding profile.

if this is a new extension and admin only filed that is probably ok although this feels like it should leverage the qos framework in some way.

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/+/862133

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/+/862133
Committed: https://opendev.org/openstack/neutron-specs/commit/b7e53f107573e9ab2b11ddc0e43f6253ba39f29a
Submitter: "Zuul (22348)"
Branch: master

commit b7e53f107573e9ab2b11ddc0e43f6253ba39f29a
Author: Bence Romsics <email address hidden>
Date: Thu Oct 20 14:23:32 2022 +0200

    Spec: Add port hints and hint ovs-tx-steering

    Change-Id: Ia2bd912e65d5091ca17f26b6cc4b4be3fc981324
    Related-Bug: #1990842

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

Other bug subscribers