mbox series

[v7,00/21] add support for cpfl PMD in DPDK

Message ID 20230216003010.3439881-1-mingxia.liu@intel.com (mailing list archive)
Headers
Series add support for cpfl PMD in DPDK |

Message

Liu, Mingxia Feb. 16, 2023, 12:29 a.m. UTC
  The patchset introduced the cpfl (Control Plane Function Library) PMD
for Intel® IPU E2100’s Configure Physical Function (Device ID: 0x1453)

The cpfl PMD inherits all the features from idpf PMD which will follow
an ongoing standard data plan function spec
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=idpf
Besides, it will also support more device specific hardware offloading
features from DPDK’s control path (e.g.: hairpin, rte_flow …). which is
different from idpf PMD, and that's why we need a new cpfl PMD.

This patchset mainly focuses on idpf PMD’s equivalent features.
To avoid duplicated code, the patchset depends on below patchsets which
move the common part from net/idpf into common/idpf as a shared library.

v2 changes:
 - rebase to the new baseline.
 - Fix rss lut config issue.
v3 changes:
 - rebase to the new baseline.
v4 changes:
 - Resend v3. No code changed.
v5 changes:
 - rebase to the new baseline.
 - optimize some code
 - give "not supported" tips when user want to config rss hash type
 - if stats reset fails at initialization time, don't rollback, just
   print ERROR info
v6 changes:
 - for small fixed size structure, change rte_memcpy to memcpy()
 - fix compilation for AVX512DQ
 - update cpfl maintainers
v7 changes:
 - add dependency in cover-letter

This patchset is based on the idpf PMD code:
http://patches.dpdk.org/project/dpdk/cover/20230206054618.40975-1-beilei.xing@intel.com/
http://patches.dpdk.org/project/dpdk/cover/20230106090501.9106-1-beilei.xing@intel.com/
http://patches.dpdk.org/project/dpdk/cover/20230207084549.2225214-1-wenjun1.wu@intel.com/
http://patches.dpdk.org/project/dpdk/cover/20230208073401.2468579-1-mingxia.liu@intel.com/


Mingxia Liu (21):
  net/cpfl: support device initialization
  net/cpfl: add Tx queue setup
  net/cpfl: add Rx queue setup
  net/cpfl: support device start and stop
  net/cpfl: support queue start
  net/cpfl: support queue stop
  net/cpfl: support queue release
  net/cpfl: support MTU configuration
  net/cpfl: support basic Rx data path
  net/cpfl: support basic Tx data path
  net/cpfl: support write back based on ITR expire
  net/cpfl: support RSS
  net/cpfl: support Rx offloading
  net/cpfl: support Tx offloading
  net/cpfl: add AVX512 data path for single queue model
  net/cpfl: support timestamp offload
  net/cpfl: add AVX512 data path for split queue model
  net/cpfl: add HW statistics
  net/cpfl: add RSS set/get ops
  net/cpfl: support scalar scatter Rx datapath for single queue model
  net/cpfl: add xstats ops

 MAINTAINERS                             |    8 +
 doc/guides/nics/cpfl.rst                |   88 ++
 doc/guides/nics/features/cpfl.ini       |   17 +
 doc/guides/rel_notes/release_23_03.rst  |    6 +
 drivers/net/cpfl/cpfl_ethdev.c          | 1453 +++++++++++++++++++++++
 drivers/net/cpfl/cpfl_ethdev.h          |   95 ++
 drivers/net/cpfl/cpfl_logs.h            |   32 +
 drivers/net/cpfl/cpfl_rxtx.c            |  952 +++++++++++++++
 drivers/net/cpfl/cpfl_rxtx.h            |   44 +
 drivers/net/cpfl/cpfl_rxtx_vec_common.h |  116 ++
 drivers/net/cpfl/meson.build            |   40 +
 drivers/net/meson.build                 |    1 +
 12 files changed, 2852 insertions(+)
 create mode 100644 doc/guides/nics/cpfl.rst
 create mode 100644 doc/guides/nics/features/cpfl.ini
 create mode 100644 drivers/net/cpfl/cpfl_ethdev.c
 create mode 100644 drivers/net/cpfl/cpfl_ethdev.h
 create mode 100644 drivers/net/cpfl/cpfl_logs.h
 create mode 100644 drivers/net/cpfl/cpfl_rxtx.c
 create mode 100644 drivers/net/cpfl/cpfl_rxtx.h
 create mode 100644 drivers/net/cpfl/cpfl_rxtx_vec_common.h
 create mode 100644 drivers/net/cpfl/meson.build
  

