mbox series

[v3,00/62] Marvell CNXK Ethdev Driver

Message ID 20210618103741.26526-1-ndabilpuram@marvell.com (mailing list archive)
Headers show
Series Marvell CNXK Ethdev Driver | expand

Message

Nithin Kumar Dabilpuram June 18, 2021, 10:36 a.m. UTC
This patchset adds support for Marvell CN106XX SoC based on 'common/cnxk'
driver. In future, CN9K a.k.a octeontx2 will also be supported by same
driver when code is ready and 'net/octeontx2' will be deprecated.

Harman Kalra (1):
  common/cnxk: allocate lmt region in userspace

Jerin Jacob (7):
  common/cnxk: fix batch alloc completion poll logic
  net/cnxk: add Rx support for cn9k
  net/cnxk: add Rx vector version for cn9k
  net/cnxk: add Tx support for cn9k
  net/cnxk: add Rx support for cn10k
  net/cnxk: add Rx vector version for cn10k
  net/cnxk: add Tx support for cn10k

Kiran Kumar K (2):
  net/cnxk: add support to configure npc
  net/cnxk: add initial version of rte flow support

Nithin Dabilpuram (17):
  net/cnxk: add build infra and common probe
  net/cnxk: add platform specific probe and remove
  net/cnxk: add common devargs parsing function
  net/cnxk: add common dev infos get support
  net/cnxk: add device configuration operation
  net/cnxk: add link status update support
  net/cnxk: add Rx queue setup and release
  net/cnxk: add Tx queue setup and release
  net/cnxk: add packet type support
  net/cnxk: add queue start and stop support
  net/cnxk: add Rx multi-segmented version for cn9k
  net/cnxk: add Tx multi-segment version for cn9k
  net/cnxk: add Tx vector version for cn9k
  net/cnxk: add Rx multi-segment version for cn10k
  net/cnxk: add Tx multi-segment version for cn10k
  net/cnxk: add Tx vector version for cn10k
  net/cnxk: add device start and stop operations

Satha Rao (8):
  common/cnxk: add support to lock NIX RQ contexts
  common/cnxk: add provision to enable RED on RQ
  net/cnxk: add port/queue stats
  net/cnxk: add xstats apis
  net/cnxk: add rxq/txq info get operations
  net/cnxk: add ethdev firmware version get
  net/cnxk: add get register operation
  net/cnxk: added RETA and RSS hash operations

Satheesh Paul (7):
  common/cnxk: add support to dump flow entries
  common/cnxk: support for mark and flag flow actions
  common/cnxk: support for VLAN push and pop flow actions
  common/cnxk: fix flow create on CN98xx
  net/cnxk: add flow ops get operation
  net/cnxk: support for RSS in rte flow
  net/cnxk: add marking and VLAN tagging support

Sunil Kumar Kori (20):
  net/cnxk: add MAC address set ops
  net/cnxk: add MTU set device operation
  net/cnxk: add promiscuous mode enable and disable
  net/cnxk: add DMAC filter support
  net/cnxk: add all multicast enable/disable ethops
  net/cnxk: add Rx/Tx burst mode get ops
  net/cnxk: add flow ctrl set/get ops
  net/cnxk: add link up/down operations
  net/cnxk: add EEPROM module info get operations
  net/cnxk: add Rx queue interrupt enable/disable ops
  net/cnxk: add validation API for mempool ops
  net/cnxk: add device close and reset operations
  net/cnxk: add pending Tx mbuf cleanup operation
  net/cnxk: register callback to get PTP status
  net/cnxk: add base PTP timesync support
  net/cnxk: add timesync enable/disable operations
  net/cnxk: add Rx/Tx timestamp read operations
  net/cnxk: add time read/write/adjust operations
  net/cnxk: add read clock operation
  net/cnxk: add multicast filter support

--

v3:
- Updated release notes
- Removed RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS flag and add support for queue
  stats in xstats
- Fixed issue with LSO format indices
- Removed mbox sync changes patch from this series
- Fixed documentation issues
- Removed repetitive code in fast path SIMD
- Optimize cn10k LMTST logic
- Make rte_flow_create implementation specific
  to handle VLAN Stripping and MARK actions/offloads
- Use rte_atomic_thread_fence() instead of rte_rmb()
- Handle other comments from Jerin.
- Merged rte flow dump API patch to flow ops get patch
- Added marking and vlan tagging support.
- Fixed some checkpatch and git check log issues.

