mbox series

[v6,00/31] A new net PMD - ICE

Message ID 1545122800-57293-1-git-send-email-wenzhuo.lu@intel.com (mailing list archive)
Headers show
Series A new net PMD - ICE | expand

Message

Wenzhuo Lu Dec. 18, 2018, 8:46 a.m. UTC
This patch set adds the support of a new net PMD,
Intel® Ethernet Network Adapters E810, also
called ice.

Below features are enabled by this patch set,

Basic features:
1, Basic device operations: probe, initialization, start/stop, configure, info get.
2, RX/TX queue operations: setup/release, start/stop, info get.
3, RX/TX.

HW Offload features:
1, CRC Stripping/insertion.
2, L2/L3 checksum strip/insertion.
3, PVID set.
4, TPID change.
5, TSO (LRO/RSC not supported).

Stats:
1, statics & xstatics.

Switch functions:
1, MAC Filter Add/Delete.
2, VLAN Filter Add/Delete.

Power saving:
1, RX interrupt mode.

Misc:
1, Interrupt For Link Status.
2, firmware info query.
3, Jumbo Frame Support.
4, ptype check.
5, EEPROM check and set.

---
v2:
 - Fix shared lib compile issue.
 - Add meson build support.
 - Update documents.
 - Fix more checkpatch issues.

v3:
 - Removed the support of secondary process.
 - Splitted the base code to more patches.
 - Pass NULL to rte_zmalloc.
 - Changed some magic numbers to macros.
 - Fixed the wrong implementation of a specific bitmapi.

v4:
 - Moved meson build forward.
 - Updated and splitted the document to related patches.
 - Updated the device info.
 - Removed unnecessary compile config.
 - Removed the code of ops rx_descriptor_done.
 - Adjusted the order of the functions.
 - Added error print for MAC setting.

v5:
 - Removed ice_dcb.c/h.
 - Fixed compile error of icc and i686.
 - Announced dependence of uio and vfio.

v6:
 - Adjusted the order of the patches.
 - Fixed some checkpatch errors.
 - Some minor change.

Paul M Stillwell Jr (13):
  net/ice/base: add registers for Intel(R) E800 Series NIC
  net/ice/base: add basic structures
  net/ice/base: add admin queue structures and commands
  net/ice/base: add sideband queue info
  net/ice/base: add device IDs for Intel(r) E800 Series NICs
  net/ice/base: add control queue information
  net/ice/base: add basic transmit scheduler
  net/ice/base: add virtual switch code
  net/ice/base: add code to work with the NVM
  net/ice/base: add common functions
  net/ice/base: add various headers
  net/ice/base: add protocol structures and defines
  net/ice/base: add structures for RX/TX queues

