On Fri, 2025-02-14 at 14:51 +0100, Dumitru Ceara wrote:
> On 2/14/25 7:33 AM, Martin Kalcok wrote:
> > This series allows to advertise routes for Load Balancer VIPs and
> > NAT external addresses to the network fabric.
> > 
> 
> Many thanks to everyone who contributed!  This series is now applied
> to
> the main branch.

Thanks everyone for reviews, feedback and help :)

Martin.

> 
> Regards,
> Dumitru
> 
> > v6 -> v7:
> >   * When redistributing NAT/LBs from neighboring routers, watch
> >     from changes in LSs, not just LRs. This is required because
> >     the CRPs that we set as tracked ports are in LS.
> > 
> >   * Verify that the nat record is valid before we use it to set
> >     tracked port.
> > 
> >   * more tests.
> > 
> > v5 -> v6:
> >   * rebased on main
> > 
> >   * included patches from dceara that populate l3dgw in ovn_nat
> >     structure.
> > 
> >   * Tracked ports for LBs are properly set
> > 
> >   * LB VIPs from neighboring routers are readvertised.
> > 
> >   * tests and documentation
> > 
> > v4 -> v5:
> >   * Included northd processing changes proposed by Dumitru (I will
> >     add you to co-authors for the final version @dceara)
> >   
> >   * Added optional tracked_port member to parsed_route struct.
> > 
> >   * Added tracked ports for NAT routes
> > 
> >   * Added advertising of external NAT IPs of neighboring routers.
> > 
> >   * Added advertising of LBs
> >     * tracked ports for LBs still missing
> >     * LBs from enighboring routers are not yet advertised
> > 
> >   * I kept the changes from v4 in a separate commit for easier
> >     review of changes.
> > 
> > v3 -> v4:
> >   * This is just a preview to get feedback on the new design that
> >     splits processing of different route types in northd engine.
> >     Main goal is to avoid recomputing logical flows when NAT/LB
> >     routes are changed.
> > 
> >   * Approach from v3 was almost completely scrapped.
> > 
> >   * rebased on latest dependency patches [3]
> > 
> >   * This being WIP, it lacks:
> >     * setting "tracked_port" for routes
> >     * processing of LBs
> >     * tests/documentation
> > 
> > v2 -> v3:
> >   * Actually use the install_lflow attribute of the parsed_route
> >     * Fix install_lflow ddtribute not being set in
> > parsed_route_clone
> >       fuinction.
> > 
> >   * fix get_lb_addresses because it actually modified the behavior
> > of
> >     get_nad_addresses by unconditionally overwriting
> > "central_ip_address".
> >     Now it does "|=" instead of "="
> > 
> >   * Added unit tests for advertising NAT and LB VIPs (IPv4 and
> > IPv6)
> > 
> >   * Added optimizations suggested by Felix in v2 review.
> > 
> > v2:
> >   * rebased on latest dependency patches [2]
> > 
> >   * get_nat_addresses refactored to extract functionality for
> > getting
> >     LB addresses independently. The new function is called
> > get_lb_addresses.
> >     The original behavior of get_nat_addresses is unchanged.
> > 
> >   * Added 'install_lflow' bool member to 'parsed_route' struct.
> > This controls
> >     whether northd installs logical flows for given route (cc
> > @felix.huettner)
> > 
> >   * Based on suggestion from dceara, "lr_stateful" input was added
> > to en_routes
> >     node. This allows for easier iteration over logical router's
> > load
> >     balancers.
> > 
> >   * Based on suggestion from fnordahl, functionality was added to
> > advertise
> >     NAT/LB IPs of neighboring routers, if they have have
> > "add_route" option
> >     set to "true".
> >     * A unit test was added to test this functionality.
> > 
> >   * Based on the discussion about the option naming, the names were
> > changed to
> >     'dynamic-routing-nat' and 'dynamic-routing-lb-vips'. This will
> > likely
> >     change when dependency patch series gets updated to use
> >     'dynamic-routing=<comma_separated_values>'
> > 
> > [0]
> > https://patchwork.ozlabs.org/project/ovn/cover/[email protected]/
> > [1]
> > https://patchwork.ozlabs.org/project/ovn/cover/[email protected]/
> > [2] https://github.com/dceara/ovn/tree/tmp-bgp-ovn-controller-v5
> > [3] https://github.com/dceara/ovn/tree/tmp-bgp-v7
> > 
> > 
> > 
> > Dumitru Ceara (2):
> >   northd: Expose the is_l3dgw_port() function to other modules.
> >   northd: Check and populate NAT entry fields early in the I-P
> > engine.
> > 
> > Martin Kalcok (1):
> >   northd: Redistribution of NAT/LB routes.
> > 
> >  TODO.rst                          |  10 +
> >  lib/stopwatch-names.h             |   1 +
> >  northd/en-advertised-route-sync.c | 198 ++++++--
> >  northd/en-advertised-route-sync.h |   3 +
> >  northd/en-learned-route-sync.c    |   3 +-
> >  northd/en-lr-nat.c                | 234 +++++++++-
> >  northd/en-lr-nat.h                |  24 +-
> >  northd/inc-proc-northd.c          |   5 +
> >  northd/northd.c                   | 581 +++++++++++++----------
> >  northd/northd.h                   |  54 ++-
> >  ovn-nb.xml                        |  36 ++
> >  tests/ovn-northd.at               | 628 +++++++++++++++++++++++++
> >  tests/system-ovn.at               | 738
> > ++++++++++++++++++++++++++++++
> >  13 files changed, 2190 insertions(+), 325 deletions(-)
> > 
> 

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

Reply via email to