Comments

Ferruh Yigit Feb. 27, 2023, 9:43 p.m. UTC | #1
On 2/16/2023 12:29 AM, Mingxia Liu wrote:
> The patchset introduced the cpfl (Control Plane Function Library) PMD
> for Intel® IPU E2100’s Configure Physical Function (Device ID: 0x1453)
> 
> The cpfl PMD inherits all the features from idpf PMD which will follow
> an ongoing standard data plan function spec
> https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=idpf
> Besides, it will also support more device specific hardware offloading
> features from DPDK’s control path (e.g.: hairpin, rte_flow …). which is
> different from idpf PMD, and that's why we need a new cpfl PMD.
> 

Hi Mingxia, Beilei, Yuying,

Do you know if is there any effort to make device specific offloads part
of IDPF spec?

Overall, working on a standard interface and upstreaming driver for it
(idpf) but next product is diverging from the standard and requiring a
dedicated driver, do you know if 'cpfl' is a temporary solution while
standard gets required update or is it a long term difference between
standard?


> This patchset mainly focuses on idpf PMD’s equivalent features.
> To avoid duplicated code, the patchset depends on below patchsets which
> move the common part from net/idpf into common/idpf as a shared library.
> 
> v2 changes:
>  - rebase to the new baseline.
>  - Fix rss lut config issue.
> v3 changes:
>  - rebase to the new baseline.
> v4 changes:
>  - Resend v3. No code changed.
> v5 changes:
>  - rebase to the new baseline.
>  - optimize some code
>  - give "not supported" tips when user want to config rss hash type
>  - if stats reset fails at initialization time, don't rollback, just
>    print ERROR info
> v6 changes:
>  - for small fixed size structure, change rte_memcpy to memcpy()
>  - fix compilation for AVX512DQ
>  - update cpfl maintainers
> v7 changes:
>  - add dependency in cover-letter
> 
> This patchset is based on the idpf PMD code:
> http://patches.dpdk.org/project/dpdk/cover/20230206054618.40975-1-beilei.xing@intel.com/
> http://patches.dpdk.org/project/dpdk/cover/20230106090501.9106-1-beilei.xing@intel.com/
> http://patches.dpdk.org/project/dpdk/cover/20230207084549.2225214-1-wenjun1.wu@intel.com/
> http://patches.dpdk.org/project/dpdk/cover/20230208073401.2468579-1-mingxia.liu@intel.com/
> 
> 
> Mingxia Liu (21):
>   net/cpfl: support device initialization
>   net/cpfl: add Tx queue setup
>   net/cpfl: add Rx queue setup
>   net/cpfl: support device start and stop
>   net/cpfl: support queue start
>   net/cpfl: support queue stop
>   net/cpfl: support queue release
>   net/cpfl: support MTU configuration
>   net/cpfl: support basic Rx data path
>   net/cpfl: support basic Tx data path
>   net/cpfl: support write back based on ITR expire
>   net/cpfl: support RSS
>   net/cpfl: support Rx offloading
>   net/cpfl: support Tx offloading
>   net/cpfl: add AVX512 data path for single queue model
>   net/cpfl: support timestamp offload
>   net/cpfl: add AVX512 data path for split queue model
>   net/cpfl: add HW statistics
>   net/cpfl: add RSS set/get ops
>   net/cpfl: support scalar scatter Rx datapath for single queue model
>   net/cpfl: add xstats ops
> 
>  MAINTAINERS                             |    8 +
>  doc/guides/nics/cpfl.rst                |   88 ++
>  doc/guides/nics/features/cpfl.ini       |   17 +
>  doc/guides/rel_notes/release_23_03.rst  |    6 +
>  drivers/net/cpfl/cpfl_ethdev.c          | 1453 +++++++++++++++++++++++
>  drivers/net/cpfl/cpfl_ethdev.h          |   95 ++
>  drivers/net/cpfl/cpfl_logs.h            |   32 +
>  drivers/net/cpfl/cpfl_rxtx.c            |  952 +++++++++++++++
>  drivers/net/cpfl/cpfl_rxtx.h            |   44 +
>  drivers/net/cpfl/cpfl_rxtx_vec_common.h |  116 ++
>  drivers/net/cpfl/meson.build            |   40 +
>  drivers/net/meson.build                 |    1 +
>  12 files changed, 2852 insertions(+)
>  create mode 100644 doc/guides/nics/cpfl.rst
>  create mode 100644 doc/guides/nics/features/cpfl.ini
>  create mode 100644 drivers/net/cpfl/cpfl_ethdev.c
>  create mode 100644 drivers/net/cpfl/cpfl_ethdev.h
>  create mode 100644 drivers/net/cpfl/cpfl_logs.h
>  create mode 100644 drivers/net/cpfl/cpfl_rxtx.c
>  create mode 100644 drivers/net/cpfl/cpfl_rxtx.h
>  create mode 100644 drivers/net/cpfl/cpfl_rxtx_vec_common.h
>  create mode 100644 drivers/net/cpfl/meson.build
>
  
