[dpdk-dev] [PATCH v2] ntnic: add PMD driver

Neil Horman nhorman at tuxdriver.com
Thu Sep 8 15:49:42 CEST 2016


On Thu, Sep 08, 2016 at 11:14:24AM +0000, Finn Christensen wrote:
> This is the Napatech NTNIC Poll Mode Driver (PMD) for DPDK.
> 
> This patch adds support for Napatech NICs to DPDK. This is the
> initial implementation.
> 
> Signed-off-by: Finn Christensen <fc at napatech.com>
> ---
> v2:
>   * Added information how to build the PMD without NIC
>     Board Support Package
>   * Fixed some formatting issues
> ---
>  MAINTAINERS                                 |   5 +
>  config/common_base                          |   6 +
>  doc/guides/nics/features/ntnic.ini          |  15 +
>  doc/guides/nics/index.rst                   |   1 +
>  doc/guides/nics/ntnic.rst                   | 145 +++++
>  drivers/net/Makefile                        |   1 +
>  drivers/net/ntnic/Makefile                  |  65 ++
>  drivers/net/ntnic/rte_eth_ntnic.c           | 975 ++++++++++++++++++++++++++++
>  drivers/net/ntnic/rte_pmd_ntnic_version.map |   4 +
>  mk/rte.app.mk                               |   7 +
>  10 files changed, 1224 insertions(+)
>  create mode 100644 doc/guides/nics/features/ntnic.ini
>  create mode 100644 doc/guides/nics/ntnic.rst
>  create mode 100644 drivers/net/ntnic/Makefile
>  create mode 100644 drivers/net/ntnic/rte_eth_ntnic.c
>  create mode 100644 drivers/net/ntnic/rte_pmd_ntnic_version.map
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index bc9aa02..d3e5f56 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -356,6 +356,11 @@ M: Sony Chacko <sony.chacko at qlogic.com>
>  F: drivers/net/qede/
>  F: doc/guides/nics/qede.rst
> 
> +Napatech ntnic
> +M: Finn Christensen <fc at napatech.com>
> +F: drivers/net/ntnic/
> +F: doc/guides/nics/ntnic.rst
> +
>  RedHat virtio
>  M: Huawei Xie <huawei.xie at intel.com>
>  M: Yuanhan Liu <yuanhan.liu at linux.intel.com>
> diff --git a/config/common_base b/config/common_base
> index 7830535..4a3b2b8 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -309,6 +309,12 @@ CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
>  CONFIG_RTE_LIBRTE_PMD_PCAP=n
> 
>  #
> +# Compile software PMD backed by NTNIC files
> +#
> +CONFIG_RTE_LIBRTE_PMD_NTNIC=n
> +
> +
> +#
>  # Compile link bonding PMD library
>  #
>  CONFIG_RTE_LIBRTE_PMD_BOND=y
> diff --git a/doc/guides/nics/features/ntnic.ini b/doc/guides/nics/features/ntnic.ini
> new file mode 100644
> index 0000000..b6cfc5a
> --- /dev/null
> +++ b/doc/guides/nics/features/ntnic.ini
> @@ -0,0 +1,15 @@
> +;
> +; Supported features of the 'ntnic' network poll mode driver.
> +;
> +; Refer to default.ini for the full list of available PMD features.
> +;
> +[Features]
> +Link status          = Y
> +Queue start/stop     = Y
> +Promiscuous mode     = Y
> +Jumbo frame          = Y
> +Basic stats          = Y
> +Multiprocess aware   = Y
> +x86-32               = Y
> +x86-64               = Y
> +Usage doc            = Y
> diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst
> index 92d56a5..5c4205c 100644
> --- a/doc/guides/nics/index.rst
> +++ b/doc/guides/nics/index.rst
> @@ -52,6 +52,7 @@ Network Interface Controller Drivers
>      qede
>      szedata2
>      thunderx
> +    ntnic
>      virtio
>      vhost
>      vmxnet3
> diff --git a/doc/guides/nics/ntnic.rst b/doc/guides/nics/ntnic.rst
> new file mode 100644
> index 0000000..8512d02
> --- /dev/null
> +++ b/doc/guides/nics/ntnic.rst
> @@ -0,0 +1,145 @@
> +..  BSD LICENSE
> +    Copyright (c) 2016 Napatech A/S
> +    All rights reserved.
> +
> +    Redistribution and use in source and binary forms, with or without
> +    modification, are permitted provided that the following conditions
> +    are met:
> +
> +    * Redistributions of source code must retain the above copyright
> +    notice, this list of conditions and the following disclaimer.
> +    * Redistributions in binary form must reproduce the above copyright
> +    notice, this list of conditions and the following disclaimer in
> +    the documentation and/or other materials provided with the
> +    distribution.
> +    * Neither the name of Napatech nor the names of its
> +    contributors may be used to endorse or promote products derived
> +    from this software without specific prior written permission.
> +
> +    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> +    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> +    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> +    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> +    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +NTNIC Poll Mode Driver
> +======================
> +
> +The NTNIC poll mode driver library (**librte_pmd_ntnic**) implements support
> +for **Napatech NIC** 40/50 Gbps adapters.
> +This PMD is implemented as a pure software virtual device and must be created
> +by using the EAL --vdev=parameter (parameters are explained i detail later).
> +It runs on top of the Napatech NFV NIC Board Support Package that must be
> +installed and started.
> +If no Napatech NIC is available, you can download the Napatech NTAPI library to
> +build against.
> +
> +Supported Features
> +------------------
> +
> +- RSS (Receive Side Scaling)
> +- TSS (Transmit Side Scaling)
> +- Promiscuous mode
> +- Basic statistics
> +
> +
> +Prerequisites
> +-------------
> +
> +Requires Napatech NIC and Napatech NIC Board Support Package installed and
> +running in version **0.3.0** or higher.
> +This includes external libraries and kernel driver for resources
> +allocations and initialization.
> +If build only is required, download the Napatech NTAPI to build against.
> +
> +Pre-Installation Configuration
> +------------------------------
> +
> +Environment variables
> +~~~~~~~~~~~~~~~~~~~~~
> +
> +In order to compile the Napatech NIC PMD, user must:
> +
> +* Export the environment variable NAPATECH3_PATH with the path where
> +  the Napatech Board Support Package libs was installed (default location is
> +  /opt/napatech3).
> +  Or if no Napatech NIC available:
> +  Download the Napatech NTAPI libs from Github:
> +  `Napatech NTAPI <https://github.com/napa-tech/ntapi>`_.
> +
NAK

Most of the code you provide in this patch looks fine, but you require that it
be linked with the ntapi and ntos libraries.  You provide those above in your
external git tree...in binary only form. Thats not ok.  If you want this to be
in any way supportable, or usable on any platforms DPDK supports besides the
x86_64 build you've provided, then you need to make the libraries in that git
tree available in source form

Neil



More information about the dev mailing list