Wenzhuo Lu (18):
  net/ice/base: add OS specific implementation
  net/ice: support device initialization
  net/ice: support device and queue ops
  net/ice: support getting device information
  net/ice: support link update
  net/ice: support queue information getting
  net/ice: support packet type getting
  net/ice: support basic RX/TX
  net/ice: support MTU setting
  net/ice: support MAC ops
  net/ice: support VLAN ops
  net/ice: support RSS
  net/ice: support RX queue interruption
  net/ice: support FW version getting
  net/ice: support EEPROM information getting
  net/ice: support advance RX/TX
  net/ice: support statistics
  support descriptor ops

 MAINTAINERS                              |    8 +
 config/common_base                       |    9 +
 doc/guides/nics/features/ice.ini         |   39 +
 doc/guides/nics/ice.rst                  |  104 +
 doc/guides/nics/index.rst                |    1 +
 doc/guides/rel_notes/release_19_02.rst   |    5 +
 drivers/net/Makefile                     |    1 +
 drivers/net/ice/Makefile                 |   55 +
 drivers/net/ice/base/README              |   22 +
 drivers/net/ice/base/ice_adminq_cmd.h    | 1891 ++++++
 drivers/net/ice/base/ice_alloc.h         |   22 +
 drivers/net/ice/base/ice_common.c        | 3521 +++++++++++
 drivers/net/ice/base/ice_common.h        |  186 +
 drivers/net/ice/base/ice_controlq.c      | 1098 ++++
 drivers/net/ice/base/ice_controlq.h      |   97 +
 drivers/net/ice/base/ice_devids.h        |   17 +
 drivers/net/ice/base/ice_flex_type.h     |   19 +
 drivers/net/ice/base/ice_flow.h          |    8 +
 drivers/net/ice/base/ice_hw_autogen.h    | 9815 ++++++++++++++++++++++++++++++
 drivers/net/ice/base/ice_lan_tx_rx.h     | 2291 +++++++
 drivers/net/ice/base/ice_nvm.c           |  387 ++
 drivers/net/ice/base/ice_osdep.h         |  524 ++
 drivers/net/ice/base/ice_protocol_type.h |  248 +
 drivers/net/ice/base/ice_sbq_cmd.h       |   93 +
 drivers/net/ice/base/ice_sched.c         | 5380 ++++++++++++++++
 drivers/net/ice/base/ice_sched.h         |  210 +
 drivers/net/ice/base/ice_status.h        |   45 +
 drivers/net/ice/base/ice_switch.c        | 2812 +++++++++
 drivers/net/ice/base/ice_switch.h        |  333 +
 drivers/net/ice/base/ice_type.h          |  869 +++
 drivers/net/ice/base/meson.build         |   27 +
 drivers/net/ice/ice_ethdev.c             | 3245 ++++++++++
 drivers/net/ice/ice_ethdev.h             |  318 +
 drivers/net/ice/ice_logs.h               |   45 +
 drivers/net/ice/ice_rxtx.c               | 2872 +++++++++
 drivers/net/ice/ice_rxtx.h               |  154 +
 drivers/net/ice/meson.build              |   13 +
 drivers/net/ice/rte_pmd_ice_version.map  |    4 +
 drivers/net/meson.build                  |    1 +
 mk/rte.app.mk                            |    1 +
 40 files changed, 36790 insertions(+)
 create mode 100644 doc/guides/nics/features/ice.ini
 create mode 100644 doc/guides/nics/ice.rst
 create mode 100644 drivers/net/ice/Makefile
 create mode 100644 drivers/net/ice/base/README
 create mode 100644 drivers/net/ice/base/ice_adminq_cmd.h
 create mode 100644 drivers/net/ice/base/ice_alloc.h
 create mode 100644 drivers/net/ice/base/ice_common.c
 create mode 100644 drivers/net/ice/base/ice_common.h
 create mode 100644 drivers/net/ice/base/ice_controlq.c
 create mode 100644 drivers/net/ice/base/ice_controlq.h
 create mode 100644 drivers/net/ice/base/ice_devids.h
 create mode 100644 drivers/net/ice/base/ice_flex_type.h
 create mode 100644 drivers/net/ice/base/ice_flow.h
 create mode 100644 drivers/net/ice/base/ice_hw_autogen.h
 create mode 100644 drivers/net/ice/base/ice_lan_tx_rx.h
 create mode 100644 drivers/net/ice/base/ice_nvm.c
 create mode 100644 drivers/net/ice/base/ice_osdep.h
 create mode 100644 drivers/net/ice/base/ice_protocol_type.h
 create mode 100644 drivers/net/ice/base/ice_sbq_cmd.h
 create mode 100644 drivers/net/ice/base/ice_sched.c
 create mode 100644 drivers/net/ice/base/ice_sched.h
 create mode 100644 drivers/net/ice/base/ice_status.h
 create mode 100644 drivers/net/ice/base/ice_switch.c
 create mode 100644 drivers/net/ice/base/ice_switch.h
 create mode 100644 drivers/net/ice/base/ice_type.h
 create mode 100644 drivers/net/ice/base/meson.build
 create mode 100644 drivers/net/ice/ice_ethdev.c
 create mode 100644 drivers/net/ice/ice_ethdev.h
 create mode 100644 drivers/net/ice/ice_logs.h
 create mode 100644 drivers/net/ice/ice_rxtx.c
 create mode 100644 drivers/net/ice/ice_rxtx.h
 create mode 100644 drivers/net/ice/meson.build
 create mode 100644 drivers/net/ice/rte_pmd_ice_version.map

