From: Thomas Monjalon <thomas@monjalon.net>
To: Alexander Kozyrev <akozyrev@nvidia.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"ferruh.yigit@amd.com" <ferruh.yigit@amd.com>,
"andrew.rybchenko@oktetlabs.ru" <andrew.rybchenko@oktetlabs.ru>,
Ori Kam <orika@nvidia.com>
Subject: Re: [RFC] ethdev: add template table insertion and matching types
Date: Mon, 30 Jan 2023 15:47:03 +0100 [thread overview]
Message-ID: <3744969.hUukIMtRk4@thomas> (raw)
In-Reply-To: <DM5PR12MB24056F39030D90C6DFDB1AF6AFC89@DM5PR12MB2405.namprd12.prod.outlook.com>
23/01/2023 23:02, Alexander Kozyrev:
> > 21/01/2023 00:06, Alexander Kozyrev:
> > > > 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?
> > >
> > > If you jump directly to an index in a table, you don't need to match
> > anything.
> > > For the regular pattern-based table you must calculate the hash and match
> > on it.
> >
> > I don't get it. I think it would be simpler with an example.
>
> This is how the regular pattern-based table works:
> you calculate hash on 5-tuple, go to the table entry with the corresponding hash,
> check if there is a collision and search for the proper entry if so, execute actions.
> Index-based table:
> take an index value from a specified field, go to this index, and execute actions.
OK, please make sure the explanation is clear in the patch.
> > > > > The insertion to an already existing index is undefined and
> > > >
> > > > Why is it undefined?
> > >
> > > The behavior is up to a PMD to decide. It is free to replace the rule or throw
> > an error.
> >
> > An undefined behavior of an API makes applications not portable.
> > Why not deciding of a behavior? You are not sure what is best?
>
> We don't want to restrict a PMD behavior here.
> Personally, I would prefer throwing an error in this case.
> Do you think returning EEXIST is better?
I don't know what is best.
At least you can define an error EEXIST if the PMD forbids it,
and no error if the PMD replaces the rule.
next prev parent reply other threads:[~2023-01-30 14:47 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-14 2:21 Alexander Kozyrev
2023-01-08 14:22 ` Ori Kam
2023-01-18 8:50 ` Thomas Monjalon
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 [this message]
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=3744969.hUukIMtRk4@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 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).