← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2038413] Re: [OVN] host id in NB database not updated correctly for virtual ports

 

Reviewed:  https://review.opendev.org/c/openstack/neutron/+/896883
Committed: https://opendev.org/openstack/neutron/commit/e68a920c114010a36a667d90866bfb6243148b6d
Submitter: "Zuul (22348)"
Branch:    master

commit e68a920c114010a36a667d90866bfb6243148b6d
Author: Michel Nederlof <mnederlof@xxxxxxxxxxxx>
Date:   Wed Oct 4 09:31:50 2023 +0200

    [OVN] Update lsp host id when virtual parent moves
    
    When a virtual port is moved from one port to another port the
    PortBindingUpdateVirtualPortsEvent event would only update the binding
    host id in the neutron database, while it is also usefull to keep the
    information in the OVN database up to date with the host information
    
    Other plugins that connect to the OVN database can then also rely on the
    information stored in the OVN DB's
    
    
    Closes-Bug: #2038413
    
    Change-Id: I59c6c4b2c8b023b9c9c3bab1741d957fa1f738fc


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2038413

Title:
  [OVN] host id in NB database not updated correctly for virtual ports

Status in neutron:
  Fix Released

Bug description:
  We're using the ovn-bgp-agent's nb-bgp driver and noticed that while
  trying to expose octavia load balancers there were two issues.

  1. The neutron:host_id information on the lsp is one step behind the
  actual location, while the information from the neutron API _is_
  correct.

  2. OVN stores the resolved mac address of this virtual port in the
  Mac_Binding table, but does not remove it upon move. -> addressed in
  issue https://bugs.launchpad.net/neutron/+bug/2038422

  Steps to reproduce (on our end at least):
  Create 3 ports:
  - virtual port (used for VIP)
  - internal port 1 - attached to vm1
  - internal port 2 - attached to vm2

  Then create keepalived config (or just manually assign the vip ip to
  one of the internal ports), and send out gratuitous arp replies or
  ping from the other vm so there is a normal arp reply so OVN binds the
  port to the virtual port.

  Then move the VIP from vm1 to vm2 and make sure OVN picks it up (the
  virtual parent and/or chassis changes on the vip lsp).

  Now neutron will update the information based on events
  PortBindingChassisUpdateEvent and PortBindingUpdateVirtualPortsEvent.

  Because these are running simultaniously, the chassis update event
  updates the information based on neutron database, which might not
  have been updated yet by the virtualport event, causing inconsistency
  in the OVN db's

  We're running OVN 23.09 and Neutron 2023.1, deployed with kolla.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2038413/+subscriptions



References