ovs-agent: use_veth_interconnection is not needed anymore

Bug #1587296 reported by Bence Romsics
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Wishlist
Slawek Kaplonski

Bug Description

Config option 'use_veth_interconnection' should be deprecated. Instead we can always use Open vSwitch patch ports.

The discussion started in a review here:

https://review.openstack.org/#/c/318317/2
openstack/neutron/doc/source/devref/openvswitch_agent.rst
line 471

AFAICT the use of veth pairs was always a fallback when sufficiently new ovs was not available from distro packages. Since veth pairs have always worse packet forwarding performance than ovs patch cables it makes no sense using them if ovs patch cables are available.

If we no longer support veth pairs, the agent code can be simplified.

We think providing the veth fallback is no longer relevant. Open vSwitch release notes state this (http://openvswitch.org/releases/NEWS-2.5.0):

v1.10.0 - 01 May 2013
---------------------
    ...
    - Patch ports no longer require kernel support, so they now work
      with FreeBSD and the kernel module built into Linux 3.3 and later.

For example for Ubuntu this means veth is not needed in 14.04+.

I opened this bug to separate this conversation from the above review. To get feedback if anybody still uses veth pairs. Shall we deprecate 'use_veth_interconnection'? If yes, what should be the deprecation timeline?

affects: tempest → neutron
tags: added: deprecation
removed: rfe
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/323310

Changed in neutron:
assignee: nobody → Bence Romsics (bence-romsics)
status: New → In Progress
Changed in neutron:
importance: Undecided → Wishlist
Revision history for this message
Bence Romsics (bence-romsics) wrote :
Revision history for this message
Rawlin Peters (rawlin-peters) wrote :

I'm not sure about deprecating the ovs_use_veth option, because it seems like it might still be necessary to use a veth pair rather than an OVS internal port in some cases.

As for use_veth_interconnection and veth_mtu, it looks like they only pertain to the connection between the integration bridge and physical bridges. Because no namespaces are involved there, I don't think we'll require using veth pairs for those connections anymore. So I think those could be deprecated.

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

Change abandoned by Bence Romsics (<email address hidden>) on branch: master
Review: https://review.openstack.org/323310

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

I think that deprecating/removing the ability for a user to dictate the use of a mechanism and stop using the mechanism altogether are two very separate things.

I could envision a solution where internally we'd still rely on the veth pairs, but avoid exposing the knob to the user.

Changed in neutron:
status: In Progress → New
assignee: Bence Romsics (bence-romsics) → nobody
Revision history for this message
Thiago Martins (martinx) wrote :

Would be nice to, at least when with OVS agents, to just have veth completely disabled by default.

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/735877

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

Reviewed: https://review.opendev.org/735877
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=fb44416c05efb5b0d23679c5897b6624689fbf78
Submitter: Zuul
Branch: master

commit fb44416c05efb5b0d23679c5897b6624689fbf78
Author: Slawek Kaplonski <email address hidden>
Date: Tue Jun 16 13:23:22 2020 +0200

    Deprecate use_veth_interconnection config option

    This was proposed to be deprecated long time ago already.
    We have patch ports in Openvswitch to connect bridges together.

    Change-Id: Ie343f83a886bb8c366873fd5e076bb7096e1a6ed
    Related-bug: #1587296

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/759947

Changed in neutron:
assignee: nobody → Slawek Kaplonski (slaweq)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/759947
Committed: https://opendev.org/openstack/neutron/commit/d60febb2d3e141d03f033ac81136ba71922613a0
Submitter: Zuul
Branch: master

commit d60febb2d3e141d03f033ac81136ba71922613a0
Author: Slawek Kaplonski <email address hidden>
Date: Tue Oct 27 21:55:39 2020 +0100

    Remove deprecated use_veth_interconnection option

    Using veth to interconnect openvswitch bridges was deprecated
    in Victoria cycle. Now it's time to remove it from the code.

    In neutron-ovs-agent code, there is still kept piece of code which
    migrates from the veth to the patch ports for bridges interconnection.
    We will be able to remove that piece of code in X release.

    Change-Id: I94545c3c3d9be46ac2062691f69663e5e59cd648
    Closes-Bug: #1587296

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 18.0.0.0rc1

This issue was fixed in the openstack/neutron 18.0.0.0rc1 release candidate.

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.