Skip to content

Net/SPNIC: support SPNIC into DPDK 22.03

Yanling Song dpdk-dev 7 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v6 Latest26 patches 21 repliesIn review
  2. v5 posting 2/226 patches 0 repliesSuperseded
  3. v5 posting 1/20 of 26 patches 0 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v425 patches2 repliesSuperseded
v325 patches6 repliesSuperseded
v225 patches0 repliesSuperseded
v125 patches6 repliesSuperseded

v5->v4 from the cover letter

1. Add prefix "spinc_" for external functions;
2. Remove temporary MACRO: RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS
3. Do not use void* for keeping the type information

Patches in v6 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/26drivers/net: introduce a new PMD driverdrivers/net/meson.build drivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_compat.h +4 more+366 -01 reply
2/26net/spnic: initialize the HW interfacedrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_csr.h drivers/net/spnic/base/spnic_hwdev.c +5 more+1211 -72 replies
3/26net/spnic: add mbox message channeldrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_hwdev.c drivers/net/spnic/base/spnic_hwdev.h +3 more+1473 -10 replies
4/26net/spnic: introduce event queuedrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_eqs.c drivers/net/spnic/base/spnic_eqs.h +3 more+790 -50 replies
5/26net/spnic: add mgmt moduledrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_cmd.h drivers/net/spnic/base/spnic_eqs.c +7 more+1066 -112 replies
6/26net/spnic: add cmdq and work queuedrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_cmdq.c drivers/net/spnic/base/spnic_cmdq.h +5 more+1109 -30 replies
7/26net/spnic: add interface handling cmdq messagedrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_cmdq.c drivers/net/spnic/base/spnic_cmdq.h +5 more+960 -50 replies
8/26net/spnic: add hardware info initializationdrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_hw_cfg.c drivers/net/spnic/base/spnic_hw_cfg.h +5 more+502 -10 replies
9/26net/spnic: support MAC and link event handlingdrivers/net/spnic/base/meson.build drivers/net/spnic/base/spnic_hw_cfg.c drivers/net/spnic/base/spnic_hw_cfg.h +5 more+861 -112 replies
10/26net/spnic: add function info initializationdrivers/net/spnic/base/spnic_hw_cfg.c drivers/net/spnic/base/spnic_hw_cfg.h drivers/net/spnic/base/spnic_nic_cfg.c +3 more+876 -110 replies
11/26net/spnic: add queue pairs context initializationdrivers/net/spnic/base/spnic_hw_comm.c drivers/net/spnic/base/spnic_hw_comm.h drivers/net/spnic/base/spnic_nic_cfg.c +7 more+1370 -50 replies
12/26net/spnic: support mbuf handling of Tx/Rxdrivers/net/spnic/base/spnic_nic_cfg.c drivers/net/spnic/base/spnic_nic_cfg.h drivers/net/spnic/meson.build +5 more+1435 -10 replies
13/26net/spnic: support Rx congfigurationdrivers/net/spnic/base/spnic_nic_cfg.c drivers/net/spnic/base/spnic_nic_cfg.h drivers/net/spnic/spnic_ethdev.c +3 more+1349 -40 replies
14/26net/spnic: add port/vport enabledrivers/net/spnic/spnic_ethdev.c+46 -00 replies
15/26net/spnic: support IO packets handlingdrivers/net/spnic/spnic_ethdev.c drivers/net/spnic/spnic_ethdev.h drivers/net/spnic/spnic_rx.c +3 more+932 -00 replies
16/26net/spnic: add device configure/version/infodrivers/net/spnic/spnic_ethdev.c+127 -20 replies
17/26net/spnic: support RSS configuration update and getdrivers/net/spnic/spnic_ethdev.c+235 -00 replies
18/26net/spnic: support VLAN filtering and offloadingdrivers/net/spnic/base/spnic_nic_cfg.c drivers/net/spnic/spnic_ethdev.c+129 -00 replies
19/26net/spnic: support promiscuous and allmulticast Rx modesdrivers/net/spnic/spnic_ethdev.c+156 -00 replies
20/26net/spnic: support flow controldrivers/net/spnic/base/spnic_nic_cfg.c drivers/net/spnic/base/spnic_nic_cfg.h drivers/net/spnic/spnic_ethdev.c +1 more+156 -00 replies
21/26net/spnic: support getting Tx/Rx queues infodrivers/net/spnic/spnic_ethdev.c+21 -00 replies
22/26net/spnic: net/spnic: support xstats statisticsdrivers/net/spnic/base/spnic_nic_cfg.c drivers/net/spnic/base/spnic_nic_cfg.h drivers/net/spnic/spnic_ethdev.c+798 -00 replies
23/26net/spnic: support VFIO interruptdrivers/net/spnic/base/spnic_eqs.c drivers/net/spnic/spnic_ethdev.c drivers/net/spnic/spnic_ethdev.h +1 more+233 -10 replies
24/26net/spnic: support Tx/Rx queue start/stopdrivers/net/spnic/base/spnic_nic_cfg.c drivers/net/spnic/base/spnic_nic_cfg.h drivers/net/spnic/spnic_ethdev.c +2 more+354 -00 replies
25/26net/spnic: add doc infrastructureMAINTAINERS doc/guides/nics/features/spnic.ini doc/guides/nics/index.rst +1 more+101 -02 replies
26/26net/spnic: fixes unsafe C style codedrivers/net/spnic/base/spnic_cmdq.c drivers/net/spnic/base/spnic_cmdq.h drivers/net/spnic/base/spnic_hw_cfg.c +19 more+252 -2832 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v6 yet.

