Intel® Acceleration Stack User Guide: Intel FPGA Programmable Acceleration Card N3000

ID 683040
Date 6/14/2021
Public
Document Table of Contents

8. Configuring Ethernet Interfaces

The Intel® FPGA PAC N3000 contains multiple Ethernet MAC points where each point has specific naming, monitoring and configuration operations. The following figures illustrate the Ethernet data path for each network configuration.
Figure 13. 8x10G Configuration
Figure 14. 2x2x25G Configuration
Figure 15. 4x25G Configuration
The above figures show example device naming conventions for the XL710 enp[Y:Z]s0f[3:0]. Your server may have a different naming convention and numbering scheme. You will need the network logical names to use Linux tools for link configuration and monitoring. To find the network logical names of a specific Intel® FPGA PAC N3000 in your server, perform the following steps:
  1. List the available Intel® FPGA PAC N3000 in your server using:
    $ sudo fpgainfo fme
    Sample output:
    Board Management Controller, 
                   Intel® 
                   MAX® 10 NIOS FW version D.2.0.19
    Board Management Controller, 
                   Intel® 
                   MAX® 10 Build version D.2.0.6
    //****** FME ******//
    Object Id                     : 0xEF00000
    PCIe s:b:d.f                  : 0000:15:00.0
    Device Id                     : 0x0b30
    Numa Node                     : 0
    Ports Num                     : 01
    Bitstream Id                  : 0x23000410010309
    Bitstream Version             : 0.2.3
    Pr Interface Id               : a5d72a3c-c8b0-4939-912c-f715e5dc10ca
    Boot Page                     : user
  2. Use the following command to find the logical name(s) of the Ethernet interfaces on that Intel® FPGA PAC N3000:
    ls -la /sys/class/net
    Sample output:
    lrwxrwxrwx. 1 root root 0 Nov 20 06:07 enp20s0f0 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:08.0/0000:14:00.0/net/enp20s0f0
    lrwxrwxrwx. 1 root root 0 Nov 20 06:07 enp20s0f1 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:08.0/0000:14:00.1/net/enp20s0f1
    lrwxrwxrwx. 1 root root 0 Nov 20 06:07 enp22s0f0 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:10.0/0000:16:00.0/net/enp22s0f0
    lrwxrwxrwx. 1 root root 0 Nov 20 06:07 enp22s0f1 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:10.0/0000:16:00.1/net/enp22s0f1
    lrwxrwxrwx. 1 root root 0 Nov 20 02:34 lo -> ../../devices/virtual/net/lo
    lrwxrwxrwx. 1 root root 0 Nov 20 22:44 npacf0g0l0 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:09.0/0000:15:00.0/fpga/intel-fpga-dev.0/intel-fpga-fme.0/pac_n3000_net.2.auto/net/npacf0g0l0
    lrwxrwxrwx. 1 root root 0 Nov 20 22:44 npacf0g0l1 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:09.0/0000:15:00.0/fpga/intel-fpga-dev.0/intel-fpga-fme.0/pac_n3000_net.2.auto/net/npacf0g0l1
    lrwxrwxrwx. 1 root root 0 Nov 20 22:44 npacf0g0l2 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:09.0/0000:15:00.0/fpga/intel-fpga-dev.0/intel-fpga-fme.0/pac_n3000_net.2.auto/net/npacf0g0l2
    lrwxrwxrwx. 1 root root 0 Nov 20 22:44 npacf0g0l3 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:09.0/0000:15:00.0/fpga/intel-fpga-dev.0/intel-fpga-fme.0/pac_n3000_net.2.auto/net/npacf0g0l3

For example:

This listing is example of the 8x10G network configuration. The logical device names npacf0g0l[3:0] represents the Ethernet MAC wrapper 0 on the line side Intel® Arria® 10 FPGA. The logical device names enp[Y:Z]s0f[1:0] are the XL710 Ethernet ports.

The pac_n3000_net platform device driver creates the standard Linux network device interfaces for each Intel® Arria® 10 FPGA Ethernet MAC pair. It provides C827 re-timer information for unified network status reporting. It enables use of standard Linux tools for both link configuration and monitoring.
$ lsmod | grep pac_n3000_net
pac_n3000_net          28483  1 c827_retimer