DPDK: datapath_type not updated for physical and tunnel bridges

Bug #1532273 reported by Terry Wilson
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
Terry Wilson

Bug Description

If neutron is originally run with datapath_type=system, then re-started after setting datapath_type=netdev, the physical and tunnel bridges' datapth_type is not updated. This is because OVSBridge.create() is not always called.

In the tunnel bridge case, we only call create() if the bridge doesn't already exist. Since create() uses --may-exist, the bridge isn't recreated if it already exists so it should be safe to just call create().

In the physical bridge case, we never call create() because the the physical bridges have to be created outside of neutron (and the code verifies that the bridge is created. In this case, calling create() after the check shouldn't affect anything other than the 'set' operations for things like datapath_type.

Tags: ovs dpdk
Assaf Muller (amuller)
Changed in neutron:
status: New → Confirmed
importance: Undecided → High
tags: added: dpdk ovs
Changed in neutron:
assignee: nobody → Terry Wilson (otherwiseguy)
summary: - datapath_type not updated for physical and tunnel bridges
+ DPDK: datapath_type not updated for physical and tunnel bridges
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/265374

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

Reviewed: https://review.openstack.org/265374
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=71fa1820008b998809890c52b366c8acf9cb72a4
Submitter: Jenkins
Branch: master

commit 71fa1820008b998809890c52b366c8acf9cb72a4
Author: Terry Wilson <email address hidden>
Date: Wed Jan 6 01:19:31 2016 -0600

    Make sure datapath_type is updated on bridges changed

    When changing datapath_type in the config, physical and tunnel bridges
    do not have their datapath_type updated. Calling create() on already
    created bridges should be safe as it passes '--may-exist' when adding
    the bridge, which will do nothing if the bridge already exists, but
    the second part of the transaction will still update things like
    datapath_type.

    It should be noted that ancillary bridges (like br-ex) are not
    modified by this patch as datapath_type was never applied to them to
    begin with.

    Incidentally, the native and vsctl versions behaved slightly
    differently when handling datapath_type: vsctl builds the multi-cmd
    transaction with add-br ... -- set ..., so that the second cmd would
    actually complete. The native just bailed if may_exist and the bridge
    existed. This is fixed as part of this patch.

    Change-Id: Ib8bc817c7bc724d80193d0ca7af480a7ea103f77
    Closes-Bug: 1532273

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
Thierry Carrez (ttx) wrote : Fix included in openstack/neutron 8.0.0.0b2

This issue was fixed in the openstack/neutron 8.0.0.0b2 development milestone.

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.