[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <SJ0PR11MB586519CCB54A72D910E5669E8FA92@SJ0PR11MB5865.namprd11.prod.outlook.com>
Date: Tue, 23 Jul 2024 08:00:55 +0000
From: "Romanowski, Rafal" <rafal.romanowski@...el.com>
To: "Zaki, Ahmed" <ahmed.zaki@...el.com>, "intel-wired-lan@...ts.osuosl.org"
<intel-wired-lan@...ts.osuosl.org>
CC: "Keller, Jacob E" <jacob.e.keller@...el.com>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>, "Nguyen, Anthony L" <anthony.l.nguyen@...el.com>,
"Zaki, Ahmed" <ahmed.zaki@...el.com>
Subject: RE: [Intel-wired-lan] [PATCH iwl-next v2 00/13] ice: iavf: add
support for TC U32 filters on VFs
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf Of
> Ahmed Zaki
> Sent: Monday, May 27, 2024 8:58 PM
> To: intel-wired-lan@...ts.osuosl.org
> Cc: Keller, Jacob E <jacob.e.keller@...el.com>; netdev@...r.kernel.org; Nguyen,
> Anthony L <anthony.l.nguyen@...el.com>; Zaki, Ahmed <ahmed.zaki@...el.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next v2 00/13] ice: iavf: add support for TC
> U32 filters on VFs
>
> The IntelĀ® Ethernet 800 Series is designed with a pipeline that has an on-chip
> programmable capability called Dynamic Device Personalization (DDP). A DDP
> package is loaded by the driver during probe time. The DDP package programs
> functionality in both the parser and switching blocks in the pipeline, allowing
> dynamic support for new and existing protocols.
> Once the pipeline is configured, the driver can identify the protocol and apply any
> HW action in different stages, for example, direct packets to desired hardware
> queues (flow director), queue groups or drop.
>
> Patches 1-8 introduce a DDP package parser API that enables different pipeline
> stages in the driver to learn the HW parser capabilities from the DDP package
> that is downloaded to HW. The parser library takes raw packet patterns and
> masks (in binary) indicating the packet protocol fields to be matched and
> generates the final HW profiles that can be applied at the required stage. With
> this API, raw flow filtering for FDIR or RSS could be done on new protocols or
> headers without any driver or Kernel updates (only need to update the DDP
> package). These patches were submitted before [1] but were not accepted
> mainly due to lack of a user.
>
> Patches 9-11 extend the virtchnl support to allow the VF to request raw flow
> director filters. Upon receiving the raw FDIR filter request, the PF driver allocates
> and runs a parser lib instance and generates the hardware profile definitions
> required to program the FDIR stage. These were also submitted before [2].
>
> Finally, patches 12 and 13 add TC U32 filter support to the iavf driver.
> Using the parser API, the ice driver runs the raw patterns sent by the user and
> then adds a new profile to the FDIR stage associated with the VF's VSI. Refer to
> examples in patch 13 commit message.
>
> [1]: Link: https://lore.kernel.org/netdev/20230904021455.3944605-1-
> junfeng.guo@...el.com/
> [2]: Link: https://lists.osuosl.org/pipermail/intel-wired-lan/Week-of-Mon-
> 20230814/036333.html
>
> ---
> v2:
> - No changes, just cc netdev
>
> Ahmed Zaki (2):
> iavf: refactor add/del FDIR filters
> iavf: add support for offloading tc U32 cls filters
>
> Junfeng Guo (11):
> ice: add parser create and destroy skeleton
> ice: parse and init various DDP parser sections
> ice: add debugging functions for the parser sections
> ice: add parser internal helper functions
> ice: add parser execution main loop
> ice: support turning on/off the parser's double vlan mode
> ice: add UDP tunnels support to the parser
> ice: add API for parser profile initialization
> virtchnl: support raw packet in protocol header
> ice: add method to disable FDIR SWAP option
> ice: enable FDIR filters from raw binary patterns for VFs
>
> drivers/net/ethernet/intel/iavf/iavf.h | 30 +
> .../net/ethernet/intel/iavf/iavf_ethtool.c | 59 +-
> drivers/net/ethernet/intel/iavf/iavf_fdir.c | 85 +-
> drivers/net/ethernet/intel/iavf/iavf_fdir.h | 13 +-
> drivers/net/ethernet/intel/iavf/iavf_main.c | 148 +-
> .../net/ethernet/intel/iavf/iavf_virtchnl.c | 25 +-
> drivers/net/ethernet/intel/ice/Makefile | 2 +
> drivers/net/ethernet/intel/ice/ice_common.h | 1 +
> drivers/net/ethernet/intel/ice/ice_ddp.c | 10 +-
> drivers/net/ethernet/intel/ice/ice_ddp.h | 13 +
> .../net/ethernet/intel/ice/ice_flex_pipe.c | 96 +-
> .../net/ethernet/intel/ice/ice_flex_pipe.h | 7 +-
> drivers/net/ethernet/intel/ice/ice_flow.c | 106 +-
> drivers/net/ethernet/intel/ice/ice_flow.h | 4 +
> drivers/net/ethernet/intel/ice/ice_parser.c | 2389 +++++++++++++++++
> drivers/net/ethernet/intel/ice/ice_parser.h | 540 ++++
> .../net/ethernet/intel/ice/ice_parser_rt.c | 860 ++++++
> drivers/net/ethernet/intel/ice/ice_type.h | 1 +
> drivers/net/ethernet/intel/ice/ice_vf_lib.c | 2 +-
> drivers/net/ethernet/intel/ice/ice_vf_lib.h | 8 +
> drivers/net/ethernet/intel/ice/ice_virtchnl.c | 6 +-
> .../ethernet/intel/ice/ice_virtchnl_fdir.c | 400 ++-
> include/linux/avf/virtchnl.h | 13 +-
> 23 files changed, 4726 insertions(+), 92 deletions(-) create mode 100644
> drivers/net/ethernet/intel/ice/ice_parser.c
> create mode 100644 drivers/net/ethernet/intel/ice/ice_parser.h
> create mode 100644 drivers/net/ethernet/intel/ice/ice_parser_rt.c
>
> --
> 2.43.0
Tested-by: Rafal Romanowski <rafal.romanowski@...el.com>
Powered by blists - more mailing lists