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

Michal Miroslaw mirq-linux at rere.qmqm.pl
Tue Dec 13 14:54:43 CET 2016


On Tue, Dec 13, 2016 at 10:36:16AM +0000, Ananyev, Konstantin wrote:
> 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.
 
This is actually in use by us. In our use we don't need to differentiate
matching a rule with zero verdict vs not matching a rule at all. I also
have a patch that changes the value returned in non-matching case, but
it's in "dirty hack" state, as of yet.

The ACL code does not treat zero userdata specially, so this is only
a policy choice and as such would be better to be made by the user.

Best Regards,
Michał Mirosław


More information about the dev mailing list