[dpdk-dev] [PATCH v6 00/27] DPDK PMD for ThunderX NIC device

Jerin Jacob jerin.jacob at caviumnetworks.com
Fri Jun 17 15:29:27 CEST 2016


This patch set provides the initial version of DPDK PMD for the
built-in NIC device in Cavium ThunderX SoC family.

Implemented features and ThunderX nicvf PMD documentation added
in doc/guides/nics/overview.rst and doc/guides/nics/thunderx.rst
respectively in this patch set.

These patches are checked using checkpatch.sh with following
additional ignore option:
    options="$options --ignore=CAMELCASE,BRACKET_SPACE"
CAMELCASE - To accommodate PRIx64
BRACKET_SPACE - To accommodate AT&T inline line assembly in two places

This patch set is based on DPDK 16.07-RC1
and tested with git HEAD change-set
ad00c7ec23e3b7723217bc29e03eb40409aaf617(in dpdk-next-net/rel_16_07)
along with following depended patch

http://dpdk.org/dev/patchwork/patch/11826/
ethdev: add tunnel and port RSS offload types

V1->V2

http://dpdk.org/dev/patchwork/patch/12609/
-- added const for the const struct tables
-- remove multiple blank lines
-- addressed style comments
http://dpdk.org/dev/patchwork/patch/12610/
-- removed DEPDIRS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += lib/librte_net lib/librte_malloc
-- add const for table structs
-- addressed style comments
http://dpdk.org/dev/patchwork/patch/12614/
-- s/DEFAULT_*/NICVF_DEFAULT_*/gc
http://dpdk.org/dev/patchwork/patch/12615/
-- Fix typos
-- addressed style comments
http://dpdk.org/dev/patchwork/patch/12616/
-- removed redundant txq->tail = 0 and txq->head = 0
http://dpdk.org/dev/patchwork/patch/12627/
-- fixed the documentation changes

-- fixed TAB+space occurrences in functions
-- rebased to c8c33ad7f94c59d1c0676af0cfd61207b3e808db

V2->V3

http://dpdk.org/dev/patchwork/patch/13060/
-- Changed polling infrastructure to use rte_eal_alarm* instead of timerfd_create API
-- rebased to ca173a909538a2f1082cd0dcb4d778a97dab69c3

V3->V4

addressed review comments of Ferruh's review

http://dpdk.org/dev/patchwork/patch/13314/
-- s/avilable/available
http://dpdk.org/dev/patchwork/patch/13323/
-- s/witout/without

http://dpdk.org/dev/patchwork/patch/13318/
-- s/nicvf_free_xmittted_buffers/nicvf_free_xmitted_buffers
-- fix checkpatch errors
http://dpdk.org/dev/patchwork/patch/13307/
-- addressed review comments
http://dpdk.org/dev/patchwork/patch/13308/
-- addressed review comments
http://dpdk.org/dev/patchwork/patch/13320/
-- addressed review comments
http://dpdk.org/dev/patchwork/patch/13321/
-- addressed review comments
http://dpdk.org/dev/patchwork/patch/13322/
-- addressed review comments
http://dpdk.org/dev/patchwork/patch/13324/
-- addressed review comments and created separated patch for
platform specific config change

-- update change log to net/thunderx: ........

V4->V5
-- splitting up drivers/net/thunderx/nicvf/base files to following
patches as suggested by Bruce

net/thunderx/base: add HW constants for ThunderX inbuilt NIC
net/thunderx/base: add register definition for ThunderX inbuilt NIC
net/thunderx/base: implement DPDK based platform abstraction for base code
net/thunderx/base: add mbox API for ThunderX PF/VF driver communication
net/thunderx/base: add hardware API for ThunderX nicvf inbuilt NIC
net/thunderx/base: add RSS and reta configuration HW APIs
net/thunderx/base: add statistics get HW APIs

-- Corrected wrong git commit log messages flagged by check-git-log.sh

V5->V6
-- Rebased to dpdk-next-net/rel_16_07(ad00c7ec23e3b7723217bc29e03eb40409aaf617)
-- Splitted following patches in v5 to two logical patches
[dpdk-dev,v5,16/25] net/thunderx: add MTU set and promiscuous enable support
[dpdk-dev,v5,20/25] net/thunderx: implement supported ptype get and Rx queue count
-- Fixed check-git-logs.sh for "commit messages being too long"

