Intel® Acceleration Stack User Guide: Intel® FPGA Programmable Acceleration Card N3000-N/2

ID 683362
Date 11/01/2021
Public
Document Table of Contents

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             |