From: Thomas Monjalon <thomas@monjalon.net>
To: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH V3 0/7] pipeline: support direct registers and meters
Date: Sat, 24 Sep 2022 11:34:33 +0200 [thread overview]
Message-ID: <5839965.alqRGMn8q6@thomas> (raw)
In-Reply-To: <20220830185811.1843109-1-cristian.dumitrescu@intel.com>
30/08/2022 20:58, Cristian Dumitrescu:
> This patch introduces support for direct registers and meters. The
> difference between indirect (indexed) and direct registers and meters
> is explained below [1][2][3].
>
> 1. Indirect (indexed) registers and meters.
>
> The index into an array of registers or meters used on the data path
> is typically read from the action data identified by a table lookup
> operation.
>
> This means that the control plane manages the mapping of the mapping
> of array entries to table entries and sets up this index explicitly
> into the table entry action data.
>
> These are called indirect or indexed registers and meters, and they
> allow multiple table entries to share the same register/meter, as well
> as a 1:1 mapping of table entries to register/meter array entries.
>
> 2. Direct registers and meters.
> In the case of 1:1 mapping of table entries to register/meter array
> elements, it is sometimes desired to avoid the explicit allocation of
> register/meter array index to each table entry by the control plane.
>
> One way this can be done is by implementing a mechanism to associate
> a unique ID to each table entry, including the default table entry as
> well; once the entry ID is retrieved as result of the table lookup
> operation, it is saved by the pipeline and used later on as the
> index into the register/meter array.
>
> These are called direct registers and meters, and have the advantage
> that the index is auto-generated, which simplifies the controller
> implementation; the disadvantage is that they do not allow multiple
> table entries to share the same register or meter.
>
> References:
>
> [1] Indirect and direct counters:
> https://p4.org/p4-spec/docs/PSA.html#sec-counters
>
> [2] Indirect and direct registers:
> https://p4.org/p4-spec/docs/PSA.html#sec-registers
>
> [3] Indirect and direct meters:
> https://p4.org/p4-spec/docs/PSA.html#sec-meters
>
> Depends-on: series-24366 ("pipeline: make the hash function configurable per table")
>
> Change log:
>
> V3:
> -Fixed issues related to CLI parsing
> -Fixed issue related to the key offset
>
> V2:
> -Fixed minor style issues flagged by CI/CD
>
> Cristian Dumitrescu (7):
> table: add entry ID for regular tables
> table: add entry ID for learner tables
> pipeline: add table entry ID read instruction
> pipeline: support direct registers on the control path
> pipeline: support direct meters on the control path
> examples/pipeline: add CLI commands for direct registers
> examples/pipeline: add CLI commands for direct meters
Applied, thanks.
prev parent reply other threads:[~2022-09-24 9:34 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-26 10:35 [PATCH 0/7] pipeline: support direct registers and meters Cristian Dumitrescu
2022-08-26 10:35 ` [PATCH 1/7] table: add entry ID for regular tables Cristian Dumitrescu
2022-08-26 10:36 ` [PATCH 2/7] table: add entry ID for learner tables Cristian Dumitrescu
2022-08-26 10:36 ` [PATCH 3/7] pipeline: add table entry ID read instruction Cristian Dumitrescu
2022-08-26 10:36 ` [PATCH 4/7] pipeline: support direct registers on the control path Cristian Dumitrescu
2022-08-26 10:36 ` [PATCH 5/7] pipeline: support direct meters " Cristian Dumitrescu
2022-08-26 10:36 ` [PATCH 6/7] examples/pipeline: add CLI commands for direct registers Cristian Dumitrescu
2022-08-26 10:36 ` [PATCH 7/7] examples/pipeline: add CLI commands for direct meters Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 0/7] pipeline: support direct registers and meters Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 1/7] table: add entry ID for regular tables Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 2/7] table: add entry ID for learner tables Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 3/7] pipeline: add table entry ID read instruction Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 4/7] pipeline: support direct registers on the control path Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 5/7] pipeline: support direct meters " Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 6/7] examples/pipeline: add CLI commands for direct registers Cristian Dumitrescu
2022-08-26 11:21 ` [PATCH V2 7/7] examples/pipeline: add CLI commands for direct meters Cristian Dumitrescu
2022-08-30 18:58 ` [PATCH V3 0/7] pipeline: support direct registers and meters Cristian Dumitrescu
2022-08-30 18:58 ` [PATCH V3 1/7] table: add entry ID for regular tables Cristian Dumitrescu
2022-08-30 18:58 ` [PATCH V3 2/7] table: add entry ID for learner tables Cristian Dumitrescu
2022-09-24 8:25 ` Thomas Monjalon
2022-09-26 9:19 ` Dumitrescu, Cristian
2022-09-26 13:45 ` Thomas Monjalon
2022-08-30 18:58 ` [PATCH V3 3/7] pipeline: add table entry ID read instruction Cristian Dumitrescu
2022-08-30 18:58 ` [PATCH V3 4/7] pipeline: support direct registers on the control path Cristian Dumitrescu
2022-08-30 18:58 ` [PATCH V3 5/7] pipeline: support direct meters " Cristian Dumitrescu
2022-08-30 18:58 ` [PATCH V3 6/7] examples/pipeline: add CLI commands for direct registers Cristian Dumitrescu
2022-08-30 18:58 ` [PATCH V3 7/7] examples/pipeline: add CLI commands for direct meters Cristian Dumitrescu
2022-09-24 9:34 ` Thomas Monjalon [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=5839965.alqRGMn8q6@thomas \
--to=thomas@monjalon.net \
--cc=cristian.dumitrescu@intel.com \
--cc=dev@dpdk.org \
/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.