← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1961184] Re: [OVN] Virtual ports are always DOWN

 

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

commit bdbabdf362a0755fa5a86222a7a223c727f0ec4e
Author: Rodolfo Alonso Hernandez <ralonsoh@xxxxxxxxxx>
Date:   Wed Feb 9 19:04:45 2022 +0000

    [OVN] Update VIP port host ID when traffic detected
    
    A virtual IP port is a port with an IP address assigned. This IP
    address is used as an allowed address pair in a bound port (or ports).
    This port is marked as "virtual" and a list of "virtual-parents"
    (ports with the VIP assigned as allowed address pair) will be
    populated accordingly.
    
    This patch updates the "binding:host_id" of the port when OVN detects
    traffic from the corresponding VIP address. OVN updates the VIP port
    SB "Port_Binding" register with the chassis ID. The hostname of this
    chassis is used to update the port host ID.
    
    The VIP port is always unbound and down; this patch only populates the
    host information to provide to the user this information using the
    OpenStack CLI, instead of making this search using the OVN CLI.
    
    Closes-Bug: #1961184
    Change-Id: I75b04d056ba0df9e34a99673c689a69cdbfa097e


** 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/1961184

Title:
  [OVN] Virtual ports are always DOWN

Status in neutron:
  Fix Released

Bug description:
  Related bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2052243

  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 \
       --availability-zone nova:cpu35d
     $ openstack floating ip set --port serverport 10.64.154.3
     $ openstack port create myvip  --network private \
       --fixed-ip ip-address=192.168.200.20
     $ openstack port set --allowed-address ip-address=192.168.200.20 serverport

  At this moment, ovn-sbctl should not show the port "myvip" on any chassis:
  $ ovn-sbctl show
  Chassis "1126ea9a-2860-4e5c-9ab5-ca1e8959edee"
      hostname: cpu35d
      Encap geneve
          ip: "10.64.145.100"
          options: {csum="true"}
      Port_Binding cr-lrp-52d45a86-6cbf-43ff-9700-755490192441
      Port_Binding "d4aafa35-ab96-4451-9623-983a164f28dd"

  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-2a21-4f28-bf5d-6ec2dcc5f7e3 |
  | 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-2860-4e5c-9ab5-ca1e8959edee"
      hostname: cpu35d
      Encap geneve
          ip: "10.64.145.100"
          options: {csum="true"}
      Port_Binding "55c03aa0-2a21-4f28-bf5d-6ec2dcc5f7e3"
      Port_Binding cr-lrp-52d45a86-6cbf-43ff-9700-755490192441
      Port_Binding "d4aafa35-ab96-4451-9623-983a164f28dd"

  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-2a21-4f28-bf5d-6ec2dcc5f7e3 |
  | status          | DOWN                                 |
  +-----------------+--------------------------------------+

  Expected results:
  +-----------------+--------------------------------------+
  | Field           | Value                                |
  +-----------------+--------------------------------------+
  | binding_host_id | cpu35d                               |
  | id              | 55c03aa0-2a21-4f28-bf5d-6ec2dcc5f7e3 |
  | 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?

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



References