Jumbo MTU
Jumbo MTU is critical for increasing the efficiency of Ethernet and network processing by reducing the protocol overhead (ratio of headers and payload size).
To support jumbo MTU run the following virtnet command:
[dpu]# virtnet modify -p 0 -v 0 device -t 9216
The example sets the MTU to 9126 for VF 0 on PF 0.
Jumbo MTU is only supported starting from the following kernel version:
Release |
|
Upstream |
VM kernel: 4.18.0-193.el8.x86_64 ( VM Linux version supports big MTU after 4.11 ) |
Ubuntu |
DOCA_2.5.0_BSP_4.5.0_Ubuntu_22.04 |
Virtnet controller |
v1.7 or v1.6.26 |
To configure jumbo MTU (e.g., using VF 0 on PF 0):
Change the MTU of the uplink and SF representor from the BlueField:
[dpu]# ifconfig p0 mtu 9216 [dpu]# ifconfig en3f0pf0sf3000 mtu 9216
If a bond is configured, change the MTU of the bond rather than p0:
[dpu]# ifconfig bond0 mtu
9216
[dpu]# ifconfig en3f0pf0sf3000 mtu9216
Restart the virtio-net-controller from the BlueField:
[dpu]# systemctl restart virtio-net-controller
Change the corresponding device MTU on the BlueField:
[dpu]# virtnet modify -p 0 -v 0 device -t 9216
Reload virtio driver from the host OS:
[host]# modprobe -rv virtio-net && modprobe -v virtio-net
Check virtqueue MTU configuration is correct on the BlueField:
[dpu]# virtnet query -p 0 -v 0 --dbg_stats | grep jumbo_mtu "jumbo_mtu": 1 "jumbo_mtu": 1
Change the MTU of virtio-net interface from the host OS:
[host]# ifconfig <vnet> mtu 9216