mbox series

[v8,00/14] Add patch set for IPN3KE

Message ID 1555304823-91456-1-git-send-email-rosen.xu@intel.com (mailing list archive)
Headers
Series Add patch set for IPN3KE |

Message

Xu, Rosen April 15, 2019, 5:06 a.m. UTC
  v8 updates:
=========
 - Fix meter color definition replacement

v7 updates:
=========
 - Fix Stephen comments

v6 updates:
==========
 - Fix v5 comments
 - Fix TM Shaper rate issue

v5 updates:
==========
 - Fix EXPERIMENTAL symbol definition issue

v4 updates:
==========
 - Fix coding style issues

v3 updates:
==========
 - Fix v2 comments
 - Update MAC BAR of AFU index get ops
 - Remove OPAE share code dependency of libfdt

v2 updates:
==========
 - Fix v1 comments
 - Add support for 10G Base Line Design Bitstream
 - Add support for 25G Base Line Design Bitstream

This patch set adds the support of a new net PMD, Intel® FPGA Programmable
Acceleration Card N3000, also called ipn3ke.

The ipn3ke PMD (librte_pmd_ipn3ke) provides poll mode driver support
for Intel® FPGA PAC(Programmable Acceleration Card) N3000 based on
the Intel Ethernet Controller X710/XXV710 and Intel Arria 10 FPGA.

In this card, FPGA is an acceleration bridge between network interface
and the Intel Ethernet Controller. Although both FPGA and Ethernet
Controllers are connected to CPU with PCIe Gen3x16 Switch, all the
packet RX/TX is handled by Intel Ethernet Controller. So from application
point of view the data path is still the legacy Intel Ethernet Controller
X710/XXV710 PMD. Besides this, users can enable more acceleration
features by FPGA IP.


Rosen Xu (7):
  bus/ifpga: add AFU shared data
  bus/ifpga: add function for AFU search by name
  net/ipn3ke: add IPN3KE ethdev PMD driver
  net/ipn3ke: add IPN3KE representor of PMD driver
  net/ipn3ke: add IPN3KE TM of PMD driver
  net/ipn3ke: add IPN3KE Flow of PMD driver
  raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev

