c4171b520b
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> |
||
---|---|---|
app | ||
buildtools | ||
config | ||
devtools | ||
doc | ||
drivers | ||
examples | ||
lib | ||
mk | ||
pkg | ||
test | ||
usertools | ||
.gitattributes | ||
.gitignore | ||
GNUmakefile | ||
LICENSE.GPL | ||
LICENSE.LGPL | ||
MAINTAINERS | ||
Makefile | ||
README |
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