ML2 mechanism driver DVR PortContext info incomplete/inconsistent

Bug #1453955 reported by Robert Kukura
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
Robert Kukura

Bug Description

While extending the existing ML2 port binding unit tests to cover DVR distributed port binding (bug 1453943), I ran into a number of issues where the PortContext passed to ML2 mechanism drivers does not provide the information needed for distributed ports or provides it inconsistently. This is likely to prevent existing mechanism drivers for ToR switches from working with DVR ports, and tests have reportedly shown this to be the case.

When DVR was introduced, the host, original_host, status, and original_status attributes were added to PortContext to provide drivers with the host-specific details of distributed (or normal) ports. But the current and previous port dictionary attributes also contain some host-specific information, such as the VIF type, for distributed ports. New attributes need to be added for host-specific current and previous VIF type and details, and the current and previous port dictionaries should contain only the host-independent information that is returned from REST operations.

Also, the existing original_status and original_host PortContext attributes should return None when in the context of create or delete operations, and original_host should reflect the host for which a distributed port operation is being performed.

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

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

Reviewed: https://review.openstack.org/182134
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=922dae45d0a223f9256bdff1faa65d469cbc9275
Submitter: Jenkins
Branch: master

commit 922dae45d0a223f9256bdff1faa65d469cbc9275
Author: Robert Kukura <email address hidden>
Date: Wed Apr 1 17:11:59 2015 -0400

    Add unit tests for ML2 DVR port binding and fix PortContext inconsistencies

    Extends the existing ML2 port binding unit tests to cover the
    distributed port bindings used for DVR. Within the test mechanism
    driver, bindings are tracked per-host, and additional assertions are
    added.

    Fixes issues with PortContext attributes that were exposed by these
    new tests. Adds new vif_type, original_vif_type, vif_details, and
    original_vif_details PortContext attributes, similar to the exising
    host, original_host, status, and original_status attributes, to
    reflect host-specific details of distributed (or normal) port
    bindings. Also fixes original_host and original_status to return None
    when in the context of an operation other than an update, and fixes
    original_host to reflect the specific host being bound for a
    distributed port.

    Closes-bug: 1453943
    Closes-bug: 1453955
    Change-Id: I467db0d48e4b82fdaad8d851e294e639a84a8160

Changed in neutron:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (neutron-pecan)

Fix proposed to branch: neutron-pecan
Review: https://review.openstack.org/185072

Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: liberty-1 → 7.0.0
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/kilo)

Fix proposed to branch: stable/kilo
Review: https://review.openstack.org/241616

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

Change abandoned by Erik Colnick (<email address hidden>) on branch: stable/kilo
Review: https://review.openstack.org/241616
Reason: Not convinced this was actually an issue in kilo. Abandoning.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Change abandoned by Erik Colnick (<email address hidden>) on branch: stable/kilo
Review: https://review.openstack.org/241616
Reason: This particular change is not backwards compatible owing to modification in the abstract interface for PortContext, which will break other existing implementations of the interface.

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.