[dpdk-dev] [PATCH 04/13] acl: allow zero verdict

Ananyev, Konstantin konstantin.ananyev at intel.com
Tue Dec 13 11:36:16 CET 2016


Hi Michal,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Michal Miroslaw
> Sent: Tuesday, December 13, 2016 1:08 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH 04/13] acl: allow zero verdict
> 
> Signed-off-by: Michał Mirosław <michal.miroslaw at atendesoftware.pl>
> ---
>  lib/librte_acl/rte_acl.c         | 3 +--
>  lib/librte_acl/rte_acl.h         | 2 --
>  lib/librte_table/rte_table_acl.c | 2 +-
>  3 files changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/librte_acl/rte_acl.c b/lib/librte_acl/rte_acl.c
> index 8b7e92c..d1f40be 100644
> --- a/lib/librte_acl/rte_acl.c
> +++ b/lib/librte_acl/rte_acl.c
> @@ -313,8 +313,7 @@ acl_check_rule(const struct rte_acl_rule_data *rd)
>  	if ((RTE_LEN2MASK(RTE_ACL_MAX_CATEGORIES, typeof(rd->category_mask)) &
>  			rd->category_mask) == 0 ||
>  			rd->priority > RTE_ACL_MAX_PRIORITY ||
> -			rd->priority < RTE_ACL_MIN_PRIORITY ||
> -			rd->userdata == RTE_ACL_INVALID_USERDATA)
> +			rd->priority < RTE_ACL_MIN_PRIORITY)
>  		return -EINVAL;
>  	return 0;
>  }

I am not sure, how it supposed to work properly?
Zero value is reserved and ifnicates that no match were found for that input.
Konstantin


> diff --git a/lib/librte_acl/rte_acl.h b/lib/librte_acl/rte_acl.h
> index caa91f7..b53179a 100644
> --- a/lib/librte_acl/rte_acl.h
> +++ b/lib/librte_acl/rte_acl.h
> @@ -120,8 +120,6 @@ enum {
>  	RTE_ACL_MIN_PRIORITY = 0,
>  };
> 
> -#define	RTE_ACL_INVALID_USERDATA	0
> -
>  #define	RTE_ACL_MASKLEN_TO_BITMASK(v, s)	\
>  ((v) == 0 ? (v) : (typeof(v))((uint64_t)-1 << ((s) * CHAR_BIT - (v))))
> 
> diff --git a/lib/librte_table/rte_table_acl.c b/lib/librte_table/rte_table_acl.c
> index 8f1f8ce..94b69a9 100644
> --- a/lib/librte_table/rte_table_acl.c
> +++ b/lib/librte_table/rte_table_acl.c
> @@ -792,7 +792,7 @@ rte_table_acl_lookup(
> 
>  		pkts_mask &= ~pkt_mask;
> 
> -		if (action_table_pos != RTE_ACL_INVALID_USERDATA) {
> +		if (action_table_pos != 0) {
>  			pkts_out_mask |= pkt_mask;
>  			entries[pkt_pos] = (void *)
>  				&acl->memory[action_table_pos *
> --
> 2.10.2



More information about the dev mailing list