Hello Zhoumin, It looks like Loongarch CI failed to apply this patch, but it worked at the other labs and locally for Serhii when they were checked out to next-net.
Maybe your CI did not choose next-net, the right branch? I remember you saying your CI is based on a fork of the dpdk-ci repo. Perhaps the pw_maintainers_cli.py script for choosing the right branch to apply on, is outdated in your fork. https://git.dpdk.org/tools/dpdk-ci/tree/tools/pw_maintainers_cli.py Can you take a look? Thanks. On Fri, Jul 12, 2024 at 5:49 AM Serhii Iliushyk <sil-...@napatech.com> wrote: > > Add initial ntnic ethdev skeleton and register PCI probe functions > Update documentation: Device description and feature list > > Signed-off-by: Serhii Iliushyk <sil-...@napatech.com> > --- > .mailmap | 1 + > MAINTAINERS | 7 ++++ > doc/guides/nics/features/ntnic.ini | 8 +++++ > doc/guides/nics/index.rst | 1 + > doc/guides/nics/ntnic.rst | 39 ++++++++++++++++++++ > doc/guides/rel_notes/release_24_07.rst | 10 ++++++ > drivers/net/meson.build | 1 + > drivers/net/ntnic/meson.build | 18 ++++++++++ > drivers/net/ntnic/ntnic_ethdev.c | 49 ++++++++++++++++++++++++++ > 9 files changed, 134 insertions(+) > create mode 100644 doc/guides/nics/features/ntnic.ini > create mode 100644 doc/guides/nics/ntnic.rst > create mode 100644 drivers/net/ntnic/meson.build > create mode 100644 drivers/net/ntnic/ntnic_ethdev.c > > diff --git a/.mailmap b/.mailmap > index 552d79eaa6..aad8c552f6 100644 > --- a/.mailmap > +++ b/.mailmap > @@ -1307,6 +1307,7 @@ Sergey Madaminov <sergey.madami...@gmail.com> > Sergey Mironov <grr...@gmail.com> > Sergey Temerkhanov <sergey.temerkha...@intel.com> > Sergio Gonzalez Monroy <sergio.gonzalez.mon...@intel.com> > +Serhii Iliushyk <sil-...@napatech.com> > Seth Arnold <seth.arn...@canonical.com> > Seth Howell <seth.how...@intel.com> > Shachar Beiser <shacha...@mellanox.com> > diff --git a/MAINTAINERS b/MAINTAINERS > index 533f707d5f..0359368981 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -855,6 +855,13 @@ F: drivers/net/octeon_ep/ > F: doc/guides/nics/features/octeon_ep.ini > F: doc/guides/nics/octeon_ep.rst > > +Napatech ntnic > +M: Christian Koue Muf <c...@napatech.com> > +M: Serhii Iliushyk <sil-...@napatech.com> > +F: drivers/net/ntnic/ > +F: doc/guides/nics/ntnic.rst > +F: doc/guides/nics/features/ntnic.ini > + > NVIDIA mlx4 > M: Matan Azrad <ma...@nvidia.com> > M: Viacheslav Ovsiienko <viachesl...@nvidia.com> > diff --git a/doc/guides/nics/features/ntnic.ini > b/doc/guides/nics/features/ntnic.ini > new file mode 100644 > index 0000000000..9ceb75a03b > --- /dev/null > +++ b/doc/guides/nics/features/ntnic.ini > @@ -0,0 +1,8 @@ > +; > +; Supported features of the 'ntnic' network poll mode driver. > +; > +; Refer to default.ini for the full list of available PMD features. > +; > +[Features] > +Linux = Y > +x86-64 = Y > diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst > index 7bfcac880f..c14bc7988a 100644 > --- a/doc/guides/nics/index.rst > +++ b/doc/guides/nics/index.rst > @@ -53,6 +53,7 @@ Network Interface Controller Drivers > nfb > nfp > ngbe > + ntnic > null > octeon_ep > octeontx > diff --git a/doc/guides/nics/ntnic.rst b/doc/guides/nics/ntnic.rst > new file mode 100644 > index 0000000000..249d83d511 > --- /dev/null > +++ b/doc/guides/nics/ntnic.rst > @@ -0,0 +1,39 @@ > +.. SPDX-License-Identifier: BSD-3-Clause > + Copyright(c) 2023 Napatech A/S > + > +NTNIC Poll Mode Driver > +====================== > + > +The NTNIC PMD provides poll mode driver support for Napatech smartNICs. > + > + > +Design > +------ > + > +The NTNIC PMD is designed as a pure user-space driver, and requires no > special > +Napatech kernel modules. > + > +The Napatech smartNIC presents one control PCI device (PF0). NTNIC PMD > accesses > +smartNIC PF0 via vfio-pci kernel driver. Access to PF0 for all purposes is > +exclusive, so only one process should access it. The physical ports are > located > +behind PF0 as DPDK port 0 and 1. > + > + > +Supported NICs > +-------------- > + > +- NT200A02 2x100G SmartNIC > + > + - FPGA ID 9563 (Inline Flow Management) > + > +All information about NT200A02 can be found by link below: > +https://www.napatech.com/products/nt200a02-smartnic-inline/ > + > +Limitations > +~~~~~~~~~~~ > + > +Kernel versions before 5.7 are not supported. Kernel version 5.7 added > vfio-pci > +support for creating VFs from the PF which is required for the PMD to use > +vfio-pci on the PF. This support has been back-ported to older Linux > +distributions and they are also supported. If vfio-pci is not required kernel > +version 4.18 is supported. > diff --git a/doc/guides/rel_notes/release_24_07.rst > b/doc/guides/rel_notes/release_24_07.rst > index e50afed0d5..332a959618 100644 > --- a/doc/guides/rel_notes/release_24_07.rst > +++ b/doc/guides/rel_notes/release_24_07.rst > @@ -154,6 +154,16 @@ New Features > > Added an API that allows the user to reclaim the defer queue with RCU. > > +* **Added Napatech ntnic experimental PMD driver.** > + > + * Added the experimental PMD driver > + > + - Ability to initialize the NIC (NT200A02) > + - Supporting only one FPGA firmware (9563.55.39) > + - Ability to bring up the 100G link > + - Supporting QSFP/QSFP+/QSFP28 NIM > + - Does not support datapath > + - Does not support RTE flow API > > Removed Items > ------------- > diff --git a/drivers/net/meson.build b/drivers/net/meson.build > index bd38b533c5..fb6d34b782 100644 > --- a/drivers/net/meson.build > +++ b/drivers/net/meson.build > @@ -45,6 +45,7 @@ drivers = [ > 'nfb', > 'nfp', > 'ngbe', > + 'ntnic', > 'null', > 'octeontx', > 'octeon_ep', > diff --git a/drivers/net/ntnic/meson.build b/drivers/net/ntnic/meson.build > new file mode 100644 > index 0000000000..194353230b > --- /dev/null > +++ b/drivers/net/ntnic/meson.build > @@ -0,0 +1,18 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright(c) 2020-2023 Napatech A/S > + > +if not is_linux or not dpdk_conf.has('RTE_ARCH_X86_64') > + build = false > + reason = 'only supported on x86_64 Linux' > + subdir_done() > +endif > + > +# includes > +includes = [ > + include_directories('.'), > +] > + > +# all sources > +sources = files( > + 'ntnic_ethdev.c', > +) > diff --git a/drivers/net/ntnic/ntnic_ethdev.c > b/drivers/net/ntnic/ntnic_ethdev.c > new file mode 100644 > index 0000000000..7e5231d2c1 > --- /dev/null > +++ b/drivers/net/ntnic/ntnic_ethdev.c > @@ -0,0 +1,49 @@ > +/* > + * SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2023 Napatech A/S > + */ > + > +#include <rte_ethdev.h> > +#include <rte_bus_pci.h> > +#include <ethdev_pci.h> > + > +static const struct rte_pci_id nthw_pci_id_map[] = { > + { > + .vendor_id = 0, > + }, /* sentinel */ > +}; > + > +static int > +nthw_pci_dev_init(struct rte_pci_device *pci_dev __rte_unused) > +{ > + return 0; > +} > + > +static int > +nthw_pci_dev_deinit(struct rte_eth_dev *eth_dev __rte_unused) > +{ > + return 0; > +} > + > +static int > +nthw_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, > + struct rte_pci_device *pci_dev) > +{ > + int ret; > + ret = nthw_pci_dev_init(pci_dev); > + return ret; > +} > + > +static int > +nthw_pci_remove(struct rte_pci_device *pci_dev) > +{ > + return rte_eth_dev_pci_generic_remove(pci_dev, nthw_pci_dev_deinit); > +} > + > +static struct rte_pci_driver rte_nthw_pmd = { > + .id_table = nthw_pci_id_map, > + .probe = nthw_pci_probe, > + .remove = nthw_pci_remove, > +}; > + > +RTE_PMD_REGISTER_PCI(net_ntnic, rte_nthw_pmd); > -- > 2.45.0 >