Intel® Acceleration Stack User Guide: Intel® FPGA Programmable Acceleration Card N3000-N/2
ID
683362
Date
11/01/2021
Public
1. About this Document
2. System Requirements
3. Hardware Installation
4. Installing the OPAE Software
5. Identify the Intel® MAX® 10 BMC Version
6. Intel XL710 Driver Installation and Firmware Update
7. Updating the Retimer Firmware
8. OPAE Tools
9. Sample Test: Native Loopback
10. Configuring Ethernet Interfaces
11. Testing Network Loopback Using Data Plane Development Kit (DPDK)
12. Graceful Shutdown
13. Single Event Upset (SEU)
14. Document Revision History for Intel Acceleration Stack User Guide: Intel® FPGA PAC N3000-N/2
A. Troubleshooting
B. fpgabist Sample Output
10.1. Modifying the Interface Maximum Transmission Unit (MTU) Size
The default MTU size for 25G FPGA MAC Wrapper 0 and Wrapper 1 is 9600. The default MTU size for XL710 is 1500 bytes. You must configure FPGA MAC wrappers and XL710 to have the same MTU setting to ensure each MAC will allow your desired maximum packet size.
Command for configuring MTU of FPGA MAC wrapper 0:
$ sudo ip link set dev npacfXgYlZ mtu <#> <#> = desired MTU setting
Command for configuring MTU of XL710:
$ ip sudo link set dev <XL710 interface name> mtu <#> <#> = desired MTU setting
Example of current settings:
$ ip link show npacf0g0l0 38: npacf0g0l0: <LOWER_UP> mtu 9600 qdisc noop state UNKNOWN mode DEFAULT group default qlen 1000 link/generic
$ ip link show enp26s0f0 44: enp26s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 64:4c:36:11:f0:c8 brd ff:ff:ff:ff:ff:ff
Note: The XL710 default MTU setting differs from the Intel® Arria® 10 FPGA MTU setting.
Example: Set MTU to 9600 for both FPGA and XL710
$ sudo ip link set dev npacf0g0l0 mtu 9600
$ sudo ip link set dev enp26s0f0 mtu 9600
$ ip link show npacf0g0l0 38: npacf0g0l0: <LOWER_UP> mtu 9600 qdisc noop state UNKNOWN mode DEFAULT group default qlen 1000 link/generic
$ ip link show enp26s0f0 44: enp26s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9600 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 64:4c:36:11:f0:c8 brd ff:ff:ff:ff:ff:ff
The FPGA MAC Wrapper 1 MTU is an internal MAC instance for transport of Ethernet frames through the FPGA. Therefore, it does not have a logical network representation in Linux. It is unlikely you will need to provision MAC Wrapper 1 settings. The default MTU setting for MAC wrapper 1 is 9600 bytes.
To check FPGA MAC Wrapper 1 MTU:
$ sudo fpgadiag -B <bus> -m fpgamac --side=host --mtu
Sample output:
================================================================ maximum frame length | transmit | receive | mac 0 | 9600 | 9600 | mac 1 | 9600 | 9600 | mac 2 | 9600 | 9600 | mac 3 | 9600 | 9600 |
If you need to change the MAC Wrapper 1 MTU setting for all ports, use the following command:
$ fpgadiag -B <bus> -m fpgamac --side=host --mtu <#> <bus> = PCIe bus of FPGA in 0xYZ format <#> = desired MTU setting
For example:
$ sudo fpgadiag -B 0x1b -m fpgamac --side=host --mtu 1500 $ sudo fpgadiag -B 0x1b -m fpgamac --side=host --mtu Output: ===================================================== maximum frame length | transmit | receive | mac 0 | 1500 | 1500 | mac 1 | 1500 | 1500 | mac 2 | 1500 | 1500 | mac 3 | 1500 | 1500 |