Comments

Ferruh Yigit Dec. 18, 2018, 1:53 p.m. UTC | #1
On 12/18/2018 8:46 AM, Wenzhuo Lu wrote:
> This patch set adds the support of a new net PMD,
> Intel® Ethernet Network Adapters E810, also
> called ice.
> 
> Below features are enabled by this patch set,
> 
> Basic features:
> 1, Basic device operations: probe, initialization, start/stop, configure, info get.
> 2, RX/TX queue operations: setup/release, start/stop, info get.
> 3, RX/TX.
> 
> HW Offload features:
> 1, CRC Stripping/insertion.
> 2, L2/L3 checksum strip/insertion.
> 3, PVID set.
> 4, TPID change.
> 5, TSO (LRO/RSC not supported).
> 
> Stats:
> 1, statics & xstatics.
> 
> Switch functions:
> 1, MAC Filter Add/Delete.
> 2, VLAN Filter Add/Delete.
> 
> Power saving:
> 1, RX interrupt mode.
> 
> Misc:
> 1, Interrupt For Link Status.
> 2, firmware info query.
> 3, Jumbo Frame Support.
> 4, ptype check.
> 5, EEPROM check and set.
> 
> ---
> v2:
>  - Fix shared lib compile issue.
>  - Add meson build support.
>  - Update documents.
>  - Fix more checkpatch issues.
> 
> v3:
>  - Removed the support of secondary process.
>  - Splitted the base code to more patches.
>  - Pass NULL to rte_zmalloc.
>  - Changed some magic numbers to macros.
>  - Fixed the wrong implementation of a specific bitmapi.
> 
> v4:
>  - Moved meson build forward.
>  - Updated and splitted the document to related patches.
>  - Updated the device info.
>  - Removed unnecessary compile config.
>  - Removed the code of ops rx_descriptor_done.
>  - Adjusted the order of the functions.
>  - Added error print for MAC setting.
> 
> v5:
>  - Removed ice_dcb.c/h.
>  - Fixed compile error of icc and i686.
>  - Announced dependence of uio and vfio.
> 
> v6:
>  - Adjusted the order of the patches.
>  - Fixed some checkpatch errors.
>  - Some minor change.
> 
> Paul M Stillwell Jr (13):
>   net/ice/base: add registers for Intel(R) E800 Series NIC
>   net/ice/base: add basic structures
>   net/ice/base: add admin queue structures and commands
>   net/ice/base: add sideband queue info
>   net/ice/base: add device IDs for Intel(r) E800 Series NICs
>   net/ice/base: add control queue information
>   net/ice/base: add basic transmit scheduler
>   net/ice/base: add virtual switch code
>   net/ice/base: add code to work with the NVM
>   net/ice/base: add common functions
>   net/ice/base: add various headers
>   net/ice/base: add protocol structures and defines
>   net/ice/base: add structures for RX/TX queues
> 
> Wenzhuo Lu (18):
>   net/ice/base: add OS specific implementation
>   net/ice: support device initialization
>   net/ice: support device and queue ops
>   net/ice: support getting device information
>   net/ice: support link update
>   net/ice: support queue information getting
>   net/ice: support packet type getting
>   net/ice: support basic RX/TX
>   net/ice: support MTU setting
>   net/ice: support MAC ops
>   net/ice: support VLAN ops
>   net/ice: support RSS
>   net/ice: support RX queue interruption
>   net/ice: support FW version getting
>   net/ice: support EEPROM information getting
>   net/ice: support advance RX/TX
>   net/ice: support statistics
>   support descriptor ops