Qi Zhang Feb. 28, 2023, 1:44 a.m. UTC | #2
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@amd.com>
> Sent: Tuesday, February 28, 2023 5:44 AM
> To: Liu, Mingxia <mingxia.liu@intel.com>; Xing, Beilei
> <beilei.xing@intel.com>; Zhang, Yuying <yuying.zhang@intel.com>
> Cc: dev@dpdk.org; Mcnamara, John <john.mcnamara@intel.com>
> Subject: Re: [PATCH v7 00/21] add support for cpfl PMD in DPDK
> 
> On 2/16/2023 12:29 AM, Mingxia Liu wrote:
> > The patchset introduced the cpfl (Control Plane Function Library) PMD
> > for Intel® IPU E2100’s Configure Physical Function (Device ID: 0x1453)
> >
> > The cpfl PMD inherits all the features from idpf PMD which will follow
> > an ongoing standard data plan function spec
> > https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=idpf
> > Besides, it will also support more device specific hardware offloading
> > features from DPDK’s control path (e.g.: hairpin, rte_flow …). which
> > is different from idpf PMD, and that's why we need a new cpfl PMD.
> >
> 
> Hi Mingxia, Beilei, Yuying,
> 
> Do you know if is there any effort to make device specific offloads part of
> IDPF spec?

Currently, there is no related effort for standard idpf, but the vendors can enable their
own hardware offloading feature based on idpf spec, (like cpfl), and the common/idpf can be leveraged.

Regards
Qi

> 
> Overall, working on a standard interface and upstreaming driver for it
> (idpf) but next product is diverging from the standard and requiring a
> dedicated driver, do you know if 'cpfl' is a temporary solution while standard
> gets required update or is it a long term difference between standard?


