doc: update NFP with PF support information
NFP PMD has now support for both, PF and VFs. This patch updates the guide and give some information about implications. Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com> Reviewed-by: John McNamara <john.mcnamara@intel.com>
This commit is contained in:
parent
ad60bca348
commit
d625beafc8
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user