[OVN] Virtual ports are always DOWN
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Low
|
Rodolfo Alonso |
Bug Description
Related bugzilla: https:/
In OVN (same as in OVS), virtual ports are always down.
Steps to Reproduce:
1. Define a port for our server, and allow it to use a vip:
$ openstack port create --network private --security-group prodlike serverport
$ openstack server create --security-group prodlike --port serverport \
--key-name stack --flavor m1.small --image cirros myserver \
--
$ openstack floating ip set --port serverport 10.64.154.3
$ openstack port create myvip --network private \
--fixed-ip ip-address=
$ openstack port set --allowed-address ip-address=
At this moment, ovn-sbctl should not show the port "myvip" on any chassis:
$ ovn-sbctl show
Chassis "1126ea9a-
hostname: cpu35d
Encap geneve
ip: "10.64.145.100"
options: {csum="true"}
Port_Binding cr-lrp-
Port_Binding "d4aafa35-
The port is not bound yet:
$ openstack port show myvip -c status -c binding_host_id -c id
+------
| Field | Value |
+------
| binding_host_id | |
| id | 55c03aa0-
| status | DOWN |
+------
2. Make the VM own the port:
Login into the VM and assign the virtual IP to the port:
$ ssh 10.64.154.3 -l cirros
$ sudo ip addr add 192.168.200.20 dev eth0
$ sudo arping -U 192.168.200.20
ARPING 192.168.200.20 from 192.168.200.20 eth0
^CSent 2 probe(s) (2 broadcast(s))
Received 0 response(s) (0 request(s), 0 broadcast(s))
When OVN detects traffic from/to a port with the IP of the virtual port, binds this VIP to the chassis hosting the port:
Chassis "1126ea9a-
hostname: cpu35d
Encap geneve
ip: "10.64.145.100"
options: {csum="true"}
Port_Binding "55c03aa0-
Port_Binding cr-lrp-
Port_Binding "d4aafa35-
3. Check the state of the port in Neutron
openstack port show myvip -c status -c binding_host_id -c id
Actual results:
+------
| Field | Value |
+------
| binding_host_id | |
| id | 55c03aa0-
| status | DOWN |
+------
Expected results:
+------
| Field | Value |
+------
| binding_host_id | cpu35d |
| id | 55c03aa0-
| status | ACTIVE |
+------
***QUESTION***: in OVN is easy to detect when a VIP port has been bound/released and we can easily update the VIP port status and host ID. Should we implement this feature for OVN only, adding a gap between OVS and OVN?
description: | updated |
Changed in neutron: | |
assignee: | nobody → Rodolfo Alonso (rodolfo-alonso-hernandez) |
tags: | added: ovn |
Changed in neutron: | |
status: | New → Confirmed |
importance: | Undecided → Low |
Hmm, I wonder if we could maybe change (again) our approach in https:/ /review. opendev. org/c/openstack /neutron/ +/601336 and instead of marking allowed_ address_ pair as "active", mark port to be "bound" and ACTIVE on host with one of the vms. That way we could maybe have finally solved https:/ /launchpad. net/bugs/ 1774459 and not have parity gap between backends. Wdyt?