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.

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