Jumbo MTU

NVIDIA BlueField Virtio-net v1.9.0

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:

Copy
Copied!
            

[dpu]# virtnet modify -p 0 -v 0 device -t 9216

Info

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:

  1. Change the MTU of the uplink representor (or bond) from the BlueField:

    Copy
    Copied!
                

    [dpu]# echo 9216 > /sys/bus/pci/devices/0000:03:00.0/net/p0/mtu

  2. Restart the virtio-net-controller from the BlueField:

    Copy
    Copied!
                

    [dpu]# systemctl restart virtio-net-controller

  3. Change the corresponding device MTU on the BlueField (e.g., VF 0 on PF 0):

    Copy
    Copied!
                

    [dpu]# virtnet modify -p 0 -v 0 device -t 9216

  4. Reload virtio driver from the host OS:

    Copy
    Copied!
                

    [host]# modprobe -rv virtio-net && modprobe -v virtio-net

  5. Check virtqueue MTU configuration is correct on the BlueField:

    Copy
    Copied!
                

    [dpu]# virtnet query -p 0 -v 0 --dbg_stats | grep jumbo_mtu     "jumbo_mtu": 1     "jumbo_mtu": 1

  6. Change the MTU of virtio-net interface from the host OS:

    Copy
    Copied!
                

    [host]# echo 9216 > /sys/bus/pci/devices/0000:af:00.2/virtio0/net/enp175s0f2/mtu

© Copyright 2024, NVIDIA. Last updated on Jun 18, 2024.