DPDK patches and discussions
 help / color / mirror / Atom feed
From: Finn Christensen <fc@napatech.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"thomas.monjalon@6wind.com" <thomas.monjalon@6wind.com>,
	"stephen@networkplumber.org" <stephen@networkplumber.org>
Subject: Re: [dpdk-dev] [PATCH v2] ntnic: add PMD driver
Date: Thu, 8 Sep 2016 14:22:02 +0000	[thread overview]
Message-ID: <1b802da905834fd6b4d1424a2e5e2b57@napatech.com> (raw)
In-Reply-To: <20160908134942.GB16608@hmsreliant.think-freely.org>



> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com]
> Sent: 8. september 2016 15:50
> To: Finn Christensen <fc@napatech.com>
> Cc: dev@dpdk.org; thomas.monjalon@6wind.com;
> stephen@networkplumber.org
> Subject: Re: [dpdk-dev] [PATCH v2] ntnic: add PMD driver
>
> 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@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@qlogic.com>
> >  F: drivers/net/qede/
> >  F: doc/guides/nics/qede.rst
> >
> > +Napatech ntnic
> > +M: Finn Christensen <fc@napatech.com>
> > +F: drivers/net/ntnic/
> > +F: doc/guides/nics/ntnic.rst
> > +
> >  RedHat virtio
> >  M: Huawei Xie <huawei.xie@intel.com>
> >  M: Yuanhan Liu <yuanhan.liu@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

No, our NIC is not supported on anything else than x86_64 platform. It would
not seem to make sense to compile it against anything else than what we
support. We assumed that the supported platforms was to be decribed in the
doc/guides/nics/features/<nic>.ini  file, and that is what we have done.
Many of the other supported nics in the DPDK does also only support either
x86 platform, or only a few others.

Even though we do not support other platforms, do we need to be able to
compile The ntnic PMD on other than x86_64 platforms?

Would a dynamic linking in the PMD module be preferred or a possible
solution?

Thanks!
Disclaimer: This email and any files transmitted with it may contain confidential information intended for the addressee(s) only. The information is not to be surrendered or copied to unauthorized persons. If you have received this communication in error, please notify the sender immediately and delete this e-mail from your system.

  reply	other threads:[~2016-09-08 14:22 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-26 13:44 [dpdk-dev] [PATCH] " Finn Christensen
2016-08-26 14:44 ` Thomas Monjalon
2016-08-26 16:32   ` Finn Christensen
2016-08-27  9:07     ` Thomas Monjalon
2016-08-26 16:54 ` Stephen Hemminger
2016-08-29  6:22   ` Finn Christensen
2016-08-29 10:04     ` Thomas Monjalon
2016-08-29 12:00       ` Finn Christensen
2016-09-08 11:14 ` [dpdk-dev] [PATCH v2] " Finn Christensen
2016-09-08 13:49   ` Neil Horman
2016-09-08 14:22     ` Finn Christensen [this message]
2016-09-09 12:48   ` [dpdk-dev] [PATCH v3] " Finn Christensen
2016-09-09 13:51     ` Neil Horman
2016-09-10  7:58       ` Finn Christensen
2016-09-10  8:20         ` Thomas Monjalon
2016-09-10 18:31           ` Stephen Hemminger
2016-09-12  8:08             ` Finn Christensen
2016-09-12 12:33             ` Neil Horman
2016-09-12  7:34           ` Finn Christensen
2016-11-21 13:47             ` Ferruh Yigit
2016-11-21 13:55               ` Finn Christensen
2016-09-12 12:32         ` Neil Horman

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=1b802da905834fd6b4d1424a2e5e2b57@napatech.com \
    --to=fc@napatech.com \
    --cc=dev@dpdk.org \
    --cc=nhorman@tuxdriver.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas.monjalon@6wind.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).