netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Junfeng Guo <junfeng.guo@intel.com>
Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
	anthony.l.nguyen@intel.com, jesse.brandeburg@intel.com,
	qi.z.zhang@intel.com, ivecera@redhat.com,
	sridhar.samudrala@intel.com, horms@kernel.org,
	edumazet@google.com, davem@davemloft.net, pabeni@redhat.com
Subject: Re: [PATCH iwl-next v9 00/15] Introduce the Parser Library
Date: Tue, 5 Sep 2023 15:37:34 -0700	[thread overview]
Message-ID: <20230905153734.18b9bc84@kernel.org> (raw)
In-Reply-To: <20230904021455.3944605-1-junfeng.guo@intel.com>

On Mon,  4 Sep 2023 10:14:40 +0800 Junfeng Guo wrote:
> Current software architecture for flow filtering offloading limited
> the capability of Intel Ethernet 800 Series Dynamic Device
> Personalization (DDP) Package. The flow filtering offloading in the
> driver is enabled based on the naming parsers, each flow pattern is
> represented by a protocol header stack. And there are multiple layers
> (e.g., virtchnl) to maintain their own enum/macro/structure
> to represent a protocol header (IP, TCP, UDP ...), thus the extra
> parsers to verify if a pattern is supported by hardware or not as
> well as the extra converters that to translate represents between
> different layers. Every time a new protocol/field is requested to be
> supported, the corresponding logic for the parsers and the converters
> needs to be modified accordingly. Thus, huge & redundant efforts are
> required to support the increasing flow filtering offloading features,
> especially for the tunnel types flow filtering.

Are you talking about problems internal to ICE or the flower interface?

> This patch set provides a way for applications to send down training
> packets & masks (in binary) to the driver. Then these binary data
> would be used by the driver to generate certain data that are needed
> to create a filter rule in the filtering stage of switch/RSS/FDIR.

What's the API for the user? I see a whole bunch of functions added here
which never get called.

> Note that the impact of a malicious rule in the raw packet filter is
> limited to performance rather than functionality. It may affect the
> performance of the workload, similar to other limitations in FDIR/RSS
> on AVF. For example, there is no resource boundary for VF FDIR/RSS
> rules, so one malicious VF could potentially make other VFs
> inefficient in offloading.
> 
> The parser library is expected to include boundary checks to prevent
> critical errors such as infinite loops or segmentation faults.
> However, only implementing and validating the parser emulator in a
> sandbox environment (like ebpf) presents a challenge.
> 
> The idea is to make the driver be able to learn from the DDP package
> directly to understand how the hardware parser works (i.e., the
> Parser Library), so that it can process on the raw training packet
> (in binary) directly and create the filter rule accordingly.

No idea what this means in terms of the larger networking stack.

> Based on this Parser Library, the raw flow filtering of
> switch/RSS/FDIR could be enabled to allow new flow filtering
> offloading features to be supported without any driver changes (only
> need to update the DDP package).

Sounds like you are talking about some vague "vision" rather than 
the code you're actually posting.

Given that you've posted 5 versions of this to netdev and got no
notable comments, please don't CC netdev on the next version
until you get some reviews inside Intel. Stuff like:

+#define ICE_ERR_NOT_IMPL		-1

should get caught by internal review.

  parent reply	other threads:[~2023-09-05 22:37 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-04  2:14 [PATCH iwl-next v9 00/15] Introduce the Parser Library Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 01/15] ice: add parser create and destroy skeleton Junfeng Guo
2023-09-06 10:49   ` [Intel-wired-lan] " Michal Schmidt
2023-09-04  2:14 ` [PATCH iwl-next v9 02/15] ice: init imem table for parser Junfeng Guo
2023-09-06 10:50   ` [Intel-wired-lan] " Michal Schmidt
2023-09-04  2:14 ` [PATCH iwl-next v9 03/15] ice: init metainit " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 04/15] ice: init parse graph cam tables " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 05/15] ice: init boost tcam and label " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 06/15] ice: init ptype marker tcam table " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 07/15] ice: init marker and protocol group tables " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 08/15] ice: init flag redirect table " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 09/15] ice: init XLT key builder " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 10/15] ice: add parser runtime skeleton Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 11/15] ice: add internal help functions Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 12/15] ice: add parser execution main loop Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 13/15] ice: support double vlan mode configure for parser Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 14/15] ice: add tunnel port support " Junfeng Guo
2023-09-04  2:14 ` [PATCH iwl-next v9 15/15] ice: add API for parser profile initialization Junfeng Guo
2023-09-05 22:37 ` Jakub Kicinski [this message]
2023-09-05 23:05   ` [PATCH iwl-next v9 00/15] Introduce the Parser Library Tom Herbert
2023-09-07 19:10     ` Samudrala, Sridhar
2023-09-09 17:34       ` Tom Herbert
2023-09-12 20:37         ` Samudrala, Sridhar
2023-09-07 19:08   ` Samudrala, Sridhar
2023-09-07 19:38     ` Jakub Kicinski

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=20230905153734.18b9bc84@kernel.org \
    --to=kuba@kernel.org \
    --cc=anthony.l.nguyen@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=ivecera@redhat.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=junfeng.guo@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=qi.z.zhang@intel.com \
    --cc=sridhar.samudrala@intel.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).