All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Alexander Kozyrev <akozyrev@nvidia.com>
Cc: dev@dpdk.org, ferruh.yigit@amd.com,
	andrew.rybchenko@oktetlabs.ru, orika@nvidia.com
Subject: Re: [RFC] ethdev: add template table insertion and matching types
Date: Wed, 18 Jan 2023 09:50:47 +0100	[thread overview]
Message-ID: <16865748.Ash8RoxBsO@thomas> (raw)
In-Reply-To: <20221214022110.393410-1-akozyrev@nvidia.com>

14/12/2022 03:21, Alexander Kozyrev:
> Bring more flexibility and control over both flow rule insertion
> and packet matching mechanisms. Introduce 2 new flow table types:
> 
> 1. Allow a user to specify the insertion type used in template tables.
> The insertion type is responsible for choosing the appropriate key
> value used to map inserted flow rules into a template table.
> 
> Flow rules can be inserted by calculating the hash value for
> the pattern or inserted by index via the new create_by_index() API.
> The idea of the index-based insertion is to avoid additional matches
> and simply execute predefined actions after jumping to the index.

I don't understand the idea.
Why is it avoiding additional matches?

> The insertion to an already existing index is undefined and

Why is it undefined?

> depends on PMD implementation. An old rule must be destroyed first.
> The index cannot be bigger than the size of the table.
> 
> 2. Allow a user to specify the hash calculation function used in template
> tables. The hash calculation type is responsible for the calculation of
> the flow rule index a packet would hit upon arrival at the table.
> 
> Control over this is useful for applications with custom RSS algorithms,
> for example. An application can select various packet fields to serve as
> a hash calculation source and jump to the appropriate flow rule location.
> The RSS hash result will be used as the index in the table. For the linear
> hash function, the mapping is one-to-one and the hash result is the index.
> For other hash functions, the index is the hash result module table size.
> The RSS hash result can be retrieved via modify_field API: HASH_RESULT.
> 
> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> ---
>  doc/guides/prog_guide/rte_flow.rst | 20 +++++++
>  lib/ethdev/rte_flow.c              | 24 ++++++++
>  lib/ethdev/rte_flow.h              | 96 ++++++++++++++++++++++++++++++
>  lib/ethdev/rte_flow_driver.h       | 11 ++++
>  lib/ethdev/version.map             |  3 +
>  5 files changed, 154 insertions(+)

Is there a PMD implementation available on the mailing list?
This is required to accept a new API.



  parent reply	other threads:[~2023-01-18  8:50 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-14  2:21 [RFC] ethdev: add template table insertion and matching types Alexander Kozyrev
2023-01-08 14:22 ` Ori Kam
2023-01-18  8:50 ` Thomas Monjalon [this message]
2023-01-20 23:06   ` Alexander Kozyrev
2023-01-22 20:55     ` Thomas Monjalon
2023-01-23 22:02       ` Alexander Kozyrev
2023-01-30 14:47         ` Thomas Monjalon
2023-01-21  5:21 ` [PATCH 0/4] " Alexander Kozyrev
2023-01-21  5:21   ` [PATCH 1/4] ethdev: add template table insertion type Alexander Kozyrev
2023-01-21  5:21   ` [PATCH 2/4] ethdev: add template table hash calculation function Alexander Kozyrev
2023-01-21  5:21   ` [PATCH 3/4] app/testpmd: add template table insertion type Alexander Kozyrev
2023-01-21  5:21   ` [PATCH 4/4] app/testpmd: add template table hash calculation function Alexander Kozyrev
2023-01-26 23:27   ` [PATCH v2 0/4] ethdev: add template table insertion and matching types Alexander Kozyrev
2023-01-26 23:27     ` [PATCH v2 1/4] ethdev: add template table insertion type Alexander Kozyrev
2023-02-02 10:57       ` Andrew Rybchenko
2023-02-07 15:06         ` Alexander Kozyrev
2023-01-26 23:28     ` [PATCH v2 2/4] ethdev: add template table hash calculation function Alexander Kozyrev
2023-01-26 23:28     ` [PATCH v2 3/4] app/testpmd: add template table insertion type Alexander Kozyrev
2023-01-26 23:28     ` [PATCH v2 4/4] app/testpmd: add template table hash calculation function Alexander Kozyrev
2023-02-01 16:09     ` [PATCH v2 0/4] ethdev: add template table insertion and matching types Ori Kam
2023-02-08  2:47     ` [PATCH v3 " Alexander Kozyrev
2023-02-08  2:47       ` [PATCH v3 1/4] ethdev: add template table insertion type Alexander Kozyrev
2023-02-08  2:47       ` [PATCH v3 2/4] ethdev: add template table hash calculation function Alexander Kozyrev
2023-02-08  2:47       ` [PATCH v3 3/4] app/testpmd: add template table insertion type Alexander Kozyrev
2023-02-08  2:47       ` [PATCH v3 4/4] app/testpmd: add template table hash calculation function Alexander Kozyrev
2023-02-08  3:06       ` [PATCH v4 0/4] ethdev: add template table insertion and matching types Alexander Kozyrev
2023-02-08  3:06         ` [PATCH v4 1/4] ethdev: add template table insertion type Alexander Kozyrev
2023-02-08  3:06         ` [PATCH v4 2/4] ethdev: add template table hash calculation function Alexander Kozyrev
2023-02-08  3:06         ` [PATCH v4 3/4] app/testpmd: add template table insertion type Alexander Kozyrev
2023-02-08  3:06         ` [PATCH v4 4/4] app/testpmd: add template table hash calculation function Alexander Kozyrev
2023-02-10 17:42         ` [PATCH v4 0/4] ethdev: add template table insertion and matching types Ferruh Yigit

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=16865748.Ash8RoxBsO@thomas \
    --to=thomas@monjalon.net \
    --cc=akozyrev@nvidia.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=orika@nvidia.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.