OVS agent ryu/native implementation breaks non-OF1.3 uses

Bug #1622644 reported by Thomas Morin
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
BaGPipe
Fix Released
High
Unassigned
networking-bgpvpn
Fix Released
Critical
Unassigned
neutron
Fix Released
High
Thomas Morin

Bug Description

The ryu-based OVS agent variant forces the bridge Openflow version to 1.3 only [1], which breaks a few things:
- troubleshooting tools relying on ovs-ofctl, unless they specify "-O Openflow13", will break:
  version negotiation failed (we support version 0x01, peer supports version 0x04)
  ovs-ofctl: br-tun: failed to connect to socket (Broken pipe)

- calling add_flow on an OVSCookieBridge derived from a bridge that is an native.ovs_bridge.OVSAgentBridge, will fail with the same error, because add_flow will call ovs-ofctl without specifying "-O Openflow13" (this issue is currently hitting networking-bgpvpn: [2])

It seems like a possible fix would be to not restrict the set of Openflow versions supported by the bridge to Openflow13, but to just *add* Openflow13 to the set of supported versions.

[1] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py#L78
[2] https://github.com/openstack/networking-bagpipe/blob/master/networking_bagpipe/agent/bagpipe_bgp_agent.py#L512

tags: added: ovs
Revision history for this message
Hirofumi Ichihara (ichihara-hirofumi) wrote :

This may happen in the case only which of_interface="ovs-ofctl" and ovsdb_interface="native"?

Revision history for this message
Thomas Morin (tmmorin-orange) wrote :

Hirofumi, I thinks it's not related:
- "ovsdb_interface" controls whether ovs-vsctl is used or the OVSDB protocol directly, the issue here is between ovs-*of*ctl and native
- external tools are having the issue, and they do not rely on these config parameters

Revision history for this message
IWAMOTO Toshihiro (iwamoto) wrote :

This happens when of_interface=native.

OVSBridge.add_flow calls ovs-ofctl, which in turn issues OpenFlow 1.0 messages.

Easy fix is to either

1. Make OVSBridge to use OF1.3
2. Allow OF1.0 when of_interface=native

Revision history for this message
YAMAMOTO Takashi (yamamoto) wrote :
Revision history for this message
Hirofumi Ichihara (ichihara-hirofumi) wrote :

I got it.

Changed in neutron:
status: New → Confirmed
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.openstack.org/371455

Changed in neutron:
assignee: nobody → Thomas Morin (tmmorin-orange)
status: Confirmed → In Progress
Changed in neutron:
milestone: none → newton-rc1
importance: Medium → High
Changed in bgpvpn:
importance: Undecided → Critical
status: New → Confirmed
Changed in neutron:
milestone: newton-rc1 → ocata-1
tags: added: newton-rc-potential
Changed in neutron:
milestone: ocata-1 → ocata-2
Changed in neutron:
milestone: ocata-2 → newton-rc2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

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.openstack.org/372553

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

Reviewed: https://review.openstack.org/372272
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=039673c2a412282eba9c26f9ff4ac148748ebfb4
Submitter: Jenkins
Branch: master

commit 039673c2a412282eba9c26f9ff4ac148748ebfb4
Author: Thomas Morin <email address hidden>
Date: Mon Sep 19 09:39:57 2016 +0200

    OVS agent: configure both OF10 and OF13

    This change avoids issues where a piece of code restricts
    a bridge to OF13 while there is code still needing OF10, and
    vice-versa, by configuring bridge to both versions.

    This is aimed to be a less complex and easier to merge fix than
    Id5ac7e6431c97fc70d8404b16f89533b6f270eee.

    Change-Id: I4475865c4f83cb9f3e12c709af752bc490692ca3
    Closes-Bug: 1622644

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

Reviewed: https://review.openstack.org/372553
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=225477c6c6de97aad6ce79ab83a97bffdf230e7d
Submitter: Jenkins
Branch: master

commit 225477c6c6de97aad6ce79ab83a97bffdf230e7d
Author: Ihar Hrachyshka <email address hidden>
Date: Sat Sep 17 01:24:58 2016 +0000

    fullstack: execute qos tests for all ovsdb/of interface permutations

    Change-Id: Iff36b4e5c102ace45a201ca192b94f12e653b995
    Related-Bug: #1622644

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/373914

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

Related fix proposed to branch: stable/newton
Review: https://review.openstack.org/373939

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

Reviewed: https://review.openstack.org/373914
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b250e3b640bfb3420511cb162cd727f0f390eb37
Submitter: Jenkins
Branch: stable/newton