Tianfei zhang (7):
  raw/ifpga_rawdev: clean up code for ifpga share code
  raw/ifpga_rawdev: store private features in FME and Port
  raw/ifpga_rawdev: add SPI and MAX10 device driver
  raw/ifpga_rawdev: add I2C and at24 EEPROM driver
  raw/ifpga_rawdev: add eth group driver
  raw/ifpga_rawdev: add version description on README
  raw/ifpga_rawdev: using prefix name for feature and its ops

 MAINTAINERS                                        |    6 +
 config/common_base                                 |    4 +
 doc/guides/nics/features/ipn3ke.ini                |   55 +
 doc/guides/nics/index.rst                          |    1 +
 doc/guides/nics/ipn3ke.rst                         |  108 +
 drivers/bus/ifpga/ifpga_bus.c                      |   13 +
 drivers/bus/ifpga/rte_bus_ifpga.h                  |   16 +
 drivers/bus/ifpga/rte_bus_ifpga_version.map        |    6 +
 drivers/net/Makefile                               |    1 +
 drivers/net/ipn3ke/Makefile                        |   40 +
 drivers/net/ipn3ke/ipn3ke_ethdev.c                 |  653 ++++++
 drivers/net/ipn3ke/ipn3ke_ethdev.h                 |  975 +++++++++
 drivers/net/ipn3ke/ipn3ke_flow.c                   | 1374 +++++++++++++
 drivers/net/ipn3ke/ipn3ke_flow.h                   |  106 +
 drivers/net/ipn3ke/ipn3ke_logs.h                   |   30 +
 drivers/net/ipn3ke/ipn3ke_rawdev_api.h             |   62 +
 drivers/net/ipn3ke/ipn3ke_representor.c            |  893 +++++++++
 drivers/net/ipn3ke/ipn3ke_tm.c                     | 2069 ++++++++++++++++++++
 drivers/net/ipn3ke/meson.build                     |   17 +
 drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map      |    4 +
 drivers/net/meson.build                            |    1 +
 drivers/raw/ifpga_rawdev/Makefile                  |    1 +
 drivers/raw/ifpga_rawdev/base/Makefile             |    6 +
 drivers/raw/ifpga_rawdev/base/README               |   15 +
 drivers/raw/ifpga_rawdev/base/ifpga_api.c          |   98 +-
 drivers/raw/ifpga_rawdev/base/ifpga_api.h          |    1 +
 drivers/raw/ifpga_rawdev/base/ifpga_defines.h      |   93 +-
 drivers/raw/ifpga_rawdev/base/ifpga_enumerate.c    |  357 ++--
 drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.c  |  174 +-
 drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.h  |   99 +-
 drivers/raw/ifpga_rawdev/base/ifpga_fme.c          |  602 +++++-
 drivers/raw/ifpga_rawdev/base/ifpga_fme_dperf.c    |   16 +-
 drivers/raw/ifpga_rawdev/base/ifpga_fme_error.c    |   18 +-
 drivers/raw/ifpga_rawdev/base/ifpga_fme_iperf.c    |   28 +-
 drivers/raw/ifpga_rawdev/base/ifpga_fme_pr.c       |    8 +-
 drivers/raw/ifpga_rawdev/base/ifpga_hw.h           |   44 +-
 drivers/raw/ifpga_rawdev/base/ifpga_port.c         |   51 +-
 drivers/raw/ifpga_rawdev/base/ifpga_port_error.c   |   10 +-
 drivers/raw/ifpga_rawdev/base/meson.build          |    8 +-
 drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.c   |   88 +
 drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.h   |   14 +
 drivers/raw/ifpga_rawdev/base/opae_debug.c         |   16 +-
 drivers/raw/ifpga_rawdev/base/opae_eth_group.c     |  145 ++
 drivers/raw/ifpga_rawdev/base/opae_eth_group.h     |   96 +
 drivers/raw/ifpga_rawdev/base/opae_hw_api.c        |  200 +-
 drivers/raw/ifpga_rawdev/base/opae_hw_api.h        |   54 +-
 drivers/raw/ifpga_rawdev/base/opae_i2c.c           |  490 +++++
 drivers/raw/ifpga_rawdev/base/opae_i2c.h           |  130 ++
 drivers/raw/ifpga_rawdev/base/opae_intel_max10.c   |   88 +
 drivers/raw/ifpga_rawdev/base/opae_intel_max10.h   |   96 +
 drivers/raw/ifpga_rawdev/base/opae_osdep.h         |   21 +-
 drivers/raw/ifpga_rawdev/base/opae_spi.c           |  304 +++
 drivers/raw/ifpga_rawdev/base/opae_spi.h           |  160 ++
 .../raw/ifpga_rawdev/base/opae_spi_transaction.c   |  438 +++++
 .../ifpga_rawdev/base/osdep_raw/osdep_generic.h    |    1 +
 .../ifpga_rawdev/base/osdep_rte/osdep_generic.h    |   16 +
 drivers/raw/ifpga_rawdev/ifpga_rawdev.c            |  248 ++-
 drivers/raw/ifpga_rawdev/ifpga_rawdev.h            |   16 +-
 drivers/raw/ifpga_rawdev/meson.build               |    6 +-
 mk/rte.app.mk                                      |    1 +
 usertools/dpdk-devbind.py                          |    4 +-
 61 files changed, 10265 insertions(+), 430 deletions(-)
 create mode 100644 doc/guides/nics/features/ipn3ke.ini
 create mode 100644 doc/guides/nics/ipn3ke.rst
 create mode 100644 drivers/net/ipn3ke/Makefile
 create mode 100644 drivers/net/ipn3ke/ipn3ke_ethdev.c
 create mode 100644 drivers/net/ipn3ke/ipn3ke_ethdev.h
 create mode 100644 drivers/net/ipn3ke/ipn3ke_flow.c
 create mode 100644 drivers/net/ipn3ke/ipn3ke_flow.h
 create mode 100644 drivers/net/ipn3ke/ipn3ke_logs.h
 create mode 100644 drivers/net/ipn3ke/ipn3ke_rawdev_api.h
 create mode 100644 drivers/net/ipn3ke/ipn3ke_representor.c
 create mode 100644 drivers/net/ipn3ke/ipn3ke_tm.c
 create mode 100644 drivers/net/ipn3ke/meson.build
 create mode 100644 drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.c
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.h
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_eth_group.c
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_eth_group.h
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_i2c.c
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_i2c.h
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_intel_max10.c
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_intel_max10.h
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_spi.c
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_spi.h
 create mode 100644 drivers/raw/ifpga_rawdev/base/opae_spi_transaction.c
  

