DPDK patches and discussions
 help / color / mirror / Atom feed
From: Alejandro Lucero <alejandro.lucero@netronome.com>
To: dev <dev@dpdk.org>
Cc: Ferruh Yigit <ferruh.yigit@intel.com>,
	"Mcnamara, John" <john.mcnamara@intel.com>,
	root <root@netronome.com>
Subject: Re: [dpdk-dev] [PATCH v3] doc: update NFP with PF support information
Date: Wed, 6 Sep 2017 15:55:27 +0100	[thread overview]
Message-ID: <CAD+H990Mz4jp=VDw0J8uKAvf+8kvOdeOgF_8Bk=1a+2bMxsKog@mail.gmail.com> (raw)
In-Reply-To: <1504709259-46803-1-git-send-email-alejandro.lucero@netronome.com>

It seems I did not commit with the right signature.

I will send it again. Sorry about this.

On Wed, Sep 6, 2017 at 3:47 PM, Alejandro Lucero <
alejandro.lucero@netronome.com> wrote:

> From: root <root@netronome.com>
>
> NFP PMD has now support for both, PF and VFs. This patch updates
> the guide and give some information about implications.
>
> Signed-off-by: root <root@netronome.com>
> ---
>  doc/guides/nics/nfp.rst | 78 ++++++++++++++++++++++++++++++
> +++++++------------
>  1 file changed, 59 insertions(+), 19 deletions(-)
>
> diff --git a/doc/guides/nics/nfp.rst b/doc/guides/nics/nfp.rst
> index c732fb1..99a3b76 100644
> --- a/doc/guides/nics/nfp.rst
> +++ b/doc/guides/nics/nfp.rst
> @@ -1,5 +1,5 @@
>  ..  BSD LICENSE
> -    Copyright(c) 2015 Netronome Systems, Inc. All rights reserved.
> +    Copyright(c) 2015-2017 Netronome Systems, Inc. All rights reserved.
>      All rights reserved.
>
>      Redistribution and use in source and binary forms, with or without
> @@ -38,31 +38,32 @@ up to 400 Gbps.
>
>  This document explains how to use DPDK with the Netronome Poll Mode
>  Driver (PMD) supporting Netronome's Network Flow Processor 6xxx
> -(NFP-6xxx).
> +(NFP-6xxx) and Netronome's Flow Processor 4xxx (NFP-4xxx).
>
> -Currently the driver supports virtual functions (VFs) only.
> +NFP is a SRIOV capable device and the PMD driver supports the physical
> +function (PF) and virtual functions (VFs).
>
>  Dependencies
>  ------------
>
> -Before using the Netronome's DPDK PMD some NFP-6xxx configuration,
> +Before using the Netronome's DPDK PMD some NFP configuration,
>  which is not related to DPDK, is required. The system requires
> -installation of **Netronome's BSP (Board Support Package)** which includes
> -Linux drivers, programs and libraries.
> +installation of **Netronome's BSP (Board Support Package)** along
> +with some specific NFP firmware application. Netronome's NSP ABI
> +version should be 0.20 or higher.
>
> -If you have a NFP-6xxx device you should already have the code and
> -documentation for doing this configuration. Contact
> +If you have a NFP device you should already have the code and
> +documentation for doing all this configuration. Contact
>  **support@netronome.com** to obtain the latest available firmware.
>
> -The NFP Linux kernel drivers (including the required PF driver for the
> -NFP) are available on Github at
> +The NFP Linux netdev kernel driver for VFs is part of vanilla kernel
> +since kernel version 4.5, and support for the PF since kernel version
> +4.11. Support for older kernels can be obtained on Github at
>  **https://github.com/Netronome/nfp-drv-kmods** along with build
>  instructions.
>
> -DPDK runs in userspace and PMDs uses the Linux kernel UIO interface to
> -allow access to physical devices from userspace. The NFP PMD requires
> -the **igb_uio** UIO driver, available with DPDK, to perform correct
> -initialization.
> +NFP PMD needs to be used along with UIO ``igb_uio`` or VFIO (``vfio-pci``)
> +Linux kernel driver.
>
>  Building the software
>  ---------------------
> @@ -71,7 +72,7 @@ Netronome's PMD code is provided in the
> **drivers/net/nfp** directory.
>  Although NFP PMD has Netronome´s BSP dependencies, it is possible to
>  compile it along with other DPDK PMDs even if no BSP was installed before.
>  Of course, a DPDK app will require such a BSP installed for using the
> -NFP PMD.
> +NFP PMD, along with a specific NFP firmware application.
>
>  Default PMD configuration is at **common_linuxapp configuration** file:
>
> @@ -87,14 +88,53 @@ Driver compilation and testing
>  Refer to the document :ref:`compiling and testing a PMD for a NIC
> <pmd_build_and_test>`
>  for details.
>
> +Using the PF
> +------------
> +
> +NFP PMD has support for using the NFP PF as another DPDK port, but it
> does not
> +have any functionality for controlling VFs. In fact, it is not possible
> to use
> +the PMD with the VFs if the PF is being used by DPDK, that is, with the
> NFP PF
> +bound to ``igb_uio`` or ``vfio-pci`` kernel drivers. Future DPDK version
> will
> +have a PMD able to work with the PF and VFs at the same time and with the
> PF
> +implementing VF management along with other PF-only
> functionalities/offloads.
> +
> +The PMD PF has extra work to do which will delay the DPDK app
> initialization
> +like checking if a firmware is already available in the device, uploading
> the
> +firmware if necessary, and configure the Link state properly when
> starting or
> +stopping a PF port. Note that firmware upload is not always necessary
> which is
> +the main delay for NFP PF PMD initialization.
> +
> +Depending on the Netronome product installed in the system, firmware files
> +should be available under ``/lib/firmware/netronome``. DPDK PMD
> supporting the
> +PF requires a specific link, ``/lib/firmware/netronome/nic_
> dpdk_default.nffw``,
> +which should be created automatically with Netronome's Agilio products
> +installation.
> +
> +PF multiport support
> +--------------------
> +
> +Some NFP cards support several physical ports with just one single PCI
> device.
> +DPDK core is designed with the 1:1 relationship between PCI devices and
> DPDK
> +ports, so NFP PMD PF support requires handling the multiport case
> specifically.
> +During NFP PF initialization, the PMD will extract the information about
> the
> +number of PF ports from the firmware and will create as many DPDK ports as
> +needed.
> +
> +Because the unusual relationship between a single PCI device and several
> DPDK
> +ports, there are some limitations when using more than one PF DPDK ports:
> there
> +is no support for RX interrupts and it is not possible either to use
> those PF
> +ports with the device hotplug functionality.
> +
>
>  System configuration
>  --------------------
>
> -#. **Enable SR-IOV on the NFP-6xxx device:** The current NFP PMD works
> with
> -   Virtual Functions (VFs) on a NFP device. Make sure that one of the
> Physical
> -   Function (PF) drivers from the above Github repository is installed and
> -   loaded.
> +#. **Enable SR-IOV on the NFP device:** The current NFP PMD supports the
> PF and
> +   the VFs on a NFP device. However, it is not possible to work with both
> at the
> +   same time because the VFs require the PF being bound to the NFP PF
> Linux
> +   netdev driver.  Make sure you are working with a kernel with NFP PF
> support or
> +   get the drivers from the above Github repository and follow the
> instructions
> +   for building and installing it.
>
>     Virtual Functions need to be enabled before they can be used with the
> PMD.
>     Before enabling the VFs it is useful to obtain information about the
> --
> 1.9.1
>
>

  reply	other threads:[~2017-09-06 14:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-06 14:47 Alejandro Lucero
2017-09-06 14:55 ` Alejandro Lucero [this message]
2017-09-06 15:14 Alejandro Lucero
2017-09-06 16:17 ` Ferruh Yigit

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='CAD+H990Mz4jp=VDw0J8uKAvf+8kvOdeOgF_8Bk=1a+2bMxsKog@mail.gmail.com' \
    --to=alejandro.lucero@netronome.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=root@netronome.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).