This is the PCIe end point kernel module provided by DPDK framework and on top of this, there are some pathes added to support MSI-X and SRIOV features. By using PCIe, sysfs interrupt framework utilities, this module reads allows the user space to access the device.
- Probes and exports channel BARs to User space
- Supports Interrupt notification/clearing
- Enable SRIOV functionality and set virtual functions
igb_uio kernel module does not support IOMMU programming.
vfio-pci is the base kernel module, allows you to access the device and allows IOMMU programming by using ioctl interface. If you want to enable the VFs by using vfio-pci, you may need to use the kernel version>5.7
This is a poll mode driver which implements the APIs to perform channel management, device managmenet and also DMA on both H2D and D2H directions. part This module exposes the device as ethdev interface.
Example Test Application
aUsing DPDK Environment Abstraction Layer (EAL) utilities to perform the memory management and device management.
- Total message sizes/ time duration
- Packet size per descriptor
- Completion reporting method
- Number of channels
The test application runs multiple threads for accessing the DMA channels. It also has performance measurement capability. Based on the number threads being used and number of channels being processed, queues are scheduled on threads.
The testpmd application can also be used to test the DPDK in a packet forwarding mode.
- Forwarding mode
- Number of CPU cores
- TX and RX channels per port
- Number of packets per burst
- Number of descriptors in the RX and TX ring
- Maximum packet length