← Back to team overview

yahoo-eng-team team mailing list archive

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

 

Public bug reported:

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.

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.

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
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:
  New

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.

  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



Follow ups