DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: Michal Miroslaw <mirq-linux@rere.qmqm.pl>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v2] acl: allow zero verdict
Date: Mon, 19 Dec 2016 18:54:35 +0000	[thread overview]
Message-ID: <2601191342CEEE43887BDE71AB9772583F0F29AB@irsmsx105.ger.corp.intel.com> (raw)
In-Reply-To: <99ef4a0f436d441f583cca560b2bde2f1de01648.1481735746.git.mirq-linux@rere.qmqm.pl>



> -----Original Message-----
> From: Michał Mirosław [mailto:mirq-linux@rere.qmqm.pl]
> Sent: Wednesday, December 14, 2016 5:24 PM
> To: dev@dpdk.org
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>
> Subject: [PATCH v2] acl: allow zero verdict
> 
> Signed-off-by: Michał Mirosław <michal.miroslaw@atendesoftware.pl>
> ---
> v2: fixes prog_guide and ACL tests
> 
> ---
>  app/test/test_acl.c                                  | 13 -------------
>  doc/guides/prog_guide/packet_classif_access_ctrl.rst |  3 ++-
>  lib/librte_acl/rte_acl.c                             |  3 +--
>  lib/librte_acl/rte_acl.h                             |  2 --
>  lib/librte_table/rte_table_acl.c                     |  2 +-
>  5 files changed, 4 insertions(+), 19 deletions(-)
> 
> diff --git a/app/test/test_acl.c b/app/test/test_acl.c
> index be744ec..c6b511f 100644
> --- a/app/test/test_acl.c
> +++ b/app/test/test_acl.c
> @@ -1357,19 +1357,6 @@ test_invalid_rules(void)
>  		goto err;
>  	}
> 
> -	rule.dst_mask_len = 0;
> -	rule.src_mask_len = 0;
> -	rule.data.userdata = 0;
> -
> -	/* try adding this rule (it should fail because userdata is invalid) */
> -	ret = rte_acl_ipv4vlan_add_rules(acx, &rule, 1);
> -	if (ret == 0) {
> -		printf("Line %i: Adding a rule with invalid user data "
> -				"should have failed!\n", __LINE__);
> -		rte_acl_free(acx);
> -		return -1;
> -	}
> -
>  	rte_acl_free(acx);
> 
>  	return 0;
> diff --git a/doc/guides/prog_guide/packet_classif_access_ctrl.rst b/doc/guides/prog_guide/packet_classif_access_ctrl.rst
> index 5fd3d34..a6bee9b 100644
> --- a/doc/guides/prog_guide/packet_classif_access_ctrl.rst
> +++ b/doc/guides/prog_guide/packet_classif_access_ctrl.rst
> @@ -329,8 +329,9 @@ When creating a set of rules, for each rule, additional information must be supp
>      Each set could be assigned its own category and by combining them into a single database,
>      one lookup returns a result for each of the four sets.
> 
> -*   **userdata**: A user-defined field that could be any value except zero.
> +*   **userdata**: A user-defined value.
>      For each category, a successful match returns the userdata field of the highest priority matched rule.
> +    When no rules match, returned value is zero.

Might be good to add some extra explanation here:
"When no rules match, returned value is zero.
So while rules with userdata equal zero are allowed,
such rules would always return 'no match' found when hit."
Or might be some better wording could be found.
Konstantin
 
