This series allows to advertise routes for Load Balancer VIPs and
NAT external addresses to the network fabric.

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(-)

-- 
2.43.0

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

Reply via email to