v2:
- Fixed issue with flow validate and flow create for 98xx
- Fixed issue batch alloc logic
- Fix lmtline allocation to be cached
- Sync Inline IPSec Rx mbox with kernel
- Add support for mark and flag flow actions
- Add reta key and hash update ops
- Added PTP and multicast filter support
 
 MAINTAINERS                             |    5 +-
 doc/guides/nics/cnxk.rst                |  232 +++++
 doc/guides/nics/features/cnxk.ini       |   90 ++
 doc/guides/nics/features/cnxk_vec.ini   |   44 +
 doc/guides/nics/features/cnxk_vf.ini    |   40 +
 doc/guides/nics/index.rst               |    1 +
 doc/guides/platform/cnxk.rst            |    3 +
 doc/guides/rel_notes/release_21_08.rst  |    5 +
 drivers/common/cnxk/hw/npc.h            |    2 +
 drivers/common/cnxk/meson.build         |    1 +
 drivers/common/cnxk/roc_api.h           |    2 +
 drivers/common/cnxk/roc_dev.c           |   98 +-
 drivers/common/cnxk/roc_dev_priv.h      |    1 +
 drivers/common/cnxk/roc_mbox.h          |    3 +
 drivers/common/cnxk/roc_model.h         |    6 +
 drivers/common/cnxk/roc_nix.h           |   39 +-
 drivers/common/cnxk/roc_nix_queue.c     |   52 +
 drivers/common/cnxk/roc_nix_rss.c       |   51 +-
 drivers/common/cnxk/roc_nix_tm_utils.c  |   86 +-
 drivers/common/cnxk/roc_npa.c           |   10 +-
 drivers/common/cnxk/roc_npa.h           |   35 +-
 drivers/common/cnxk/roc_npc.c           |  296 +++++-
 drivers/common/cnxk/roc_npc.h           |   39 +-
 drivers/common/cnxk/roc_npc_mcam.c      |    2 +-
 drivers/common/cnxk/roc_npc_mcam_dump.c |  611 ++++++++++++
 drivers/common/cnxk/roc_npc_priv.h      |    3 +-
 drivers/common/cnxk/roc_npc_utils.c     |    4 +
 drivers/common/cnxk/roc_platform.h      |   13 +
 drivers/common/cnxk/version.map         |    7 +
 drivers/net/cnxk/cn10k_ethdev.c         |  551 +++++++++++
 drivers/net/cnxk/cn10k_ethdev.h         |   41 +
 drivers/net/cnxk/cn10k_rte_flow.c       |   72 ++
 drivers/net/cnxk/cn10k_rte_flow.h       |   17 +
 drivers/net/cnxk/cn10k_rx.c             |   79 ++
 drivers/net/cnxk/cn10k_rx.h             |  653 +++++++++++++
 drivers/net/cnxk/cn10k_rx_mseg.c        |   17 +
 drivers/net/cnxk/cn10k_rx_vec.c         |   22 +
 drivers/net/cnxk/cn10k_tx.c             |   82 ++
 drivers/net/cnxk/cn10k_tx.h             | 1605 +++++++++++++++++++++++++++++++
 drivers/net/cnxk/cn10k_tx_mseg.c        |   25 +
 drivers/net/cnxk/cn10k_tx_vec.c         |   26 +
 drivers/net/cnxk/cn9k_ethdev.c          |  574 +++++++++++
 drivers/net/cnxk/cn9k_ethdev.h          |   39 +
 drivers/net/cnxk/cn9k_rte_flow.c        |   72 ++
 drivers/net/cnxk/cn9k_rte_flow.h        |   17 +
 drivers/net/cnxk/cn9k_rx.c              |   79 ++
 drivers/net/cnxk/cn9k_rx.h              |  655 +++++++++++++
 drivers/net/cnxk/cn9k_rx_mseg.c         |   17 +
 drivers/net/cnxk/cn9k_rx_vec.c          |   20 +
 drivers/net/cnxk/cn9k_tx.c              |   81 ++
 drivers/net/cnxk/cn9k_tx.h              | 1436 +++++++++++++++++++++++++++
 drivers/net/cnxk/cn9k_tx_mseg.c         |   25 +
 drivers/net/cnxk/cn9k_tx_vec.c          |   26 +
 drivers/net/cnxk/cnxk_ethdev.c          | 1528 +++++++++++++++++++++++++++++
 drivers/net/cnxk/cnxk_ethdev.h          |  495 ++++++++++
 drivers/net/cnxk/cnxk_ethdev_devargs.c  |  173 ++++
 drivers/net/cnxk/cnxk_ethdev_ops.c      |  910 ++++++++++++++++++
 drivers/net/cnxk/cnxk_link.c            |  113 +++
 drivers/net/cnxk/cnxk_lookup.c          |  326 +++++++
 drivers/net/cnxk/cnxk_ptp.c             |  287 ++++++
 drivers/net/cnxk/cnxk_rte_flow.c        |  433 +++++++++
 drivers/net/cnxk/cnxk_rte_flow.h        |   27 +
 drivers/net/cnxk/cnxk_stats.c           |  320 ++++++
 drivers/net/cnxk/meson.build            |   48 +
 drivers/net/cnxk/version.map            |    3 +
 drivers/net/meson.build                 |    1 +
 66 files changed, 12577 insertions(+), 99 deletions(-)
 create mode 100644 doc/guides/nics/cnxk.rst
 create mode 100644 doc/guides/nics/features/cnxk.ini
 create mode 100644 doc/guides/nics/features/cnxk_vec.ini
 create mode 100644 doc/guides/nics/features/cnxk_vf.ini
 create mode 100644 drivers/common/cnxk/roc_npc_mcam_dump.c
 create mode 100644 drivers/net/cnxk/cn10k_ethdev.c
 create mode 100644 drivers/net/cnxk/cn10k_ethdev.h
 create mode 100644 drivers/net/cnxk/cn10k_rte_flow.c
 create mode 100644 drivers/net/cnxk/cn10k_rte_flow.h
 create mode 100644 drivers/net/cnxk/cn10k_rx.c
 create mode 100644 drivers/net/cnxk/cn10k_rx.h
 create mode 100644 drivers/net/cnxk/cn10k_rx_mseg.c
 create mode 100644 drivers/net/cnxk/cn10k_rx_vec.c
 create mode 100644 drivers/net/cnxk/cn10k_tx.c
 create mode 100644 drivers/net/cnxk/cn10k_tx.h
 create mode 100644 drivers/net/cnxk/cn10k_tx_mseg.c
 create mode 100644 drivers/net/cnxk/cn10k_tx_vec.c
 create mode 100644 drivers/net/cnxk/cn9k_ethdev.c
 create mode 100644 drivers/net/cnxk/cn9k_ethdev.h
 create mode 100644 drivers/net/cnxk/cn9k_rte_flow.c
 create mode 100644 drivers/net/cnxk/cn9k_rte_flow.h
 create mode 100644 drivers/net/cnxk/cn9k_rx.c
 create mode 100644 drivers/net/cnxk/cn9k_rx.h
 create mode 100644 drivers/net/cnxk/cn9k_rx_mseg.c
 create mode 100644 drivers/net/cnxk/cn9k_rx_vec.c
 create mode 100644 drivers/net/cnxk/cn9k_tx.c
 create mode 100644 drivers/net/cnxk/cn9k_tx.h
 create mode 100644 drivers/net/cnxk/cn9k_tx_mseg.c
 create mode 100644 drivers/net/cnxk/cn9k_tx_vec.c
 create mode 100644 drivers/net/cnxk/cnxk_ethdev.c
 create mode 100644 drivers/net/cnxk/cnxk_ethdev.h
 create mode 100644 drivers/net/cnxk/cnxk_ethdev_devargs.c
 create mode 100644 drivers/net/cnxk/cnxk_ethdev_ops.c
 create mode 100644 drivers/net/cnxk/cnxk_link.c
 create mode 100644 drivers/net/cnxk/cnxk_lookup.c
 create mode 100644 drivers/net/cnxk/cnxk_ptp.c
 create mode 100644 drivers/net/cnxk/cnxk_rte_flow.c
 create mode 100644 drivers/net/cnxk/cnxk_rte_flow.h
 create mode 100644 drivers/net/cnxk/cnxk_stats.c
 create mode 100644 drivers/net/cnxk/meson.build
 create mode 100644 drivers/net/cnxk/version.map

