From: Numan Siddique <[email protected]>
Signed-off-by: Numan Siddique <[email protected]>
---
northd/en-lflow.c | 26 ++++++++++++++
northd/en-lflow.h | 1 +
northd/en-ls-stateful.c | 9 +++--
northd/en-ls-stateful.h | 23 ++++++++++++
northd/inc-proc-northd.c | 2 +-
northd/lflow-mgr.c | 2 +-
northd/northd.c | 49 +++++++++++++++++++++++---
northd/northd.h | 5 +++
tests/ovn-northd.at | 76 +++++++++++++++++++++++++---------------
9 files changed, 154 insertions(+), 39 deletions(-)
diff --git a/northd/en-lflow.c b/northd/en-lflow.c
index 2dc4a83557..f51ee0d2b7 100644
--- a/northd/en-lflow.c
+++ b/northd/en-lflow.c
@@ -189,6 +189,32 @@ lflow_lr_stateful_handler(struct engine_node *node, void
*data)
return true;
}
+bool
+lflow_ls_stateful_handler(struct engine_node *node, void *data)
+{
+ struct ed_type_ls_stateful *ls_sful_data =
+ engine_get_input_data("ls_stateful", node);
+
+ if (!ls_stateful_has_tracked_data(&ls_sful_data->trk_data)) {
+ return false;
+ }
+
+ const struct engine_context *eng_ctx = engine_get_context();
+ struct lflow_data *lflow_data = data;
+ struct lflow_input lflow_input;
+
+ lflow_get_input_data(node, &lflow_input);
+ if (!lflow_handle_ls_stateful_changes(eng_ctx->ovnsb_idl_txn,
+ &ls_sful_data->trk_data,
+ &lflow_input,
+ lflow_data->lflow_table)) {
+ return false;
+ }
+
+ engine_set_node_state(node, EN_UPDATED);
+ return true;
+}
+
void *en_lflow_init(struct engine_node *node OVS_UNUSED,
struct engine_arg *arg OVS_UNUSED)
{
diff --git a/northd/en-lflow.h b/northd/en-lflow.h
index 1d813a2a29..32cae61763 100644
--- a/northd/en-lflow.h
+++ b/northd/en-lflow.h
@@ -21,5 +21,6 @@ void en_lflow_cleanup(void *data);
bool lflow_northd_handler(struct engine_node *, void *data);
bool lflow_port_group_handler(struct engine_node *, void *data);
bool lflow_lr_stateful_handler(struct engine_node *, void *data);
+bool lflow_ls_stateful_handler(struct engine_node *node, void *data);
#endif /* EN_LFLOW_H */
diff --git a/northd/en-ls-stateful.c b/northd/en-ls-stateful.c
index 5fa305bc29..df76a69c58 100644
--- a/northd/en-ls-stateful.c
+++ b/northd/en-ls-stateful.c
@@ -39,6 +39,7 @@
#include "lib/ovn-sb-idl.h"
#include "lib/ovn-util.h"
#include "lib/stopwatch-names.h"
+#include "lflow-mgr.h"
#include "northd.h"
VLOG_DEFINE_THIS_MODULE(en_ls_stateful);
@@ -292,6 +293,7 @@ ls_stateful_record_create(struct ls_stateful_table *table,
xzalloc(sizeof *ls_stateful_rec);
ls_stateful_rec->od = od;
ls_stateful_record_init(ls_stateful_rec, od, NULL, ls_pgs);
+ ls_stateful_rec->lflow_ref = lflow_ref_create();
hmap_insert(&table->entries, &ls_stateful_rec->key_node,
uuid_hash(&ls_stateful_rec->od->nbs->header_.uuid));
@@ -302,14 +304,15 @@ ls_stateful_record_create(struct ls_stateful_table *table,
static void
ls_stateful_record_destroy(struct ls_stateful_record *ls_stateful_rec)
{
+ lflow_ref_destroy(ls_stateful_rec->lflow_ref);
free(ls_stateful_rec);
}
static void
ls_stateful_record_init(struct ls_stateful_record *ls_stateful_rec,
- const struct ovn_datapath *od,
- const struct ls_port_group *ls_pg,
- const struct ls_port_group_table *ls_pgs)
+ const struct ovn_datapath *od,
+ const struct ls_port_group *ls_pg,
+ const struct ls_port_group_table *ls_pgs)
{
ls_stateful_rec->has_lb_vip = ls_has_lb_vip(od);
ls_stateful_record_set_acl_flags(ls_stateful_rec, od, ls_pg, ls_pgs);
diff --git a/northd/en-ls-stateful.h b/northd/en-ls-stateful.h
index cba53e1f29..bc1b3002ef 100644
--- a/northd/en-ls-stateful.h
+++ b/northd/en-ls-stateful.h
@@ -31,6 +31,8 @@
#include "lib/ovn-util.h"
#include "lib/stopwatch-names.h"
+struct lflow_ref;
+
struct ls_stateful_record {
struct hmap_node key_node;
@@ -39,6 +41,27 @@ struct ls_stateful_record {
bool has_lb_vip;
bool has_acls;
uint64_t max_acl_tier;
+
+ /* 'lflow_ref' is used to reference logical flows generated for
+ * this ls_stateful record.
+ *
+ * This data is initialized and destroyed by the en_ls_stateful node,
+ * but populated and used only by the en_lflow node. Ideally this data
+ * should be maintained as part of en_lflow's data. However, it would
+ * be less efficient and more complex:
+ *
+ * 1. It would require an extra search (using the index) to find the
+ * lflows.
+ *
+ * 2. Building the index needs to be thread-safe, using either a global
+ * lock which is obviously less efficient, or hash-based lock array which
+ * is more complex.
+ *
+ * Adding the lflow_ref here is more straightforward. The drawback is that
+ * we need to keep in mind that this data belongs to en_lflow node, so
+ * never access it from any other nodes.
+ */
+ struct lflow_ref *lflow_ref;
};
struct ls_stateful_table {
diff --git a/northd/inc-proc-northd.c b/northd/inc-proc-northd.c
index dcce79510a..f7c3d2bcf5 100644
--- a/northd/inc-proc-northd.c
+++ b/northd/inc-proc-northd.c
@@ -228,11 +228,11 @@ void inc_proc_northd_init(struct ovsdb_idl_loop *nb,
engine_add_input(&en_lflow, &en_sb_logical_flow, NULL);
engine_add_input(&en_lflow, &en_sb_multicast_group, NULL);
engine_add_input(&en_lflow, &en_sb_igmp_group, NULL);
- engine_add_input(&en_lflow, &en_ls_stateful, NULL);
engine_add_input(&en_lflow, &en_sb_logical_dp_group, NULL);
engine_add_input(&en_lflow, &en_northd, lflow_northd_handler);
engine_add_input(&en_lflow, &en_port_group, lflow_port_group_handler);
engine_add_input(&en_lflow, &en_lr_stateful, lflow_lr_stateful_handler);
+ engine_add_input(&en_lflow, &en_ls_stateful, lflow_ls_stateful_handler);
engine_add_input(&en_sync_to_sb_addr_set, &en_nb_address_set,
sync_to_sb_addr_set_nb_address_set_handler);
diff --git a/northd/lflow-mgr.c b/northd/lflow-mgr.c
index 15f72ae736..a40137233b 100644
--- a/northd/lflow-mgr.c
+++ b/northd/lflow-mgr.c
@@ -445,7 +445,7 @@ lflow_ref_unlink_lflows(struct lflow_ref *lflow_ref)
BITMAP_FOR_EACH_1 (index, lrn->dpgrp_bitmap_len,
lrn->dpgrp_bitmap) {
if (dec_dp_refcnt(&lrn->lflow->dp_refcnts_map, index)) {
- bitmap_set0(lrn->lflow->dpg_bitmap, lrn->dp_index);
+ bitmap_set0(lrn->lflow->dpg_bitmap, index);
}
}
} else {
diff --git a/northd/northd.c b/northd/northd.c
index 94e3a43600..2b34891db6 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -15674,12 +15674,14 @@ build_ls_stateful_flows(const struct
ls_stateful_record *ls_stateful_rec,
ovs_assert(ls_stateful_rec->od);
build_ls_stateful_rec_pre_acls(ls_stateful_rec, ls_pgs, lflows,
- NULL);
- build_ls_stateful_rec_pre_lb(ls_stateful_rec, lflows, NULL);
- build_acl_hints(ls_stateful_rec, features, lflows, NULL);
+ ls_stateful_rec->lflow_ref);
+ build_ls_stateful_rec_pre_lb(ls_stateful_rec, lflows,
+ ls_stateful_rec->lflow_ref);
+ build_acl_hints(ls_stateful_rec, features, lflows,
+ ls_stateful_rec->lflow_ref);
build_acls(ls_stateful_rec, features, lflows, ls_pgs, meter_groups,
- NULL);
- build_lb_hairpin(ls_stateful_rec, lflows, NULL);
+ ls_stateful_rec->lflow_ref);
+ build_lb_hairpin(ls_stateful_rec, lflows, ls_stateful_rec->lflow_ref);
}
struct lswitch_flow_build_info {
@@ -16336,6 +16338,7 @@ void
lflow_reset_northd_refs(struct lflow_input *lflow_input)
{
const struct lr_stateful_record *lr_stateful_rec;
+ struct ls_stateful_record *ls_stateful_rec;
struct ovn_lb_datapaths *lb_dps;
struct ovn_port *op;
@@ -16344,6 +16347,11 @@ lflow_reset_northd_refs(struct lflow_input
*lflow_input)
lflow_ref_clear(lr_stateful_rec->lflow_ref);
}
+ LS_STATEFUL_TABLE_FOR_EACH (ls_stateful_rec,
+ lflow_input->ls_stateful_table) {
+ lflow_ref_clear(ls_stateful_rec->lflow_ref);
+ }
+
HMAP_FOR_EACH (op, key_node, lflow_input->ls_ports) {
lflow_ref_clear(op->lflow_ref);
lflow_ref_clear(op->stateful_lflow_ref);
@@ -16649,6 +16657,37 @@ lflow_handle_lr_stateful_changes(struct ovsdb_idl_txn
*ovnsb_txn,
return true;
}
+bool
+lflow_handle_ls_stateful_changes(struct ovsdb_idl_txn *ovnsb_txn,
+ struct ls_stateful_tracked_data *trk_data,
+ struct lflow_input *lflow_input,
+ struct lflow_table *lflows)
+{
+ struct hmapx_node *hmapx_node;
+
+ HMAPX_FOR_EACH (hmapx_node, &trk_data->crupdated) {
+ struct ls_stateful_record *ls_stateful_rec = hmapx_node->data;
+ lflow_ref_unlink_lflows(ls_stateful_rec->lflow_ref);
+
+ /* Generate new lflows. */
+ build_ls_stateful_flows(ls_stateful_rec, lflow_input->ls_port_groups,
+ lflow_input->features,
+ lflow_input->meter_groups,
+ lflows);
+
+ /* Sync the new flows to SB. */
+ lflow_ref_sync_lflows(ls_stateful_rec->lflow_ref, lflows,
+ ovnsb_txn,
+ lflow_input->ls_datapaths,
+ lflow_input->lr_datapaths,
+ lflow_input->ovn_internal_version_changed,
+ lflow_input->sbrec_logical_flow_table,
+ lflow_input->sbrec_logical_dp_group_table);
+ }
+
+ return true;
+}
+
static bool
mirror_needs_update(const struct nbrec_mirror *nb_mirror,
const struct sbrec_mirror *sb_mirror)
diff --git a/northd/northd.h b/northd/northd.h
index abe295cd07..8cadbd4691 100644
--- a/northd/northd.h
+++ b/northd/northd.h
@@ -664,6 +664,7 @@ void northd_indices_create(struct northd_data *data,
struct lflow_table;
struct lr_stateful_tracked_data;
+struct ls_stateful_tracked_data;
void build_lflows(struct ovsdb_idl_txn *ovnsb_txn,
struct lflow_input *input_data,
@@ -682,6 +683,10 @@ bool lflow_handle_lr_stateful_changes(struct ovsdb_idl_txn
*,
struct lr_stateful_tracked_data *,
struct lflow_input *,
struct lflow_table *lflows);
+bool lflow_handle_ls_stateful_changes(struct ovsdb_idl_txn *,
+ struct ls_stateful_tracked_data *,
+ struct lflow_input *,
+ struct lflow_table *lflows);
bool northd_handle_sb_port_binding_changes(
const struct sbrec_port_binding_table *, struct hmap *ls_ports,
struct hmap *lr_ports);
diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
index cbd6ced93f..c668dcbd66 100644
--- a/tests/ovn-northd.at
+++ b/tests/ovn-northd.at
@@ -10615,12 +10615,13 @@ check ovn-nbctl --wait=sb ls-lb-add sw0 lb1
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
# A LB applied to a switch/router triggers:
# - a recompute in the first iteration (handling northd change)
# - a compute in the second iteration (handling SB update)
check_engine_stats sync_to_sb_lb recompute compute
-CHECK_NO_CHANGE_AFTER_RECOMPUTE(1)
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
+CHECK_NO_CHANGE_AFTER_RECOMPUTE((1))
# Modify the backend of the lb1 vip
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
@@ -10628,7 +10629,8 @@ check ovn-nbctl --wait=sb set load_balancer lb1
vips:'"10.0.0.10:80"'='"10.0.0.1
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE(1)
@@ -10638,7 +10640,8 @@ check ovn-nbctl --wait=sb clear load_Balancer lb1 vips
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE(1)
@@ -10648,7 +10651,8 @@ check ovn-nbctl --wait=sb lb-add lb1 10.0.0.10:80
10.0.0.3:80
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE(1)
@@ -10658,7 +10662,8 @@ check ovn-nbctl --wait=sb lb-add lb1 10.0.0.20:80
10.0.0.30:8080
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE(1)
@@ -10668,6 +10673,7 @@ check ovn-nbctl --wait=sb ls-lb-del sw0 lb1
check_engine_stats lb_data norecompute compute
check_engine_stats northd recompute nocompute
check_engine_stats lr_stateful recompute nocompute
+check_engine_stats ls_stateful recompute nocompute
check_engine_stats lflow recompute nocompute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE(1)
@@ -10679,7 +10685,8 @@ check ovn-nbctl --wait=sb ls-lb-add sw0 lb1 -- lsp-add
sw0 sw0p1
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -10798,7 +10805,7 @@ check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
check_engine_stats ls_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
# Update lb and this should not result in northd recompute
@@ -10806,8 +10813,9 @@ check as northd ovn-appctl -t ovn-northd
inc-engine/clear-stats
check ovn-nbctl --wait=sb set load_balancer . options:bar=foo
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
+check_engine_stats lr_stateful norecompute compute
check_engine_stats ls_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
# Modify the backend of the lb1 vip
@@ -10817,7 +10825,7 @@ check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
check_engine_stats ls_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -10827,7 +10835,8 @@ check ovn-nbctl --wait=sb clear load_Balancer lb1 vips
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -10837,7 +10846,8 @@ check ovn-nbctl --wait=sb lb-add lb1 10.0.0.10:80
10.0.0.3:80
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -10847,7 +10857,8 @@ check ovn-nbctl --wait=sb lb-add lb1 10.0.0.20:80
10.0.0.30:8080
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -10922,7 +10933,8 @@ check ovn-nbctl --wait=sb add logical_switch sw0
load_balancer_group $lbg1_uuid
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -10975,7 +10987,8 @@ check ovn-nbctl --wait=sb set logical_switch sw0
load_balancer_group=$lbg1_uuid
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -10993,7 +11006,8 @@ check ovn-nbctl --wait=sb ls-lb-add sw0 lb2
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute nocompute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -11002,7 +11016,8 @@ check ovn-nbctl --wait=sb ls-lb-add sw0 lb3
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute nocompute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -11030,6 +11045,7 @@ check ovn-nbctl --wait=sb lr-lb-del lr1 lb2
check_engine_stats lb_data norecompute compute
check_engine_stats northd recompute nocompute
check_engine_stats lr_stateful recompute nocompute
+check_engine_stats ls_stateful recompute nocompute
check_engine_stats lflow recompute nocompute
check_engine_stats sync_to_sb_lb recompute nocompute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -11041,7 +11057,8 @@ check ovn-nbctl --wait=sb lb-del lb4
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -11052,7 +11069,8 @@ check ovn-nbctl --wait=sb lb-del lb2
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
check_engine_stats lr_stateful norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats ls_stateful norecompute compute
+check_engine_stats lflow norecompute compute
check_engine_stats sync_to_sb_lb recompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
@@ -11139,7 +11157,7 @@ check as northd ovn-appctl -t ovn-northd
inc-engine/clear-stats
check ovn-nbctl --wait=sb ls-lb-add sw0 lb1
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
# Clear the VIPs of lb1
@@ -11147,7 +11165,7 @@ check as northd ovn-appctl -t ovn-northd
inc-engine/clear-stats
check ovn-nbctl --wait=sb clear load_balancer . vips
check_engine_stats lb_data norecompute compute
check_engine_stats northd norecompute compute
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
@@ -11171,7 +11189,7 @@ check ovn-nbctl --wait=sb lb-add lb2 10.0.0.10:80
10.0.0.3:80
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
check ovn-nbctl --wait=sb ls-lb-add sw0 lb1
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_uuid=$(fetch_column Logical_flow _uuid match='"ct.new && ip4.dst ==
10.0.0.10 && tcp.dst == 80"')
@@ -11185,7 +11203,7 @@ AT_CHECK([test "$lb_lflow_dpgrp" = ""])
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
check ovn-nbctl --wait=sb ls-lb-add sw1 lb2
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_dp=$(ovn-sbctl --bare --columns logical_datapath list logical_flow
$lb_lflow_uuid)
@@ -11196,7 +11214,7 @@ AT_CHECK([test "$lb_lflow_dpgrp" != ""])
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
check ovn-nbctl --wait=sb clear load_balancer lb2 vips
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_dp=$(ovn-sbctl --bare --columns logical_datapath list logical_flow
$lb_lflow_uuid)
@@ -11222,7 +11240,7 @@ check ovn-nbctl ls-lb-add sw4 lb2
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
check ovn-nbctl --wait=sb ls-lb-add sw5 lb2
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_dp=$(ovn-sbctl --bare --columns logical_datapath list logical_flow
$lb_lflow_uuid)
@@ -11253,7 +11271,7 @@ echo "dpgrp_dps - $dpgrp_dps"
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
check ovn-nbctl --wait=sb clear load_balancer lb2 vips
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_dpgrp=$(ovn-sbctl --bare --columns logical_dp_group list logical_flow
$lb_lflow_uuid)
@@ -11287,7 +11305,7 @@ check as northd ovn-appctl -t ovn-northd
inc-engine/clear-stats
check ovn-nbctl ls-lb-add sw0 lb3
check ovn-nbctl --wait=sb ls-lb-add sw1 lb3
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_uuid=$(fetch_column Logical_flow _uuid match='"ct.new && ip4.dst ==
10.0.0.10 && tcp.dst == 80"')
@@ -11312,7 +11330,7 @@ AT_CHECK([echo $dpgrp_dps | grep $sw5_uuid], [0],
[ignore])
# should have reference to sw0 and sw1, but not to sw2.
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
check ovn-nbctl --wait=sb clear load_balancer lb1 vips
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_dp=$(ovn-sbctl --bare --columns logical_datapath list logical_flow
$lb_lflow_uuid)
@@ -11338,7 +11356,7 @@ AT_CHECK([echo $dpgrp_dps | grep $sw5_uuid], [0],
[ignore])
check as northd ovn-appctl -t ovn-northd inc-engine/clear-stats
check ovn-nbctl --wait=sb clear load_balancer lb3 vips
-check_engine_stats lflow recompute nocompute
+check_engine_stats lflow norecompute compute
CHECK_NO_CHANGE_AFTER_RECOMPUTE
lb_lflow_dp=$(ovn-sbctl --bare --columns logical_datapath list logical_flow
$lb_lflow_uuid)
--
2.43.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev