Bug 1341958

Summary: Backport to liberty: Native ovsdb implementation not working
Product: Red Hat OpenStack Reporter: Hynek Mlnarik <hmlnarik>
Component: openstack-neutronAssignee: Hynek Mlnarik <hmlnarik>
Status: CLOSED ERRATA QA Contact: Toni Freger <tfreger>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 8.0 (Liberty)CC: adahms, amuller, chrisw, dcadzow, hmlnarik, ihrachys, nyechiel, srevivo
Target Milestone: asyncKeywords: FeatureBackport, ZStream
Target Release: 8.0 (Liberty)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-neutron-7.0.4-7.el7ost Doc Type: Bug Fix
Doc Text:
Previously, connectivity would never be enabled when attempting to use the new native OVSDB provider due to the db_set operation appearing to fail to change the patch ports from "nonexistant-peer" to the correct peer, thereby not linking the bridges together. This was caused by an incorrect method being used to set the peer interface of an OVS bridge. With this update, the peer option is now correctly set for both native and vsctl interfaces.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-29 13:59:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1340717    

Description Hynek Mlnarik 2016-06-02 07:13:10 UTC
When trying to use the new native OVSDB provider, the connectivity never goes up due to the fact that what seems to be the db_set operation failing to change the patch ports from "nonexistant-peer" to the correct peer, therefore not linking the bridges together.

When using the following openvswitch agent configuration:

  [OVS]
  ovsdb_interface = ovsdb

Restarting the OVS agent will setup everything but leave network in a failed state because the correct patch ports aren't updated:

# ovs-vsctl show
    Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
        Port "em1"
            Interface "em1"
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=nonexistent-peer}
    Bridge br-int
        fail_mode: secure
        Port "qvo25d28228-9c"
            tag: 1
            Interface "qvo25d28228-9c"
...
        Port int-br-ex
            Interface int-br-ex
                type: patch
                options: {peer=nonexistent-peer}

Configuration using ovs vsctl interface works with no problems.

This issue renders ovsdb native interface unusable. It has been fixed in upstream and backported to stable/liberty branch. As there is not known plan for next stable RHEL OSP 8 release, the relevant patches are going to be backported proactively.

Comment 2 Ihar Hrachyshka 2016-06-13 09:11:10 UTC
Why do we care about the issue in OSP context? Do we use native interface anywhere?

Comment 3 Hynek Mlnarik 2016-06-13 09:12:52 UTC
Yes, in functional tests. Namely functional tests for bug 1340717 fail if this patch is not included.

Comment 6 Toni Freger 2016-06-23 10:29:18 UTC
Code tested in latest OSP8 - openstack-neutron-7.0.4-7.el7ost

Comment 8 errata-xmlrpc 2016-06-29 13:59:51 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2016:1353