[dpdk-dev] [PATCH v3] ethdev: increase flow type limit from 32 to 64

Thomas Monjalon thomas at monjalon.net
Mon Jan 15 22:27:29 CET 2018


15/01/2018 18:33, Kirill Rybalchenko:
> --- a/lib/librte_ether/rte_eth_ctrl.h
> +++ b/lib/librte_ether/rte_eth_ctrl.h
> @@ -662,9 +662,9 @@ enum rte_fdir_mode {
>         RTE_FDIR_MODE_PERFECT_TUNNEL,   /**< Enable FDIR filter mode - tunnel. */
>  };
>  
> -#define UINT32_BIT (CHAR_BIT * sizeof(uint32_t))
> +#define UINT64_BIT (CHAR_BIT * sizeof(uint64_t))
>  #define RTE_FLOW_MASK_ARRAY_SIZE \
> -       (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT32_BIT)/UINT32_BIT)
> +       (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT64_BIT)/UINT64_BIT)
>  
>  /**
>   * A structure used to get the information of flow director filter.
> @@ -681,7 +681,7 @@ struct rte_eth_fdir_info {
>         uint32_t guarant_spc; /**< Guaranteed spaces.*/
>         uint32_t best_spc; /**< Best effort spaces.*/
>         /** Bit mask for every supported flow type. */
> -       uint32_t flow_types_mask[RTE_FLOW_MASK_ARRAY_SIZE];
> +       uint64_t flow_types_mask[RTE_FLOW_MASK_ARRAY_SIZE];
>         uint32_t max_flexpayload; /**< Total flex payload in bytes. */
>         /** Flexible payload unit in bytes. Size and alignments of all flex
>             payload segments should be multiplies of this value. */
> @@ -774,7 +774,7 @@ enum rte_eth_hash_function {
>  };
>  
>  #define RTE_SYM_HASH_MASK_ARRAY_SIZE \
> -       (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT32_BIT)/UINT32_BIT)
> +       (RTE_ALIGN(RTE_ETH_FLOW_MAX, UINT64_BIT)/UINT64_BIT)
>  /**
>   * A structure used to set or get global hash function configurations which
>   * include symmetric hash enable per flow type and hash function type.
> @@ -787,9 +787,9 @@ enum rte_eth_hash_function {
>  struct rte_eth_hash_global_conf {
>         enum rte_eth_hash_function hash_func; /**< Hash function type */
>         /** Bit mask for symmetric hash enable per flow type */
> -       uint32_t sym_hash_enable_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
> +       uint64_t sym_hash_enable_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
>         /** Bit mask indicates if the corresponding bit is valid */
> -       uint32_t valid_bit_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
> +       uint64_t valid_bit_mask[RTE_SYM_HASH_MASK_ARRAY_SIZE];
>  };

This is still changing the ABI.
Am I missing something?




More information about the dev mailing list