[dpdk-dev] [PATCH 00/26] DPDK PMD for OCTEONTX NW device

Jerin Jacob jerin.jacob at caviumnetworks.com
Thu Aug 31 16:54:10 CEST 2017


This patch set provides the initial version of DPDK PMD for the
integrated NIC device found in Cavium OCTEONTX SoC(CN83xx) family.

Introduction to OCTEONTX ARM processors can be found
here: http://www.cavium.com/OCTEON-TX_ARM_Processors.html

OCTEONTX SoC family has two types of NIC controllers,
1) nicvf HW, Which is more like traditional NIC(no NPU HW accelerators)
http://dpdk.org/doc/guides/nics/thunderx.html

2) NIC controller, based on NPU like HW accelerated coprocessors, like
HW assisted mempool manager, HW assisted packet scheduler, etc

This driver adds support for the second type device and which will be
used as HW implementation driver ethdev-eventdev Rx adapter [1]

Implemented features and PMD documentation added
in doc/guides/nics/features/octeontx.ini and doc/guides/nics/octeontx.rst
respectively in this patch set.

This driver has the dependency on:
- IOVA infrastructure [2].
- Dynamically configure mempool handle (ie.. --mbuf-pool-ops eal arg) [3].
- Infrastructure to support octeontx HW mempool manager [4].
- Cavium Octeontx external mempool driver [5]
Git source repo for all above dependency patches located at [6].

The series has three check patch issues:
1) 1 Error on Complex Macro (which I believe it cannot be fixed) # Patch 2
2) 1 Error on spacing while using gcc inline assembly(it is false positive) # patch 2
3) Added Co-authored-by: signature to reflect the patch authorship status instead
of "Signed-off-by". It can be changed or the contributing guide can be
updated based on the community feedback in v2.

[1] http://dpdk.org/dev/patchwork/patch/24176/
[2] http://dpdk.org/ml/archives/dev/2017-August/072871.html
[3] http://dpdk.org/ml/archives/dev/2017-August/072910.html
[4] http://dpdk.org/ml/archives/dev/2017-August/072892.html
[5] http://dpdk.org/ml/archives/dev/2017-August/073898.html
[6] https://github.com/sshukla82/dpdk
branch: mempool-v2

Jerin Jacob (26):
  net/octeontx: add build infrastructure
  net/octeontx/base: add octeontx io operations
  event/octeontx: introduce specialized mbox message copy
  net/octeontx/base: add base BGX operations
  net/octeontx/base: add remaining BGX operations
  net/octeontx/base: probe PKI and PKO PCIe VF devices
  net/octeontx/base: add base PKI operations
  net/octeontx/base: add remaining PKI operations
  net/octeontx/base: add base PKO operations
  net/octeontx/base: add remaining PKO operations
  net/octeontx: add eth device probe and remove
  net/octeontx: create ethdev ports
  net/octeontx: add device configure
  net/octeontx: add device info
  net/octeontx: add link update
  net/octeontx: add promiscuous mode ops
  net/octeontx: add basic stats support
  net/octeontx: add MAC addr set op
  net/octeontx: add Rx queue setup and release ops
  net/octeontx: add Tx queue start and stop
  net/octeontx: add Tx queue setup and release ops
  net/octeontx: add packet transmit burst function
  net/octeontx: add packet receive burst function
  net/octeontx: add packet type parsing support
  net/octeontx: add start and stop support
  doc: add octeontx ethdev driver documentation

 MAINTAINERS                                       |    7 +
 config/common_base                                |   10 +
 doc/guides/nics/features/octeontx.ini             |   19 +
 doc/guides/nics/index.rst                         |    1 +
 doc/guides/nics/octeontx.rst                      |  251 ++++
 drivers/event/octeontx/ssovf_mbox.c               |   14 +-
 drivers/net/Makefile                              |    2 +
 drivers/net/octeontx/Makefile                     |   67 ++
 drivers/net/octeontx/base/octeontx_bgx.c          |  273 +++++
 drivers/net/octeontx/base/octeontx_bgx.h          |  150 +++
 drivers/net/octeontx/base/octeontx_io.h           |  156 +++
 drivers/net/octeontx/base/octeontx_pki_var.h      |  237 ++++
 drivers/net/octeontx/base/octeontx_pkivf.c        |  234 ++++
 drivers/net/octeontx/base/octeontx_pkivf.h        |  431 +++++++
 drivers/net/octeontx/base/octeontx_pkovf.c        |  616 ++++++++++
 drivers/net/octeontx/base/octeontx_pkovf.h        |   97 ++
 drivers/net/octeontx/octeontx_ethdev.c            | 1326 +++++++++++++++++++++
 drivers/net/octeontx/octeontx_ethdev.h            |  109 ++
 drivers/net/octeontx/octeontx_logs.h              |   76 ++
 drivers/net/octeontx/octeontx_rxtx.c              |  233 ++++
 drivers/net/octeontx/octeontx_rxtx.h              |   48 +
 drivers/net/octeontx/rte_pmd_octeontx_version.map |    4 +
 mk/rte.app.mk                                     |    1 +
 23 files changed, 4360 insertions(+), 2 deletions(-)
 create mode 100644 doc/guides/nics/features/octeontx.ini
 create mode 100644 doc/guides/nics/octeontx.rst
 create mode 100644 drivers/net/octeontx/Makefile
 create mode 100644 drivers/net/octeontx/base/octeontx_bgx.c
 create mode 100644 drivers/net/octeontx/base/octeontx_bgx.h
 create mode 100644 drivers/net/octeontx/base/octeontx_io.h
 create mode 100644 drivers/net/octeontx/base/octeontx_pki_var.h
 create mode 100644 drivers/net/octeontx/base/octeontx_pkivf.c
 create mode 100644 drivers/net/octeontx/base/octeontx_pkivf.h
 create mode 100644 drivers/net/octeontx/base/octeontx_pkovf.c
 create mode 100644 drivers/net/octeontx/base/octeontx_pkovf.h
 create mode 100644 drivers/net/octeontx/octeontx_ethdev.c
 create mode 100644 drivers/net/octeontx/octeontx_ethdev.h
 create mode 100644 drivers/net/octeontx/octeontx_logs.h
 create mode 100644 drivers/net/octeontx/octeontx_rxtx.c
 create mode 100644 drivers/net/octeontx/octeontx_rxtx.h
 create mode 100644 drivers/net/octeontx/rte_pmd_octeontx_version.map

-- 
2.14.1



More information about the dev mailing list