Re: [v6 0/7] hinic3 change for support new SPx NIC

Stephen Hemminger
2026-03-22T16:32:28Z

On Thu, 19 Mar 2026 21:52:06 +0800
Feifei Wang <wff_light@vip.163.com> wrote:

> From: chenyi221 <chenyi221@huawei.com>
>
> Change hinic3 driver to support Huawei new SPx series NIC.
>
> v2:
> --fix build issues
>
> v3:
> --fix community review comments and err reports
>
> v4:
> --fix rss type assignment error
>
> v5:
> --fix community ubuntu-22.04-clang err
>
> v6:
> --fix atomic compilation error
>
> Feifei Wang (7):
> net/hinic3: add support for new SPx series NIC
> net/hinic3: add enhance cmdq support for new SPx series NIC
> net/hinic3: use different callback func to split new/old cmdq
> operations
> net/hinic3: add fun init ops to support Compact CQE
> net/hinic3: add rx ops to support Compact CQE
> net/hinic3: add tx ops to support Compact CQE
> net/hinic3: use different callback func to support htn fdir
>
> drivers/net/hinic3/base/hinic3_cmd.h | 80 ++-
> drivers/net/hinic3/base/hinic3_cmdq.c | 370 ++++------
> drivers/net/hinic3/base/hinic3_cmdq.h | 112 ++-
> drivers/net/hinic3/base/hinic3_cmdq_enhance.c | 111 +++
> drivers/net/hinic3/base/hinic3_cmdq_enhance.h | 125 ++++
> drivers/net/hinic3/base/hinic3_csr.h | 18 +-
> drivers/net/hinic3/base/hinic3_hw_comm.c | 15 +-
> drivers/net/hinic3/base/hinic3_hw_comm.h | 31 +-
> drivers/net/hinic3/base/hinic3_hwdev.c | 13 +-
> drivers/net/hinic3/base/hinic3_hwdev.h | 18 +
> drivers/net/hinic3/base/hinic3_hwif.c | 10 +-
> drivers/net/hinic3/base/hinic3_mgmt.c | 5 +-
> drivers/net/hinic3/base/hinic3_mgmt.h | 2 +
> drivers/net/hinic3/base/hinic3_nic_cfg.c | 182 ++---
> drivers/net/hinic3/base/hinic3_nic_cfg.h | 98 ++-
> drivers/net/hinic3/base/meson.build | 1 +
> drivers/net/hinic3/hinic3_ethdev.c | 279 ++++++--
> drivers/net/hinic3/hinic3_ethdev.h | 120 ++--
> drivers/net/hinic3/hinic3_fdir.c | 657 +++++++++++++-----
> drivers/net/hinic3/hinic3_fdir.h | 361 ++++++++--
> drivers/net/hinic3/hinic3_nic_io.c | 525 ++++++--------
> drivers/net/hinic3/hinic3_nic_io.h | 163 ++++-
> drivers/net/hinic3/hinic3_rx.c | 267 +++++--
> drivers/net/hinic3/hinic3_rx.h | 182 ++++-
> drivers/net/hinic3/hinic3_tx.c | 456 ++++++------
> drivers/net/hinic3/hinic3_tx.h | 154 +++-
> .../net/hinic3/htn_adapt/hinic3_htn_cmdq.c | 167 +++++
> .../net/hinic3/htn_adapt/hinic3_htn_cmdq.h | 63 ++
> drivers/net/hinic3/htn_adapt/meson.build | 7 +
> drivers/net/hinic3/meson.build | 8 +-
> .../net/hinic3/stn_adapt/hinic3_stn_cmdq.c | 151 ++++
> .../net/hinic3/stn_adapt/hinic3_stn_cmdq.h | 46 ++
> drivers/net/hinic3/stn_adapt/meson.build | 7 +
> 33 files changed, 3362 insertions(+), 1442 deletions(-)
> create mode 100644 drivers/net/hinic3/base/hinic3_cmdq_enhance.c
> create mode 100644 drivers/net/hinic3/base/hinic3_cmdq_enhance.h
> create mode 100644 drivers/net/hinic3/htn_adapt/hinic3_htn_cmdq.c
> create mode 100644 drivers/net/hinic3/htn_adapt/hinic3_htn_cmdq.h
> create mode 100644 drivers/net/hinic3/htn_adapt/meson.build
> create mode 100644 drivers/net/hinic3/stn_adapt/hinic3_stn_cmdq.c
> create mode 100644 drivers/net/hinic3/stn_adapt/hinic3_stn_cmdq.h
> create mode 100644 drivers/net/hinic3/stn_adapt/meson.build
>
> --
> 2.45.1.windows.1
>
>

You should also check and update the documentation.

Full list found by AI.

New capabilities added by the patches with no corresponding documentation:

New device IDs — SP230 (0x0229/0x3750) and SP920 (0x0224) are added in patch 1, but hinic3.rst is not updated to list the new adapter models. The existing text just says "SPx series" which is vague enough to arguably cover it, but specific model names would be helpful.
GENEVE tunnel TSO — Patch 4/6 adds RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO to tx_offload_capa when NIC_F_GENEVE_OFFLOAD is set. The features matrix hinic3.ini does not have a GENEVE tunnel TSO entry, nor does it list geneve under [rte_flow items].
IP-in-IP tunnel TSO — Patch 4/6 adds RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO. Not reflected in hinic3.ini.
VXLAN-GPE tunnel support — Patch 6 adds HINIC3_PKT_TX_TUNNEL_VXLAN_GPE handling in the TX path. Not in hinic3.ini.
Outer UDP checksum — Patch 6 adds RTE_MBUF_F_TX_OUTER_UDP_CKSUM support. Not in hinic3.ini.
QinQ / double VLAN — Patch 4 adds HINIC3_PKT_TX_QINQ_PKT (mapped to RTE_MBUF_F_TX_QINQ). Not in hinic3.ini (QinQ offload is available in default.ini but not set for hinic3).
Release notes — Adding support for new NIC hardware (SP230, SP920) and new offload features (GENEVE TSO, IP-in-IP TSO) should be mentioned in the current release notes file.

Features already documented that are unchanged (no action needed):
The existing features in hinic3.ini — RSS, TSO, LRO, VLAN filter, checksum offloads, scattered Rx, promiscuous/allmulticast, Inner L3/L4 checksum, vxlan flow item — all remain correct. The series does not remove any existing capability.
Summary for mailing list:
The series adds new device support (SP230, SP920) and new offload capabilities (GENEVE tunnel TSO, IP-in-IP tunnel TSO, VXLAN-GPE, outer UDP checksum, QinQ) but includes no documentation updates. Please update doc/guides/nics/features/hinic3.ini and the release notes to reflect the new hardware and offload capabilities.