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:
Change the MTU of the uplink representor (or bond) from the BlueField:
[dpu]# echo 9216 > /sys/bus/pci/devices/0000:03:00.0/net/p0/mtu
Restart the virtio-net-controller from the BlueField:
[dpu]# systemctl restart virtio-net-controller
Change the corresponding device MTU on the BlueField (e.g., VF 0 on PF 0):
[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]# echo 9216 > /sys/bus/pci/devices/0000:af:00.2/virtio0/net/enp175s0f2/mtu