This series advertises distributed dnat_and_snat NAT entries (floating
IPs) over BGP-EVPN as Type-2 MAC+IP routes, gated by a new 'nat' token of
the provider Logical_Switch 'dynamic-routing-redistribute' option.

Verified in a lab deployment: a distributed floating IP is published in
the SB Advertised_MAC_Binding table, programmed into the EVPN advertise
interface by ovn-controller, advertised as a Type-2 route by FRR, and
reachable from an EVPN peer.

v4 -> v5 (all from Ales' review, thanks!):
 - Add a 'type' column ("ip"/"nat") to Advertised_MAC_Binding so that
   ovn-controller advertises each row based on the matching redistribute
   token.  The controller now walks the table in a single pass (instead
   of once in the FDB collector and once in the IP collector), and a
   floating IP comes out as a Type-2 route with the 'nat' token alone,
   without also enabling 'ip'/'fdb'.
 - en-advertised-mac-binding-sync no longer triggers a plain recompute on
   en_northd/en_lr_nat.  It uses a northd change handler gated on the
   tracked switches and tracked NAT routers, and reads lr_nat purely as
   input data (engine_noop_handler).
 - Drop the engine input comments on the plain handlers (a comment is
   kept only on the engine_noop_handler input).
 - Extend the NAT 'dynamic-routing-advertise' documentation to mention it
   also controls the Type-2 advertisement.

On the v4 review note about splitting out a "fix for existing behavior":
I looked into it and could not find one.  With the previous
engine_noop_handler on en_northd, toggling the LS 'ip' token (or
dynamic-routing-vni) and the per-port 'dynamic-routing-advertise' option
already take effect, because those changes also update the SB
Port_Binding rows that this node already depends on.  Only a NAT change
does not touch a Port_Binding here, which is why the node now needs the
tracked-NAT signal.  So there is no separate pre-existing fix to split
out; the new handler exists purely to gate the NAT recompute.

v4: https://mail.openvswitch.org/pipermail/ovs-dev/2026-June/433238.html

Chanyeol Yoon (2):
  northd: Advertise distributed NAT IPs over EVPN.
  controller: Advertise EVPN MAC bindings by type.

 .../topics/dynamic-routing/architecture.rst   |  12 ++
 NEWS                                          |   6 +
 controller/neighbor.c                         |  81 +++++++---
 lib/ovn-util.c                                |   3 +
 lib/ovn-util.h                                |   3 +-
 northd/en-advertised-route-sync.c             | 142 ++++++++++++++++--
 northd/en-advertised-route-sync.h             |   3 +
 northd/inc-proc-northd.c                      |   7 +-
 ovn-nb.xml                                    |  27 ++++
 ovn-sb.ovsschema                              |   6 +-
 ovn-sb.xml                                    |  19 +++
 tests/ovn-inc-proc-graph-dump.at              |   3 +-
 tests/ovn-northd.at                           |  98 ++++++++++++
 13 files changed, 372 insertions(+), 38 deletions(-)


base-commit: 655f7bfd84aec6afad7447693022a1180789b930
-- 
2.54.0 (Apple Git-156)

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

Reply via email to