[OVN] host id in NB database not updated correctly for virtual ports
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Medium
|
Michel Nederlof |
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:/
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 PortBindingChas
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.
tags: | added: ovn |
Changed in neutron: | |
assignee: | nobody → Michel Nederlof (mnederlof) |
importance: | Undecided → Medium |
Changed in neutron: | |
status: | New → In Progress |
https:/ /review. opendev. org/c/openstack /neutron/ +/896883
Potential fix