> 
> 
> > This patchset mainly focuses on idpf PMD’s equivalent features.
> > To avoid duplicated code, the patchset depends on below patchsets
> > which move the common part from net/idpf into common/idpf as a shared
> library.
> >
> > v2 changes:
> >  - rebase to the new baseline.
> >  - Fix rss lut config issue.
> > v3 changes:
> >  - rebase to the new baseline.
> > v4 changes:
> >  - Resend v3. No code changed.
> > v5 changes:
> >  - rebase to the new baseline.
> >  - optimize some code
> >  - give "not supported" tips when user want to config rss hash type
> >  - if stats reset fails at initialization time, don't rollback, just
> >    print ERROR info
> > v6 changes:
> >  - for small fixed size structure, change rte_memcpy to memcpy()
> >  - fix compilation for AVX512DQ
> >  - update cpfl maintainers
> > v7 changes:
> >  - add dependency in cover-letter
> >
> > This patchset is based on the idpf PMD code:
> > http://patches.dpdk.org/project/dpdk/cover/20230206054618.40975-1-
> beil
> > ei.xing@intel.com/
> > http://patches.dpdk.org/project/dpdk/cover/20230106090501.9106-1-
> beile
> > i.xing@intel.com/
> > http://patches.dpdk.org/project/dpdk/cover/20230207084549.2225214-1-
> we
> > njun1.wu@intel.com/
> > http://patches.dpdk.org/project/dpdk/cover/20230208073401.2468579-1-
> mi
> > ngxia.liu@intel.com/
> >
> >
> > Mingxia Liu (21):
> >   net/cpfl: support device initialization
> >   net/cpfl: add Tx queue setup
> >   net/cpfl: add Rx queue setup
> >   net/cpfl: support device start and stop
> >   net/cpfl: support queue start
> >   net/cpfl: support queue stop
> >   net/cpfl: support queue release
> >   net/cpfl: support MTU configuration
> >   net/cpfl: support basic Rx data path
> >   net/cpfl: support basic Tx data path
> >   net/cpfl: support write back based on ITR expire
> >   net/cpfl: support RSS
> >   net/cpfl: support Rx offloading
> >   net/cpfl: support Tx offloading
> >   net/cpfl: add AVX512 data path for single queue model
> >   net/cpfl: support timestamp offload
> >   net/cpfl: add AVX512 data path for split queue model
> >   net/cpfl: add HW statistics
> >   net/cpfl: add RSS set/get ops
> >   net/cpfl: support scalar scatter Rx datapath for single queue model
> >   net/cpfl: add xstats ops
> >
> >  MAINTAINERS                             |    8 +
> >  doc/guides/nics/cpfl.rst                |   88 ++
> >  doc/guides/nics/features/cpfl.ini       |   17 +
> >  doc/guides/rel_notes/release_23_03.rst  |    6 +
> >  drivers/net/cpfl/cpfl_ethdev.c          | 1453 +++++++++++++++++++++++
> >  drivers/net/cpfl/cpfl_ethdev.h          |   95 ++
> >  drivers/net/cpfl/cpfl_logs.h            |   32 +
> >  drivers/net/cpfl/cpfl_rxtx.c            |  952 +++++++++++++++
> >  drivers/net/cpfl/cpfl_rxtx.h            |   44 +
> >  drivers/net/cpfl/cpfl_rxtx_vec_common.h |  116 ++
> >  drivers/net/cpfl/meson.build            |   40 +
> >  drivers/net/meson.build                 |    1 +
> >  12 files changed, 2852 insertions(+)
> >  create mode 100644 doc/guides/nics/cpfl.rst  create mode 100644
> > doc/guides/nics/features/cpfl.ini  create mode 100644
> > drivers/net/cpfl/cpfl_ethdev.c  create mode 100644
> > drivers/net/cpfl/cpfl_ethdev.h  create mode 100644
> > drivers/net/cpfl/cpfl_logs.h  create mode 100644
> > drivers/net/cpfl/cpfl_rxtx.c  create mode 100644
> > drivers/net/cpfl/cpfl_rxtx.h  create mode 100644
> > drivers/net/cpfl/cpfl_rxtx_vec_common.h
> >  create mode 100644 drivers/net/cpfl/meson.build
> >