[ovs-dev] [PATCH ovn v4 0/5] ARP and Floating IP Fixes

Mark Michelson mmichels at redhat.com
Wed Apr 14 20:54:24 UTC 2021


This patch series aims to fix issues seen in OpenStack deployments when
floating IPs were assigned to routers, and those floating IPs were not
part of any subnet configured on that router.

Originally, this was a two patch series but it has bloomed into a 5
patch series.

Patch 1 fixes the scenario where a VM attempts to reach a floating IP on
the directly connected router. This has been part of this patch series
since v1.

Patch 2 is an incidental fix that removes a redundant paragraph from
documentation.

Patches 3 and 4 work towards pre-allocating MAC_Bindings for known
router addresses. Patch 3 is the northd side, placing all
router_addresses in the connected logical switch port's Port_Binding
record. Patch 4 is the ovn-controller side, adding the MAC_Bindings
based on the Port_Binding's router_addresses.

And Patch 5 addresses the situation for when the pre-allocated
MAC_Bindings cannot be used. For this situation, we will flood the ARP
request if the TPA is for a configured IP address that is outside the
connected routers' subnets.

Mark Michelson (5):
  northd: Swap src and dst eth addresses in router egress loop.
  ovn-sb: Remove redundant "nat-addresses" information from
    Port_Binding.
  northd: Save all router addresses in Port_Bindings
  pinctrl: Add Chassis MAC_Bindings for all router addresses.
  northd: Flood ARPs to routers for "unreachable" addresses.

 controller/ovn-controller.c |   4 +
 controller/pinctrl.c        | 296 ++++++++++++++++++++-------
 controller/pinctrl.h        |   1 +
 northd/ovn-northd.8.xml     |   8 +
 northd/ovn-northd.c         | 384 ++++++++++++++++++++++++------------
 northd/ovn_northd.dl        | 139 ++++++++++---
 ovn-sb.ovsschema            |   8 +-
 ovn-sb.xml                  |  37 +++-
 tests/ovn-controller.at     | 179 +++++++++++++++++
 tests/ovn-northd.at         | 206 +++++++++++++++++++
 tests/system-ovn.at         | 111 +++++++++++
 11 files changed, 1139 insertions(+), 234 deletions(-)

-- 
2.29.2



More information about the dev mailing list