[NB Driver] FIP is not announced from OVN gateway when DVR is disabled
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ovn-bgp-agent |
New
|
Critical
|
Jakub Libosvar |
Bug Description
In a scenario, where enable_
This happens due to acquiring `requested-chassis` field during filtering of watcher. So LogicalSwitchPo
Which returns the UUID of the compute node, rather then gateway chassis:
https:/
From other side, to be fair, `ovn-nbctl list Logical_Switch_Port b9c80bef-
# ovn-nbctl list Logical_Switch_Port b9c80bef-
_uuid : b9c80bef-
addresses : ["fa:16:3e:bc:d3:f0 172.16.0.227"]
dhcpv4_options : 1c71a1ff-
dhcpv6_options : []
dynamic_addresses : []
enabled : true
external_ids : {"neutron:
ha_chassis_group : []
mirror_rules : []
name : "0bc9af90-
options : {requested-
parent_name : []
port_security : ["fa:16:3e:bc:d3:f0 172.16.0.227"]
tag : []
tag_request : []
type : ""
up : true
description: | updated |
summary: |
- FIP is not announced from OVN gateway when DVR is disabled + [NB Driver] FIP is not announced from OVN gateway when DVR is disabled |
Changed in ovn-bgp-agent: | |
importance: | Undecided → Critical |
Changed in ovn-bgp-agent: | |
assignee: | nobody → Jakub Libosvar (libosvar) |
Ok, actually I tried to go through the path of trying to fix that, or well, get so much needed chassis info for the FIP, and pretty much failed in doing so, being on top of stable/bobcat in terms of Neutron and with OVN 23.09.
So, I went on and checked NAT table. From NAT.external_ids we can take neutron: router_ name.
But Logical_Router itself does not have binding to any chassis. Only Logical_Router_Port do have this. But then we need to somehow iterate over ports? To get the one that is binded and is a gateway for the network in topic?
But even then - binding is UUID, while self.agent.chassis is Name (FQDN). And Chassis table in NB is just empty for me. So really to get a mapping of Chassis UUID to it's name, I'd need to go to SB DB. But that is NB Agent, so it really should not go to SB DB.
And I got pretty much cornered at this point.
It also not saying, that there's no obvious way to get required NAT id. Though we could probably watch for it's events instead - then it's not an issue... But it really feels there should be more data populated in OVN to allow such flow working properly.