commit b250e3b640bfb3420511cb162cd727f0f390eb37
Author: Thomas Morin <email address hidden>
Date: Mon Sep 19 09:39:57 2016 +0200

    OVS agent: configure both OF10 and OF13

    This change avoids issues where a piece of code restricts
    a bridge to OF13 while there is code still needing OF10, and
    vice-versa, by configuring bridge to both versions.

    This is aimed to be a less complex and easier to merge fix than
    Id5ac7e6431c97fc70d8404b16f89533b6f270eee.

    Change-Id: I4475865c4f83cb9f3e12c709af752bc490692ca3
    Closes-Bug: 1622644
    (cherry picked from commit 039673c2a412282eba9c26f9ff4ac148748ebfb4)

tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (stable/newton)

Reviewed: https://review.openstack.org/373939
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=59ac3c636244452a7c4796850a7f354e61ca4277
Submitter: Jenkins
Branch: stable/newton

commit 59ac3c636244452a7c4796850a7f354e61ca4277
Author: Ihar Hrachyshka <email address hidden>
Date: Sat Sep 17 01:24:58 2016 +0000

    fullstack: execute qos tests for all ovsdb/of interface permutations

    Change-Id: Iff36b4e5c102ace45a201ca192b94f12e653b995
    Related-Bug: #1622644
    (cherry picked from commit 225477c6c6de97aad6ce79ab83a97bffdf230e7d)

Changed in bgpvpn:
status: Confirmed → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 9.0.0.0rc2

This issue was fixed in the openstack/neutron 9.0.0.0rc2 release candidate.

Changed in networking-bagpipe:
status: New → Fix Released
importance: Undecided → High
tags: removed: newton-rc-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 10.0.0.0b1

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

tags: added: neutron-proactive-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/mitaka)

Fix proposed to branch: stable/mitaka
Review: https://review.openstack.org/421966

tags: removed: neutron-proactive-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/mitaka)

Reviewed: https://review.openstack.org/421966
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=052f2ebae423f29f9f939bd13214f0a8831d0625
Submitter: Jenkins
Branch: stable/mitaka

commit 052f2ebae423f29f9f939bd13214f0a8831d0625
Author: Thomas Morin <email address hidden>
Date: Mon Sep 19 09:39:57 2016 +0200

    OVS agent: configure both OF10 and OF13

    This change avoids issues where a piece of code restricts
    a bridge to OF13 while there is code still needing OF10, and
    vice-versa, by configuring bridge to both versions.

    This is aimed to be a less complex and easier to merge fix than
    Id5ac7e6431c97fc70d8404b16f89533b6f270eee.

    Change-Id: I4475865c4f83cb9f3e12c709af752bc490692ca3
    Closes-Bug: 1622644
    (cherry picked from commit 039673c2a412282eba9c26f9ff4ac148748ebfb4)

tags: added: in-stable-mitaka
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 8.4.0

This issue was fixed in the openstack/neutron 8.4.0 release.

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

Reviewed: https://review.openstack.org/371455
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=271a4ffd6d700b5d092ff24592ced324ded41e43
Submitter: Jenkins
Branch: master

commit 271a4ffd6d700b5d092ff24592ced324ded41e43
Author: Thomas Morin <email address hidden>
Date: Fri Sep 16 09:46:27 2016 +0200

    OVS: merge the required OpenFlow version rather than replace

    This change modifies the behavior of OVS native and ovs-ofctl bridge
    implementations so that instead of configuring the bridge only for the
    required OVS protocol version, they add the required version to the
    already configured versions.

    To achieve this, an add_protocols method is added to the OVSBridge
    class, relying on the OVSDB add_db_attribute added in
    Ib6ce75846f9b13c1c33f0ced5ccc619ee7860dc1, with the behavior of
    making the provided set of versions supported in addition to already
    configured ones.

    It is aimed to be a cleaner solution to bug 1622644 than the quickfix merge
    from I4475865c4f83cb9f3e12c709af752bc490692ca3 .

    After this change, the set_protocols method appears useless and is
    hence marked for future removal.

    Depends-On: I4386aa293f9b18d2e17b4a80d9c7da4b9b46f3c9
    Change-Id: Id5ac7e6431c97fc70d8404b16f89533b6f270eee
    Related-Bug: 1622644

tags: added: neutron-proactive-backport-potential
Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

Fix backported up to Mitaka. As for https://review.openstack.org/371455, it's unsafe for Newton backport, and also doesn't solve a specific user visible bug.

tags: removed: neutron-proactive-backport-potential
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.