Comments

Ferruh Yigit April 15, 2019, 12:28 p.m. UTC | #1
On 4/15/2019 6:06 AM, Rosen Xu wrote:
> v8 updates:
> =========
>  - Fix meter color definition replacement
> 
> v7 updates:
> =========
>  - Fix Stephen comments
> 
> v6 updates:
> ==========
>  - Fix v5 comments
>  - Fix TM Shaper rate issue
> 
> v5 updates:
> ==========
>  - Fix EXPERIMENTAL symbol definition issue
> 
> v4 updates:
> ==========
>  - Fix coding style issues
> 
> v3 updates:
> ==========
>  - Fix v2 comments
>  - Update MAC BAR of AFU index get ops
>  - Remove OPAE share code dependency of libfdt
> 
> v2 updates:
> ==========
>  - Fix v1 comments
>  - Add support for 10G Base Line Design Bitstream
>  - Add support for 25G Base Line Design Bitstream
> 
> This patch set adds the support of a new net PMD, Intel® FPGA Programmable
> Acceleration Card N3000, also called ipn3ke.
> 
> The ipn3ke PMD (librte_pmd_ipn3ke) provides poll mode driver support
> for Intel® FPGA PAC(Programmable Acceleration Card) N3000 based on
> the Intel Ethernet Controller X710/XXV710 and Intel Arria 10 FPGA.
> 
> In this card, FPGA is an acceleration bridge between network interface
> and the Intel Ethernet Controller. Although both FPGA and Ethernet
> Controllers are connected to CPU with PCIe Gen3x16 Switch, all the
> packet RX/TX is handled by Intel Ethernet Controller. So from application
> point of view the data path is still the legacy Intel Ethernet Controller
> X710/XXV710 PMD. Besides this, users can enable more acceleration
> features by FPGA IP.
> 
> 
> Rosen Xu (7):
>   bus/ifpga: add AFU shared data
>   bus/ifpga: add function for AFU search by name
>   net/ipn3ke: add IPN3KE ethdev PMD driver
>   net/ipn3ke: add IPN3KE representor of PMD driver
>   net/ipn3ke: add IPN3KE TM of PMD driver
>   net/ipn3ke: add IPN3KE Flow of PMD driver
>   raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev
> 
> Tianfei zhang (7):
>   raw/ifpga_rawdev: clean up code for ifpga share code
>   raw/ifpga_rawdev: store private features in FME and Port
>   raw/ifpga_rawdev: add SPI and MAX10 device driver
>   raw/ifpga_rawdev: add I2C and at24 EEPROM driver
>   raw/ifpga_rawdev: add eth group driver
>   raw/ifpga_rawdev: add version description on README
>   raw/ifpga_rawdev: using prefix name for feature and its ops

Hi Rosen,

