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