# ice driver MTU reproducer First install `uvtool` on the hypervisor ``` apt install uvtool ``` Now download both focal and jammy images for usage to deploy VMs ``` mkdir -p /var/uvt TMPDIR=/var/uvt uvt-simplestreams-libvirt --verbose sync arch=amd64 release=focal TMPDIR=/var/uvt uvt-simplestreams-libvirt --verbose sync arch=amd64 release=jammy ``` Create a default network for `virsh` to use ``` cat > virsh-net-default.xml << EOF default ba71f522-c2c9-4fcd-9792-3c4f294e31da EOF ``` Now, define it in virsh itself and start it up ``` virsh net-define virsh-net-default.xml virsh net-start default ``` Create 4 vms, 2 focal and 2 jammy ``` uvt-kvm create focal01 release=focal --mem 1024 uvt-kvm create focal02 release=focal --mem 1024 uvt-kvm create jammy01 release=jammy --mem 1024 uvt-kvm create jammy02 release=jammy --mem 1024 ``` Use the document to understand SRIOV basics https://www.intel.com/content/www/us/en/developer/articles/technical/configure-sr-iov-network-virtual-functions-in-linux-kvm.html The following command show all the bus infos ``` lshw -c network -businfo ``` We chose the interfaces below ``` pci@0000:17:01.4 ens2f0v4 network Ethernet Adaptive Virtual Function pci@0000:17:01.5 ens2f0v5 network Ethernet Adaptive Virtual Function pci@0000:17:01.6 ens2f0v6 network Ethernet Adaptive Virtual Function pci@0000:17:01.7 ens2f0v7 network Ethernet Adaptive Virtual Function ``` We can then create a new file `iface01.xml` with the following contents, and similar for all 4 interfaces replacing `function='0x4'` with the number ad the end of the pci address ```xml
``` ``` virsh attach-device focal01 iface01.xml ``` Then we stop and start the VM ``` uvt-kvm ssh focal01 ``` Add netplan configuration for the interface ``` cat > /etc/netplan/90-custom.yaml << EOF network: version: 2 ethernets: enp7s0: dhcp4: false addresses: - 192.168.1.7/24 mtu: 9000 EOF ``` ``` netplan apply ``` Now check dmesg, and we will find the error as shown below ``` [ 61.529605] iavf 0000:07:00.0: PF returned error -5 (IAVF_ERR_PARAM) to our request 6 ``` We do the same for all 4 VMs * focal01 VF 4, IP: 192.168.1.7/24 * focal02 VF 5, IP: 192.168.1.8/24 * jammy01 VF 6, IP: 192.168.1.9/24 * jammy02 VF 5, IP: 192.168.1.10/24 On each of the VMs, we then enable proposed, and install the updated kernel from `-proposed` ``` cat </etc/apt/sources.list.d/ubuntu-$(lsb_release -cs)-proposed.list # Enable Ubuntu proposed archive deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed restricted main multiverse universe EOF cat </etc/apt/preferences.d/proposed-updates # Configure apt to allow selective installs of packages from proposed Package: * Pin: release a=$(lsb_release -cs)-proposed Pin-Priority: 400 EOF apt update apt -y install linux-image-generic/$(lsb_release -cs)-proposed ``` Then test again with the pings, and you should no longer see the issue on the focal nodes ``` apt -y install linux-image-generic-hwe-20.04/$(lsb_release -cs)-proposed ``` then reboot, and re-test