Data Plane Development Kit Reference Manual: Intel FPGA Programmable Acceleration Card N3000

ID 683512
Date 12/06/2019
Public
Document Table of Contents

2.1. DPDK Intel® FPGA PAC N3000 Software Overview

The DPDK Intel® FPGA PAC N3000 includes the following components:

  • The Poll Mode Driver (IPN3KE) is a user-mode driver for the Intel Ethernet Controller XL710 and Intel® Arria® 10 FPGA. This driver implements the rte_ethdev API. This Poll Mode Driver works with the Intel-provided FPGA factory image.
  • The FPGA Device Driver (IFPGA Rawdev) binds to the Intel® Arria® 10 FPGA on the Intel® FPGA PAC N3000. The IFPGA driver calls API functions that the Open Programmable Acceleration Engine (OPAE) User Mode Driver (UMD) exports to enumerate and discover the features of the FPGA and Accelerator Functional Unit (AFU). In addition, the IFPGA_Rawdev driver works in coordination with the Open Programmable Acceleration Engine (OPAE) share code to provide the following common FPGA management functions:
    • AFU identification
    • Thermal management
    • Retimer link status and statistics
  • The Intel® FPGA PAC N3000 supports the following Ethernet configurations:
    • 8x10 (4 lanes in each quad small form factor pluggable (QSFP), 40 (GbE))
    • 2x2x25 (2 lanes in each QSFP, 25 GbE)
    • 4x25 (4 lanes in one of the QSFP, 25 GbE)
  • The OPAE UMD provides interfaces for user space applications to configure, enumerate, open, and access Intel FPGA AFUs.
  • The IFPGA bus provides a mechanism for AFU devices to register on the bus. The IFPGA bus logic compares the AFU universal unique identifier (UUID) to the UUIDs of registered AFU drivers. If a driver matches the AFU UUID, the AFU driver probe routine runs. The AFU driver for the default Intel-provided factory image loaded on the FPGA is IPN3KE PMD.
Figure 1. DPDK IFPGA Bus Scan

When the DPDK application runs, this application performs two scans:

  • PCIe* scan—A kernel module, such as vfio-pci driver, performs this scan. This scan is a legacy DPDK PCIe* device scan which discovers the Intel® Arria® 10 FPGA as a PCIe* device. This scan uses the /sys kernel interface to read the address space and map to the application space.
  • AFU scan—This scan adds the AFU discovered to IFPGA bus. The ifpga bus scans the AFU device, identifies and then calls the corresponding AFU driver probe routine.
Figure 2. DPDK Line Side and Host Side Status Representation

The MACs inside the Intel® Arria® 10 FPGA connect to both line side and host side Ethernet ports. The line side port performs retiming and connects to the Ethernet network backbone. The host side port is the Intel Ethernet Controller XL710. DPDK software provides line side statistics and link status from the IPN3KE driver and gets the host side statistics from the XL710 Ethernet controller. The Ii40e PMD identifies the available XL710 ports and provides statistics by reading the XL710 MAC. The IPN3KE PMD probes the corresponding line side ports to get link status and statistics. The IPN3KE PMD probes the line side ports as port representors.

For a general overview of port-representors refer to Port Representors in Data Plane Development Kit 18.05.1 Release.