From: "Wei Hu (Xavier)" <xavier.huwei@huawei.com> To: <dev@dpdk.org> Cc: <linuxarm@huawei.com>, <xavier_huwei@163.com>, <liudongdong3@huawei.com>, <forest.zhouchang@huawei.com> Subject: [dpdk-dev] [PATCH 22/22] net/hns3: add hns3 build files Date: Fri, 23 Aug 2019 21:47:11 +0800 Message-ID: <1566568031-45991-23-git-send-email-xavier.huwei@huawei.com> (raw) In-Reply-To: <1566568031-45991-1-git-send-email-xavier.huwei@huawei.com> This patch add build related files 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> --- MAINTAINERS | 7 ++++ config/common_armv8a_linux | 5 +++ config/common_base | 5 +++ config/defconfig_arm64-armv8a-linuxapp-clang | 2 + doc/guides/nics/features/hns3.ini | 38 +++++++++++++++++++ doc/guides/nics/hns3.rst | 55 ++++++++++++++++++++++++++++ drivers/net/Makefile | 1 + drivers/net/hns3/Makefile | 43 ++++++++++++++++++++++ drivers/net/hns3/meson.build | 19 ++++++++++ drivers/net/hns3/rte_pmd_hns3_version.map | 3 ++ drivers/net/meson.build | 1 + mk/rte.app.mk | 1 + 12 files changed, 180 insertions(+) create mode 100644 doc/guides/nics/features/hns3.ini create mode 100644 doc/guides/nics/hns3.rst create mode 100644 drivers/net/hns3/Makefile create mode 100644 drivers/net/hns3/meson.build create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map diff --git a/MAINTAINERS b/MAINTAINERS index 4100260..1794923 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -616,6 +616,13 @@ F: drivers/net/hinic/ F: doc/guides/nics/hinic.rst F: doc/guides/nics/features/hinic.ini +Hisilicon hns3 +M: Wei Hu (Xavier) <xavier.huwei@huawei.com> +M: Min Hu (Connor) <humin29@huawei.com> +F: drivers/net/hns3/ +F: doc/guides/nics/hns3.rst +F: doc/guides/nics/features/hns3.ini + Intel e1000 M: Wenzhuo Lu <wenzhuo.lu@intel.com> T: git://dpdk.org/next/dpdk-next-net-intel diff --git a/config/common_armv8a_linux b/config/common_armv8a_linux index 481712e..bf455c5 100644 --- a/config/common_armv8a_linux +++ b/config/common_armv8a_linux @@ -37,3 +37,8 @@ CONFIG_RTE_LIBRTE_AVP_PMD=n CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n CONFIG_RTE_SCHED_VECTOR=n + +# +# Hisilicon HNS3 PMD driver +# +CONFIG_RTE_LIBRTE_HNS3_PMD=y diff --git a/config/common_base b/config/common_base index 8ef75c2..71a2c33 100644 --- a/config/common_base +++ b/config/common_base @@ -282,6 +282,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 # CONFIG_RTE_LIBRTE_IXGBE_PMD=y diff --git a/config/defconfig_arm64-armv8a-linuxapp-clang b/config/defconfig_arm64-armv8a-linuxapp-clang index d3b4dad..c73f5fb 100644 --- a/config/defconfig_arm64-armv8a-linuxapp-clang +++ b/config/defconfig_arm64-armv8a-linuxapp-clang @@ -6,3 +6,5 @@ CONFIG_RTE_TOOLCHAIN="clang" CONFIG_RTE_TOOLCHAIN_CLANG=y + +CONFIG_RTE_LIBRTE_HNS3_PMD=n diff --git a/doc/guides/nics/features/hns3.ini b/doc/guides/nics/features/hns3.ini new file mode 100644 index 0000000..d38d35e --- /dev/null +++ b/doc/guides/nics/features/hns3.ini @@ -0,0 +1,38 @@ +; +; Supported features of the 'hns3' network poll mode driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Link status = Y +MTU update = Y +Jumbo frame = 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 +DCB = Y +VLAN filter = Y +Flow director = Y +Flow control = Y +Flow API = Y +CRC offload = Y +VLAN offload = Y +L3 checksum offload = Y +L4 checksum offload = Y +Inner L3 checksum = Y +Inner L4 checksum = Y +Basic stats = Y +Extended stats = Y +Stats per queue = Y +Linux UIO = Y +Linux VFIO = Y +BSD nic_uio = N +x86-64 = N +ARMv8 = Y +ARMv7 = N +x86-32 = N +Power8 = N diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst new file mode 100644 index 0000000..c9d0253 --- /dev/null +++ b/doc/guides/nics/hns3.rst @@ -0,0 +1,55 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2018-2019 Hisilicon Limited. + +HNS3 Poll Mode Driver +=============================== + +The Hisilicon Network Subsystem is a long term evolution IP which is +supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920. + +The HNS3 PMD (librte_pmd_hns3) provides poll mode driver support +for hns3(Hisilicon Network Subsystem 3) network engine. + +Features +-------- + +Features of the HNS3 PMD are: + +- Arch support: ARMv8. +- 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 +------------- +- 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 +--------------------------- +Build with clang is not supported yet. +Currently, only ARMv8 architecture is supported. \ No newline at end of file diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 5767fdf..1770d8b 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -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 diff --git a/drivers/net/hns3/Makefile b/drivers/net/hns3/Makefile new file mode 100644 index 0000000..a2e6502 --- /dev/null +++ b/drivers/net/hns3/Makefile @@ -0,0 +1,43 @@ +# 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) +CFLAGS += -DALLOW_EXPERIMENTAL_API -fsigned-char + +LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring +LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash +LDLIBS += -lrte_bus_pci + +EXPORT_MAP := rte_pmd_hns3_version.map + +LIBABIVER := 2 + +# +# all source are stored in SRCS-y +# +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_ethdev.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_ethdev_vf.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_cmd.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_mbx.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_rxtx.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_rss.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_flow.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_fdir.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_intr.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_stats.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_regs.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_dcb.c +SRCS-$(CONFIG_RTE_LIBRTE_HNS3_PMD) += hns3_mp.c + +# install this header file +SYMLINK-$(CONFIG_RTE_LIBRTE_HNS3_PMD)-include := hns3_ethdev.h + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/net/hns3/meson.build b/drivers/net/hns3/meson.build new file mode 100644 index 0000000..ad301a5 --- /dev/null +++ b/drivers/net/hns3/meson.build @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018-2019 Hisilicon Limited + +sources = files('hns3_cmd.c', + 'hns3_dcb.c', + 'hns3_intr.c', + 'hns3_ethdev.c', + 'hns3_ethdev_vf.c', + 'hns3_fdir.c', + 'hns3_flow.c', + 'hns3_mbx.c', + 'hns3_regs.c', + 'hns3_rss.c', + 'hns3_rxtx.c', + 'hns3_stats.c', + 'hns3_mp.c') +deps += ['hash'] + +cflags += '-DALLOW_EXPERIMENTAL_API' diff --git a/drivers/net/hns3/rte_pmd_hns3_version.map b/drivers/net/hns3/rte_pmd_hns3_version.map new file mode 100644 index 0000000..3aef967 --- /dev/null +++ b/drivers/net/hns3/rte_pmd_hns3_version.map @@ -0,0 +1,3 @@ +DPDK_19.08 { + local: *; +}; diff --git a/drivers/net/meson.build b/drivers/net/meson.build index 513f19b..eb1c6b6 100644 --- a/drivers/net/meson.build +++ b/drivers/net/meson.build @@ -18,6 +18,7 @@ drivers = ['af_packet', 'failsafe', 'fm10k', 'i40e', 'hinic', + 'hns3', 'iavf', 'ice', 'ifc', diff --git a/mk/rte.app.mk b/mk/rte.app.mk index ba5c39e..17b9916 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -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 -- 2.7.4
next prev parent reply index Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-23 13:46 [dpdk-dev] [PATCH 00/22] add hns3 ethernet PMD driver Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 01/22] net/hns3: add hardware registers definition Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 02/22] net/hns3: add some definitions for data structure and macro Wei Hu (Xavier) 2019-08-30 8:25 ` Gavin Hu (Arm Technology China) 2019-09-05 6:01 ` Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 03/22] net/hns3: register hns3 PMD driver Wei Hu (Xavier) 2019-08-30 15:01 ` Ferruh Yigit 2019-09-06 6:20 ` Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 04/22] net/hns3: add support for cmd of " Wei Hu (Xavier) 2019-08-30 15:02 ` Ferruh Yigit 2019-09-06 6:49 ` Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 05/22] net/hns3: add the initialization " Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 06/22] net/hns3: add support for MAC address related operations Wei Hu (Xavier) 2019-08-30 15:03 ` Ferruh Yigit 2019-09-05 5:40 ` Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 07/22] net/hns3: add support for some misc operations Wei Hu (Xavier) 2019-08-30 15:04 ` Ferruh Yigit 2019-08-23 13:46 ` [dpdk-dev] [PATCH 08/22] net/hns3: add support for link update operation Wei Hu (Xavier) 2019-08-30 15:04 ` Ferruh Yigit 2019-09-06 6:56 ` Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 09/22] net/hns3: add support for flow directory of hns3 PMD driver Wei Hu (Xavier) 2019-08-30 15:06 ` Ferruh Yigit 2019-09-06 8:23 ` Wei Hu (Xavier) 2019-09-06 11:08 ` Wei Hu (Xavier) 2019-08-23 13:46 ` [dpdk-dev] [PATCH 10/22] net/hns3: add support for RSS " Wei Hu (Xavier) 2019-08-30 15:07 ` Ferruh Yigit 2019-08-31 9:16 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 11/22] net/hns3: add support for flow control " Wei Hu (Xavier) 2019-08-30 15:07 ` Ferruh Yigit 2019-08-31 8:04 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 12/22] net/hns3: add support for VLAN " Wei Hu (Xavier) 2019-08-30 15:08 ` Ferruh Yigit 2019-08-31 9:04 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 13/22] net/hns3: add support for mailbox " Wei Hu (Xavier) 2019-08-30 15:08 ` Ferruh Yigit 2019-09-06 11:25 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 14/22] net/hns3: add support for hns3 VF " Wei Hu (Xavier) 2019-08-30 15:11 ` Ferruh Yigit 2019-08-31 9:03 ` Wei Hu (Xavier) 2019-09-06 11:27 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 15/22] net/hns3: add package and queue related operation Wei Hu (Xavier) 2019-08-23 15:42 ` Aaron Conole 2019-08-30 15:13 ` Ferruh Yigit 2019-09-11 11:40 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 16/22] net/hns3: add start stop configure promiscuous ops Wei Hu (Xavier) 2019-08-30 15:14 ` Ferruh Yigit 2019-09-06 11:51 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 17/22] net/hns3: add dump register ops for hns3 PMD driver Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 18/22] net/hns3: add abnormal interrupt process " Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 19/22] net/hns3: add stats related ops " Wei Hu (Xavier) 2019-08-30 15:20 ` Ferruh Yigit 2019-08-31 8:49 ` Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 20/22] net/hns3: add reset related process " Wei Hu (Xavier) 2019-08-23 13:47 ` [dpdk-dev] [PATCH 21/22] net/hns3: add multiple process support " Wei Hu (Xavier) 2019-08-30 15:14 ` Ferruh Yigit 2019-09-02 13:41 ` Wei Hu (Xavier) 2019-08-23 13:47 ` Wei Hu (Xavier) [this message] 2019-08-23 14:08 ` [dpdk-dev] [PATCH 22/22] net/hns3: add hns3 build files Jerin Jacob Kollanukkaran 2019-08-30 3:22 ` Wei Hu (Xavier) 2019-08-31 2:10 ` Wei Hu (Xavier) 2019-08-30 14:57 ` Ferruh Yigit 2019-08-30 6:16 ` Stephen Hemminger 2019-08-31 8:46 ` Wei Hu (Xavier) 2019-08-30 6:17 ` Stephen Hemminger 2019-08-31 8:44 ` Wei Hu (Xavier) 2019-09-03 15:27 ` Ye Xiaolong 2019-09-11 11:36 ` Wei Hu (Xavier) 2019-08-30 14:58 ` Ferruh Yigit 2019-09-10 11:43 ` Wei Hu (Xavier) 2019-08-30 15:00 ` Ferruh Yigit 2019-08-31 8:07 ` Wei Hu (Xavier) 2019-08-30 15:12 ` Ferruh Yigit 2019-08-31 8:07 ` Wei Hu (Xavier) 2019-08-30 15:23 ` [dpdk-dev] [PATCH 00/22] add hns3 ethernet PMD driver Ferruh Yigit 2019-08-31 8:06 ` Wei Hu (Xavier) 2019-09-02 4:24 [dpdk-dev] [PATCH 22/22] net/hns3: add hns3 build files Jerin Jacob Kollanukkaran 2019-09-06 12:21 ` Wei Hu (Xavier)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1566568031-45991-23-git-send-email-xavier.huwei@huawei.com \ --to=xavier.huwei@huawei.com \ --cc=dev@dpdk.org \ --cc=forest.zhouchang@huawei.com \ --cc=linuxarm@huawei.com \ --cc=liudongdong3@huawei.com \ --cc=xavier_huwei@163.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK-dev Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \ dev@dpdk.org public-inbox-index dpdk-dev Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git