For series,
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Zhang, Qi Z Dec. 19, 2018, 3:27 a.m. UTC | #2
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ferruh Yigit
> Sent: Tuesday, December 18, 2018 9:53 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v6 00/31] A new net PMD - ICE
> 
> On 12/18/2018 8:46 AM, Wenzhuo Lu wrote:
> > This patch set adds the support of a new net PMD, Intel® Ethernet
> > Network Adapters E810, also called ice.
> >
> > Below features are enabled by this patch set,
> >
> > Basic features:
> > 1, Basic device operations: probe, initialization, start/stop, configure, info get.
> > 2, RX/TX queue operations: setup/release, start/stop, info get.
> > 3, RX/TX.
> >
> > HW Offload features:
> > 1, CRC Stripping/insertion.
> > 2, L2/L3 checksum strip/insertion.
> > 3, PVID set.
> > 4, TPID change.
> > 5, TSO (LRO/RSC not supported).
> >
> > Stats:
> > 1, statics & xstatics.
> >
> > Switch functions:
> > 1, MAC Filter Add/Delete.
> > 2, VLAN Filter Add/Delete.
> >
> > Power saving:
> > 1, RX interrupt mode.
> >
> > Misc:
> > 1, Interrupt For Link Status.
> > 2, firmware info query.
> > 3, Jumbo Frame Support.
> > 4, ptype check.
> > 5, EEPROM check and set.
> >
> > ---
> > v2:
> >  - Fix shared lib compile issue.
> >  - Add meson build support.
> >  - Update documents.
> >  - Fix more checkpatch issues.
> >
> > v3:
> >  - Removed the support of secondary process.
> >  - Splitted the base code to more patches.
> >  - Pass NULL to rte_zmalloc.
> >  - Changed some magic numbers to macros.
> >  - Fixed the wrong implementation of a specific bitmapi.
> >
> > v4:
> >  - Moved meson build forward.
> >  - Updated and splitted the document to related patches.
> >  - Updated the device info.
> >  - Removed unnecessary compile config.
> >  - Removed the code of ops rx_descriptor_done.
> >  - Adjusted the order of the functions.
> >  - Added error print for MAC setting.
> >
> > v5:
> >  - Removed ice_dcb.c/h.
> >  - Fixed compile error of icc and i686.
> >  - Announced dependence of uio and vfio.
> >
> > v6:
> >  - Adjusted the order of the patches.
> >  - Fixed some checkpatch errors.
> >  - Some minor change.
> >
> > Paul M Stillwell Jr (13):
> >   net/ice/base: add registers for Intel(R) E800 Series NIC
> >   net/ice/base: add basic structures
> >   net/ice/base: add admin queue structures and commands
> >   net/ice/base: add sideband queue info
> >   net/ice/base: add device IDs for Intel(r) E800 Series NICs
> >   net/ice/base: add control queue information
> >   net/ice/base: add basic transmit scheduler
> >   net/ice/base: add virtual switch code
> >   net/ice/base: add code to work with the NVM
> >   net/ice/base: add common functions
> >   net/ice/base: add various headers
> >   net/ice/base: add protocol structures and defines
> >   net/ice/base: add structures for RX/TX queues
> >
> > Wenzhuo Lu (18):
> >   net/ice/base: add OS specific implementation
> >   net/ice: support device initialization
> >   net/ice: support device and queue ops
> >   net/ice: support getting device information
> >   net/ice: support link update
> >   net/ice: support queue information getting
> >   net/ice: support packet type getting
> >   net/ice: support basic RX/TX
> >   net/ice: support MTU setting
> >   net/ice: support MAC ops
> >   net/ice: support VLAN ops
> >   net/ice: support RSS
> >   net/ice: support RX queue interruption
> >   net/ice: support FW version getting
> >   net/ice: support EEPROM information getting
> >   net/ice: support advance RX/TX
> >   net/ice: support statistics
> >   support descriptor ops
> 
> For series,
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

Patch 15/31 ~ 21/31
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel with minor fix as below.

1. fix missing "net/ice:" on title of patch 31/31
2. rename RX/TX to Rx/Tx to fix check-git-log warning.

Thanks
Qi