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
