Go to file
Alejandro Lucero c4171b520b net/nfp: support PF multiport
A NFP PF PCI device can have several physical ports, up to 8. Because
DPDK core creates one eth_dev per PCI device, nfp pf probe function
is used. Number of PF ports is obtained from firmware symbol using
NSPU API. Inside PF probe function an eth_dev per port is created and
nfp_net_init invoked for each port.

There are some limitations regarding multiport: rx interrupts and
device hotplug are not supported.

Interrupts are handled with the VFIO or UIO drivers help. Those
drivers just know about PCI devices, so it is not possible, without
changing how DPDK handles interrupts, manage interrupts assigned to
different PF ports.

About hotplug, the problem is this functionality is based on a PCI
device, and although device plugin is possible, which would add as
many ports as supported by firmware, unplug is based on device name
linked to a eth_dev, and device name has a suffix now (_portX, with X
being the port index) which DPDK core is not aware of. While rx
interrupts with multiport could be likely solved with some layer of
indirection, hotplug would require changes to DPDK core.

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
2017-10-06 02:49:48 +02:00
app app/testpmd: fix wrong API of adding VF MAC 2017-10-06 02:49:47 +02:00
buildtools buildtools: zero elf info variable in pmdinfogen 2017-09-14 14:20:41 +02:00
config net/mlx4: remove Tx inline compilation option 2017-10-06 02:49:47 +02:00
devtools devtools: fix version search with git < 2.7.0 2017-09-22 15:42:24 +02:00
doc net/mlx4: drop scatter/gather support 2017-10-06 02:49:48 +02:00
drivers net/nfp: support PF multiport 2017-10-06 02:49:48 +02:00
examples examples/vm_power_manager: add per-core turbo CLI 2017-09-22 16:35:13 +02:00
lib eal: fix auxv open check for ARM and PPC 2017-10-06 00:15:43 +02:00
mk mk: add sensible default target with defconfig 2017-08-05 10:27:04 +02:00
pkg version: 17.08.0 2017-08-08 20:01:40 +02:00
test test/ring: do not mask result of enqueue or dequeue 2017-10-05 23:29:29 +02:00
usertools update Cavium Inc copyright headers 2017-07-08 17:43:49 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore devtools: add tags and cscope index generation 2017-04-30 12:57:04 +02:00
GNUmakefile mk: do not build tests by default 2017-02-28 16:04:18 +01:00
LICENSE.GPL doc: GPL/LGPL licenses 2013-07-25 14:43:06 +02:00
LICENSE.LGPL doc: fix file format (dos to unix) 2013-09-06 11:43:07 +02:00
MAINTAINERS maintainers: update mlx5 2017-10-05 17:21:52 +02:00
Makefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00
README doc: add readme file 2015-12-13 22:06:58 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD license for the core libraries and
drivers. The kernel components are GPLv2 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org