> 
>  .. note::
> 
> 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;
>  }
> 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


      reply	other threads:[~2016-12-19 18:54 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-13  1:08 [dpdk-dev] [PATCH 00/13] Fixes and tweaks Michał Mirosław
2016-12-13  1:08 ` [dpdk-dev] [PATCH 02/13] mbuf: rte_pktmbuf_free_bulk() Michał Mirosław
2016-12-13 21:41   ` Stephen Hemminger
2016-12-14  2:09     ` Michał Mirosław
2016-12-13  1:08 ` [dpdk-dev] [PATCH 01/13] EAL: count nr_overcommit_hugepages as available Michał Mirosław
     [not found]   ` <20161213010852.862C4376C@dpdk.org>
2016-12-13  1:28     ` [dpdk-dev] [PATCH v2 " Michał Mirosław
2017-04-30 15:53       ` Thomas Monjalon
2017-05-04 18:43         ` Michał Mirosław
2019-01-17 17:18           ` Ferruh Yigit
2016-12-13  1:08 ` [dpdk-dev] [PATCH 05/13] acl: fix acl_flow_data comments Michał Mirosław
2016-12-13 10:43   ` Ananyev, Konstantin
2017-01-30 10:15     ` Thomas Monjalon
2016-12-13  1:08 ` [dpdk-dev] [PATCH 03/13] rte_ether: set PKT_RX_VLAN_STRIPPED in rte_vlan_strip() Michał Mirosław
2017-01-30  9:54   ` Thomas Monjalon
2017-02-09 15:56     ` Olivier MATZ
2017-04-30 15:58       ` Thomas Monjalon
2017-05-04  7:30         ` Olivier MATZ
2017-05-04 22:36           ` [dpdk-dev] [PATCH v2] net: fix stripped VLAN flag for offload emulation Thomas Monjalon
2017-05-05 10:02             ` Olivier Matz
2017-05-05 14:00               ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
2016-12-13  1:08 ` [dpdk-dev] [PATCH 06/13] null: fake PMD capabilities Michał Mirosław
     [not found]   ` <20161213010913.34C8B5597@dpdk.org>
2016-12-13  1:28     ` [dpdk-dev] [PATCH v2 " Michał Mirosław
2016-12-13  1:35   ` [dpdk-dev] [-- " Michał Mirosław
2016-12-13 10:48   ` [dpdk-dev] [PATCH " Ananyev, Konstantin
2016-12-13 14:26     ` Michal Miroslaw
2016-12-13 14:37       ` Ananyev, Konstantin
2016-12-13 14:57         ` Michal Miroslaw
2016-12-13 17:12           ` Ananyev, Konstantin
2016-12-13 17:31             ` Ferruh Yigit
2016-12-14 19:16   ` [dpdk-dev] [PATCH v4] " Michał Mirosław
2017-01-09 12:07     ` Ferruh Yigit
2017-01-11 10:14       ` Michał Mirosław
2017-01-11 12:23         ` Ferruh Yigit
2016-12-13  1:08 ` [dpdk-dev] [PATCH 04/13] acl: allow zero verdict Michał Mirosław
2016-12-13 10:36   ` Ananyev, Konstantin
2016-12-13 13:54     ` Michal Miroslaw
2016-12-13 14:14       ` Ananyev, Konstantin
2016-12-13 14:53         ` Michal Miroslaw
2016-12-13 15:13           ` Ananyev, Konstantin
2016-12-13 16:14             ` Michal Miroslaw
2016-12-13 16:43               ` Michal Miroslaw
2016-12-13 17:27               ` Ananyev, Konstantin
2016-12-13 18:02                 ` Michal Miroslaw
2016-12-13 21:55                   ` Ananyev, Konstantin
2016-12-14  2:11                     ` Michal Miroslaw
2016-12-14 12:16                       ` Ananyev, Konstantin
2016-12-13  1:08 ` [dpdk-dev] [PATCH 07/13] pcap: fix timestamps in output pcap file Michał Mirosław
2016-12-14 17:45   ` Ferruh Yigit
2016-12-16 10:06     ` Ferruh Yigit
2016-12-13  1:08 ` [dpdk-dev] [PATCH 08/13] PMD/af_packet: guard against buffer overruns in RX path Michał Mirosław
     [not found]   ` <20161213010918.F1B095684@dpdk.org>
2016-12-13  1:28     ` [dpdk-dev] [PATCH v2 " Michał Mirosław
2016-12-13 16:05       ` John W. Linville
2016-12-16 10:32         ` Ferruh Yigit
2017-01-18 11:48   ` [dpdk-dev] [PATCH " Ferruh Yigit
2017-01-18 19:22     ` Michał Mirosław
2016-12-13  1:08 ` [dpdk-dev] [PATCH 10/13] KNI: provided netif name's source is user-space Michał Mirosław
2016-12-14 17:06   ` Ferruh Yigit
2016-12-14 17:19     ` Michał Mirosław
2016-12-14 17:35       ` Ferruh Yigit
2016-12-14 17:35         ` Ferruh Yigit
2017-01-29 21:50           ` Thomas Monjalon
2016-12-13  1:08 ` [dpdk-dev] [PATCH 09/13] PMD/af_packet: guard against buffer overruns in TX path Michał Mirosław
     [not found]   ` <20161213010927.9B12CFA30@dpdk.org>
2016-12-13  1:28     ` [dpdk-dev] [PATCH v2 " Michał Mirosław
2016-12-13 16:06       ` John W. Linville
2016-12-16 10:32         ` Ferruh Yigit
2016-12-13  1:08 ` [dpdk-dev] [PATCH 12/13] i40e: return -errno when intr setup fails Michał Mirosław
2016-12-22 15:45   ` Ferruh Yigit
2016-12-23  1:55     ` Michał Mirosław
2016-12-28  3:47   ` Wu, Jingjing
2017-01-11 16:09     ` Ferruh Yigit
2016-12-13  1:08 ` [dpdk-dev] [PATCH 13/13] i40e: improve message grepability Michał Mirosław
2016-12-28  3:51   ` Wu, Jingjing
2017-01-09 12:02     ` Bruce Richardson
2017-01-09 13:18       ` Thomas Monjalon
2017-01-09 17:25         ` Stephen Hemminger
2017-01-09 14:11   ` Ferruh Yigit
2017-01-11  9:49   ` [dpdk-dev] [PATCH] " Michał Mirosław
2017-01-11 16:05     ` Ferruh Yigit
2017-01-11 17:13   ` [dpdk-dev] [PATCH v3 1/1] " Michał Mirosław
2017-01-11 17:50     ` Ferruh Yigit
2017-01-11 17:52       ` Ferruh Yigit
2016-12-13  1:08 ` [dpdk-dev] [PATCH 11/13] KNI: guard against unterminated dev_info.name leading to BUG in alloc_netdev() Michał Mirosław
2016-12-14 17:33   ` Ferruh Yigit
2016-12-14 17:37     ` Michał Mirosław
2016-12-14 17:48       ` Ferruh Yigit
2017-01-29 21:53     ` Thomas Monjalon
2016-12-14 17:23 ` [dpdk-dev] [PATCH] acl: remove invalid test Michał Mirosław
2016-12-19 18:48   ` Ananyev, Konstantin
2016-12-23  1:47     ` Michal Miroslaw
2016-12-23  9:36       ` Ananyev, Konstantin
2017-01-17 15:24         ` Thomas Monjalon
2017-01-18  9:51           ` Ananyev, Konstantin
2017-01-18 19:21             ` Michal Miroslaw
2016-12-14 17:23 ` [dpdk-dev] [PATCH v2] acl: allow zero verdict Michał Mirosław
2016-12-19 18:54   ` Ananyev, Konstantin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2601191342CEEE43887BDE71AB9772583F0F29AB@irsmsx105.ger.corp.intel.com \
    --to=konstantin.ananyev@intel.com \
    --cc=dev@dpdk.org \
    --cc=mirq-linux@rere.qmqm.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).