DVRImpact: dvr_vmarp_table_update and dvr_update_router_add_vm is called for every port update instead of only when host binding or mac-address changes occur

Bug #1524020 reported by Swaminathan Vasudevan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Swaminathan Vasudevan
Kilo
Fix Released
Undecided
Unassigned

Bug Description

DVR arp update (dvr_vmarp_table_update) and dvr_update_router_add_vm called for every update_port if the mac_address changes or when update_devic_up is true.

These functions should be called from _notify_l3_agent_port_update, only when a host binding for a service port changes or when a mac_address for the service port changes.

summary: - DVR Arp update and dvr_update_router_add_vm is called for every port
- update instead of only when host binding or mac-address changes occur
+ DVRImpact: dvr_vmarp_table_update and dvr_update_router_add_vm is
+ called for every port update instead of only when host binding or mac-
+ address changes occur
Changed in neutron:
status: New → Confirmed
assignee: nobody → Swaminathan Vasudevan (swaminathan-vasudevan)
Changed in neutron:
importance: Undecided → Medium
Changed in neutron:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (master)

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

commit b223452e68fa8629cb67826bb8ae3ac612e0b859
Author: Swaminathan Vasudevan <email address hidden>
Date: Fri Dec 4 11:58:57 2015 -0800

    DVR:Fix _notify_l3_agent_new_port for proper arp update

    Now with notifications coming from ml2 plugin on port create
    and port update, it is worth fixing the existing _notify_
    l3_agent_new_port for proper arp update and router scheduling.

    Previously we have been sending arp update and calling router
    scheduling for every update notification for service ports,
    but now we can take necessary action only when required, since
    the fix to update the arp and router scheduling was recently
    done by sending the port info for every new port created.

    When _notify_l3_agent_port_update is triggered, we check if the
    original port host binding exists and if there is a change in
    host binding with respect to the new port, then we go ahead and
    reschedule the router on the new host and flush the arp entry.

    Related-Bug: #1524020

    Change-Id: Ifda623d5413b72bf80f38fba5c12a05a88bb7de5

Revision history for this message
John Schwarz (jschwarz) wrote :

Note that in the case where a fixed_ip of a port is made, we also want to update the arp table... See: https://bugs.launchpad.net/neutron/+bug/1512199

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

Related fix proposed to branch: stable/liberty
Review: https://review.openstack.org/270456

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

Related fix proposed to branch: stable/kilo
Review: https://review.openstack.org/270462

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

Reviewed: https://review.openstack.org/270456
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=80c9e84e477bbc6db9195fcf3e537f96e684946b
Submitter: Jenkins
Branch: stable/liberty

commit 80c9e84e477bbc6db9195fcf3e537f96e684946b
Author: Swaminathan Vasudevan <email address hidden>
Date: Fri Dec 4 11:58:57 2015 -0800

    DVR:Fix _notify_l3_agent_new_port for proper arp update

    Now with notifications coming from ml2 plugin on port create
    and port update, it is worth fixing the existing _notify_
    l3_agent_new_port for proper arp update and router scheduling.

    Previously we have been sending arp update and calling router
    scheduling for every update notification for service ports,
    but now we can take necessary action only when required, since
    the fix to update the arp and router scheduling was recently
    done by sending the port info for every new port created.

    When _notify_l3_agent_port_update is triggered, we check if the
    original port host binding exists and if there is a change in
    host binding with respect to the new port, then we go ahead and
    reschedule the router on the new host and flush the arp entry.

    Related-Bug: #1524020

    Change-Id: Ifda623d5413b72bf80f38fba5c12a05a88bb7de5
    (cherry picked from commit b223452e68fa8629cb67826bb8ae3ac612e0b859)

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

Reviewed: https://review.openstack.org/270462
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=964578aa3f48275f66ec840c5ecb51b7f03570f7
Submitter: Jenkins
Branch: stable/kilo

commit 964578aa3f48275f66ec840c5ecb51b7f03570f7
Author: Swaminathan Vasudevan <email address hidden>
Date: Fri Dec 4 11:58:57 2015 -0800

    DVR:Fix _notify_l3_agent_new_port for proper arp update

    Now with notifications coming from ml2 plugin on port create
    and port update, it is worth fixing the existing _notify_
    l3_agent_new_port for proper arp update and router scheduling.

    Previously we have been sending arp update and calling router
    scheduling for every update notification for service ports,
    but now we can take necessary action only when required, since
    the fix to update the arp and router scheduling was recently
    done by sending the port info for every new port created.

    When _notify_l3_agent_port_update is triggered, we check if the
    original port host binding exists and if there is a change in
    host binding with respect to the new port, then we go ahead and
    reschedule the router on the new host and flush the arp entry.

    Conflicts:
     neutron/db/l3_dvrscheduler_db.py

    Related-Bug: #1524020
    Change-Id: Ifda623d5413b72bf80f38fba5c12a05a88bb7de5
    (cherry picked from commit b223452e68fa8629cb67826bb8ae3ac612e0b859)

tags: added: in-stable-kilo
Revision history for this message
Swaminathan Vasudevan (swaminathan-vasudevan) wrote :

This bug can be closed, since it was already fixed.

Changed in neutron:
status: Fix Committed → Fix Released
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.