[dpdk-dev] [PATCH v3] doc: update NFP with PF support information

Alejandro Lucero alejandro.lucero at netronome.com
Wed Sep 6 16:55:27 CEST 2017

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 at netronome.com> wrote:

> From: root <root at 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 at 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 @@
> -    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 at 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, 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
> +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
> +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
> +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

More information about the dev mailing list