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.luc...@netronome.com> wrote: > From: root <r...@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 <r...@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 > **supp...@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 > >