> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of
> Ahmed Zaki
> Sent: Monday, May 27, 2024 8:58 PM
> To: [email protected]
> Cc: Keller, Jacob E <[email protected]>; [email protected]; 
> Nguyen,
> Anthony L <[email protected]>; Zaki, Ahmed <[email protected]>
> 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-
> [email protected]/
> [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 <[email protected]>


Reply via email to