On Fri, Jul 12, 2024 at 5:15 PM Dumitru Ceara <dce...@redhat.com> wrote:

> 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
>
>
Looks good to me, thanks.

Acked-by: Ales Musil <amu...@redhat.com>
-- 

Ales Musil

Senior Software Engineer - OVN Core

Red Hat EMEA <https://www.redhat.com>

amu...@redhat.com
<https://red.ht/sig>
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to