On 7/31/24 11:05, Dumitru Ceara wrote:
> From: Ales Musil <[email protected]>
> 
> Add detection for sample action that allows to configure
> obs_domain_id and obs_point_id via registers. This feature
> is available only from OvS version 3.4.
> 
> Signed-off-by: Ales Musil <[email protected]>
> ---
>  controller/chassis.c      | 10 +++++
>  include/ovn/features.h    |  3 ++
>  lib/features.c            | 91 +++++++++++++++++++++++++++++++++++++++
>  northd/en-global-config.c | 10 +++++
>  northd/en-global-config.h |  1 +
>  5 files changed, 115 insertions(+)
> 
> diff --git a/controller/chassis.c b/controller/chassis.c
> index 4942ba281d..1aa51b9d6c 100644
> --- a/controller/chassis.c
> +++ b/controller/chassis.c
> @@ -372,6 +372,9 @@ chassis_build_other_config(const struct ovs_chassis_cfg 
> *ovs_cfg,
>      smap_replace(config, OVN_FEATURE_LS_DPG_COLUMN, "true");
>      smap_replace(config, OVN_FEATURE_CT_COMMIT_NAT_V2, "true");
>      smap_replace(config, OVN_FEATURE_CT_COMMIT_TO_ZONE, "true");
> +    bool sample = ovs_feature_is_supported(OVS_DP_SAMPLE_REG_SUPPORT);
> +    smap_replace(config, OVN_FEATURE_SAMPLE_WITH_REGISTERS,
> +                 sample ? "true" : "false");
>  }
>  
>  /*
> @@ -523,6 +526,12 @@ chassis_other_config_changed(const struct 
> ovs_chassis_cfg *ovs_cfg,
>          return true;
>      }
>  
> +    if (!smap_get_bool(&chassis_rec->other_config,
> +                       OVN_FEATURE_SAMPLE_WITH_REGISTERS,
> +                       false)) {
> +        return true;
> +    }
> +
>      return false;
>  }
>  
> @@ -656,6 +665,7 @@ update_supported_sset(struct sset *supported)
>      sset_add(supported, OVN_FEATURE_LS_DPG_COLUMN);
>      sset_add(supported, OVN_FEATURE_CT_COMMIT_NAT_V2);
>      sset_add(supported, OVN_FEATURE_CT_COMMIT_TO_ZONE);
> +    sset_add(supported, OVN_FEATURE_SAMPLE_WITH_REGISTERS);
>  }
>  
>  static void
> diff --git a/include/ovn/features.h b/include/ovn/features.h
> index 7b67b2f777..5c90a36450 100644
> --- a/include/ovn/features.h
> +++ b/include/ovn/features.h
> @@ -29,6 +29,7 @@
>  #define OVN_FEATURE_LS_DPG_COLUMN "ls-dpg-column"
>  #define OVN_FEATURE_CT_COMMIT_NAT_V2 "ct-commit-nat-v2"
>  #define OVN_FEATURE_CT_COMMIT_TO_ZONE "ct-commit-to-zone"
> +#define OVN_FEATURE_SAMPLE_WITH_REGISTERS "ovn-sample-with-registers"
>  
>  /* OVS datapath supported features.  Based on availability OVN might generate
>   * different types of openflows.
> @@ -39,6 +40,7 @@ enum ovs_feature_support_bits {
>      OVS_CT_TUPLE_FLUSH_BIT,
>      OVS_DP_HASH_L4_SYM_BIT,
>      OVS_DP_GROUP_SUPPORT_BIT,
> +    OVS_DP_SAMPLE_REG_SUPPORT_BIT,
>  };
>  
>  enum ovs_feature_value {
> @@ -47,6 +49,7 @@ enum ovs_feature_value {
>      OVS_CT_TUPLE_FLUSH_SUPPORT = (1 << OVS_CT_TUPLE_FLUSH_BIT),
>      OVS_DP_HASH_L4_SYM_SUPPORT = (1 << OVS_DP_HASH_L4_SYM_BIT),
>      OVS_DP_GROUP_SUPPORT = (1 << OVS_DP_GROUP_SUPPORT_BIT),
> +    OVS_DP_SAMPLE_REG_SUPPORT = (1 << OVS_DP_SAMPLE_REG_SUPPORT_BIT),

Same here.  The 'DP' part makes no sense as this is feature has
nothing to do with the datapath implementation.

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to