net/hns3: add build and doc infrastructure
This patch adds build and doc infrastructure for hns3 PMD driver. Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com> Signed-off-by: Min Hu (Connor) <humin29@huawei.com> Signed-off-by: Chunsong Feng <fengchunsong@huawei.com> Signed-off-by: Hao Chen <chenhao164@huawei.com> Signed-off-by: Huisong Li <lihuisong@huawei.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
702928afeb
commit
565829db8b
@ -605,6 +605,14 @@ F: drivers/net/enic/
|
||||
F: doc/guides/nics/enic.rst
|
||||
F: doc/guides/nics/features/enic.ini
|
||||
|
||||
Hisilicon hns3
|
||||
M: Wei Hu (Xavier) <xavier.huwei@huawei.com>
|
||||
M: Min Hu (Connor) <humin29@huawei.com>
|
||||
M: Yisen Zhuang <yisen.zhuang@huawei.com>
|
||||
F: drivers/net/hns3/
|
||||
F: doc/guides/nics/hns3.rst
|
||||
F: doc/guides/nics/features/hns3.ini
|
||||
|
||||
Huawei hinic
|
||||
M: Ziyang Xuan <xuanziyang2@huawei.com>
|
||||
M: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>
|
||||
|
@ -281,6 +281,11 @@ CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=n
|
||||
|
||||
#
|
||||
# Compile burst-oriented HNS3 PMD driver
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=n
|
||||
|
||||
#
|
||||
# Compile burst-oriented IXGBE PMD driver
|
||||
#
|
||||
|
@ -63,3 +63,8 @@ CONFIG_RTE_LIBRTE_ENETC_PMD=y
|
||||
# HINIC PMD driver
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=y
|
||||
|
||||
#
|
||||
# Hisilicon HNS3 PMD driver
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=y
|
||||
|
@ -55,4 +55,5 @@ CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
|
||||
CONFIG_RTE_LIBRTE_AVP_PMD=n
|
||||
CONFIG_RTE_LIBRTE_NFP_PMD=n
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=n
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=n
|
||||
CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
|
||||
|
@ -59,3 +59,8 @@ CONFIG_RTE_MAX_MEM_MB=2048
|
||||
# HINIC PMD is not supported on 32-bit
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=n
|
||||
|
||||
#
|
||||
# HNS3 PMD is not supported on 32-bit
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=n
|
||||
|
@ -59,3 +59,8 @@ CONFIG_RTE_MAX_MEM_MB=2048
|
||||
# HINIC PMD is not supported on 32-bit
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=n
|
||||
|
||||
#
|
||||
# HNS3 PMD is not supported on 32-bit
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=n
|
||||
|
@ -30,4 +30,5 @@ CONFIG_RTE_LIBRTE_FM10K_PMD=n
|
||||
CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
|
||||
CONFIG_RTE_LIBRTE_AVP_PMD=n
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=n
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=n
|
||||
CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n
|
||||
|
@ -22,3 +22,8 @@ CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
|
||||
# HINIC PMD build is not supported using icc toolchain
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=n
|
||||
|
||||
#
|
||||
# HNS3 PMD build is not supported using icc toolchain
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=n
|
||||
|
@ -39,3 +39,8 @@ CONFIG_RTE_MAX_MEM_MB=2048
|
||||
# HINIC PMD is not supported on 32-bit
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HINIC_PMD=n
|
||||
|
||||
#
|
||||
# HNS3 PMD is not supported on 32-bit
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_HNS3_PMD=n
|
||||
|
9
doc/guides/nics/features/hns3.ini
Normal file
9
doc/guides/nics/features/hns3.ini
Normal file
@ -0,0 +1,9 @@
|
||||
;
|
||||
; Supported features of the 'hns3' network poll mode driver.
|
||||
;
|
||||
; Refer to default.ini for the full list of available PMD features.
|
||||
;
|
||||
[Features]
|
||||
Linux UIO = Y
|
||||
Linux VFIO = Y
|
||||
ARMv8 = Y
|
60
doc/guides/nics/hns3.rst
Normal file
60
doc/guides/nics/hns3.rst
Normal file
@ -0,0 +1,60 @@
|
||||
.. SPDX-License-Identifier: BSD-3-Clause
|
||||
Copyright(c) 2018-2019 Hisilicon Limited.
|
||||
|
||||
HNS3 Poll Mode Driver
|
||||
===============================
|
||||
|
||||
The hns3 PMD (librte_pmd_hns3) provides poll mode driver support
|
||||
for the inbuilt Hisilicon Network Subsystem(HNS) network engine
|
||||
found in the Hisilicon Kunpeng 920 SoC.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
Features of the HNS3 PMD are:
|
||||
|
||||
- Multiple queues for TX and RX
|
||||
- Receive Side Scaling (RSS)
|
||||
- Packet type information
|
||||
- Checksum offload
|
||||
- Promiscuous mode
|
||||
- Multicast mode
|
||||
- Port hardware statistics
|
||||
- Jumbo frames
|
||||
- Link state information
|
||||
- VLAN stripping
|
||||
- NUMA support
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
- Get the information about Kunpeng920 chip using
|
||||
`<http://www.hisilicon.com/en/Products/ProductList/Kunpeng>`_.
|
||||
|
||||
- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
|
||||
|
||||
Pre-Installation Configuration
|
||||
------------------------------
|
||||
|
||||
Config File Options
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following options can be modified in the ``config`` file.
|
||||
Please note that enabling debugging options may affect system performance.
|
||||
|
||||
- ``CONFIG_RTE_LIBRTE_HNS3_PMD`` (default ``y``)
|
||||
|
||||
Driver compilation and testing
|
||||
------------------------------
|
||||
|
||||
Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
|
||||
for details.
|
||||
|
||||
Limitations or Known issues
|
||||
---------------------------
|
||||
Currently, we only support VF device is bound to vfio_pci or
|
||||
igb_uio and then driven by DPDK driver when PF is driven by
|
||||
kernel mode hns3 ethdev driver, VF is not supported when PF
|
||||
is driven by DPDK driver.
|
||||
|
||||
Build with ICC is not supported yet.
|
||||
X86-32, Power8, ARMv7 and BSD are not supported yet.
|
@ -28,6 +28,7 @@ Network Interface Controller Drivers
|
||||
enic
|
||||
fm10k
|
||||
hinic
|
||||
hns3
|
||||
i40e
|
||||
ice
|
||||
ifc
|
||||
|
@ -56,6 +56,12 @@ New Features
|
||||
Also, make sure to start the actual text at the margin.
|
||||
=========================================================
|
||||
|
||||
* **Added Hisilicon hns3 PMD.**
|
||||
|
||||
Added the new ``hns3`` net driver for the inbuilt Hisilicon Network
|
||||
Subsystem 3(HNS3) network engine found in the Hisilicon Kunpeng 920 SoC.
|
||||
See the :doc:`../nics/hns3` guide for more details on this new driver.
|
||||
|
||||
* **Updated the Intel ice driver.**
|
||||
|
||||
Updated the Intel ice driver with new features and improvements, including:
|
||||
|
@ -30,6 +30,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += failsafe
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += iavf
|
||||
DIRS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += ice
|
||||
|
23
drivers/net/hns3/Makefile
Normal file
23
drivers/net/hns3/Makefile
Normal file
@ -0,0 +1,23 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018-2019 Hisilicon Limited.
|
||||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
#
|
||||
# library name
|
||||
#
|
||||
LIB = librte_pmd_hns3.a
|
||||
|
||||
CFLAGS += -O3
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
EXPORT_MAP := rte_pmd_hns3_version.map
|
||||
|
||||
LIBABIVER := 1
|
||||
|
||||
#
|
||||
# all source are stored in SRCS-y
|
||||
#
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_ethdev.c
|
||||
|
||||
include $(RTE_SDK)/mk/rte.lib.mk
|
3
drivers/net/hns3/hns3_ethdev.c
Normal file
3
drivers/net/hns3/hns3_ethdev.c
Normal file
@ -0,0 +1,3 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
* Copyright(c) 2018-2019 Hisilicon Limited.
|
||||
*/
|
19
drivers/net/hns3/meson.build
Normal file
19
drivers/net/hns3/meson.build
Normal file
@ -0,0 +1,19 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2018-2019 Hisilicon Limited
|
||||
|
||||
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 arm64'
|
||||
subdir_done()
|
||||
endif
|
||||
|
||||
sources = files(
|
||||
'hns3_ethdev.c',
|
||||
)
|
||||
deps += ['hash']
|
3
drivers/net/hns3/rte_pmd_hns3_version.map
Normal file
3
drivers/net/hns3/rte_pmd_hns3_version.map
Normal file
@ -0,0 +1,3 @@
|
||||
DPDK_19.11 {
|
||||
local: *;
|
||||
};
|
@ -18,6 +18,7 @@ drivers = ['af_packet',
|
||||
'failsafe',
|
||||
'fm10k', 'i40e',
|
||||
'hinic',
|
||||
'hns3',
|
||||
'iavf',
|
||||
'ice',
|
||||
'ifc',
|
||||
|
@ -172,6 +172,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += -lrte_pmd_enic
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += -lrte_pmd_fm10k
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_FAILSAFE) += -lrte_pmd_failsafe
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += -lrte_pmd_hinic
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += -lrte_pmd_hns3
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += -lrte_pmd_i40e
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_IAVF_PMD) += -lrte_pmd_iavf
|
||||
_LDLIBS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += -lrte_pmd_ice
|
||||
|
Loading…
x
Reference in New Issue
Block a user