mbox series

[00/19] A new net PMD - ice

Message ID 1542956179-80951-1-git-send-email-wenzhuo.lu@intel.com (mailing list archive)
Headers
Series A new net PMD - ice |

Message

Wenzhuo Lu Nov. 23, 2018, 6:56 a.m. UTC
  This patch set adds the support of a new net PMD,
IntelĀ® Ethernet Network Adapters E810, also
called ice.

Besides enabling this new NIC, also some other features
supported on this NIC.
Like below,

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.

Wenzhuo Lu (19):
  net/ice: add base code
  net/ice: support device initialization
  net/ice: support device and queue ops
  net/ice: support getting device information
  net/ice: support packet type getting
  net/ice: support link update
  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 statistics
  net/ice: support queue information getting
  net/ice: support basic RX/TX
  net/ice: support advance RX/TX
  net/ice: support descriptor ops
  doc: add ICE description and update release note

 MAINTAINERS                              |    7 +
 config/common_base                       |    9 +
 doc/guides/nics/features/ice.ini         |   39 +
 doc/guides/nics/ice.rst                  |   78 +
 drivers/net/Makefile                     |    1 +
 drivers/net/ice/Makefile                 |   76 +
 drivers/net/ice/base/README              |   22 +
 drivers/net/ice/base/ice_acl.c           |    4 +
 drivers/net/ice/base/ice_acl.h           |    7 +
 drivers/net/ice/base/ice_acl_ctrl.c      |    4 +
 drivers/net/ice/base/ice_adminq_cmd.h    | 1724 ++++++
 drivers/net/ice/base/ice_alloc.h         |   22 +
 drivers/net/ice/base/ice_bitops.h        |  233 +
 drivers/net/ice/base/ice_common.c        | 3332 ++++++++++
 drivers/net/ice/base/ice_common.h        |  159 +
 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_pipe.c     |    5 +
 drivers/net/ice/base/ice_flex_pipe.h     |   83 +
 drivers/net/ice/base/ice_flex_type.h     |   19 +
 drivers/net/ice/base/ice_flow.c          |    4 +
 drivers/net/ice/base/ice_flow.h          |    8 +
 drivers/net/ice/base/ice_hw_autogen.h    | 9815 ++++++++++++++++++++++++++++++
 drivers/net/ice/base/ice_impl_guide.c    |  167 +
 drivers/net/ice/base/ice_lan_tx_rx.h     | 2290 +++++++
 drivers/net/ice/base/ice_nvm.c           |  388 ++
 drivers/net/ice/base/ice_osdep.h         |  491 ++
 drivers/net/ice/base/ice_protocol_type.h |  237 +
 drivers/net/ice/base/ice_sbq_cmd.h       |   93 +
 drivers/net/ice/base/ice_sched.c         | 1715 ++++++
 drivers/net/ice/base/ice_sched.h         |   68 +
 drivers/net/ice/base/ice_sriov.c         |  129 +
 drivers/net/ice/base/ice_sriov.h         |   35 +
 drivers/net/ice/base/ice_status.h        |   45 +
 drivers/net/ice/base/ice_switch.c        | 2415 ++++++++
 drivers/net/ice/base/ice_switch.h        |  320 +
 drivers/net/ice/base/ice_type.h          |  789 +++
 drivers/net/ice/base/virtchnl.h          |  787 +++
 drivers/net/ice/ice_ethdev.c             | 3302 ++++++++++
 drivers/net/ice/ice_ethdev.h             |  318 +
 drivers/net/ice/ice_lan_rxtx.c           | 2922 +++++++++
 drivers/net/ice/ice_logs.h               |   45 +
 drivers/net/ice/ice_rxtx.h               |  155 +
 drivers/net/ice/rte_pmd_ice_version.map  |    4 +
 mk/rte.app.mk                            |    1 +
 46 files changed, 33579 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_acl.c
 create mode 100644 drivers/net/ice/base/ice_acl.h
 create mode 100644 drivers/net/ice/base/ice_acl_ctrl.c
 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_bitops.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_pipe.c
 create mode 100644 drivers/net/ice/base/ice_flex_pipe.h
 create mode 100644 drivers/net/ice/base/ice_flex_type.h
 create mode 100644 drivers/net/ice/base/ice_flow.c
 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_impl_guide.c
 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_sriov.c
 create mode 100644 drivers/net/ice/base/ice_sriov.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/virtchnl.h
 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_lan_rxtx.c
 create mode 100644 drivers/net/ice/ice_logs.h
 create mode 100644 drivers/net/ice/ice_rxtx.h
 create mode 100644 drivers/net/ice/rte_pmd_ice_version.map
  

Comments

Thomas Monjalon Nov. 23, 2018, 11 a.m. UTC | #1
Hi Wenzhuo,

23/11/2018 07:56, Wenzhuo Lu:
>   net/ice: add base code

This first patch is really too big.
Please could you try to split it logically?
  
Wenzhuo Lu Dec. 5, 2018, 6:39 a.m. UTC | #2
Hi Thomas,


> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Friday, November 23, 2018 7:00 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 00/19] A new net PMD - ice
> 
> Hi Wenzhuo,
> 
> 23/11/2018 07:56, Wenzhuo Lu:
> >   net/ice: add base code
> 
> This first patch is really too big.
> Please could you try to split it logically?
This is base code which is not developed by us. We're not so familiar with it. It's the first time to release the code, I know it's too big, to us too. But anyway we'll maintain it. 
To save the effort, we always don't split the base code when releasing it at the first time. Is that OK?
  
Thomas Monjalon Dec. 5, 2018, 7:28 a.m. UTC | #3
05/12/2018 07:39, Lu, Wenzhuo:
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > 23/11/2018 07:56, Wenzhuo Lu:
> > >   net/ice: add base code
> > 
> > This first patch is really too big.
> > Please could you try to split it logically?
> 
> This is base code which is not developed by us. We're not so familiar with it. It's the first time to release the code, I know it's too big, to us too. But anyway we'll maintain it. 
> To save the effort, we always don't split the base code when releasing it at the first time. Is that OK?

It's not the best start.
How a very new driver can start with so many code and not being fully
understood by those who will maintain it?

It's really better to start small and grow.
It would ease both testing and understanding.
  
Wenzhuo Lu Dec. 5, 2018, 8:19 a.m. UTC | #4
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Wednesday, December 5, 2018 3:29 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 00/19] A new net PMD - ice
> 
> 05/12/2018 07:39, Lu, Wenzhuo:
> > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > > 23/11/2018 07:56, Wenzhuo Lu:
> > > >   net/ice: add base code
> > >
> > > This first patch is really too big.
> > > Please could you try to split it logically?
> >
> > This is base code which is not developed by us. We're not so familiar with
> it. It's the first time to release the code, I know it's too big, to us too. But
> anyway we'll maintain it.
> > To save the effort, we always don't split the base code when releasing it at
> the first time. Is that OK?
> 
> It's not the best start.
> How a very new driver can start with so many code and not being fully
> understood by those who will maintain it?
> 
> It's really better to start small and grow.
> It would ease both testing and understanding.
Agree ideally it's much better if I can understand the whole code. But there's about 26K lines of code. I cannot lie to say I or any single person can fully understand all of them. There's a team that's supporting us. If any bug related to the code, we'll ask the help from the team. Even we found the root cause of the bug, we'd like getting confirm from them. That's how we make it work for all our NICs.