Read the v6 thread

Cover letter [PATCH v6 00/26] Net/SPNIC: support SPNIC into DPDK 22.03

The patchsets introduce SPNIC driver for Ramaxel's SPNxx serial NIC cards into DPDK 22.03. Ramaxel Memory Technology is a company which supply a lot of electric products:
storage, communication, PCB...
SPNxxx is a serial PCIE interface NIC cards:
SPN110: 2 PORTs *25G
SPN120: 4 PORTs *25G
SPN130: 2 PORTs *100G

The following is main features of our SPNIC:
- TSO
- LRO
- Flow control
- SR-IOV(Partially supported)
- VLAN offload
- VLAN filter
- CRC offload
- Promiscuous mode
- RSS

v6->v5, No real changes:
1. Move the fix of RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS from patch 26 to patch 2;
2. Change the description of patch 26.

v5->v4:
1. Add prefix "spinc_" for external functions;
2. Remove temporary MACRO: RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS
3. Do not use void* for keeping the type information

v3->v4:
1. Fix ABI test failure;
2. Remove some descriptions in spnic.rst.

v2->v3:
1. Fix clang compiling failure.

v1->v2:
1. Fix coding style issues and compiling failures;
2. Only support linux in meson.build;
3. Use CLOCK_MONOTONIC_COARSE instead of CLOCK_MONOTONIC/CLOCK_MONOTONIC_RAW;
4. Fix time_before();
5. Remove redundant checks in spnic_dev_configure();

