Message ID | 1568985955-13548-1-git-send-email-xavier.huwei@huawei.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4B2D81F442; Fri, 20 Sep 2019 15:28:59 +0200 (CEST) Received: from huawei.com (szxga04-in.huawei.com [45.249.212.190]) by dpdk.org (Postfix) with ESMTP id E330C1F3FF for <dev@dpdk.org>; Fri, 20 Sep 2019 15:28:38 +0200 (CEST) Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 11FD433FAD2F1C76FE60; Fri, 20 Sep 2019 21:28:36 +0800 (CST) Received: from localhost.localdomain (10.67.212.132) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.439.0; Fri, 20 Sep 2019 21:28:26 +0800 From: "Wei Hu (Xavier)" <xavier.huwei@huawei.com> To: <dev@dpdk.org> CC: <linuxarm@huawei.com>, <xavier_huwei@163.com>, <forest.zhouchang@huawei.com> Date: Fri, 20 Sep 2019 21:25:33 +0800 Message-ID: <1568985955-13548-1-git-send-email-xavier.huwei@huawei.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.212.132] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH v2 00/22] add hns3 ethernet PMD driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
add hns3 ethernet PMD driver
|
|
Message
Wei Hu (Xavier)
Sept. 20, 2019, 1:25 p.m. UTC
The Hisilicon Network Subsystem is a long term evolution IP which is supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920. This series add DPDK rte_ethdev poll mode driver for Hisilicon Network Subsystem 3(hns3) network engine. Wei Hu (Xavier) (22): net/hns3: add hns3 build and doc infrastructure net/hns3: add hardware registers definition net/hns3: add some definitions for data structure and macro net/hns3: register hns3 PMD driver and add the log interface definition net/hns3: add support for cmd of hns3 PMD driver net/hns3: add the initialization of hns3 PMD driver net/hns3: add support for MAC address related operations net/hns3: add support for some misc operations net/hns3: add support for link_update operation net/hns3: add support for flow directory of hns3 PMD driver net/hns3: add support for RSS of hns3 PMD driver net/hns3: add support for flow control of hns3 PMD driver net/hns3: add support for vlan of hns3 PMD driver net/hns3: add support for mailbox of hns3 PMD driver net/hns3: add support for hns3 VF PMD driver net/hns3: add RX/TX package burst and queue related operation net/hns3: add start stop configure promiscuous ops net/hns3: add dump register ops for hns3 PMD driver net/hns3: add abnormal interrupt process for hns3 PMD driver net/hns3: add stats related ops for hns3 PMD driver net/hns3: add reset related process for hns3 PMD driver net/hns3: add multiple process support for hns3 PMD driver MAINTAINERS | 8 + config/common_base | 5 + config/common_linux | 5 + config/defconfig_arm-armv7a-linuxapp-gcc | 1 + config/defconfig_i686-native-linuxapp-gcc | 5 + config/defconfig_i686-native-linuxapp-icc | 5 + config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + config/defconfig_x86_64-native-linuxapp-icc | 5 + config/defconfig_x86_x32-native-linuxapp-gcc | 5 + doc/guides/nics/features/hns3.ini | 34 + doc/guides/nics/features/hns3_vf.ini | 29 + doc/guides/nics/hns3.rst | 60 + doc/guides/nics/index.rst | 1 + doc/guides/rel_notes/release_19_11.rst | 5 + drivers/net/Makefile | 1 + drivers/net/hns3/Makefile | 45 + drivers/net/hns3/hns3_cmd.c | 565 +++ drivers/net/hns3/hns3_cmd.h | 761 ++++ drivers/net/hns3/hns3_dcb.c | 1642 +++++++++ drivers/net/hns3/hns3_dcb.h | 166 + drivers/net/hns3/hns3_ethdev.c | 4939 ++++++++++++++++++++++++++ drivers/net/hns3/hns3_ethdev.h | 645 ++++ drivers/net/hns3/hns3_ethdev_vf.c | 1735 +++++++++ drivers/net/hns3/hns3_fdir.c | 1059 ++++++ drivers/net/hns3/hns3_fdir.h | 205 ++ drivers/net/hns3/hns3_flow.c | 1903 ++++++++++ drivers/net/hns3/hns3_intr.c | 1166 ++++++ drivers/net/hns3/hns3_intr.h | 79 + drivers/net/hns3/hns3_logs.h | 34 + drivers/net/hns3/hns3_mbx.c | 353 ++ drivers/net/hns3/hns3_mbx.h | 136 + drivers/net/hns3/hns3_mp.c | 214 ++ drivers/net/hns3/hns3_mp.h | 14 + drivers/net/hns3/hns3_regs.c | 368 ++ drivers/net/hns3/hns3_regs.h | 99 + drivers/net/hns3/hns3_rss.c | 584 +++ drivers/net/hns3/hns3_rss.h | 124 + drivers/net/hns3/hns3_rxtx.c | 1676 +++++++++ drivers/net/hns3/hns3_rxtx.h | 317 ++ drivers/net/hns3/hns3_stats.c | 971 +++++ drivers/net/hns3/hns3_stats.h | 152 + drivers/net/hns3/meson.build | 37 + drivers/net/hns3/rte_pmd_hns3_version.map | 3 + drivers/net/meson.build | 1 + mk/rte.app.mk | 1 + 45 files changed, 20164 insertions(+) create mode 100644 doc/guides/nics/features/hns3.ini create mode 100644 doc/guides/nics/features/hns3_vf.ini create mode 100644 doc/guides/nics/hns3.rst create mode 100644 drivers/net/hns3/Makefile create mode 100644 drivers/net/hns3/hns3_cmd.c create mode 100644 drivers/net/hns3/hns3_cmd.h create mode 100644 drivers/net/hns3/hns3_dcb.c create mode 100644 drivers/net/hns3/hns3_dcb.h create mode 100644 drivers/net/hns3/hns3_ethdev.c create mode 100644 drivers/net/hns3/hns3_ethdev.h create mode 100644 drivers/net/hns3/hns3_ethdev_vf.c create mode 100644 drivers/net/hns3/hns3_fdir.c create mode 100644 drivers/net/hns3/hns3_fdir.h create mode 100644 drivers/net/hns3/hns3_flow.c create mode 100644 drivers/net/hns3/hns3_intr.c create mode 100644 drivers/net/hns3/hns3_intr.h create mode 100644 drivers/net/hns3/hns3_logs.h create mode 100644 drivers/net/hns3/hns3_mbx.c create mode 100644 drivers/net/hns3/hns3_mbx.h create mode 100644 drivers/net/hns3/hns3_mp.c create mode 100644 drivers/net/hns3/hns3_mp.h create mode 100644 drivers/net/hns3/hns3_regs.c create mode 100644 drivers/net/hns3/hns3_regs.h create mode 100644 drivers/net/hns3/hns3_rss.c create mode 100644 drivers/net/hns3/hns3_rss.h create mode 100644 drivers/net/hns3/hns3_rxtx.c create mode 100644 drivers/net/hns3/hns3_rxtx.h create mode 100644 drivers/net/hns3/hns3_stats.c create mode 100644 drivers/net/hns3/hns3_stats.h create mode 100644 drivers/net/hns3/meson.build create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map
Comments
Hi, Ferruh Yigit I sent out patch V2 yesterday. And I found that the following page indicates that there is a compilation error. http://mails.dpdk.org/archives/test-report/2019-September/098385.html The relevant sections in the log: <...> *Meson Build Failed #1: OS: FC30-64 Target:build-gcc-static FAILED: drivers/a715181@@tmp_rte_pmd_hns3 at sta <https://mails.dpdk.org/listinfo/test-report>/net_hns3_hns3_ethdev_vf.c.o <...> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: error: initialization of ‘void (*)(struct rte_eth_dev *, struct rte_eth_dev_info *)’ from incompatible pointer type ‘int (*)(struct rte_eth_dev *, struct rte_eth_dev_info *)’ [-Werror=incompatible-pointer-types] 1552 | .dev_infos_get = hns3vf_dev_infos_get, | ^~~~~~~~~~~~~~~~~~~~ ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: note: (near initialization for ‘hns3vf_eth_dev_ops.dev_infos_get’) cc1: all warnings being treated as errors <...> But I found that perhaps the reason for this compilation error is that the following patch was not built on CI, and it had been in the latest branch of the repository: http://dpdk.org/git/next/dpdk-next-net The information of the relevant patch as below: commit 84c4620318b642aea9b5388aa7fbc79a4fe6f29e Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> Date: Thu Sep 12 17:42:28 2019 +0100 ethdev: change device info get callback to return int diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h index 2922d5b..2394b32 100644 --- a/lib/librte_ethdev/rte_ethdev_core.h +++ b/lib/librte_ethdev/rte_ethdev_core.h @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct rte_eth_dev *dev, uint8_t is_rx); /**< @internal Set a queue statistics mapping for a tx/rx queue of an Ethernet device. */ -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, - struct rte_eth_dev_info *dev_info); +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, + struct rte_eth_dev_info *dev_info); /**< @internal Get specific information of an Ethernet device. */ Regards Xavier On 2019/9/20 21:25, Wei Hu (Xavier) wrote: > The Hisilicon Network Subsystem is a long term evolution IP which is > supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920. > > This series add DPDK rte_ethdev poll mode driver for Hisilicon > Network Subsystem 3(hns3) network engine. > > Wei Hu (Xavier) (22): > net/hns3: add hns3 build and doc infrastructure > net/hns3: add hardware registers definition > net/hns3: add some definitions for data structure and macro > net/hns3: register hns3 PMD driver and add the log interface > definition > net/hns3: add support for cmd of hns3 PMD driver > net/hns3: add the initialization of hns3 PMD driver > net/hns3: add support for MAC address related operations > net/hns3: add support for some misc operations > net/hns3: add support for link_update operation > net/hns3: add support for flow directory of hns3 PMD driver > net/hns3: add support for RSS of hns3 PMD driver > net/hns3: add support for flow control of hns3 PMD driver > net/hns3: add support for vlan of hns3 PMD driver > net/hns3: add support for mailbox of hns3 PMD driver > net/hns3: add support for hns3 VF PMD driver > net/hns3: add RX/TX package burst and queue related operation > net/hns3: add start stop configure promiscuous ops > net/hns3: add dump register ops for hns3 PMD driver > net/hns3: add abnormal interrupt process for hns3 PMD driver > net/hns3: add stats related ops for hns3 PMD driver > net/hns3: add reset related process for hns3 PMD driver > net/hns3: add multiple process support for hns3 PMD driver > > MAINTAINERS | 8 + > config/common_base | 5 + > config/common_linux | 5 + > config/defconfig_arm-armv7a-linuxapp-gcc | 1 + > config/defconfig_i686-native-linuxapp-gcc | 5 + > config/defconfig_i686-native-linuxapp-icc | 5 + > config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + > config/defconfig_x86_64-native-linuxapp-icc | 5 + > config/defconfig_x86_x32-native-linuxapp-gcc | 5 + > doc/guides/nics/features/hns3.ini | 34 + > doc/guides/nics/features/hns3_vf.ini | 29 + > doc/guides/nics/hns3.rst | 60 + > doc/guides/nics/index.rst | 1 + > doc/guides/rel_notes/release_19_11.rst | 5 + > drivers/net/Makefile | 1 + > drivers/net/hns3/Makefile | 45 + > drivers/net/hns3/hns3_cmd.c | 565 +++ > drivers/net/hns3/hns3_cmd.h | 761 ++++ > drivers/net/hns3/hns3_dcb.c | 1642 +++++++++ > drivers/net/hns3/hns3_dcb.h | 166 + > drivers/net/hns3/hns3_ethdev.c | 4939 ++++++++++++++++++++++++++ > drivers/net/hns3/hns3_ethdev.h | 645 ++++ > drivers/net/hns3/hns3_ethdev_vf.c | 1735 +++++++++ > drivers/net/hns3/hns3_fdir.c | 1059 ++++++ > drivers/net/hns3/hns3_fdir.h | 205 ++ > drivers/net/hns3/hns3_flow.c | 1903 ++++++++++ > drivers/net/hns3/hns3_intr.c | 1166 ++++++ > drivers/net/hns3/hns3_intr.h | 79 + > drivers/net/hns3/hns3_logs.h | 34 + > drivers/net/hns3/hns3_mbx.c | 353 ++ > drivers/net/hns3/hns3_mbx.h | 136 + > drivers/net/hns3/hns3_mp.c | 214 ++ > drivers/net/hns3/hns3_mp.h | 14 + > drivers/net/hns3/hns3_regs.c | 368 ++ > drivers/net/hns3/hns3_regs.h | 99 + > drivers/net/hns3/hns3_rss.c | 584 +++ > drivers/net/hns3/hns3_rss.h | 124 + > drivers/net/hns3/hns3_rxtx.c | 1676 +++++++++ > drivers/net/hns3/hns3_rxtx.h | 317 ++ > drivers/net/hns3/hns3_stats.c | 971 +++++ > drivers/net/hns3/hns3_stats.h | 152 + > drivers/net/hns3/meson.build | 37 + > drivers/net/hns3/rte_pmd_hns3_version.map | 3 + > drivers/net/meson.build | 1 + > mk/rte.app.mk | 1 + > 45 files changed, 20164 insertions(+) > create mode 100644 doc/guides/nics/features/hns3.ini > create mode 100644 doc/guides/nics/features/hns3_vf.ini > create mode 100644 doc/guides/nics/hns3.rst > create mode 100644 drivers/net/hns3/Makefile > create mode 100644 drivers/net/hns3/hns3_cmd.c > create mode 100644 drivers/net/hns3/hns3_cmd.h > create mode 100644 drivers/net/hns3/hns3_dcb.c > create mode 100644 drivers/net/hns3/hns3_dcb.h > create mode 100644 drivers/net/hns3/hns3_ethdev.c > create mode 100644 drivers/net/hns3/hns3_ethdev.h > create mode 100644 drivers/net/hns3/hns3_ethdev_vf.c > create mode 100644 drivers/net/hns3/hns3_fdir.c > create mode 100644 drivers/net/hns3/hns3_fdir.h > create mode 100644 drivers/net/hns3/hns3_flow.c > create mode 100644 drivers/net/hns3/hns3_intr.c > create mode 100644 drivers/net/hns3/hns3_intr.h > create mode 100644 drivers/net/hns3/hns3_logs.h > create mode 100644 drivers/net/hns3/hns3_mbx.c > create mode 100644 drivers/net/hns3/hns3_mbx.h > create mode 100644 drivers/net/hns3/hns3_mp.c > create mode 100644 drivers/net/hns3/hns3_mp.h > create mode 100644 drivers/net/hns3/hns3_regs.c > create mode 100644 drivers/net/hns3/hns3_regs.h > create mode 100644 drivers/net/hns3/hns3_rss.c > create mode 100644 drivers/net/hns3/hns3_rss.h > create mode 100644 drivers/net/hns3/hns3_rxtx.c > create mode 100644 drivers/net/hns3/hns3_rxtx.h > create mode 100644 drivers/net/hns3/hns3_stats.c > create mode 100644 drivers/net/hns3/hns3_stats.h > create mode 100644 drivers/net/hns3/meson.build > create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map >
"Wei Hu (Xavier)" <xavier.huwei@huawei.com> writes: > Hi, Ferruh Yigit > > I sent out patch V2 yesterday. And I found that the following page > indicates that there is a compilation error. > > http://mails.dpdk.org/archives/test-report/2019-September/098385.html > > The relevant sections in the log: > > <...> > > *Meson Build Failed #1: OS: FC30-64 Target:build-gcc-static FAILED: > drivers/a715181@@tmp_rte_pmd_hns3 at sta > <https://mails.dpdk.org/listinfo/test-report>/net_hns3_hns3_ethdev_vf.c.o > > <...> > > ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: error: initialization of > ‘void (*)(struct rte_eth_dev *, struct rte_eth_dev_info *)’ from > incompatible pointer type ‘int (*)(struct rte_eth_dev *, struct > rte_eth_dev_info *)’ [-Werror=incompatible-pointer-types] 1552 | > .dev_infos_get = hns3vf_dev_infos_get, | ^~~~~~~~~~~~~~~~~~~~ > ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: note: (near initialization > for ‘hns3vf_eth_dev_ops.dev_infos_get’) cc1: all warnings being treated > as errors > > <...> > > But I found that perhaps the reason for this compilation error is that > the following patch was not built on CI, > > and it had been in the latest branch of the repository: > http://dpdk.org/git/next/dpdk-next-net The patch you reference is still not present. I guess perhaps it might have been clobbered in a rebase? > The information of the relevant patch as below: > > commit 84c4620318b642aea9b5388aa7fbc79a4fe6f29e > Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> > Date: Thu Sep 12 17:42:28 2019 +0100 > > ethdev: change device info get callback to return int > > diff --git a/lib/librte_ethdev/rte_ethdev_core.h > b/lib/librte_ethdev/rte_ethdev_core.h > index 2922d5b..2394b32 100644 > --- a/lib/librte_ethdev/rte_ethdev_core.h > +++ b/lib/librte_ethdev/rte_ethdev_core.h > @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct > rte_eth_dev *dev, > uint8_t is_rx); > /**< @internal Set a queue statistics mapping for a tx/rx queue of an > Ethernet device. */ > > -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, > - struct rte_eth_dev_info *dev_info); > +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, > + struct rte_eth_dev_info *dev_info); > /**< @internal Get specific information of an Ethernet device. */ > > > Regards > Xavier > > On 2019/9/20 21:25, Wei Hu (Xavier) wrote: >> The Hisilicon Network Subsystem is a long term evolution IP which is >> supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920. >> >> This series add DPDK rte_ethdev poll mode driver for Hisilicon >> Network Subsystem 3(hns3) network engine. >> >> Wei Hu (Xavier) (22): >> net/hns3: add hns3 build and doc infrastructure >> net/hns3: add hardware registers definition >> net/hns3: add some definitions for data structure and macro >> net/hns3: register hns3 PMD driver and add the log interface >> definition >> net/hns3: add support for cmd of hns3 PMD driver >> net/hns3: add the initialization of hns3 PMD driver >> net/hns3: add support for MAC address related operations >> net/hns3: add support for some misc operations >> net/hns3: add support for link_update operation >> net/hns3: add support for flow directory of hns3 PMD driver >> net/hns3: add support for RSS of hns3 PMD driver >> net/hns3: add support for flow control of hns3 PMD driver >> net/hns3: add support for vlan of hns3 PMD driver >> net/hns3: add support for mailbox of hns3 PMD driver >> net/hns3: add support for hns3 VF PMD driver >> net/hns3: add RX/TX package burst and queue related operation >> net/hns3: add start stop configure promiscuous ops >> net/hns3: add dump register ops for hns3 PMD driver >> net/hns3: add abnormal interrupt process for hns3 PMD driver >> net/hns3: add stats related ops for hns3 PMD driver >> net/hns3: add reset related process for hns3 PMD driver >> net/hns3: add multiple process support for hns3 PMD driver >> >> MAINTAINERS | 8 + >> config/common_base | 5 + >> config/common_linux | 5 + >> config/defconfig_arm-armv7a-linuxapp-gcc | 1 + >> config/defconfig_i686-native-linuxapp-gcc | 5 + >> config/defconfig_i686-native-linuxapp-icc | 5 + >> config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + >> config/defconfig_x86_64-native-linuxapp-icc | 5 + >> config/defconfig_x86_x32-native-linuxapp-gcc | 5 + >> doc/guides/nics/features/hns3.ini | 34 + >> doc/guides/nics/features/hns3_vf.ini | 29 + >> doc/guides/nics/hns3.rst | 60 + >> doc/guides/nics/index.rst | 1 + >> doc/guides/rel_notes/release_19_11.rst | 5 + >> drivers/net/Makefile | 1 + >> drivers/net/hns3/Makefile | 45 + >> drivers/net/hns3/hns3_cmd.c | 565 +++ >> drivers/net/hns3/hns3_cmd.h | 761 ++++ >> drivers/net/hns3/hns3_dcb.c | 1642 +++++++++ >> drivers/net/hns3/hns3_dcb.h | 166 + >> drivers/net/hns3/hns3_ethdev.c | 4939 ++++++++++++++++++++++++++ >> drivers/net/hns3/hns3_ethdev.h | 645 ++++ >> drivers/net/hns3/hns3_ethdev_vf.c | 1735 +++++++++ >> drivers/net/hns3/hns3_fdir.c | 1059 ++++++ >> drivers/net/hns3/hns3_fdir.h | 205 ++ >> drivers/net/hns3/hns3_flow.c | 1903 ++++++++++ >> drivers/net/hns3/hns3_intr.c | 1166 ++++++ >> drivers/net/hns3/hns3_intr.h | 79 + >> drivers/net/hns3/hns3_logs.h | 34 + >> drivers/net/hns3/hns3_mbx.c | 353 ++ >> drivers/net/hns3/hns3_mbx.h | 136 + >> drivers/net/hns3/hns3_mp.c | 214 ++ >> drivers/net/hns3/hns3_mp.h | 14 + >> drivers/net/hns3/hns3_regs.c | 368 ++ >> drivers/net/hns3/hns3_regs.h | 99 + >> drivers/net/hns3/hns3_rss.c | 584 +++ >> drivers/net/hns3/hns3_rss.h | 124 + >> drivers/net/hns3/hns3_rxtx.c | 1676 +++++++++ >> drivers/net/hns3/hns3_rxtx.h | 317 ++ >> drivers/net/hns3/hns3_stats.c | 971 +++++ >> drivers/net/hns3/hns3_stats.h | 152 + >> drivers/net/hns3/meson.build | 37 + >> drivers/net/hns3/rte_pmd_hns3_version.map | 3 + >> drivers/net/meson.build | 1 + >> mk/rte.app.mk | 1 + >> 45 files changed, 20164 insertions(+) >> create mode 100644 doc/guides/nics/features/hns3.ini >> create mode 100644 doc/guides/nics/features/hns3_vf.ini >> create mode 100644 doc/guides/nics/hns3.rst >> create mode 100644 drivers/net/hns3/Makefile >> create mode 100644 drivers/net/hns3/hns3_cmd.c >> create mode 100644 drivers/net/hns3/hns3_cmd.h >> create mode 100644 drivers/net/hns3/hns3_dcb.c >> create mode 100644 drivers/net/hns3/hns3_dcb.h >> create mode 100644 drivers/net/hns3/hns3_ethdev.c >> create mode 100644 drivers/net/hns3/hns3_ethdev.h >> create mode 100644 drivers/net/hns3/hns3_ethdev_vf.c >> create mode 100644 drivers/net/hns3/hns3_fdir.c >> create mode 100644 drivers/net/hns3/hns3_fdir.h >> create mode 100644 drivers/net/hns3/hns3_flow.c >> create mode 100644 drivers/net/hns3/hns3_intr.c >> create mode 100644 drivers/net/hns3/hns3_intr.h >> create mode 100644 drivers/net/hns3/hns3_logs.h >> create mode 100644 drivers/net/hns3/hns3_mbx.c >> create mode 100644 drivers/net/hns3/hns3_mbx.h >> create mode 100644 drivers/net/hns3/hns3_mp.c >> create mode 100644 drivers/net/hns3/hns3_mp.h >> create mode 100644 drivers/net/hns3/hns3_regs.c >> create mode 100644 drivers/net/hns3/hns3_regs.h >> create mode 100644 drivers/net/hns3/hns3_rss.c >> create mode 100644 drivers/net/hns3/hns3_rss.h >> create mode 100644 drivers/net/hns3/hns3_rxtx.c >> create mode 100644 drivers/net/hns3/hns3_rxtx.h >> create mode 100644 drivers/net/hns3/hns3_stats.c >> create mode 100644 drivers/net/hns3/hns3_stats.h >> create mode 100644 drivers/net/hns3/meson.build >> create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map >>
On 2019/9/25 4:34, Aaron Conole wrote: > "Wei Hu (Xavier)" <xavier.huwei@huawei.com> writes: > >> Hi, Ferruh Yigit >> >> I sent out patch V2 yesterday. And I found that the following page >> indicates that there is a compilation error. >> >> http://mails.dpdk.org/archives/test-report/2019-September/098385.html >> >> The relevant sections in the log: >> >> <...> >> >> *Meson Build Failed #1: OS: FC30-64 Target:build-gcc-static FAILED: >> drivers/a715181@@tmp_rte_pmd_hns3 at sta >> <https://mails.dpdk.org/listinfo/test-report>/net_hns3_hns3_ethdev_vf.c.o >> >> <...> >> >> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: error: initialization of >> ‘void (*)(struct rte_eth_dev *, struct rte_eth_dev_info *)’ from >> incompatible pointer type ‘int (*)(struct rte_eth_dev *, struct >> rte_eth_dev_info *)’ [-Werror=incompatible-pointer-types] 1552 | >> .dev_infos_get = hns3vf_dev_infos_get, | ^~~~~~~~~~~~~~~~~~~~ >> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: note: (near initialization >> for ‘hns3vf_eth_dev_ops.dev_infos_get’) cc1: all warnings being treated >> as errors >> >> <...> >> >> But I found that perhaps the reason for this compilation error is that >> the following patch was not built on CI, >> >> and it had been in the latest branch of the repository: >> http://dpdk.org/git/next/dpdk-next-net > The patch you reference is still not present. I guess perhaps it might > have been clobbered in a rebase? Hi, Aaron Conole The patch is still in the repository now, but the commit id has been changed. The detail information as below: repo: http://dpdk.org/git/next/dpdk-next-net branch: master commit b90f5e9b44c088d0bfa77d0458f5b28045935835 Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> Date: Thu Sep 12 17:42:28 2019 +0100 ethdev: change device info get callback to return int Change eth_dev_infos_get_t return value from void to int. Make eth_dev_infos_get_t implementations across all drivers to return negative errno values if case of error conditions. Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> <...> diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h index 2922d5b..2394b32 100644 --- a/lib/librte_ethdev/rte_ethdev_core.h +++ b/lib/librte_ethdev/rte_ethdev_core.h @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct rte_eth_dev *dev, uint8_t is_rx); /**< @internal Set a queue statistics mapping for a tx/rx queue of an Ethernet device. */ -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, - struct rte_eth_dev_info *dev_info); +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, + struct rte_eth_dev_info *dev_info); Thanks for your comment. Regards Xavier >> The information of the relevant patch as below: >> >> commit 84c4620318b642aea9b5388aa7fbc79a4fe6f29e >> Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> >> Date: Thu Sep 12 17:42:28 2019 +0100 >> >> ethdev: change device info get callback to return int >> >> diff --git a/lib/librte_ethdev/rte_ethdev_core.h >> b/lib/librte_ethdev/rte_ethdev_core.h >> index 2922d5b..2394b32 100644 >> --- a/lib/librte_ethdev/rte_ethdev_core.h >> +++ b/lib/librte_ethdev/rte_ethdev_core.h >> @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct >> rte_eth_dev *dev, >> uint8_t is_rx); >> /**< @internal Set a queue statistics mapping for a tx/rx queue of an >> Ethernet device. */ >> >> -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >> - struct rte_eth_dev_info *dev_info); >> +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >> + struct rte_eth_dev_info *dev_info); >> /**< @internal Get specific information of an Ethernet device. */ >> >> >> Regards >> Xavier >> >> On 2019/9/20 21:25, Wei Hu (Xavier) wrote: >>> The Hisilicon Network Subsystem is a long term evolution IP which is >>> supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920. >>> >>> This series add DPDK rte_ethdev poll mode driver for Hisilicon >>> Network Subsystem 3(hns3) network engine. >>> >>> Wei Hu (Xavier) (22): >>> net/hns3: add hns3 build and doc infrastructure >>> net/hns3: add hardware registers definition >>> net/hns3: add some definitions for data structure and macro >>> net/hns3: register hns3 PMD driver and add the log interface >>> definition >>> net/hns3: add support for cmd of hns3 PMD driver >>> net/hns3: add the initialization of hns3 PMD driver >>> net/hns3: add support for MAC address related operations >>> net/hns3: add support for some misc operations >>> net/hns3: add support for link_update operation >>> net/hns3: add support for flow directory of hns3 PMD driver >>> net/hns3: add support for RSS of hns3 PMD driver >>> net/hns3: add support for flow control of hns3 PMD driver >>> net/hns3: add support for vlan of hns3 PMD driver >>> net/hns3: add support for mailbox of hns3 PMD driver >>> net/hns3: add support for hns3 VF PMD driver >>> net/hns3: add RX/TX package burst and queue related operation >>> net/hns3: add start stop configure promiscuous ops >>> net/hns3: add dump register ops for hns3 PMD driver >>> net/hns3: add abnormal interrupt process for hns3 PMD driver >>> net/hns3: add stats related ops for hns3 PMD driver >>> net/hns3: add reset related process for hns3 PMD driver >>> net/hns3: add multiple process support for hns3 PMD driver >>> >>> MAINTAINERS | 8 + >>> config/common_base | 5 + >>> config/common_linux | 5 + >>> config/defconfig_arm-armv7a-linuxapp-gcc | 1 + >>> config/defconfig_i686-native-linuxapp-gcc | 5 + >>> config/defconfig_i686-native-linuxapp-icc | 5 + >>> config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + >>> config/defconfig_x86_64-native-linuxapp-icc | 5 + >>> config/defconfig_x86_x32-native-linuxapp-gcc | 5 + >>> doc/guides/nics/features/hns3.ini | 34 + >>> doc/guides/nics/features/hns3_vf.ini | 29 + >>> doc/guides/nics/hns3.rst | 60 + >>> doc/guides/nics/index.rst | 1 + >>> doc/guides/rel_notes/release_19_11.rst | 5 + >>> drivers/net/Makefile | 1 + >>> drivers/net/hns3/Makefile | 45 + >>> drivers/net/hns3/hns3_cmd.c | 565 +++ >>> drivers/net/hns3/hns3_cmd.h | 761 ++++ >>> drivers/net/hns3/hns3_dcb.c | 1642 +++++++++ >>> drivers/net/hns3/hns3_dcb.h | 166 + >>> drivers/net/hns3/hns3_ethdev.c | 4939 ++++++++++++++++++++++++++ >>> drivers/net/hns3/hns3_ethdev.h | 645 ++++ >>> drivers/net/hns3/hns3_ethdev_vf.c | 1735 +++++++++ >>> drivers/net/hns3/hns3_fdir.c | 1059 ++++++ >>> drivers/net/hns3/hns3_fdir.h | 205 ++ >>> drivers/net/hns3/hns3_flow.c | 1903 ++++++++++ >>> drivers/net/hns3/hns3_intr.c | 1166 ++++++ >>> drivers/net/hns3/hns3_intr.h | 79 + >>> drivers/net/hns3/hns3_logs.h | 34 + >>> drivers/net/hns3/hns3_mbx.c | 353 ++ >>> drivers/net/hns3/hns3_mbx.h | 136 + >>> drivers/net/hns3/hns3_mp.c | 214 ++ >>> drivers/net/hns3/hns3_mp.h | 14 + >>> drivers/net/hns3/hns3_regs.c | 368 ++ >>> drivers/net/hns3/hns3_regs.h | 99 + >>> drivers/net/hns3/hns3_rss.c | 584 +++ >>> drivers/net/hns3/hns3_rss.h | 124 + >>> drivers/net/hns3/hns3_rxtx.c | 1676 +++++++++ >>> drivers/net/hns3/hns3_rxtx.h | 317 ++ >>> drivers/net/hns3/hns3_stats.c | 971 +++++ >>> drivers/net/hns3/hns3_stats.h | 152 + >>> drivers/net/hns3/meson.build | 37 + >>> drivers/net/hns3/rte_pmd_hns3_version.map | 3 + >>> drivers/net/meson.build | 1 + >>> mk/rte.app.mk | 1 + >>> 45 files changed, 20164 insertions(+) >>> create mode 100644 doc/guides/nics/features/hns3.ini >>> create mode 100644 doc/guides/nics/features/hns3_vf.ini >>> create mode 100644 doc/guides/nics/hns3.rst >>> create mode 100644 drivers/net/hns3/Makefile >>> create mode 100644 drivers/net/hns3/hns3_cmd.c >>> create mode 100644 drivers/net/hns3/hns3_cmd.h >>> create mode 100644 drivers/net/hns3/hns3_dcb.c >>> create mode 100644 drivers/net/hns3/hns3_dcb.h >>> create mode 100644 drivers/net/hns3/hns3_ethdev.c >>> create mode 100644 drivers/net/hns3/hns3_ethdev.h >>> create mode 100644 drivers/net/hns3/hns3_ethdev_vf.c >>> create mode 100644 drivers/net/hns3/hns3_fdir.c >>> create mode 100644 drivers/net/hns3/hns3_fdir.h >>> create mode 100644 drivers/net/hns3/hns3_flow.c >>> create mode 100644 drivers/net/hns3/hns3_intr.c >>> create mode 100644 drivers/net/hns3/hns3_intr.h >>> create mode 100644 drivers/net/hns3/hns3_logs.h >>> create mode 100644 drivers/net/hns3/hns3_mbx.c >>> create mode 100644 drivers/net/hns3/hns3_mbx.h >>> create mode 100644 drivers/net/hns3/hns3_mp.c >>> create mode 100644 drivers/net/hns3/hns3_mp.h >>> create mode 100644 drivers/net/hns3/hns3_regs.c >>> create mode 100644 drivers/net/hns3/hns3_regs.h >>> create mode 100644 drivers/net/hns3/hns3_rss.c >>> create mode 100644 drivers/net/hns3/hns3_rss.h >>> create mode 100644 drivers/net/hns3/hns3_rxtx.c >>> create mode 100644 drivers/net/hns3/hns3_rxtx.h >>> create mode 100644 drivers/net/hns3/hns3_stats.c >>> create mode 100644 drivers/net/hns3/hns3_stats.h >>> create mode 100644 drivers/net/hns3/meson.build >>> create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map >>> > . >
On 9/25/2019 3:30 AM, Wei Hu (Xavier) wrote: > > > On 2019/9/25 4:34, Aaron Conole wrote: >> "Wei Hu (Xavier)" <xavier.huwei@huawei.com> writes: >> >>> Hi, Ferruh Yigit >>> >>> I sent out patch V2 yesterday. And I found that the following page >>> indicates that there is a compilation error. >>> >>> http://mails.dpdk.org/archives/test-report/2019-September/098385.html >>> >>> The relevant sections in the log: >>> >>> <...> >>> >>> *Meson Build Failed #1: OS: FC30-64 Target:build-gcc-static FAILED: >>> drivers/a715181@@tmp_rte_pmd_hns3 at sta >>> <https://mails.dpdk.org/listinfo/test-report>/net_hns3_hns3_ethdev_vf.c.o >>> >>> <...> >>> >>> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: error: initialization of >>> ‘void (*)(struct rte_eth_dev *, struct rte_eth_dev_info *)’ from >>> incompatible pointer type ‘int (*)(struct rte_eth_dev *, struct >>> rte_eth_dev_info *)’ [-Werror=incompatible-pointer-types] 1552 | >>> .dev_infos_get = hns3vf_dev_infos_get, | ^~~~~~~~~~~~~~~~~~~~ >>> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: note: (near initialization >>> for ‘hns3vf_eth_dev_ops.dev_infos_get’) cc1: all warnings being treated >>> as errors >>> >>> <...> >>> >>> But I found that perhaps the reason for this compilation error is that >>> the following patch was not built on CI, >>> >>> and it had been in the latest branch of the repository: >>> http://dpdk.org/git/next/dpdk-next-net >> The patch you reference is still not present. I guess perhaps it might >> have been clobbered in a rebase? > Hi, Aaron Conole > > The patch is still in the repository now, but the commit id has been > changed. The detail information as below: > > repo: http://dpdk.org/git/next/dpdk-next-net > branch: master > > commit b90f5e9b44c088d0bfa77d0458f5b28045935835 > Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> > Date: Thu Sep 12 17:42:28 2019 +0100 > > ethdev: change device info get callback to return int > > Change eth_dev_infos_get_t return value from void to int. > Make eth_dev_infos_get_t implementations across all drivers to return > negative errno values if case of error conditions. > > Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> > Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> > Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> > > <...> Hi Xavier, The recent ethdev patches affects the drivers, please double check if you driver is based on latest next-net? If it is, you can ignore the related build warnings for now, it will settle down. > > diff --git a/lib/librte_ethdev/rte_ethdev_core.h > b/lib/librte_ethdev/rte_ethdev_core.h > index 2922d5b..2394b32 100644 > --- a/lib/librte_ethdev/rte_ethdev_core.h > +++ b/lib/librte_ethdev/rte_ethdev_core.h > @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct > rte_eth_dev *dev, > uint8_t is_rx); > /**< @internal Set a queue statistics mapping for a tx/rx queue of an > Ethernet device. */ > > -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, > - struct rte_eth_dev_info *dev_info); > +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, > + struct rte_eth_dev_info *dev_info); > > Thanks for your comment. > > Regards > Xavier > >>> The information of the relevant patch as below: >>> >>> commit 84c4620318b642aea9b5388aa7fbc79a4fe6f29e >>> Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> >>> Date: Thu Sep 12 17:42:28 2019 +0100 >>> >>> ethdev: change device info get callback to return int >>> >>> diff --git a/lib/librte_ethdev/rte_ethdev_core.h >>> b/lib/librte_ethdev/rte_ethdev_core.h >>> index 2922d5b..2394b32 100644 >>> --- a/lib/librte_ethdev/rte_ethdev_core.h >>> +++ b/lib/librte_ethdev/rte_ethdev_core.h >>> @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct >>> rte_eth_dev *dev, >>> uint8_t is_rx); >>> /**< @internal Set a queue statistics mapping for a tx/rx queue of an >>> Ethernet device. */ >>> >>> -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >>> - struct rte_eth_dev_info *dev_info); >>> +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >>> + struct rte_eth_dev_info *dev_info); >>> /**< @internal Get specific information of an Ethernet device. */ >>> >>> >>> Regards >>> Xavier >>> >>> On 2019/9/20 21:25, Wei Hu (Xavier) wrote: >>>> The Hisilicon Network Subsystem is a long term evolution IP which is >>>> supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920. >>>> >>>> This series add DPDK rte_ethdev poll mode driver for Hisilicon >>>> Network Subsystem 3(hns3) network engine. >>>> >>>> Wei Hu (Xavier) (22): >>>> net/hns3: add hns3 build and doc infrastructure >>>> net/hns3: add hardware registers definition >>>> net/hns3: add some definitions for data structure and macro >>>> net/hns3: register hns3 PMD driver and add the log interface >>>> definition >>>> net/hns3: add support for cmd of hns3 PMD driver >>>> net/hns3: add the initialization of hns3 PMD driver >>>> net/hns3: add support for MAC address related operations >>>> net/hns3: add support for some misc operations >>>> net/hns3: add support for link_update operation >>>> net/hns3: add support for flow directory of hns3 PMD driver >>>> net/hns3: add support for RSS of hns3 PMD driver >>>> net/hns3: add support for flow control of hns3 PMD driver >>>> net/hns3: add support for vlan of hns3 PMD driver >>>> net/hns3: add support for mailbox of hns3 PMD driver >>>> net/hns3: add support for hns3 VF PMD driver >>>> net/hns3: add RX/TX package burst and queue related operation >>>> net/hns3: add start stop configure promiscuous ops >>>> net/hns3: add dump register ops for hns3 PMD driver >>>> net/hns3: add abnormal interrupt process for hns3 PMD driver >>>> net/hns3: add stats related ops for hns3 PMD driver >>>> net/hns3: add reset related process for hns3 PMD driver >>>> net/hns3: add multiple process support for hns3 PMD driver >>>> >>>> MAINTAINERS | 8 + >>>> config/common_base | 5 + >>>> config/common_linux | 5 + >>>> config/defconfig_arm-armv7a-linuxapp-gcc | 1 + >>>> config/defconfig_i686-native-linuxapp-gcc | 5 + >>>> config/defconfig_i686-native-linuxapp-icc | 5 + >>>> config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + >>>> config/defconfig_x86_64-native-linuxapp-icc | 5 + >>>> config/defconfig_x86_x32-native-linuxapp-gcc | 5 + >>>> doc/guides/nics/features/hns3.ini | 34 + >>>> doc/guides/nics/features/hns3_vf.ini | 29 + >>>> doc/guides/nics/hns3.rst | 60 + >>>> doc/guides/nics/index.rst | 1 + >>>> doc/guides/rel_notes/release_19_11.rst | 5 + >>>> drivers/net/Makefile | 1 + >>>> drivers/net/hns3/Makefile | 45 + >>>> drivers/net/hns3/hns3_cmd.c | 565 +++ >>>> drivers/net/hns3/hns3_cmd.h | 761 ++++ >>>> drivers/net/hns3/hns3_dcb.c | 1642 +++++++++ >>>> drivers/net/hns3/hns3_dcb.h | 166 + >>>> drivers/net/hns3/hns3_ethdev.c | 4939 ++++++++++++++++++++++++++ >>>> drivers/net/hns3/hns3_ethdev.h | 645 ++++ >>>> drivers/net/hns3/hns3_ethdev_vf.c | 1735 +++++++++ >>>> drivers/net/hns3/hns3_fdir.c | 1059 ++++++ >>>> drivers/net/hns3/hns3_fdir.h | 205 ++ >>>> drivers/net/hns3/hns3_flow.c | 1903 ++++++++++ >>>> drivers/net/hns3/hns3_intr.c | 1166 ++++++ >>>> drivers/net/hns3/hns3_intr.h | 79 + >>>> drivers/net/hns3/hns3_logs.h | 34 + >>>> drivers/net/hns3/hns3_mbx.c | 353 ++ >>>> drivers/net/hns3/hns3_mbx.h | 136 + >>>> drivers/net/hns3/hns3_mp.c | 214 ++ >>>> drivers/net/hns3/hns3_mp.h | 14 + >>>> drivers/net/hns3/hns3_regs.c | 368 ++ >>>> drivers/net/hns3/hns3_regs.h | 99 + >>>> drivers/net/hns3/hns3_rss.c | 584 +++ >>>> drivers/net/hns3/hns3_rss.h | 124 + >>>> drivers/net/hns3/hns3_rxtx.c | 1676 +++++++++ >>>> drivers/net/hns3/hns3_rxtx.h | 317 ++ >>>> drivers/net/hns3/hns3_stats.c | 971 +++++ >>>> drivers/net/hns3/hns3_stats.h | 152 + >>>> drivers/net/hns3/meson.build | 37 + >>>> drivers/net/hns3/rte_pmd_hns3_version.map | 3 + >>>> drivers/net/meson.build | 1 + >>>> mk/rte.app.mk | 1 + >>>> 45 files changed, 20164 insertions(+) >>>> create mode 100644 doc/guides/nics/features/hns3.ini >>>> create mode 100644 doc/guides/nics/features/hns3_vf.ini >>>> create mode 100644 doc/guides/nics/hns3.rst >>>> create mode 100644 drivers/net/hns3/Makefile >>>> create mode 100644 drivers/net/hns3/hns3_cmd.c >>>> create mode 100644 drivers/net/hns3/hns3_cmd.h >>>> create mode 100644 drivers/net/hns3/hns3_dcb.c >>>> create mode 100644 drivers/net/hns3/hns3_dcb.h >>>> create mode 100644 drivers/net/hns3/hns3_ethdev.c >>>> create mode 100644 drivers/net/hns3/hns3_ethdev.h >>>> create mode 100644 drivers/net/hns3/hns3_ethdev_vf.c >>>> create mode 100644 drivers/net/hns3/hns3_fdir.c >>>> create mode 100644 drivers/net/hns3/hns3_fdir.h >>>> create mode 100644 drivers/net/hns3/hns3_flow.c >>>> create mode 100644 drivers/net/hns3/hns3_intr.c >>>> create mode 100644 drivers/net/hns3/hns3_intr.h >>>> create mode 100644 drivers/net/hns3/hns3_logs.h >>>> create mode 100644 drivers/net/hns3/hns3_mbx.c >>>> create mode 100644 drivers/net/hns3/hns3_mbx.h >>>> create mode 100644 drivers/net/hns3/hns3_mp.c >>>> create mode 100644 drivers/net/hns3/hns3_mp.h >>>> create mode 100644 drivers/net/hns3/hns3_regs.c >>>> create mode 100644 drivers/net/hns3/hns3_regs.h >>>> create mode 100644 drivers/net/hns3/hns3_rss.c >>>> create mode 100644 drivers/net/hns3/hns3_rss.h >>>> create mode 100644 drivers/net/hns3/hns3_rxtx.c >>>> create mode 100644 drivers/net/hns3/hns3_rxtx.h >>>> create mode 100644 drivers/net/hns3/hns3_stats.c >>>> create mode 100644 drivers/net/hns3/hns3_stats.h >>>> create mode 100644 drivers/net/hns3/meson.build >>>> create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map >>>> >> . >> > >
On 2019/9/26 15:55, Ferruh Yigit wrote: > On 9/25/2019 3:30 AM, Wei Hu (Xavier) wrote: >> >> On 2019/9/25 4:34, Aaron Conole wrote: >>> "Wei Hu (Xavier)" <xavier.huwei@huawei.com> writes: >>> >>>> Hi, Ferruh Yigit >>>> >>>> I sent out patch V2 yesterday. And I found that the following page >>>> indicates that there is a compilation error. >>>> >>>> http://mails.dpdk.org/archives/test-report/2019-September/098385.html >>>> >>>> The relevant sections in the log: >>>> >>>> <...> >>>> >>>> *Meson Build Failed #1: OS: FC30-64 Target:build-gcc-static FAILED: >>>> drivers/a715181@@tmp_rte_pmd_hns3 at sta >>>> <https://mails.dpdk.org/listinfo/test-report>/net_hns3_hns3_ethdev_vf.c.o >>>> >>>> <...> >>>> >>>> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: error: initialization of >>>> ‘void (*)(struct rte_eth_dev *, struct rte_eth_dev_info *)’ from >>>> incompatible pointer type ‘int (*)(struct rte_eth_dev *, struct >>>> rte_eth_dev_info *)’ [-Werror=incompatible-pointer-types] 1552 | >>>> .dev_infos_get = hns3vf_dev_infos_get, | ^~~~~~~~~~~~~~~~~~~~ >>>> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: note: (near initialization >>>> for ‘hns3vf_eth_dev_ops.dev_infos_get’) cc1: all warnings being treated >>>> as errors >>>> >>>> <...> >>>> >>>> But I found that perhaps the reason for this compilation error is that >>>> the following patch was not built on CI, >>>> >>>> and it had been in the latest branch of the repository: >>>> http://dpdk.org/git/next/dpdk-next-net >>> The patch you reference is still not present. I guess perhaps it might >>> have been clobbered in a rebase? >> Hi, Aaron Conole >> >> The patch is still in the repository now, but the commit id has been >> changed. The detail information as below: >> >> repo: http://dpdk.org/git/next/dpdk-next-net >> branch: master >> >> commit b90f5e9b44c088d0bfa77d0458f5b28045935835 >> Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> >> Date: Thu Sep 12 17:42:28 2019 +0100 >> >> ethdev: change device info get callback to return int >> >> Change eth_dev_infos_get_t return value from void to int. >> Make eth_dev_infos_get_t implementations across all drivers to return >> negative errno values if case of error conditions. >> >> Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> >> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> >> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> >> >> <...> > Hi Xavier, > > The recent ethdev patches affects the drivers, please double check if you driver > is based on latest next-net? If it is, you can ignore the related build warnings > for now, it will settle down. Hi, Aaron Conole I found there was one conflict when performing git operation based on the latest next-net because of the recent change in the repository. I will send PATCH v3 to fix the conflict, Thanks. Regards Xavier >> diff --git a/lib/librte_ethdev/rte_ethdev_core.h >> b/lib/librte_ethdev/rte_ethdev_core.h >> index 2922d5b..2394b32 100644 >> --- a/lib/librte_ethdev/rte_ethdev_core.h >> +++ b/lib/librte_ethdev/rte_ethdev_core.h >> @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct >> rte_eth_dev *dev, >> uint8_t is_rx); >> /**< @internal Set a queue statistics mapping for a tx/rx queue of an >> Ethernet device. */ >> >> -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >> - struct rte_eth_dev_info *dev_info); >> +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >> + struct rte_eth_dev_info *dev_info); >> >> Thanks for your comment. >> >> Regards >> Xavier >> >>>> The information of the relevant patch as below: >>>> >>>> commit 84c4620318b642aea9b5388aa7fbc79a4fe6f29e >>>> Author: Ivan Ilchenko <ivan.ilchenko@oktetlabs.com> >>>> Date: Thu Sep 12 17:42:28 2019 +0100 >>>> >>>> ethdev: change device info get callback to return int >>>> >>>> diff --git a/lib/librte_ethdev/rte_ethdev_core.h >>>> b/lib/librte_ethdev/rte_ethdev_core.h >>>> index 2922d5b..2394b32 100644 >>>> --- a/lib/librte_ethdev/rte_ethdev_core.h >>>> +++ b/lib/librte_ethdev/rte_ethdev_core.h >>>> @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct >>>> rte_eth_dev *dev, >>>> uint8_t is_rx); >>>> /**< @internal Set a queue statistics mapping for a tx/rx queue of an >>>> Ethernet device. */ >>>> >>>> -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >>>> - struct rte_eth_dev_info *dev_info); >>>> +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, >>>> + struct rte_eth_dev_info *dev_info); >>>> /**< @internal Get specific information of an Ethernet device. */ >>>> >>>> >>>> Regards >>>> Xavier >>>> >>>> On 2019/9/20 21:25, Wei Hu (Xavier) wrote: >>>>> The Hisilicon Network Subsystem is a long term evolution IP which is >>>>> supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920. >>>>> >>>>> This series add DPDK rte_ethdev poll mode driver for Hisilicon >>>>> Network Subsystem 3(hns3) network engine. >>>>> >>>>> Wei Hu (Xavier) (22): >>>>> net/hns3: add hns3 build and doc infrastructure >>>>> net/hns3: add hardware registers definition >>>>> net/hns3: add some definitions for data structure and macro >>>>> net/hns3: register hns3 PMD driver and add the log interface >>>>> definition >>>>> net/hns3: add support for cmd of hns3 PMD driver >>>>> net/hns3: add the initialization of hns3 PMD driver >>>>> net/hns3: add support for MAC address related operations >>>>> net/hns3: add support for some misc operations >>>>> net/hns3: add support for link_update operation >>>>> net/hns3: add support for flow directory of hns3 PMD driver >>>>> net/hns3: add support for RSS of hns3 PMD driver >>>>> net/hns3: add support for flow control of hns3 PMD driver >>>>> net/hns3: add support for vlan of hns3 PMD driver >>>>> net/hns3: add support for mailbox of hns3 PMD driver >>>>> net/hns3: add support for hns3 VF PMD driver >>>>> net/hns3: add RX/TX package burst and queue related operation >>>>> net/hns3: add start stop configure promiscuous ops >>>>> net/hns3: add dump register ops for hns3 PMD driver >>>>> net/hns3: add abnormal interrupt process for hns3 PMD driver >>>>> net/hns3: add stats related ops for hns3 PMD driver >>>>> net/hns3: add reset related process for hns3 PMD driver >>>>> net/hns3: add multiple process support for hns3 PMD driver >>>>> >>>>> MAINTAINERS | 8 + >>>>> config/common_base | 5 + >>>>> config/common_linux | 5 + >>>>> config/defconfig_arm-armv7a-linuxapp-gcc | 1 + >>>>> config/defconfig_i686-native-linuxapp-gcc | 5 + >>>>> config/defconfig_i686-native-linuxapp-icc | 5 + >>>>> config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + >>>>> config/defconfig_x86_64-native-linuxapp-icc | 5 + >>>>> config/defconfig_x86_x32-native-linuxapp-gcc | 5 + >>>>> doc/guides/nics/features/hns3.ini | 34 + >>>>> doc/guides/nics/features/hns3_vf.ini | 29 + >>>>> doc/guides/nics/hns3.rst | 60 + >>>>> doc/guides/nics/index.rst | 1 + >>>>> doc/guides/rel_notes/release_19_11.rst | 5 + >>>>> drivers/net/Makefile | 1 + >>>>> drivers/net/hns3/Makefile | 45 + >>>>> drivers/net/hns3/hns3_cmd.c | 565 +++ >>>>> drivers/net/hns3/hns3_cmd.h | 761 ++++ >>>>> drivers/net/hns3/hns3_dcb.c | 1642 +++++++++ >>>>> drivers/net/hns3/hns3_dcb.h | 166 + >>>>> drivers/net/hns3/hns3_ethdev.c | 4939 ++++++++++++++++++++++++++ >>>>> drivers/net/hns3/hns3_ethdev.h | 645 ++++ >>>>> drivers/net/hns3/hns3_ethdev_vf.c | 1735 +++++++++ >>>>> drivers/net/hns3/hns3_fdir.c | 1059 ++++++ >>>>> drivers/net/hns3/hns3_fdir.h | 205 ++ >>>>> drivers/net/hns3/hns3_flow.c | 1903 ++++++++++ >>>>> drivers/net/hns3/hns3_intr.c | 1166 ++++++ >>>>> drivers/net/hns3/hns3_intr.h | 79 + >>>>> drivers/net/hns3/hns3_logs.h | 34 + >>>>> drivers/net/hns3/hns3_mbx.c | 353 ++ >>>>> drivers/net/hns3/hns3_mbx.h | 136 + >>>>> drivers/net/hns3/hns3_mp.c | 214 ++ >>>>> drivers/net/hns3/hns3_mp.h | 14 + >>>>> drivers/net/hns3/hns3_regs.c | 368 ++ >>>>> drivers/net/hns3/hns3_regs.h | 99 + >>>>> drivers/net/hns3/hns3_rss.c | 584 +++ >>>>> drivers/net/hns3/hns3_rss.h | 124 + >>>>> drivers/net/hns3/hns3_rxtx.c | 1676 +++++++++ >>>>> drivers/net/hns3/hns3_rxtx.h | 317 ++ >>>>> drivers/net/hns3/hns3_stats.c | 971 +++++ >>>>> drivers/net/hns3/hns3_stats.h | 152 + >>>>> drivers/net/hns3/meson.build | 37 + >>>>> drivers/net/hns3/rte_pmd_hns3_version.map | 3 + >>>>> drivers/net/meson.build | 1 + >>>>> mk/rte.app.mk | 1 + >>>>> 45 files changed, 20164 insertions(+) >>>>> create mode 100644 doc/guides/nics/features/hns3.ini >>>>> create mode 100644 doc/guides/nics/features/hns3_vf.ini >>>>> create mode 100644 doc/guides/nics/hns3.rst >>>>> create mode 100644 drivers/net/hns3/Makefile >>>>> create mode 100644 drivers/net/hns3/hns3_cmd.c >>>>> create mode 100644 drivers/net/hns3/hns3_cmd.h >>>>> create mode 100644 drivers/net/hns3/hns3_dcb.c >>>>> create mode 100644 drivers/net/hns3/hns3_dcb.h >>>>> create mode 100644 drivers/net/hns3/hns3_ethdev.c >>>>> create mode 100644 drivers/net/hns3/hns3_ethdev.h >>>>> create mode 100644 drivers/net/hns3/hns3_ethdev_vf.c >>>>> create mode 100644 drivers/net/hns3/hns3_fdir.c >>>>> create mode 100644 drivers/net/hns3/hns3_fdir.h >>>>> create mode 100644 drivers/net/hns3/hns3_flow.c >>>>> create mode 100644 drivers/net/hns3/hns3_intr.c >>>>> create mode 100644 drivers/net/hns3/hns3_intr.h >>>>> create mode 100644 drivers/net/hns3/hns3_logs.h >>>>> create mode 100644 drivers/net/hns3/hns3_mbx.c >>>>> create mode 100644 drivers/net/hns3/hns3_mbx.h >>>>> create mode 100644 drivers/net/hns3/hns3_mp.c >>>>> create mode 100644 drivers/net/hns3/hns3_mp.h >>>>> create mode 100644 drivers/net/hns3/hns3_regs.c >>>>> create mode 100644 drivers/net/hns3/hns3_regs.h >>>>> create mode 100644 drivers/net/hns3/hns3_rss.c >>>>> create mode 100644 drivers/net/hns3/hns3_rss.h >>>>> create mode 100644 drivers/net/hns3/hns3_rxtx.c >>>>> create mode 100644 drivers/net/hns3/hns3_rxtx.h >>>>> create mode 100644 drivers/net/hns3/hns3_stats.c >>>>> create mode 100644 drivers/net/hns3/hns3_stats.h >>>>> create mode 100644 drivers/net/hns3/meson.build >>>>> create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map >>>>> >>> . >>> >> > > . >