This feature is supported in the last two LTS releases and the correct
upgrade procedure mandates that we don't jump across LTS releases.  It's
safe to remove the check in northd.

Signed-off-by: Dumitru Ceara <dce...@redhat.com>
---
 northd/en-global-config.c |  14 ----
 northd/en-global-config.h |   1 -
 northd/inc-proc-northd.c  |   2 -
 northd/northd.c           |  38 ++++-------
 tests/ovn-northd.at       | 130 --------------------------------------
 5 files changed, 14 insertions(+), 171 deletions(-)

diff --git a/northd/en-global-config.c b/northd/en-global-config.c
index 183b535dee..5b71ede1f2 100644
--- a/northd/en-global-config.c
+++ b/northd/en-global-config.c
@@ -367,7 +367,6 @@ northd_enable_all_features(struct ed_type_global_config 
*data)
 {
     data->features = (struct chassis_features) {
         .mac_binding_timestamp = true,
-        .ct_lb_related = true,
         .fdb_timestamp = true,
         .ls_dpg_column = true,
         .ct_commit_nat_v2 = true,
@@ -398,15 +397,6 @@ build_chassis_features(const struct sbrec_chassis_table 
*sbrec_chassis_table,
             chassis_features->mac_binding_timestamp = false;
         }
 
-        bool ct_lb_related =
-            smap_get_bool(&chassis->other_config,
-                          OVN_FEATURE_CT_LB_RELATED,
-                          false);
-        if (!ct_lb_related &&
-            chassis_features->ct_lb_related) {
-            chassis_features->ct_lb_related = false;
-        }
-
         bool fdb_timestamp =
             smap_get_bool(&chassis->other_config,
                           OVN_FEATURE_FDB_TIMESTAMP,
@@ -568,10 +558,6 @@ chassis_features_changed(const struct chassis_features 
*present,
         return true;
     }
 
-    if (present->ct_lb_related != updated->ct_lb_related) {
-        return true;
-    }
-
     if (present->fdb_timestamp != updated->fdb_timestamp) {
         return true;
     }
diff --git a/northd/en-global-config.h b/northd/en-global-config.h
index c3cc881371..8a1c35fc8f 100644
--- a/northd/en-global-config.h
+++ b/northd/en-global-config.h
@@ -15,7 +15,6 @@ struct sbrec_sb_global;
 
 struct chassis_features {
     bool mac_binding_timestamp;
-    bool ct_lb_related;
     bool fdb_timestamp;
     bool ls_dpg_column;
     bool ct_commit_nat_v2;
diff --git a/northd/inc-proc-northd.c b/northd/inc-proc-northd.c
index 180b2be3e9..522236ad2a 100644
--- a/northd/inc-proc-northd.c
+++ b/northd/inc-proc-northd.c
@@ -463,8 +463,6 @@ chassis_features_list(struct unixctl_conn *conn, int argc 
OVS_UNUSED,
     struct chassis_features *features = features_;
     struct ds ds = DS_EMPTY_INITIALIZER;
 
-    ds_put_format(&ds, "ct_lb_related:         %s\n",
-                  features->ct_lb_related ? "true" : "false");
     ds_put_format(&ds, "mac_binding_timestamp: %s\n",
                   features->mac_binding_timestamp ? "true" : "false");
     unixctl_command_reply(conn, ds_cstr(&ds));
diff --git a/northd/northd.c b/northd/northd.c
index 9cc6e6c14f..fcf8f277ac 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -6839,7 +6839,6 @@ build_acl_log_related_flows(const struct ovn_datapath *od,
 static void
 build_acls(const struct ls_stateful_record *ls_stateful_rec,
            const struct ovn_datapath *od,
-           const struct chassis_features *features,
            struct lflow_table *lflows,
            const struct ls_port_group_table *ls_port_groups,
            const struct shash *meter_groups,
@@ -6982,15 +6981,10 @@ build_acls(const struct ls_stateful_record 
*ls_stateful_rec,
          * related traffic such as an ICMP Port Unreachable through
          * that's generated from a non-listening UDP port.  */
         const char *ct_in_acl_action =
-            features->ct_lb_related
-            ? REGBIT_ACL_HINT_ALLOW_REL" = 1; "
-              REGBIT_ACL_VERDICT_ALLOW" = 1; ct_commit_nat;"
-            : REGBIT_ACL_HINT_ALLOW_REL" = 1; "
-              REGBIT_ACL_VERDICT_ALLOW" = 1; next;";
+            REGBIT_ACL_HINT_ALLOW_REL" = 1; "
+            REGBIT_ACL_VERDICT_ALLOW" = 1; ct_commit_nat;";
         const char *ct_out_acl_action =
-            features->ct_lb_related
-            ? REGBIT_ACL_VERDICT_ALLOW" = 1; ct_commit_nat;"
-            : REGBIT_ACL_VERDICT_ALLOW" = 1; next;";
+            REGBIT_ACL_VERDICT_ALLOW" = 1; ct_commit_nat;";
         ds_clear(&match);
         ds_put_format(&match, "!ct.est && ct.rel && !ct.new%s "
                               "&& ct_mark.blocked == 0",
@@ -15177,7 +15171,7 @@ build_lrouter_nat_defrag_and_lb(
      * a dynamically negotiated FTP data channel), but will allow
      * related traffic such as an ICMP Port Unreachable through
      * that's generated from a non-listening UDP port.  */
-    if (lr_stateful_rec->has_lb_vip && features->ct_lb_related) {
+    if (lr_stateful_rec->has_lb_vip) {
         ds_clear(match);
 
         ds_put_cstr(match, "ct.rel && !ct.est && !ct.new");
@@ -15197,18 +15191,16 @@ build_lrouter_nat_defrag_and_lb(
         ds_truncate(match, match_len);
         ovn_lflow_add(lflows, od, S_ROUTER_IN_DNAT, 50, ds_cstr(match),
                       "ct_commit_nat;", lflow_ref);
-    }
 
-    /* Ingress DNAT (Priority 50/70).
-     *
-     * Pass the traffic that is already established to the next table with
-     * proper flags set.
-     */
-    if (lr_stateful_rec->has_lb_vip) {
+        /* Ingress DNAT (Priority 50/70).
+         *
+         * Pass the traffic that is already established to the next table with
+         * proper flags set.
+         */
         ds_clear(match);
 
         ds_put_cstr(match, "ct.est && !ct.rel && !ct.new && ct_mark.natted");
-        size_t match_len = match->length;
+        match_len = match->length;
 
         ds_put_cstr(match, " && ct_mark.skip_snat == 1");
         ovn_lflow_add(lflows, od, S_ROUTER_IN_DNAT, 70, ds_cstr(match),
@@ -15768,7 +15760,6 @@ static void
 build_ls_stateful_flows(const struct ls_stateful_record *ls_stateful_rec,
                         const struct ovn_datapath *od,
                         const struct ls_port_group_table *ls_pgs,
-                        const struct chassis_features *features,
                         const struct shash *meter_groups,
                         struct lflow_table *lflows)
 {
@@ -15778,8 +15769,8 @@ build_ls_stateful_flows(const struct ls_stateful_record 
*ls_stateful_rec,
                                  ls_stateful_rec->lflow_ref);
     build_acl_hints(ls_stateful_rec, od, lflows,
                     ls_stateful_rec->lflow_ref);
-    build_acls(ls_stateful_rec, od, features, lflows, ls_pgs,
-               meter_groups, ls_stateful_rec->lflow_ref);
+    build_acls(ls_stateful_rec, od, lflows, ls_pgs, meter_groups,
+               ls_stateful_rec->lflow_ref);
     build_lb_hairpin(ls_stateful_rec, od, lflows, ls_stateful_rec->lflow_ref);
 }
 
@@ -16093,7 +16084,7 @@ build_lflows_thread(void *arg)
                                            &od->nbs->header_.uuid));
                     build_ls_stateful_flows(ls_stateful_rec, od,
                                             lsi->ls_port_groups,
-                                            lsi->features, lsi->meter_groups,
+                                            lsi->meter_groups,
                                             lsi->lflows);
                 }
             }
@@ -16312,7 +16303,7 @@ build_lswitch_and_lrouter_flows(
             ovs_assert(uuid_equals(&ls_stateful_rec->nbs_uuid,
                                    &od->nbs->header_.uuid));
             build_ls_stateful_flows(ls_stateful_rec, od, lsi.ls_port_groups,
-                                    lsi.features, lsi.meter_groups,
+                                    lsi.meter_groups,
                                     lsi.lflows);
         }
         stopwatch_stop(LFLOWS_LS_STATEFUL_STOPWATCH_NAME, time_msec());
@@ -16825,7 +16816,6 @@ lflow_handle_ls_stateful_changes(struct ovsdb_idl_txn 
*ovnsb_txn,
         /* Generate new lflows. */
         build_ls_stateful_flows(ls_stateful_rec, od,
                                 lflow_input->ls_port_groups,
-                                lflow_input->features,
                                 lflow_input->meter_groups,
                                 lflows);
 
diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
index c294d1a644..e345e6f591 100644
--- a/tests/ovn-northd.at
+++ b/tests/ovn-northd.at
@@ -5613,7 +5613,6 @@ AT_CHECK([grep "lr_out_snat" lr0flows | 
ovn_strip_lflows], [0], [dnl
 ])
 
 check ovn-sbctl chassis-add gw1 geneve 127.0.0.1 \
-  -- set chassis gw1 other_config:ovn-ct-lb-related="true" \
   -- set chassis gw1 other_config:ct-commit-to-zone="true"
 
 # Create a distributed gw port on lr0
@@ -9955,157 +9954,28 @@ check_row_count sb:Chassis_Template_Var 0
 AT_CLEANUP
 ])
 
-OVN_FOR_EACH_NORTHD_NO_HV([
-AT_SETUP([Load balancer CT related backwards compatibility])
-AT_KEYWORDS([lb])
-ovn_start
-
-check ovn-nbctl                                               \
-  -- ls-add ls                                                \
-  -- lr-add lr -- set logical_router lr options:chassis=local \
-  -- lb-add lb-test 192.168.0.1 192.168.1.10                  \
-  -- ls-lb-add ls lb-test                                     \
-  -- lr-lb-add lr lb-test
-
-AS_BOX([No chassis registered - CT related flows should be installed])
-check ovn-nbctl --wait=sb sync
-ovn-sbctl dump-flows | ovn_strip_lflows > lflows0
-
-AT_CHECK([grep -e "lr_in_defrag" -e "lr_in_dnat" lflows0], [0], [dnl
-  table=??(lr_in_defrag       ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_defrag       ), priority=100  , match=(ip && ip4.dst == 
192.168.0.1), action=(ct_dnat;)
-  table=??(lr_in_dnat         ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_dnat         ), priority=110  , match=(ct.new && !ct.rel && 
ip4 && ip4.dst == 192.168.0.1), action=(ct_lb_mark(backends=192.168.1.10);)
-  table=??(lr_in_dnat         ), priority=50   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted), action=(next;)
-  table=??(lr_in_dnat         ), priority=50   , match=(ct.rel && !ct.est && 
!ct.new), action=(ct_commit_nat;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.force_snat == 1), 
action=(flags.force_snat_for_lb = 1; next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.skip_snat == 1), 
action=(flags.skip_snat_for_lb = 1; next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.rel && !ct.est && 
!ct.new && ct_mark.force_snat == 1), action=(flags.force_snat_for_lb = 1; 
ct_commit_nat;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.rel && !ct.est && 
!ct.new && ct_mark.skip_snat == 1), action=(flags.skip_snat_for_lb = 1; 
ct_commit_nat;)
-])
-
-AT_CHECK([grep -e "ls_in_acl" -e "ls_out_acl" lflows0 | grep 
"priority=65532"], [0], [dnl
-  table=??(ls_in_acl_after_lb_eval), priority=65532, match=(nd || nd_ra || 
nd_rs || mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_after_lb_eval), priority=65532, match=(reg0[[17]] == 1), 
action=(reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(!ct.est && ct.rel && 
!ct.new && !ct.inv && ct_mark.blocked == 0), action=(reg0[[17]] = 1; reg8[[16]] 
= 1; ct_commit_nat;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(ct.est && !ct.rel && 
!ct.new && !ct.inv && ct.rpl && ct_mark.blocked == 0), action=(reg0[[9]] = 0; 
reg0[[10]] = 0; reg0[[17]] = 1; reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(ct.inv || (ct.est && 
ct.rpl && ct_mark.blocked == 1)), action=(reg8[[17]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(nd || nd_ra || nd_rs 
|| mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(!ct.est && ct.rel && 
!ct.new && !ct.inv && ct_mark.blocked == 0), action=(reg8[[16]] = 1; 
ct_commit_nat;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(ct.est && !ct.rel && 
!ct.new && !ct.inv && ct.rpl && ct_mark.blocked == 0), action=(reg8[[16]] = 1; 
next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(ct.inv || (ct.est && 
ct.rpl && ct_mark.blocked == 1)), action=(reg8[[17]] = 1; next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(nd || nd_ra || nd_rs 
|| mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-])
-
-
-AS_BOX([Chassis registered that doesn't support CT related])
-check ovn-sbctl chassis-add hv geneve 127.0.0.1
-check ovn-nbctl --wait=sb sync
-ovn-sbctl dump-flows | ovn_strip_lflows > lflows1
-
-AT_CHECK([grep -e "lr_in_defrag" -e "lr_in_dnat" lflows1], [0], [dnl
-  table=??(lr_in_defrag       ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_defrag       ), priority=100  , match=(ip && ip4.dst == 
192.168.0.1), action=(ct_dnat;)
-  table=??(lr_in_dnat         ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_dnat         ), priority=110  , match=(ct.new && !ct.rel && 
ip4 && ip4.dst == 192.168.0.1), action=(ct_lb_mark(backends=192.168.1.10);)
-  table=??(lr_in_dnat         ), priority=50   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted), action=(next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.force_snat == 1), 
action=(flags.force_snat_for_lb = 1; next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.skip_snat == 1), 
action=(flags.skip_snat_for_lb = 1; next;)
-])
-
-check ovn-nbctl --wait=sb set logical_router lr 
options:lb_force_snat_ip="192.168.1.1"
-AT_CHECK([ovn-sbctl lflow-list | grep lr_in_dnat | ovn_strip_lflows], [0], [dnl
-  table=??(lr_in_dnat         ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_dnat         ), priority=110  , match=(ct.new && !ct.rel && 
ip4 && ip4.dst == 192.168.0.1), action=(flags.force_snat_for_lb = 1; 
ct_lb_mark(backends=192.168.1.10; force_snat);)
-  table=??(lr_in_dnat         ), priority=50   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted), action=(next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.force_snat == 1), 
action=(flags.force_snat_for_lb = 1; next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.skip_snat == 1), 
action=(flags.skip_snat_for_lb = 1; next;)
-])
-check ovn-nbctl remove logical_router lr options lb_force_snat_ip
-
-check ovn-nbctl --wait=sb set load_balancer lb-test options:skip_snat="true"
-AT_CHECK([ovn-sbctl lflow-list | grep lr_in_dnat | ovn_strip_lflows], [0], [dnl
-  table=??(lr_in_dnat         ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_dnat         ), priority=110  , match=(ct.new && !ct.rel && 
ip4 && ip4.dst == 192.168.0.1), action=(flags.skip_snat_for_lb = 1; 
ct_lb_mark(backends=192.168.1.10; skip_snat);)
-  table=??(lr_in_dnat         ), priority=50   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted), action=(next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.force_snat == 1), 
action=(flags.force_snat_for_lb = 1; next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.skip_snat == 1), 
action=(flags.skip_snat_for_lb = 1; next;)
-])
-check ovn-nbctl remove load_balancer lb-test options skip_snat
-
-AT_CHECK([grep -e "ls_in_acl" -e "ls_out_acl" lflows1 | grep 
"priority=65532"], [0], [dnl
-  table=??(ls_in_acl_after_lb_eval), priority=65532, match=(nd || nd_ra || 
nd_rs || mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_after_lb_eval), priority=65532, match=(reg0[[17]] == 1), 
action=(reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(!ct.est && ct.rel && 
!ct.new && !ct.inv && ct_mark.blocked == 0), action=(reg0[[17]] = 1; reg8[[16]] 
= 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(ct.est && !ct.rel && 
!ct.new && !ct.inv && ct.rpl && ct_mark.blocked == 0), action=(reg0[[9]] = 0; 
reg0[[10]] = 0; reg0[[17]] = 1; reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(ct.inv || (ct.est && 
ct.rpl && ct_mark.blocked == 1)), action=(reg8[[17]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(nd || nd_ra || nd_rs 
|| mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(!ct.est && ct.rel && 
!ct.new && !ct.inv && ct_mark.blocked == 0), action=(reg8[[16]] = 1; next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(ct.est && !ct.rel && 
!ct.new && !ct.inv && ct.rpl && ct_mark.blocked == 0), action=(reg8[[16]] = 1; 
next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(ct.inv || (ct.est && 
ct.rpl && ct_mark.blocked == 1)), action=(reg8[[17]] = 1; next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(nd || nd_ra || nd_rs 
|| mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-])
-
-AS_BOX([Chassis upgrades and supports CT related])
-check ovn-sbctl set chassis hv other_config:ovn-ct-lb-related=true
-check ovn-nbctl --wait=sb sync
-ovn-sbctl dump-flows | ovn_strip_lflows > lflows2
-
-AT_CHECK([grep -e "lr_in_defrag" -e "lr_in_dnat" lflows2], [0], [dnl
-  table=??(lr_in_defrag       ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_defrag       ), priority=100  , match=(ip && ip4.dst == 
192.168.0.1), action=(ct_dnat;)
-  table=??(lr_in_dnat         ), priority=0    , match=(1), action=(next;)
-  table=??(lr_in_dnat         ), priority=110  , match=(ct.new && !ct.rel && 
ip4 && ip4.dst == 192.168.0.1), action=(ct_lb_mark(backends=192.168.1.10);)
-  table=??(lr_in_dnat         ), priority=50   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted), action=(next;)
-  table=??(lr_in_dnat         ), priority=50   , match=(ct.rel && !ct.est && 
!ct.new), action=(ct_commit_nat;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.force_snat == 1), 
action=(flags.force_snat_for_lb = 1; next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.est && !ct.rel && 
!ct.new && ct_mark.natted && ct_mark.skip_snat == 1), 
action=(flags.skip_snat_for_lb = 1; next;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.rel && !ct.est && 
!ct.new && ct_mark.force_snat == 1), action=(flags.force_snat_for_lb = 1; 
ct_commit_nat;)
-  table=??(lr_in_dnat         ), priority=70   , match=(ct.rel && !ct.est && 
!ct.new && ct_mark.skip_snat == 1), action=(flags.skip_snat_for_lb = 1; 
ct_commit_nat;)
-])
-
-AT_CHECK([grep -e "ls_in_acl" -e "ls_out_acl" lflows2 | grep 
"priority=65532"], [0], [dnl
-  table=??(ls_in_acl_after_lb_eval), priority=65532, match=(nd || nd_ra || 
nd_rs || mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_after_lb_eval), priority=65532, match=(reg0[[17]] == 1), 
action=(reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(!ct.est && ct.rel && 
!ct.new && !ct.inv && ct_mark.blocked == 0), action=(reg0[[17]] = 1; reg8[[16]] 
= 1; ct_commit_nat;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(ct.est && !ct.rel && 
!ct.new && !ct.inv && ct.rpl && ct_mark.blocked == 0), action=(reg0[[9]] = 0; 
reg0[[10]] = 0; reg0[[17]] = 1; reg8[[16]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(ct.inv || (ct.est && 
ct.rpl && ct_mark.blocked == 1)), action=(reg8[[17]] = 1; next;)
-  table=??(ls_in_acl_eval     ), priority=65532, match=(nd || nd_ra || nd_rs 
|| mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(!ct.est && ct.rel && 
!ct.new && !ct.inv && ct_mark.blocked == 0), action=(reg8[[16]] = 1; 
ct_commit_nat;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(ct.est && !ct.rel && 
!ct.new && !ct.inv && ct.rpl && ct_mark.blocked == 0), action=(reg8[[16]] = 1; 
next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(ct.inv || (ct.est && 
ct.rpl && ct_mark.blocked == 1)), action=(reg8[[17]] = 1; next;)
-  table=??(ls_out_acl_eval    ), priority=65532, match=(nd || nd_ra || nd_rs 
|| mldv1 || mldv2), action=(reg8[[16]] = 1; next;)
-])
-
-AT_CLEANUP
-])
-
 OVN_FOR_EACH_NORTHD_NO_HV([
 AT_SETUP([Chassis-feature compatibitility - remote chassis])
 ovn_start
 
 AS_BOX([Local chassis])
 check ovn-sbctl chassis-add hv1 geneve 127.0.0.1 \
-  -- set chassis hv1 other_config:ovn-ct-lb-related=true \
   -- set chassis hv1 other_config:mac-binding-timestamp=true
 
 check ovn-nbctl --wait=sb sync
 
 AT_CHECK([as northd ovn-appctl -t ovn-northd debug/chassis-features-list], 
[0], [dnl
-ct_lb_related:         true
 mac_binding_timestamp: true
 ])
 
 AS_BOX([Remote chassis])
 check ovn-sbctl chassis-add hv2 geneve 127.0.0.2 \
   -- set chassis hv2 other_config:is-remote=true \
-  -- set chassis hv2 other_config:ovn-ct-lb-related=false \
   -- set chassis hv2 other_config:mac-binding-timestamp=false
 
 check ovn-nbctl --wait=sb sync
 
 AT_CHECK([as northd ovn-appctl -t ovn-northd debug/chassis-features-list], 
[0], [dnl
-ct_lb_related:         true
 mac_binding_timestamp: true
 ])
 
-- 
2.44.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to