[V4 18/18] drivers/net: add hinic3 PMD build and doc files
Feifei Wang
wff_light at vip.163.com
Tue Jul 1 03:42:09 CEST 2025
From: Yi Chen <chenyi221 at huawei.com>
The meson.build file is added to this patch to enable
the hinic3 compilation function.
Signed-off-by: Yi Chen <chenyi221 at huawei.com>
Reviewed-by: Xin Wang <wangxin679 at h-partners.com>
Reviewed-by: Feifei Wang <wangfeifei40 at huawei.com>
---
doc/guides/nics/features/hinic3.ini | 62 +++++++++++++++++++++++++++++
drivers/net/hinic3/base/meson.build | 50 +++++++++++++++++++++++
drivers/net/hinic3/meson.build | 33 +++++++++++++++
drivers/net/hinic3/mml/meson.build | 33 ++++-----------
drivers/net/meson.build | 1 +
5 files changed, 154 insertions(+), 25 deletions(-)
create mode 100644 doc/guides/nics/features/hinic3.ini
create mode 100644 drivers/net/hinic3/base/meson.build
create mode 100644 drivers/net/hinic3/meson.build
diff --git a/doc/guides/nics/features/hinic3.ini b/doc/guides/nics/features/hinic3.ini
new file mode 100644
index 0000000000..a30236fe09
--- /dev/null
+++ b/doc/guides/nics/features/hinic3.ini
@@ -0,0 +1,62 @@
+;
+; Supported features of the 'hinic3' network poll mode driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Speed capabilities = Y
+Link speed configuration = Y
+Link status = Y
+Link status event = Y ?
+Rx interrupt = Y
+Queue start/stop = Y
+Runtime Rx queue setup = Y
+Runtime Tx queue setup = Y
+Burst mode info = Y
+Fast mbuf free = Y
+Free Tx mbuf on demand = Y
+MTU update = Y
+Scattered Rx = Y
+TSO = Y
+LRO = Y
+Promiscuous mode = Y
+Allmulticast mode = Y
+Unicast MAC filter = Y
+Multicast MAC filter = Y
+RSS hash = Y
+RSS key update = Y
+RSS reta update = Y
+RSS reta query = Y
+VLAN filter = Y
+Flow control = Y
+Traffic manager = Y
+CRC offload = Y
+FEC = Y
+L3 checksum offload = Y
+L4 checksum offload = Y
+Inner L3 checksum = Y
+Inner L4 checksum = Y
+Packet type parsing = Y
+Basic stats = Y
+Extended stats = Y
+Stats per queue = Y
+FW version = Y
+Registers dump = Y
+Module EEPROM dump = Y
+Timesync = Y
+Multiprocess aware = Y
+Linux = Y
+x86-64 = Y
+ARMv8 = Y
+
+[rte_flow items]
+any = Y
+eth = Y
+icmp = Y
+ipv4 = Y
+ipv6 = Y
+tcp = Y
+udp = Y
+vxlan = Y
+[rte_flow actions]
+queue = Y
diff --git a/drivers/net/hinic3/base/meson.build b/drivers/net/hinic3/base/meson.build
new file mode 100644
index 0000000000..b6a3a6cfe7
--- /dev/null
+++ b/drivers/net/hinic3/base/meson.build
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2025 Huawei Technologies Co., Ltd
+
+sources = files(
+ 'hinic3_cmdq.c',
+ 'hinic3_eqs.c',
+ 'hinic3_hw_cfg.c',
+ 'hinic3_hw_comm.c',
+ 'hinic3_hwdev.c',
+ 'hinic3_hwif.c',
+ 'hinic3_mbox.c',
+ 'hinic3_mgmt.c',
+ 'hinic3_nic_cfg.c',
+ 'hinic3_nic_event.c',
+ 'hinic3_wq.c',
+)
+
+extra_flags = []
+
+# The driver runs only on arch64 machine, remove 32bit warnings
+if not dpdk_conf.get('RTE_ARCH_64')
+ extra_flags += [
+ '-Wno-int-to-pointer-cast',
+ '-Wno-pointer-to-int-cast',
+ ]
+endif
+
+foreach flag: extra_flags
+ if cc.has_argument(flag)
+ cflags += flag
+ endif
+endforeach
+
+deps += ['hash']
+c_args = cflags
+includes += include_directories('../')
+
+base_lib = static_library(
+ 'spnic_base',
+ sources,
+ dependencies: [
+ static_rte_eal,
+ static_rte_ethdev,
+ static_rte_bus_pci,
+ static_rte_hash,
+ ],
+ include_directories: includes,
+ c_args: c_args,
+)
+base_objs = base_lib.extract_all_objects()
diff --git a/drivers/net/hinic3/meson.build b/drivers/net/hinic3/meson.build
new file mode 100644
index 0000000000..42fb5bc194
--- /dev/null
+++ b/drivers/net/hinic3/meson.build
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2025 Huawei Technologies Co., Ltd
+
+if not is_linux
+ build = false
+ reason = 'only supported on Linux'
+ subdir_done()
+endif
+
+if (arch_subdir != 'x86' and arch_subdir != 'arm'
+ or not dpdk_conf.get('RTE_ARCH_64'))
+ build = false
+ reason = 'only supported on x86_64 and aarch64'
+ subdir_done()
+endif
+
+cflags += ['-DHW_CONVERT_ENDIAN']
+
+subdir('base')
+subdir('mml')
+objs = [base_objs] + [mml_objs]
+
+sources = files(
+ 'hinic3_ethdev.c',
+ 'hinic3_fdir.c',
+ 'hinic3_flow.c',
+ 'hinic3_nic_io.c',
+ 'hinic3_rx.c',
+ 'hinic3_tx.c',
+)
+
+includes += include_directories('base')
+includes += include_directories('mml')
diff --git a/drivers/net/hinic3/mml/meson.build b/drivers/net/hinic3/mml/meson.build
index f8d2650d8d..67bba4f067 100644
--- a/drivers/net/hinic3/mml/meson.build
+++ b/drivers/net/hinic3/mml/meson.build
@@ -2,36 +2,19 @@
# Copyright(c) 2025 Huawei Technologies Co., Ltd
sources = files(
- 'hinic3_dbg.c',
- 'hinic3_mml_cmd.c',
- 'hinic3_mml_ioctl.c',
- 'hinic3_mml_lib.c',
- 'hinic3_mml_main.c',
- 'hinic3_mml_queue.c',
+ 'hinic3_dbg.c',
+ 'hinic3_mml_cmd.c',
+ 'hinic3_mml_ioctl.c',
+ 'hinic3_mml_lib.c',
+ 'hinic3_mml_main.c',
+ 'hinic3_mml_queue.c',
)
-extra_flags = [
- '-Wno-cast-qual',
- '-Wno-format',
- '-Wno-format-nonliteral',
- '-Wno-format-security',
- '-Wno-missing-braces',
- '-Wno-missing-field-initializers',
- '-Wno-missing-prototypes',
- '-Wno-pointer-sign',
- '-Wno-pointer-to-int-cast',
- '-Wno-sign-compare',
- '-Wno-strict-aliasing',
- '-Wno-unused-parameter',
- '-Wno-unused-value',
- '-Wno-unused-variable',
-]
-
# The driver runs only on arch64 machine, remove 32bit warnings
if not dpdk_conf.get('RTE_ARCH_64')
extra_flags += [
- '-Wno-int-to-pointer-cast',
- '-Wno-pointer-to-int-cast',
+ '-Wno-int-to-pointer-cast',
+ '-Wno-pointer-to-int-cast',
]
endif
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index 61f8cddb30..2d32068ed2 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -23,6 +23,7 @@ drivers = [
'failsafe',
'gve',
'hinic',
+ 'hinic3',
'hns3',
'intel/e1000',
'intel/fm10k',
--
2.45.1.windows.1
More information about the dev
mailing list