agent_base.VIFEventHandler not distinguishing between CNA and VNIC events

Bug #1640564 reported by Sridhar Venkat
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-powervm
Fix Released
Undecided
Sridhar Venkat

Bug Description

VIFEventHandler in agent_base creates ProvisionRequests the same way for all events (CNA vs VNIC) and feeds them to agents. This causes problem for SR-IOV VNIC creation as SEA agent gets it and provisions corresponding VLAN onto SEA.

We need to probably add 'type' characteristic in ProvisionRequest so that provision_devices method in each agent can filter them out. So, SEA agent can filter out any VNIC create events and avoid provisioning vlan onto SEA.

Sridhar Venkat (svenkat)
Changed in networking-powervm:
assignee: nobody → Sridhar Venkat (svenkat)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-powervm (master)

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

Changed in networking-powervm:
status: New → In Progress
Revision history for this message
Sridhar Venkat (svenkat) wrote :

nova-vpowervm change is under review : https://review.openstack.org/#/c/396739/

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

Reviewed: https://review.openstack.org/396467
Committed: https://git.openstack.org/cgit/openstack/networking-powervm/commit/?id=a5f5fccdc0826e00e9f9910157a9817a4a47b4b0
Submitter: Jenkins
Branch: master

commit a5f5fccdc0826e00e9f9910157a9817a4a47b4b0
Author: Sridhar Venkat <email address hidden>
Date: Thu Nov 10 21:00:51 2016 -0500

    ProvisionRequest does not distinguish event source

    VIFEventHandler creates ProvisionRequest and passed down to agents for
    processing. Currently, there is nothing in ProvisionRequest to
    distinguish it between CNA or VNIC related. Due to this, SEA agent
    gets VNIC related ProvisionRequests and processes to provision vlan
    on SEA. This needs to be avoided. This patchset introduces vif_type
    attribute into ProvisionRequest.

    Refer to https://review.openstack.org/#/c/396739/ for a change in
    nova_powervm. vif_type is now part of the event generated when a vif
    is plugged or unplugged. This patchset uses the newly introduced
    vif_type in the event while generating ProvisionRequest.

    A new abstract property has been added to base_agent to carry
    corresponding vif_type. Both sea_agent and sriov_agent have been
    updated to return appropriate vif_type property. If vif_type in
    incoming event does not match with vif_type supported by agent,
    ProvisionRequest is not generated. And so, agent is not notified to
    provision device.

    For example, in the case of SR-IOV based plug, event carries
    vif_type as pvm_sriov, and SEA agent supports vif_type as pvm_sea.
    No ProvisionRequest is generated and sea_agent provison device
    function is not invoked, so no vlan is provisioned.

    Change-Id: Ifccaf4ee9ce492a295958393baf48bb383319805
    Closes-Bug: #1640564

Changed in networking-powervm:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-powervm (stable/newton)

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

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

Reviewed: https://review.openstack.org/400395
Committed: https://git.openstack.org/cgit/openstack/networking-powervm/commit/?id=42f27cbc89f37e83adb46442cd0e2ea0e034c2f7
Submitter: Jenkins
Branch: stable/newton

commit 42f27cbc89f37e83adb46442cd0e2ea0e034c2f7
Author: Sridhar Venkat <email address hidden>
Date: Thu Nov 10 21:00:51 2016 -0500

    ProvisionRequest does not distinguish event source

    VIFEventHandler creates ProvisionRequest and passed down to agents for
    processing. Currently, there is nothing in ProvisionRequest to
    distinguish it between CNA or VNIC related. Due to this, SEA agent
    gets VNIC related ProvisionRequests and processes to provision vlan
    on SEA. This needs to be avoided. This patchset introduces vif_type
    attribute into ProvisionRequest.

    Refer to https://review.openstack.org/#/c/396739/ for a change in
    nova_powervm. vif_type is now part of the event generated when a vif
    is plugged or unplugged. This patchset uses the newly introduced
    vif_type in the event while generating ProvisionRequest.

    A new abstract property has been added to base_agent to carry
    corresponding vif_type. Both sea_agent and sriov_agent have been
    updated to return appropriate vif_type property. If vif_type in
    incoming event does not match with vif_type supported by agent,
    ProvisionRequest is not generated. And so, agent is not notified to
    provision device.

    For example, in the case of SR-IOV based plug, event carries
    vif_type as pvm_sriov, and SEA agent supports vif_type as pvm_sea.
    No ProvisionRequest is generated and sea_agent provison device
    function is not invoked, so no vlan is provisioned.

    Change-Id: Ifccaf4ee9ce492a295958393baf48bb383319805
    Closes-Bug: #1640564
    (cherry picked from commit a5f5fccdc0826e00e9f9910157a9817a4a47b4b0)

tags: added: in-stable-newton
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.