path: root/doc
diff options
authorRosen Xu <>2019-04-16 11:17:40 +0800
committerFerruh Yigit <>2019-04-19 14:51:54 +0200
commitc01c748e4ae6db0baeb73dd1d780320d431fe6d6 (patch)
tree260e743af34da76a8ad45c793d4bc32399969a87 /doc
parentdc384b50870680be1357261990087c56572180c3 (diff)
net/ipn3ke: add new driver
Add Intel FPGA Acceleration NIC IPN3KE ethdev PMD driver. Signed-off-by: Rosen Xu <> Signed-off-by: Andy Pei <> Signed-off-by: Dan Wei <>
Diffstat (limited to 'doc')
4 files changed, 172 insertions, 0 deletions
diff --git a/doc/guides/nics/features/ipn3ke.ini b/doc/guides/nics/features/ipn3ke.ini
new file mode 100644
index 0000000..a194e35
--- /dev/null
+++ b/doc/guides/nics/features/ipn3ke.ini
@@ -0,0 +1,55 @@
+; Supported features of the 'ipn3ke' network poll mode driver.
+; Refer to default.ini for the full list of available PMD features.
+Speed capabilities = Y
+Link status = Y
+Link status event = Y
+Rx interrupt = Y
+Queue start/stop = Y
+Runtime Rx queue setup = Y
+Runtime Tx queue setup = Y
+Jumbo frame = Y
+Scattered Rx = Y
+TSO = Y
+Promiscuous mode = Y
+Allmulticast mode = Y
+Unicast MAC filter = Y
+Multicast MAC filter = Y
+RSS hash = Y
+RSS key update = Y
+RSS reta update = Y
+VMDq = Y
+DCB = Y
+VLAN filter = Y
+Ethertype filter = Y
+Tunnel filter = Y
+Hash filter = Y
+Flow director = Y
+Flow control = Y
+Flow API = Y
+Traffic mirroring = Y
+CRC offload = Y
+VLAN offload = Y
+QinQ offload = Y
+L3 checksum offload = Y
+L4 checksum offload = Y
+Inner L3 checksum = Y
+Inner L4 checksum = Y
+Packet type parsing = Y
+Timesync = Y
+Rx descriptor status = Y
+Tx descriptor status = Y
+Basic stats = Y
+Extended stats = Y
+FW version = Y
+Module EEPROM dump = Y
+Multiprocess aware = Y
+BSD nic_uio = Y
+Linux UIO = Y
+Linux VFIO = Y
+x86-32 = Y
+x86-64 = Y
diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst
index 8a4e145..2221c35 100644
--- a/doc/guides/nics/index.rst
+++ b/doc/guides/nics/index.rst
@@ -31,6 +31,7 @@ Network Interface Controller Drivers
+ ipn3ke
diff --git a/doc/guides/nics/ipn3ke.rst b/doc/guides/nics/ipn3ke.rst
new file mode 100644
index 0000000..c6c1552
--- /dev/null
+++ b/doc/guides/nics/ipn3ke.rst
@@ -0,0 +1,107 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2019 Intel Corporation.
+IPN3KE Poll Mode Driver
+The ipn3ke PMD (librte_pmd_ipn3ke) provides poll mode driver support
+for Intel® FPGA PAC(Programmable Acceleration Card) N3000 based on
+the Intel Ethernet Controller X710/XXV710 and Intel Arria 10 FPGA.
+In this card, FPGA is an acceleration bridge between network interface
+and the Intel Ethernet Controller. Although both FPGA and Ethernet
+Controllers are connected to CPU with PCIe Gen3x16 Switch, all the
+packet RX/TX is handled by Intel Ethernet Controller. So from application
+point of view the data path is still the legacy Intel Ethernet Controller
+X710/XXV710 PMD. Besides this, users can enable more acceleration
+features by FPGA IP.
+- Identifying your adapter using `Intel Support
+ <>`_ and get the latest NVM/FW images.
+- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
+- To get better performance on Intel platforms, please follow the "How to get best performance with NICs on Intel platforms"
+ section of the :ref:`Getting Started Guide for Linux <linux_gsg>`.
+Pre-Installation Configuration
+Config File Options
+The following options can be modified in the ``config`` file.
+- ``CONFIG_RTE_LIBRTE_IPN3KE_PMD`` (default ``y``)
+ Toggle compilation of the ``librte_pmd_ipn3ke`` driver.
+Runtime Config Options
+- ``AFU name``
+ AFU name identifies which AFU is used by IPN3KE. The AFU name format is "Port|BDF",
+ Each FPGA can be divided into four blocks at most. "Port" identifies which FPGA block
+ the AFU bitstream belongs to, but currently only 0 IPN3KE support. "BDF" means FPGA PCIe BDF.
+ For example::
+ --vdev 'ipn3ke_cfg0,afu=0|b3:00.0'
+- ``FPGA Acceleration list``
+ For IPN3KE FPGA can provide different bitstream, different bitstream includes different
+ Acceleration, so users need to identify which Acceleration is used. Current IPN3KE can
+ support TM and Flow Acceleration, for example::
+ --vdev 'ipn3ke_cfg0,afu=0|b3:00.0,fpga_acc={tm|flow}'
+- ``I40e PF name list``
+ Users need to bind FPGA LineSidePort to FVL PF. So I40e PF name list should be involved in
+ startup command. For example::
+ --vdev 'ipn3ke_cfg0,afu=0|b3:00.0,fpga_acc={tm|flow},i40e_pf={0000:b1:00.0|0000:b1:00.1|0000:b1:00.2|0000:b1:00.3|0000:b5:00.0|0000:b5:00.1|0000:b5:00.2|0000:b5:00.3}'
+Driver compilation and testing
+Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
+for details.
+Sample Application Notes
+Packet TX/RX with FPGA Pass-through image
+FPGA Pass-through bitstream is original FPGA Image.
+To start ``testpmd``, and add I40e PF to FPGA network port:
+.. code-block:: console
+ ./app/testpmd -l 0-15 -n 4 --vdev 'ifpga_rawdev_cfg0,ifpga=b3:00.0,port=0' --vdev 'ipn3ke_cfg0,afu=0|b3:00.0,i40e_pf={0000:b1:00.0|0000:b1:00.1|0000:b1:00.2|0000:b1:00.3|0000:b5:00.0|0000:b5:00.1|0000:b5:00.2|0000:b5:00.3}' -- -i --no-numa --port-topology=loop
+HQoS and flow acceleration
+HQoS and flow acceleration bitstream is used to offloading HQoS and flow classifier.
+To start ``testpmd``, and add I40e PF to FPGA network port, enable FPGA HQoS and Flow Acceleration:
+.. code-block:: console
+ ./app/testpmd -l 0-15 -n 4 --vdev 'ifpga_rawdev_cfg0,ifpga=b3:00.0,port=0' --vdev 'ipn3ke_cfg0,afu=0|b3:00.0,fpga_acc={tm|flow},i40e_pf={0000:b1:00.0|0000:b1:00.1|0000:b1:00.2|0000:b1:00.3|0000:b5:00.0|0000:b5:00.1|0000:b5:00.2|0000:b5:00.3}' -- -i --no-numa --forward-mode=macswap
+Limitations or Known issues
+19.05 limitation
+Ipn3ke code released in 19.05 is for evaluation only.
diff --git a/doc/guides/rel_notes/release_19_05.rst b/doc/guides/rel_notes/release_19_05.rst
index 25cd61c..3606469 100644
--- a/doc/guides/rel_notes/release_19_05.rst
+++ b/doc/guides/rel_notes/release_19_05.rst
@@ -89,6 +89,15 @@ New Features
Added the new ``nfb`` net driver for Netcope NFB cards. See
the :doc:`../nics/nfb` NIC guide for more details on this new driver.
+* **Added IPN3KE net PMD.**
+ Added the new ``ipn3ke`` net driver for Intel® FPGA PAC(Programmable
+ Acceleration Card) N3000. See the :doc:`../nics/ipn3ke` NIC guide for more
+ details on this new driver.
+ Aside from this, ifpga_rawdev is also updated to support Intel® FPGA PAC
+ N3000 with SPI interface access, I2C Read/Write and Ethernet PHY configuration.
* **Updated Solarflare network PMD.**
Updated the sfc_efx driver including the following changes: