All of lore.kernel.org
 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 seeking community input on adapting DPDK to P4Runtime backend 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 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.