[dpdk-dev] [PATCH v6 00/22] net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver

Igor Russkikh Igor.Russkikh at aquantia.com
Fri Oct 12 13:09:01 CEST 2018


Hello DPDK community!

Aquantia would like to contribute PMD for aQtion AQC10X NIC family:
https://www.aquantia.com/products/aqtion/chips/
These are 10G ethernet NICs with various features.

We do base this work on parts of the existing native linux kernel
driver source (atlantic). Shared code is hw_atl hardware and registers access module.

We'd like to target this driver for 18.11 DPDK release timeline,
it'd be good to hear comments from the community on how feasible is this.

This patchset implements basic driver infrastructure,
vlan offloads, checksumm offloads, rss control,
multiring, jumbo frames and other features.

Later on, we plan to share HW MACSEC offloads, rxflows and other features.

version 6 changes:
- PKT_TX_VLAN_PKT replaced with PKT_TX_VLAN
- `rx_descriptor_done` removed
- adding PKT_RX_VLAN/STRIPPED into mbuf->ol_flags when vlan offloads are on
- commit headlines better naming

version 5 changes:
- MTU configuration is now in separate patch
- Custom LED api removed. Will resubmit separately later on
- Add product link to docs, rearranged adapter features file
- MAINTAINERS file update
- logging name prefix fixed
- rte_eth_copy_pci_info is not needed in init
- dev->security_ctx is not used (removed free)
- fixed adapter_stopped and dev stop/close states interactions
- return error if get_fw_version fails
- added port# to important error logs
- rte_eth_linkstatus_get instead of atomic64 ops
- swstats are now cleared in stats_reset
- xstats_reset callback declared as atl_dev_stats_reset
- stats_mapping_set removed
- check-git-logs fixes

version 4 changes:
- fixed build errors with -Werror on gcc7
- validated build on arm64, freebsd x86_64
- PPC marked as unsupported arch
- stdbool.h is used instead of bool redefines

version 3 changes:
- patchset fixed to be incrementally buildable
- extra includes removed and cleaned up
- license changed to dual GPL-BSD for pieces shared with linux
- removed extra logging #defines
- misc comments from previous review session

version 2 changes:
- fixed build on freebsd (no ETIME const)
- fixed a bunch of checkpatch failures and warnings
- removed extra CFLAGS disabled warning
- making static arrays const


Igor Russkikh (8):
  net/atlantic: add logging structure
  net/atlantic: add hardware registers access routines
  net/atlantic: add hardware access layer
  net/atlantic: implement firmware operations
  net/atlantic: add b0 hardware layer
  net/atlantic: implement Rx path
  net/atlantic: implement RSS and RETA manipulation API
  net/atlantic: add release notes

Pavel Belous (14):
  net/atlantic: add atlantic PMD driver skeleton
  net/atlantic: configure rte device start/stop
  net/atlantic: implement core logic for Tx/Rx
  net/atlantic: implement Tx path
  net/atlantic: add link status and interrupt management
  net/atlantic: implement device statistics
  net/atlantic: add Rx/Tx descriptors information
  net/atlantic: implement promisc and allmulti modes
  net/atlantic: add flow control configuration
  net/atlantic: implement MAC address manipulations
  net/atlantic: implement MTU configuration
  net/atlantic: implement VLAN filters and offloads
  net/atlantic: implement EEPROM get/set
  net/atlantic: read MAC registers for debug purposes

 MAINTAINERS                                       |    7 +
 config/common_base                                |    5 +
 config/defconfig_ppc_64-power8-linuxapp-gcc       |    1 +
 doc/guides/nics/atlantic.rst                      |   47 +
 doc/guides/nics/features/atlantic.ini             |   37 +
 doc/guides/nics/index.rst                         |    1 +
 doc/guides/rel_notes/release_18_11.rst            |    5 +
 drivers/net/Makefile                              |    1 +
 drivers/net/atlantic/Makefile                     |   35 +
 drivers/net/atlantic/atl_common.h                 |   96 +
 drivers/net/atlantic/atl_ethdev.c                 | 1539 +++++++++++++
 drivers/net/atlantic/atl_ethdev.h                 |  107 +
 drivers/net/atlantic/atl_hw_regs.c                |   52 +
 drivers/net/atlantic/atl_hw_regs.h                |   53 +
 drivers/net/atlantic/atl_logs.h                   |   31 +
 drivers/net/atlantic/atl_rxtx.c                   | 1357 ++++++++++++
 drivers/net/atlantic/atl_types.h                  |  186 ++
 drivers/net/atlantic/hw_atl/hw_atl_b0.c           |  510 +++++
 drivers/net/atlantic/hw_atl/hw_atl_b0.h           |   40 +
 drivers/net/atlantic/hw_atl/hw_atl_b0_internal.h  |  145 ++
 drivers/net/atlantic/hw_atl/hw_atl_llh.c          | 1490 +++++++++++++
 drivers/net/atlantic/hw_atl/hw_atl_llh.h          |  714 ++++++
 drivers/net/atlantic/hw_atl/hw_atl_llh_internal.h | 2407 +++++++++++++++++++++
 drivers/net/atlantic/hw_atl/hw_atl_utils.c        |  942 ++++++++
 drivers/net/atlantic/hw_atl/hw_atl_utils.h        |  510 +++++
 drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c   |  618 ++++++
 drivers/net/atlantic/meson.build                  |   12 +
 drivers/net/atlantic/rte_pmd_atlantic_version.map |    4 +
 drivers/net/meson.build                           |    1 +
 mk/rte.app.mk                                     |    1 +
 30 files changed, 10954 insertions(+)
 create mode 100644 doc/guides/nics/atlantic.rst
 create mode 100644 doc/guides/nics/features/atlantic.ini
 create mode 100644 drivers/net/atlantic/Makefile
 create mode 100644 drivers/net/atlantic/atl_common.h
 create mode 100644 drivers/net/atlantic/atl_ethdev.c
 create mode 100644 drivers/net/atlantic/atl_ethdev.h
 create mode 100644 drivers/net/atlantic/atl_hw_regs.c
 create mode 100644 drivers/net/atlantic/atl_hw_regs.h
 create mode 100644 drivers/net/atlantic/atl_logs.h
 create mode 100644 drivers/net/atlantic/atl_rxtx.c
 create mode 100644 drivers/net/atlantic/atl_types.h
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_b0.c
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_b0.h
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_b0_internal.h
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_llh.c
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_llh.h
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_llh_internal.h
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_utils.c
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_utils.h
 create mode 100644 drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
 create mode 100644 drivers/net/atlantic/meson.build
 create mode 100644 drivers/net/atlantic/rte_pmd_atlantic_version.map

-- 
2.7.4



More information about the dev mailing list