From: Jakub Kicinski <kuba@kernel.org>
To: Junfeng Guo <junfeng.guo@intel.com>
Cc: ivecera@redhat.com, netdev@vger.kernel.org,
jesse.brandeburg@intel.com, edumazet@google.com,
anthony.l.nguyen@intel.com, horms@kernel.org,
qi.z.zhang@intel.com, intel-wired-lan@lists.osuosl.org,
pabeni@redhat.com, davem@davemloft.net
Subject: Re: [Intel-wired-lan] [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.
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
WARNING: multiple messages have this Message-ID (diff)
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.
next prev parent reply other threads:[~2023-09-05 22:37 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-04 2:14 [Intel-wired-lan] [PATCH iwl-next v9 00/15] Introduce the Parser Library Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 01/15] ice: add parser create and destroy skeleton Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-06 10:49 ` [Intel-wired-lan] " Michal Schmidt
2023-09-06 10:49 ` Michal Schmidt
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 02/15] ice: init imem table for parser Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-06 10:50 ` [Intel-wired-lan] " Michal Schmidt
2023-09-06 10:50 ` Michal Schmidt
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 03/15] ice: init metainit " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 04/15] ice: init parse graph cam tables " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 05/15] ice: init boost tcam and label " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 06/15] ice: init ptype marker tcam table " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 07/15] ice: init marker and protocol group tables " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 08/15] ice: init flag redirect table " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 09/15] ice: init XLT key builder " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 10/15] ice: add parser runtime skeleton Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 11/15] ice: add internal help functions Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 12/15] ice: add parser execution main loop Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 13/15] ice: support double vlan mode configure for parser Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 14/15] ice: add tunnel port support " Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-04 2:14 ` [Intel-wired-lan] [PATCH iwl-next v9 15/15] ice: add API for parser profile initialization Junfeng Guo
2023-09-04 2:14 ` Junfeng Guo
2023-09-05 22:37 ` Jakub Kicinski [this message]
2023-09-05 22:37 ` [PATCH iwl-next v9 00/15] Introduce the Parser Library Jakub Kicinski
2023-09-05 23:05 ` [Intel-wired-lan] " Tom Herbert
2023-09-05 23:05 ` Tom Herbert
2023-09-07 19:10 ` [Intel-wired-lan] " Samudrala, Sridhar
2023-09-07 19:10 ` Samudrala, Sridhar
2023-09-09 17:34 ` [Intel-wired-lan] " Tom Herbert
2023-09-09 17:34 ` Tom Herbert
2023-09-12 20:37 ` [Intel-wired-lan] " Samudrala, Sridhar
2023-09-12 20:37 ` Samudrala, Sridhar
2023-09-07 19:08 ` [Intel-wired-lan] " Samudrala, Sridhar
2023-09-07 19:08 ` Samudrala, Sridhar
2023-09-07 19:38 ` [Intel-wired-lan] " Jakub Kicinski
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 \
/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.