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

The reason why this is posted as an RFC is because it depends on two
in-flight patch series in OVN:

  * OVN Fabric integration: Northd (v4)[0]
  * OVN Fabric integration: Ovn-controller (v5)[1]

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


Frode Nordahl (1):
  northd: Allow IPv6 in get_nat_addresses().

Martin Kalcok (2):
  northd: Extract get_lb_addresses functionality.
  WIP: Advertisement of NAT/LB addresses as routes.

 lib/stopwatch-names.h             |   1 +
 northd/en-advertised-route-sync.c |  84 +++++++++++++++++++++
 northd/en-advertised-route-sync.h |   4 +
 northd/en-northd-output.c         |   8 ++
 northd/en-northd-output.h         |   2 +
 northd/inc-proc-northd.c          |   8 ++
 northd/northd.c                   | 120 +++++++++++++++++++++++-------
 northd/northd.h                   |   9 +++
 8 files changed, 208 insertions(+), 28 deletions(-)

-- 
2.43.0

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

Reply via email to