Jerin Jacob (27):
  net/thunderx/base: add HW constants
  net/thunderx/base: add HW register definitions
  net/thunderx/base: implement DPDK based platform abstraction
  net/thunderx/base: add mbox APIs for PF/VF communication
  net/thunderx/base: add hardware API
  net/thunderx/base: add RSS and reta configuration HW APIs
  net/thunderx/base: add statistics get HW APIs
  net/thunderx: add pmd skeleton
  net/thunderx: add link status and link update support
  net/thunderx: add registers dump support
  net/thunderx: add ethdev configure support
  net/thunderx: add get device info support
  net/thunderx: add Rx queue setup and release support
  net/thunderx: add Tx queue setup and release support
  net/thunderx: add RSS and reta query and update support
  net/thunderx: add MTU set support
  net/thunderx: add promiscuous enable support
  net/thunderx: add stats support
  net/thunderx: add single and multi segment Tx functions
  net/thunderx: add single and multi segment Rx functions
  net/thunderx: add supported packet type get
  net/thunderx: add Rx queue count support
  net/thunderx: add Rx queue start and stop support
  net/thunderx: add Tx queue start and stop support
  net/thunderx: add device start,stop and close support
  net/thunderx: updated driver documentation and release notes
  maintainers: claim responsibility for the ThunderX nicvf PMD

 MAINTAINERS                                        |    6 +
 config/common_base                                 |   10 +
 config/defconfig_arm64-thunderx-linuxapp-gcc       |   10 +
 doc/guides/nics/index.rst                          |    1 +
 doc/guides/nics/overview.rst                       |   96 +-
 doc/guides/nics/thunderx.rst                       |  354 ++++
 doc/guides/rel_notes/release_16_07.rst             |    1 +
 drivers/net/Makefile                               |    1 +
 drivers/net/thunderx/Makefile                      |   65 +
 drivers/net/thunderx/base/nicvf_hw.c               |  905 ++++++++++
 drivers/net/thunderx/base/nicvf_hw.h               |  240 +++
 drivers/net/thunderx/base/nicvf_hw_defs.h          | 1219 +++++++++++++
 drivers/net/thunderx/base/nicvf_mbox.c             |  418 +++++
 drivers/net/thunderx/base/nicvf_mbox.h             |  232 +++
 drivers/net/thunderx/base/nicvf_plat.h             |  132 ++
 drivers/net/thunderx/nicvf_ethdev.c                | 1791 ++++++++++++++++++++
 drivers/net/thunderx/nicvf_ethdev.h                |  106 ++
 drivers/net/thunderx/nicvf_logs.h                  |   83 +
 drivers/net/thunderx/nicvf_rxtx.c                  |  599 +++++++
 drivers/net/thunderx/nicvf_rxtx.h                  |  101 ++
 drivers/net/thunderx/nicvf_struct.h                |  124 ++
 .../thunderx/rte_pmd_thunderx_nicvf_version.map    |    4 +
 mk/rte.app.mk                                      |    1 +
 23 files changed, 6451 insertions(+), 48 deletions(-)
 create mode 100644 doc/guides/nics/thunderx.rst
 create mode 100644 drivers/net/thunderx/Makefile
 create mode 100644 drivers/net/thunderx/base/nicvf_hw.c
 create mode 100644 drivers/net/thunderx/base/nicvf_hw.h
 create mode 100644 drivers/net/thunderx/base/nicvf_hw_defs.h
 create mode 100644 drivers/net/thunderx/base/nicvf_mbox.c
 create mode 100644 drivers/net/thunderx/base/nicvf_mbox.h
 create mode 100644 drivers/net/thunderx/base/nicvf_plat.h
 create mode 100644 drivers/net/thunderx/nicvf_ethdev.c
 create mode 100644 drivers/net/thunderx/nicvf_ethdev.h
 create mode 100644 drivers/net/thunderx/nicvf_logs.h
 create mode 100644 drivers/net/thunderx/nicvf_rxtx.c
 create mode 100644 drivers/net/thunderx/nicvf_rxtx.h
 create mode 100644 drivers/net/thunderx/nicvf_struct.h
 create mode 100644 drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.map

-- 
2.5.5



More information about the dev mailing list