From: Yuichiro NAITO Subject: Re: iavf: multiple bugfixes and support for Intel 800 series To: Carsten Beckmann , "tech@openbsd.org" Date: Thu, 15 Oct 2026 15:11:20 +0900 Hello, On 10/7/26 23:10, Carsten Beckmann wrote: > Hi, > > I recently tried using iavf(4) in an OpenBSD VM with an Intel E810-C on > the host. This did not work at all though. iavf(4) went into a quick > reset loop after attach and then just died. While debugging this I > noticed a few other issues which in the end lead to this series of > patches. > > The first 6 patches are all bugfixes and affect the current iavf(4) even > with NICs of the Intel 700 series on the host. I did use an Intel XXV710 > to debug and verify the fixes. > > The last 2 patches are then required to make iavf(4) work with an Intel > E810-C on the host. I believe that it should also work with other > variants of the 800 series now, but I did not have them available to > test it. > > I did not want to spam the list with 8 patches without any prior > discussion, so for now all of them follow inline. I'll also attach them > individually in case this makes reviewing easier. Let me know if you > would prefer me to send each patch individually to the list though. I don't have an E810 card. I tested your patches with my X710 VFs on ESXi 8.0. They work nicely for me. The iperf3 performance tests show about 10 Gbps for both transmit and receive. The results are shown below. The iperf3 server is running on the virtual machine that has iavf(4) interfaces. So, when the iperf3 client sends packets, OpenBSD receives the packets, and vice versa. * dmesg iavf0 at pci3 dev 0 function 0 "Intel XL710/X710 VF" rev 0x01, VF version 1.1, VF 0 VSI 9, msix, 4 queues, address 00:0c:29:a2:be:06 iavf1 at pci11 dev 0 function 0 "Intel XL710/X710 VF" rev 0x01, VF version 1.1, VF 0 VSI 20, msix, 4 queues, address 00:0c:29:a2:be:07 * receive 1 TCP stream %iperf3 -c 192.168.100.1 Connecting to host 192.168.100.1, port 5201 (Snip) [ ID] Interval Transfer Bitrate Retr [ 4] 0.00-10.06 sec 9.89 GBytes 8.44 Gbits/sec 2905 sender [ 4] 0.00-10.06 sec 9.89 GBytes 8.44 Gbits/sec receiver * receive 4 TCP streams % iperf3 -c 192.168.100.1 -P 4 Connecting to host 192.168.100.1, port 5201 (Snip) [ ID] Interval Transfer Bitrate Retr [ 4] 0.00-10.00 sec 3.96 GBytes 3.40 Gbits/sec 0 sender [ 4] 0.00-10.01 sec 3.96 GBytes 3.40 Gbits/sec receiver [ 6] 0.00-10.00 sec 2.18 GBytes 1.88 Gbits/sec 1623 sender [ 6] 0.00-10.01 sec 2.18 GBytes 1.87 Gbits/sec receiver [ 8] 0.00-10.00 sec 3.00 GBytes 2.58 Gbits/sec 0 sender [ 8] 0.00-10.01 sec 3.00 GBytes 2.57 Gbits/sec receiver [ 10] 0.00-10.00 sec 1.78 GBytes 1.53 Gbits/sec 0 sender [ 10] 0.00-10.01 sec 1.78 GBytes 1.53 Gbits/sec receiver [SUM] 0.00-10.00 sec 10.9 GBytes 9.39 Gbits/sec 1623 sender [SUM] 0.00-10.01 sec 10.9 GBytes 9.38 Gbits/sec receiver * Transmit 1 TCP stream % iperf3 -c 192.168.100.1 -R Connecting to host 192.168.100.1, port 5201 (Snip) [ ID] Interval Transfer Bitrate Retr [ 4] 0.00-10.04 sec 11.0 GBytes 9.40 Gbits/sec 0 sender [ 4] 0.00-10.04 sec 11.0 GBytes 9.40 Gbits/sec receiver * Transmit 4 TCP streams % iperf3 -c 192.168.100.1 -P 4 -R Connecting to host 192.168.100.1, port 5201 (Snip) [ ID] Interval Transfer Bitrate Retr [ 4] 0.00-10.00 sec 3.65 GBytes 3.14 Gbits/sec 0 sender [ 4] 0.00-10.00 sec 3.65 GBytes 3.14 Gbits/sec receiver [ 6] 0.00-10.00 sec 1.83 GBytes 1.57 Gbits/sec 0 sender [ 6] 0.00-10.00 sec 1.83 GBytes 1.57 Gbits/sec receiver [ 8] 0.00-10.00 sec 1.83 GBytes 1.57 Gbits/sec 0 sender [ 8] 0.00-10.00 sec 1.83 GBytes 1.57 Gbits/sec receiver [ 10] 0.00-10.00 sec 3.65 GBytes 3.14 Gbits/sec 0 sender [ 10] 0.00-10.00 sec 3.65 GBytes 3.14 Gbits/sec receiver [SUM] 0.00-10.00 sec 11.0 GBytes 9.42 Gbits/sec 0 sender [SUM] 0.00-10.00 sec 11.0 GBytes 9.41 Gbits/sec receiver -- Yuichiro NAITO (naito.yuichro@gmail.com)