From: Chanyeol Yoon <[email protected]>

A distributed dnat_and_snat NAT entry (an OpenStack-style floating IP,
with both 'external_mac' and 'logical_port' set) is not advertised over
BGP-EVPN: only ports attached to the EVPN-enabled provider Logical
Switch are covered, so floating IPs stay unreachable from EVPN peers.

This series advertises those floating IPs as EVPN Type-2 MAC+IP routes.
ovn-northd publishes the NAT's external IP/MAC into the SB
Advertised_MAC_Binding table of the provider Logical Switch that carries
the NAT's distributed gateway port, gated by a new 'nat' token of the
switch 'dynamic-routing-redistribute' option (independent of 'ip').
ovn-controller then programs those into the EVPN advertise interface.

v6 -> v7:
  - Dropped the Advertised_MAC_Binding 'type' column entirely.  As Ales
    pointed out, ovn-northd already only populates a row when the
    datapath opted into advertising it (via the 'ip'/'nat' tokens), so
    ovn-controller can advertise every row it finds and only needs to
    gate the FDB on the 'fdb' token -- no per-row token re-check.  This
    removes the SB schema change from the series.
  - Simplified the controller side accordingly: a single pass over the
    Advertised_MAC_Binding rows, advertised as Type-2 MAC+IP neighbors,
    additionally programmed into the FDB when 'fdb' is set.
  - Split the en-advertised-mac-binding-sync northd change handler into
    its own patch (2/3) with a test exercising the distributed NAT path
    through incremental processing.
  - Rebased onto current main.

v5 -> v6:
  - Rebased onto main (resolved ovn-sb.ovsschema and NEWS conflicts with
    the EVPN ARP/ND suppression series).

Earlier revisions addressed Ales' v4 review (NAT advertise documentation
on the 'dynamic-routing-advertise' option, dropping comments on
NULL/handler inputs, and gating the recompute on the northd tracked
data instead of a full recompute).

Chanyeol Yoon (3):
  northd: Advertise distributed NAT IPs over EVPN.
  northd: Handle advertised MAC binding sync incrementally.
  controller: Advertise EVPN MAC bindings.

 .../topics/dynamic-routing/architecture.rst   |  12 ++
 NEWS                                          |   6 +
 controller/neighbor.c                         |  52 ++++--
 lib/ovn-util.c                                |   3 +
 lib/ovn-util.h                                |   3 +-
 northd/en-advertised-route-sync.c             | 132 ++++++++++++++-
 northd/en-advertised-route-sync.h             |   3 +
 northd/inc-proc-northd.c                      |   7 +-
 ovn-nb.xml                                    |  27 +++
 tests/ovn-inc-proc-graph-dump.at              |   3 +-
 tests/ovn-northd.at                           | 154 ++++++++++++++++++
 11 files changed, 374 insertions(+), 28 deletions(-)


base-commit: d34f9316b2076f0a55b141a7434a3a66eac9a630
-- 
2.54.0 (Apple Git-157)

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to