Comments

Jerin Jacob June 21, 2021, 1:41 p.m. UTC | #1
On Fri, Jun 18, 2021 at 4:09 PM Nithin Dabilpuram
<ndabilpuram@marvell.com> wrote:
>
> This patchset adds support for Marvell CN106XX SoC based on 'common/cnxk'
> driver. In future, CN9K a.k.a octeontx2 will also be supported by same
> driver when code is ready and 'net/octeontx2' will be deprecated.

Looks good to me in general, a couple of final comments

1)  Build issue with RHEL 7 (gcc 4.8)
http://mails.dpdk.org/archives/test-report/2021-June/199620.html

2) Shorten git subject messages( for explicit "add" etc)
Example:

From:
net/cnxk: add DMAC filter support

to:
net/cnxk: support DMAC filter


3) Add Cc: stable@dpdk.org for following patch
        common/cnxk: fix batch alloc completion poll logic

4) Fix following camel case

CHECK:CAMELCASE: Avoid CamelCase: <roc_model_is_cn96_Ax>
#92: FILE: drivers/net/cnxk/cnxk_ethdev.c:122:
+       if (roc_model_is_cn96_Ax() &&

5) Replace INTERNAL in drivers/net/cnxk/version.map

6) Add [rte_flow items] and [rte_flow actions] in
doc/guides/nics/features/cnxk_vec.ini and
doc/guides/nics/features/cnxk_vf.ini