Overall patchset looks good to me, only there are a few minor issues I have put
comment on individual patches, can you please check them?

Thanks,
ferruh
  
Xu, Rosen April 15, 2019, 12:34 p.m. UTC | #2
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Monday, April 15, 2019 20:28
> To: Xu, Rosen <rosen.xu@intel.com>; dev@dpdk.org
> Cc: Zhang, Tianfei <tianfei.zhang@intel.com>; Wei, Dan
> <dan.wei@intel.com>; Pei, Andy <andy.pei@intel.com>; Yang, Qiming
> <qiming.yang@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>; Chen,
> Santos <santos.chen@intel.com>; Zhang, Zhang <zhang.zhang@intel.com>;
> Lomartire, David <david.lomartire@intel.com>; Hu, Jia <jia.hu@intel.com>
> Subject: Re: [PATCH v8 00/14] Add patch set for IPN3KE
> 
> On 4/15/2019 6:06 AM, Rosen Xu wrote:
> > v8 updates:
> > =========
> >  - Fix meter color definition replacement
> >
> > v7 updates:
> > =========
> >  - Fix Stephen comments
> >
> > v6 updates:
> > ==========
> >  - Fix v5 comments
> >  - Fix TM Shaper rate issue
> >
> > v5 updates:
> > ==========
> >  - Fix EXPERIMENTAL symbol definition issue
> >
> > v4 updates:
> > ==========
> >  - Fix coding style issues
> >
> > v3 updates:
> > ==========
> >  - Fix v2 comments
> >  - Update MAC BAR of AFU index get ops
> >  - Remove OPAE share code dependency of libfdt
> >
> > v2 updates:
> > ==========
> >  - Fix v1 comments
> >  - Add support for 10G Base Line Design Bitstream
> >  - Add support for 25G Base Line Design Bitstream
> >
> > This patch set adds the support of a new net PMD, Intel® FPGA
> > Programmable Acceleration Card N3000, also called ipn3ke.
> >
> > The ipn3ke PMD (librte_pmd_ipn3ke) provides poll mode driver support
> > for Intel® FPGA PAC(Programmable Acceleration Card) N3000 based on the
> > Intel Ethernet Controller X710/XXV710 and Intel Arria 10 FPGA.
> >
> > In this card, FPGA is an acceleration bridge between network interface
> > and the Intel Ethernet Controller. Although both FPGA and Ethernet
> > Controllers are connected to CPU with PCIe Gen3x16 Switch, all the
> > packet RX/TX is handled by Intel Ethernet Controller. So from
> > application point of view the data path is still the legacy Intel
> > Ethernet Controller
> > X710/XXV710 PMD. Besides this, users can enable more acceleration
> > features by FPGA IP.
> >
> >
> > Rosen Xu (7):
> >   bus/ifpga: add AFU shared data
> >   bus/ifpga: add function for AFU search by name
> >   net/ipn3ke: add IPN3KE ethdev PMD driver
> >   net/ipn3ke: add IPN3KE representor of PMD driver
> >   net/ipn3ke: add IPN3KE TM of PMD driver
> >   net/ipn3ke: add IPN3KE Flow of PMD driver
> >   raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev
> >
> > Tianfei zhang (7):
> >   raw/ifpga_rawdev: clean up code for ifpga share code
> >   raw/ifpga_rawdev: store private features in FME and Port
> >   raw/ifpga_rawdev: add SPI and MAX10 device driver
> >   raw/ifpga_rawdev: add I2C and at24 EEPROM driver
> >   raw/ifpga_rawdev: add eth group driver
> >   raw/ifpga_rawdev: add version description on README
> >   raw/ifpga_rawdev: using prefix name for feature and its ops
> 
> Hi Rosen,
> 
> Overall patchset looks good to me, only there are a few minor issues I have
> put comment on individual patches, can you please check them?
> 
> Thanks,
> ferruh

Okay