DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Jerin Jacob <jerinjacobk@gmail.com>
Cc: "Zhang, Qi Z" <qi.z.zhang@intel.com>,
	techboard@dpdk.org, Ori Kam <orika@nvidia.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"techboard@dpdk.org" <techboard@dpdk.org>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	"Burakov, Anatoly" <anatoly.burakov@intel.com>,
	"Wiles, Keith" <keith.wiles@intel.com>,
	"Liang, Cunming" <cunming.liang@intel.com>,
	"Wu, Jingjing" <jingjing.wu@intel.com>,
	"Zhang, Helin" <helin.zhang@intel.com>,
	"Mcnamara, John" <john.mcnamara@intel.com>,
	"Xu, Rosen" <rosen.xu@intel.com>,
	 Kiran Kumar K <kirankumark@marvell.com>,
	Satheesh Paul <psatheesh@marvell.com>
Subject: Re: seeking community input on adapting DPDK to P4Runtime backend
Date: Wed, 24 May 2023 17:43:03 +0200	[thread overview]
Message-ID: <1950495.jZfb76A358@thomas> (raw)
In-Reply-To: <CALBAE1PXDYPL3UOpQcvE1meRh7NgWUDO3zE5YjppYf=4hsJ4MA@mail.gmail.com>

24/05/2023 17:00, Jerin Jacob:
> We did some study to use rte_flow on table driven _HW_ (HW has similar
> capability to p4 table)
> Following are the observations that need improvement in rte_flow.
> 
> 
> 1) HW engines require more resources for ACL (considering the
> algorithmic HW implementation and table size is in handful of
> millions),
> whereas EM, LPM needs less HW resources, In p4, we have means to
> express this, in rte_flow, in general assumption it is ACL.
> We may need to express the mode in rte_flow_template_table_create() or
> so. Otherwise,
> more than one rte_flow_pattern_template* templates
> pattern_template_index of rte_flow_async_create() creates
> conflicting modes. In p4, mode is associated with a table, and it has
> fixed KEY and VALUE.  This area in the rte_flow requires
> improvement if we need to use with p4 type HW.
> 
> 2) rte_flow is purely in working "inline" mode, If CPU core needs to
> do lookup on the table created. We require some APIs
> to look-aside mode support.
> 
> 3) Handling of raw action data
> 
> a) In p4, Action value is opaque, so maybe we need to have action RAW
> where value can be running
> number from 0 to VALUE - 1.
> 
> b) Expressing the handling compute operation after lookup.
> rte_flow_actions are fixed in nature, which
> would suffice for a lot of use case. Expressing the following case may
> be difficult with rte_flow now.
> 
> For example:
> value_from_lookup = lookup(packet, key);
> if ((packet.filed[x] && value_value_from_lookup) == value_x) {
> packet.field[x] += value_y;
> packet.field[x] ^= value_z;
> }
> 
> I think, such general programming paradigm kind of action may need
> ePBF kind program to express.
> Where we can add new RTE_FLOW_ACTION_LOAD_EPF_PROGRAM to run through a
> simple program after table lookup.
> 
> Either, we can update the rte_flow to address the cases reported in the thread
> or enhance the current rte_table library(which already has a function
> pointer based backend) and
> create an object using the rte_table API and connect the table object
> with rte_flow API.
> 
> I think, we should try to enhance rte_flow for more native table
> support if possible.

I agree to enhance rte_flow in general.
I suspect that most of features above are already possible
using some unknown properties of rte_flow.
For instance, modifying a packet is possible with RTE_FLOW_ACTION_TYPE_MODIFY_FIELD.



  reply	other threads:[~2023-05-24 15:43 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-08  6:39 Zhang, Qi Z
2023-05-17 15:18 ` Ori Kam
2023-05-18 10:33   ` Zhang, Qi Z
2023-05-18 14:33     ` Ori Kam
2023-05-22  5:12       ` Zhang, Qi Z
2023-05-24 15:00         ` Jerin Jacob
2023-05-24 15:43           ` Thomas Monjalon [this message]
2023-05-18 14:45     ` Honnappa Nagarahalli
2023-05-22  4:58       ` Zhang, Qi Z

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=1950495.jZfb76A358@thomas \
    --to=thomas@monjalon.net \
    --cc=anatoly.burakov@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=cunming.liang@intel.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@intel.com \
    --cc=jerinjacobk@gmail.com \
    --cc=jingjing.wu@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=keith.wiles@intel.com \
    --cc=kirankumark@marvell.com \
    --cc=orika@nvidia.com \
    --cc=psatheesh@marvell.com \
    --cc=qi.z.zhang@intel.com \
    --cc=rosen.xu@intel.com \
    --cc=techboard@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 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).