@@ -3163,7 +3163,7 @@ Flow(.logical_datapath = sw._uuid,
.actions = actions.intern(),
.io_port = None,
.controller_meter = meter,
- .stage_hint = stage_hint(lb._uuid)) :-
+ .stage_hint = 0) :-
sw in &Switch(),
LBVIPWithStatus[lbvip@&LBVIPWithStatus{.lb = lb}],
sw.load_balancer.contains(lb._uuid),
@@ -4587,7 +4587,7 @@ Flow(.logical_datapath = sw._uuid,
.priority = 90,
.__match = i"${fLAGBIT_NOT_VXLAN()} && arp.op == 1 && arp.tpa == ${ipv4}",
.actions = i"outport = ${flood}; output;",
- .stage_hint = stage_hint(sp.lsp._uuid),
+ .stage_hint = 0,
.io_port = None,
.controller_meter = None) :-
sp in &SwitchPort(.sw = sw, .peer = Some{rp}),
@@ -6666,7 +6666,7 @@ for (RouterLBVIP(
.priority = prio,
.__match = __match.intern(),
.actions = __actions,
- .stage_hint = stage_hint(lb._uuid),
+ .stage_hint = 0,
.io_port = None,
.controller_meter = None);
@@ -6712,7 +6712,7 @@ for (RouterLBVIP(
.priority = prio,
.__match = est_match.intern(),
.actions = actions,
- .stage_hint = stage_hint(lb._uuid),
+ .stage_hint = 0,
.io_port = None,
.controller_meter = None);
@@ -6797,7 +6797,7 @@ Flow(.logical_datapath = r._uuid,
.actions = actions.intern(),
.io_port = None,
.controller_meter = meter,
- .stage_hint = stage_hint(lb._uuid)) :-
+ .stage_hint = 0) :-
r in &Router(),
r.l3dgw_ports.len() > 0 or r.is_gateway,
LBVIPWithStatus[lbvip@&LBVIPWithStatus{.lb = lb}],
It was possible for these rules to generate multiple Flow records that differed only in their stage_hint. This caused a lot of duplication for the load balancer benchmark. With the benchmark at https://mail.openvswitch.org/pipermail/ovs-dev/2021-July/385333.html, this reduces memory consumption from 53 GB to 17 GB and elapsed time from 14 minutes to 5 minutes. Signed-off-by: Ben Pfaff <blp@ovn.org> --- northd/ovn_northd.dl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)