Yanling Song (26):
drivers/net: introduce a new PMD driver net/spnic: initialize the HW interface net/spnic: add mbox message channel
net/spnic: introduce event queue
net/spnic: add mgmt module
net/spnic: add cmdq and work queue
net/spnic: add interface handling cmdq message net/spnic: add hardware info initialization net/spnic: support MAC and link event handling net/spnic: add function info initialization net/spnic: add queue pairs context initialization net/spnic: support mbuf handling of Tx/Rx net/spnic: support Rx congfiguration
net/spnic: add port/vport enable
net/spnic: support IO packets handling net/spnic: add device configure/version/info net/spnic: support RSS configuration update and get net/spnic: support VLAN filtering and offloading net/spnic: support promiscuous and allmulticast Rx modes net/spnic: support flow control
net/spnic: support getting Tx/Rx queues info net/spnic: net/spnic: support xstats statistics net/spnic: support VFIO interrupt
net/spnic: support Tx/Rx queue start/stop net/spnic: add doc infrastructure
net/spnic: fixes unsafe C style code

 MAINTAINERS                              |    6 +
 doc/guides/nics/features/spnic.ini       |   39 +
 doc/guides/nics/index.rst                |    1 +
 doc/guides/nics/spnic.rst                |   55 +
 drivers/net/meson.build                  |    1 +
 drivers/net/spnic/base/meson.build       |   37 +
 drivers/net/spnic/base/spnic_cmd.h       |  222 ++
 drivers/net/spnic/base/spnic_cmdq.c      |  875 ++++++
 drivers/net/spnic/base/spnic_cmdq.h      |  248 ++
 drivers/net/spnic/base/spnic_compat.h    |  184 ++
 drivers/net/spnic/base/spnic_csr.h       |  104 +
 drivers/net/spnic/base/spnic_eqs.c       |  661 +++++
 drivers/net/spnic/base/spnic_eqs.h       |  102 +
 drivers/net/spnic/base/spnic_hw_cfg.c    |  201 ++
 drivers/net/spnic/base/spnic_hw_cfg.h    |  125 +
 drivers/net/spnic/base/spnic_hw_comm.c   |  483 ++++
 drivers/net/spnic/base/spnic_hw_comm.h   |  204 ++
 drivers/net/spnic/base/spnic_hwdev.c     |  514 ++++
 drivers/net/spnic/base/spnic_hwdev.h     |  143 +
 drivers/net/spnic/base/spnic_hwif.c      |  770 ++++++
 drivers/net/spnic/base/spnic_hwif.h      |  155 ++
 drivers/net/spnic/base/spnic_mbox.c      | 1194 ++++++++
 drivers/net/spnic/base/spnic_mbox.h      |  202 ++
 drivers/net/spnic/base/spnic_mgmt.c      |  366 +++
 drivers/net/spnic/base/spnic_mgmt.h      |  110 +
 drivers/net/spnic/base/spnic_nic_cfg.c   | 1348 +++++++++
 drivers/net/spnic/base/spnic_nic_cfg.h   | 1110 ++++++++
 drivers/net/spnic/base/spnic_nic_event.c |  183 ++
 drivers/net/spnic/base/spnic_nic_event.h |   24 +
 drivers/net/spnic/base/spnic_wq.c        |  138 +
 drivers/net/spnic/base/spnic_wq.h        |  123 +
 drivers/net/spnic/meson.build            |   20 +
 drivers/net/spnic/spnic_ethdev.c         | 3211 ++++++++++++++++++++++
 drivers/net/spnic/spnic_ethdev.h         |   95 +
 drivers/net/spnic/spnic_io.c             |  728 +++++
 drivers/net/spnic/spnic_io.h             |  154 ++
 drivers/net/spnic/spnic_rx.c             |  937 +++++++
 drivers/net/spnic/spnic_rx.h             |  326 +++
 drivers/net/spnic/spnic_tx.c             |  858 ++++++
 drivers/net/spnic/spnic_tx.h             |  297 ++
 drivers/net/spnic/version.map            |    3 +
 41 files changed, 16557 insertions(+)
 create mode 100644 doc/guides/nics/features/spnic.ini
 create mode 100644 doc/guides/nics/spnic.rst
 create mode 100644 drivers/net/spnic/base/meson.build
 create mode 100644 drivers/net/spnic/base/spnic_cmd.h
 create mode 100644 drivers/net/spnic/base/spnic_cmdq.c
 create mode 100644 drivers/net/spnic/base/spnic_cmdq.h
 create mode 100644 drivers/net/spnic/base/spnic_compat.h
 create mode 100644 drivers/net/spnic/base/spnic_csr.h
 create mode 100644 drivers/net/spnic/base/spnic_eqs.c
 create mode 100644 drivers/net/spnic/base/spnic_eqs.h
 create mode 100644 drivers/net/spnic/base/spnic_hw_cfg.c
 create mode 100644 drivers/net/spnic/base/spnic_hw_cfg.h
 create mode 100644 drivers/net/spnic/base/spnic_hw_comm.c
 create mode 100644 drivers/net/spnic/base/spnic_hw_comm.h
 create mode 100644 drivers/net/spnic/base/spnic_hwdev.c
 create mode 100644 drivers/net/spnic/base/spnic_hwdev.h
 create mode 100644 drivers/net/spnic/base/spnic_hwif.c
 create mode 100644 drivers/net/spnic/base/spnic_hwif.h
 create mode 100644 drivers/net/spnic/base/spnic_mbox.c
 create mode 100644 drivers/net/spnic/base/spnic_mbox.h
 create mode 100644 drivers/net/spnic/base/spnic_mgmt.c
 create mode 100644 drivers/net/spnic/base/spnic_mgmt.h
 create mode 100644 drivers/net/spnic/base/spnic_nic_cfg.c
 create mode 100644 drivers/net/spnic/base/spnic_nic_cfg.h
 create mode 100644 drivers/net/spnic/base/spnic_nic_event.c
 create mode 100644 drivers/net/spnic/base/spnic_nic_event.h
 create mode 100644 drivers/net/spnic/base/spnic_wq.c
 create mode 100644 drivers/net/spnic/base/spnic_wq.h
 create mode 100644 drivers/net/spnic/meson.build
 create mode 100644 drivers/net/spnic/spnic_ethdev.c
 create mode 100644 drivers/net/spnic/spnic_ethdev.h
 create mode 100644 drivers/net/spnic/spnic_io.c
 create mode 100644 drivers/net/spnic/spnic_io.h
 create mode 100644 drivers/net/spnic/spnic_rx.c
 create mode 100644 drivers/net/spnic/spnic_rx.h
 create mode 100644 drivers/net/spnic/spnic_tx.c
 create mode 100644 drivers/net/spnic/spnic_tx.h
 create mode 100644 drivers/net/spnic/version.map
Signature · 1 line
2.32.0