[ovs-dev] [RFC PATCH ovn 7/7] HACK: Remove load balancer routable/unroutable logic.

Dumitru Ceara dceara at redhat.com
Thu Nov 25 21:35:47 UTC 2021


This is a forceful revert, completely breaking functionality with the
only goal of determining the impact of the commented out lines on
performance.

Signed-off-by: Dumitru Ceara <dceara at redhat.com>
---
 northd/lrouter.dl    |   54 +++++++++++++++++++++++++-------------------------
 northd/ovn_northd.dl |   23 ++++++++++++---------
 2 files changed, 40 insertions(+), 37 deletions(-)

diff --git a/northd/lrouter.dl b/northd/lrouter.dl
index 4782599e5..7ee99beb7 100644
--- a/northd/lrouter.dl
+++ b/northd/lrouter.dl
@@ -541,33 +541,33 @@ typedef LogicalRouterLBIPs = LogicalRouterLBIPs {
 
 relation LogicalRouterLBIPs[Intern<LogicalRouterLBIPs>]
 
-LogicalRouterLBIPs[LogicalRouterLBIPs{
-        .lr = lr_uuid,
-        .lb_ipv4s_routable = lb_ipv4s_routable,
-        .lb_ipv4s_unroutable = lb_ipv4s_unroutable,
-        .lb_ipv6s_routable = lb_ipv6s_routable,
-        .lb_ipv6s_unroutable = lb_ipv6s_unroutable
-    }.intern()
-] :-
-    LogicalRouterLBs(lr_uuid, lbs),
-    (var lb_ipv4s_routable, var lb_ipv4s_unroutable,
-     var lb_ipv6s_routable, var lb_ipv6s_unroutable) = {
-        var lb_ipv4s_routable = set_empty();
-        var lb_ipv4s_unroutable = set_empty();
-        var lb_ipv6s_routable = set_empty();
-        var lb_ipv6s_unroutable = set_empty();
-        for (lb in lbs) {
-            if (lb.routable) {
-                lb_ipv4s_routable = lb_ipv4s_routable.union(lb.ipv4s);
-                lb_ipv6s_routable = lb_ipv6s_routable.union(lb.ipv6s);
-            } else {
-                lb_ipv4s_unroutable = lb_ipv4s_unroutable.union(lb.ipv4s);
-                lb_ipv6s_unroutable = lb_ipv6s_unroutable.union(lb.ipv6s);
-            }
-        };
-        (lb_ipv4s_routable, lb_ipv4s_unroutable,
-         lb_ipv6s_routable, lb_ipv6s_unroutable)
-    }.
+//LogicalRouterLBIPs[LogicalRouterLBIPs{
+//        .lr = lr_uuid,
+//        .lb_ipv4s_routable = lb_ipv4s_routable,
+//        .lb_ipv4s_unroutable = lb_ipv4s_unroutable,
+//        .lb_ipv6s_routable = lb_ipv6s_routable,
+//        .lb_ipv6s_unroutable = lb_ipv6s_unroutable
+//    }.intern()
+//] :-
+//    LogicalRouterLBs(lr_uuid, lbs),
+//    (var lb_ipv4s_routable, var lb_ipv4s_unroutable,
+//     var lb_ipv6s_routable, var lb_ipv6s_unroutable) = {
+//        var lb_ipv4s_routable = set_empty();
+//        var lb_ipv4s_unroutable = set_empty();
+//        var lb_ipv6s_routable = set_empty();
+//        var lb_ipv6s_unroutable = set_empty();
+//        for (lb in lbs) {
+//            if (lb.routable) {
+//                lb_ipv4s_routable = lb_ipv4s_routable.union(lb.ipv4s);
+//                lb_ipv6s_routable = lb_ipv6s_routable.union(lb.ipv6s);
+//            } else {
+//                lb_ipv4s_unroutable = lb_ipv4s_unroutable.union(lb.ipv4s);
+//                lb_ipv6s_unroutable = lb_ipv6s_unroutable.union(lb.ipv6s);
+//            }
+//        };
+//        (lb_ipv4s_routable, lb_ipv4s_unroutable,
+//         lb_ipv6s_routable, lb_ipv6s_unroutable)
+//    }.
 
 /* Router - to - LB-uuid */
 relation RouterLB(router: Intern<Router>, lb_uuid: uuid)
diff --git a/northd/ovn_northd.dl b/northd/ovn_northd.dl
index 90558a7c4..bc25bf041 100644
--- a/northd/ovn_northd.dl
+++ b/northd/ovn_northd.dl
@@ -1006,17 +1006,20 @@ relation OutProxy_Multicast_Group (
     ports: Set<uuid>
 )
 
+// FIXME: When commenting out LogicalRouterLBIPs() relations, ovn-northd
+// started continuously trying to write empty updates to mC_FLOOD() in
+// the southbound.
 /* Only create flood group if the switch has enabled ports */
-sb::Out_Multicast_Group (._uuid      = hash128((datapath,name)),
-                        .datapath   = datapath,
-                        .name       = name,
-                        .tunnel_key = tunnel_key,
-                        .ports      = port_ids) :-
-    &SwitchPort(.lsp = lsp, .sw = sw),
-    lsp.is_enabled(),
-    var datapath = sw._uuid,
-    var port_ids = lsp._uuid.group_by((datapath)).to_set(),
-    (var name, var tunnel_key) = mC_FLOOD().
+// sb::Out_Multicast_Group (._uuid      = hash128((datapath,name)),
+//                         .datapath   = datapath,
+//                         .name       = name,
+//                         .tunnel_key = tunnel_key,
+//                         .ports      = port_ids) :-
+//     &SwitchPort(.lsp = lsp, .sw = sw),
+//     lsp.is_enabled(),
+//     var datapath = sw._uuid,
+//     var port_ids = lsp._uuid.group_by((datapath)).to_set(),
+//     (var name, var tunnel_key) = mC_FLOOD().
 
 /* Create a multicast group to flood to all switch ports except router ports.
  */



More information about the dev mailing list