@@ -516,6 +516,7 @@ lflow_handle_changed_ref(enum ref_type ref_type, const char *ref_name,
if (ovs_list_is_empty(&lflows_todo)) {
return true;
}
+ *changed = true;
struct hmap dhcp_opts = HMAP_INITIALIZER(&dhcp_opts);
struct hmap dhcpv6_opts = HMAP_INITIALIZER(&dhcpv6_opts);
@@ -584,7 +585,6 @@ lflow_handle_changed_ref(enum ref_type ref_type, const char *ref_name,
consider_logical_flow(lflow, &dhcp_opts, &dhcpv6_opts,
&nd_ra_opts, &controller_event_opts, false,
l_ctx_in, l_ctx_out);
- *changed = true;
}
HMAP_FOR_EACH_SAFE (ofrn, ofrn_next, hmap_node, &flood_remove_nodes) {
hmap_remove(&flood_remove_nodes, &ofrn->hmap_node);
The current code sets changed to true only when a lflow is reprocessed, if the lflow is deleted (not found) the changed would be false, even if we have deleted desired flows. Fortunately this should not cause real problems yet because if a lflow is deleted it should later trigger the lflow_handle_changed_flows(), which always update the engine state. But it is still better to set it properly in lflow_handle_changed_ref() in the first placer. Signed-off-by: Han Zhou <hzhou@ovn.org> --- controller/lflow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)