OpenWRT on Hyper-V VM with Intel AX 210 Passthrough - WiFi Performance Issues

Hello Everyone,

I'm hoping someone can help me troubleshoot an issue I'm experiencing with my OpenWRT setup on a Hyper-V VM. I've got an Intel AX 210 WiFi card passthrough to the VM, but I'm seeing some weird performance issues.

The problem:

When I try to access the internet, it takes around 10 seconds for the connection to establish, and even then, it only lasts for about 5 seconds before dropping again. This cycle repeats indefinitely, making it impossible to use the internet reliably.

My setup:

  • OpenWRT running on a Hyper-V VM
  • Intel AX 210 WiFi card passthrough to the VM
  • Hyper-V host is running Windows Server 2025

Any ideas?

Intel cards are not fit to work as access points.

Does it work properly in fedora or debian vm?

It worked fine in Gentoo and Windows 11. I'm trying to use the wifi card as a client here.

I asked a very precise question - has the card ever worked well in a virtual machine with passthrough configuration?

I apologize, I meant to say it worked fine in Gentoo and Windows 11 VMs with passthrough.

In Luci, radio0 is labelled "Generic MAC80211 802.11ac/ax/b/g/n", not my WiFi card. Do you think that makes this a driver issue?

I have iwlwifi-firmware-ax210 package installed.

There is no problem with card identification, it could be broadcom or old atheros detected.

Please show

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
dmesg | grep iwl

passwords and secrets edited away obviously.

root@OpenWRT:~# ubus call system board
{
        "kernel": "5.15.167",
        "hostname": "OpenWRT",
        "system": "13th Gen Intel(R) Core(TM) i7-13700H",
        "model": "Microsoft Corporation Virtual Machine",
        "board_name": "microsoft-corporation-virtual-machine",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.5",
                "revision": "r24106-10cc5fcd00",
                "target": "x86/64",
                "description": "OpenWrt 23.05.5 r24106-10cc5fcd00"
        }
}
root@OpenWRT:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd16:ebf3:39d8::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface 'awwan'
        option proto 'dhcp'

root@OpenWRT:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/VMBUS:00/f0e0c341-119f-4cc6-b6df-82677287cae0/pci119f:00/119f:00:00.0'
        option band '5g'
        option htmode 'HE80'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
        option disabled '1'

config wifi-iface 'wifinet1'
        option device 'radio0'
        option mode 'sta'
        option network 'awwan'
        option ssid 'nope'
        option encryption 'sae'
        option key 'nope'

root@OpenWRT:~# dmesg | grep iwl
[    5.677269] iwlwifi 119f:00:00.0: api flags index 2 larger than supported by driver
[    5.677873] iwlwifi 119f:00:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.36
[    5.689577] iwlwifi 119f:00:00.0: loaded firmware version 72.a764baac.0 ty-a0-gf-a0-72.ucode op_mode iwlmvm
[    5.690229] iwlwifi 119f:00:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz, REV=0x420
[    5.885178] iwlwifi 119f:00:00.0: Detected RF GF, rfid=0x10d000
[    5.960016] iwlwifi 119f:00:00.0: base HW address: c8:96:65:ee:30:c1
[    6.018747] iwlwifi 119f:00:00.0 wlan0 (uninitialized): no netdev found for vf serial:29654
[    6.024518] iwlwifi 119f:00:00.0 wlan0: no netdev found for vf serial:29654
[    7.119523] iwlwifi 119f:00:00.0 phy0-sta0 (uninitialized): no netdev found for vf serial:29654
[    7.120220] iwlwifi 119f:00:00.0 phy0-sta0: no netdev found for vf serial:29654
[   11.271309] iwlwifi 119f:00:00.0: Unhandled alg: 0x707

This says particular encryption is not handled in wifi card but on CPU. Try 24.10.0-rc7 (make a new VM while this is off)
You can set wifi country code if your AP jumps to DFS channels for this one to better follow.

I'll do that. Just curious, is there a way to make this work on stable?

Wait 2 months fr 24.10 get stable, that is provided it has hw offload for WPA3 supported.

@brada4 The same issue persists in 24.10.0-rc7

# ubus call system board
{
	"kernel": "6.6.73",
	"hostname": "OpenWrt",
	"system": "13th Gen Intel(R) Core(TM) i7-13700H",
	"model": "Microsoft Corporation Virtual Machine",
	"board_name": "microsoft-corporation-virtual-machine",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "24.10.0-rc7",
		"revision": "r28417-daef29c75d",
		"target": "x86/64",
		"description": "OpenWrt 24.10.0-rc7 r28417-daef29c75d",
		"builddate": "1738018409"
	}
}

# dmesg | grep iwl
[    9.364260] iwlwifi b1f8:00:00.0: enabling device (0000 -> 0002)
[    9.413444] iwlwifi b1f8:00:00.0: Detected crf-id 0x400410, cnv-id 0x400410 wfpm id 0x80000000
[    9.414318] iwlwifi b1f8:00:00.0: PCI dev 2725/0020, rev=0x420, rfid=0x10d000
[    9.414952] iwlwifi b1f8:00:00.0: Detected Intel(R) Wi-Fi 6 AX210 160MHz
[    9.569041] iwlwifi b1f8:00:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.42
[    9.597180] iwlwifi b1f8:00:00.0: loaded firmware version 89.6b44fa0b.0 ty-a0-gf-a0-89.ucode op_mode iwlmvm
[    9.790700] iwlwifi b1f8:00:00.0: WFPM_UMAC_PD_NOTIFICATION: 0x1f
[    9.792386] iwlwifi b1f8:00:00.0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[    9.793925] iwlwifi b1f8:00:00.0: WFPM_AUTH_KEY_0: 0x90
[    9.795085] iwlwifi b1f8:00:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
[    9.819561] iwlwifi b1f8:00:00.0: Detected RF GF, rfid=0x10d000
[    9.890197] iwlwifi b1f8:00:00.0: base HW address: c8:96:65:ee:30:c1
[   12.795084] iwlwifi b1f8:00:00.0 phy0-sta0 (uninitialized): no netdev found for vf serial:30075
[   12.796407] iwlwifi b1f8:00:00.0 phy0-sta0: no netdev found for vf serial:30075
[   12.995447] iwlwifi b1f8:00:00.0: WFPM_UMAC_PD_NOTIFICATION: 0x1f
[   12.996084] iwlwifi b1f8:00:00.0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[   12.996692] iwlwifi b1f8:00:00.0: WFPM_AUTH_KEY_0: 0x90
[   12.997314] iwlwifi b1f8:00:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
[   13.091827] iwlwifi b1f8:00:00.0: Registered PHC clock: iwlwifi-PTP, with index: 1


PING 194.242.2.9 (194.242.2.9) 56(84) bytes of data.
64 bytes from 194.242.2.9: icmp_seq=1 ttl=49 time=273 ms
64 bytes from 194.242.2.9: icmp_seq=2 ttl=49 time=210 ms
64 bytes from 194.242.2.9: icmp_seq=3 ttl=49 time=210 ms
64 bytes from 194.242.2.9: icmp_seq=4 ttl=49 time=224 ms
64 bytes from 194.242.2.9: icmp_seq=5 ttl=49 time=246 ms
64 bytes from 194.242.2.9: icmp_seq=6 ttl=49 time=213 ms
64 bytes from 194.242.2.9: icmp_seq=7 ttl=49 time=213 ms
64 bytes from 194.242.2.9: icmp_seq=8 ttl=49 time=210 ms
64 bytes from 194.242.2.9: icmp_seq=28 ttl=49 time=958 ms
64 bytes from 194.242.2.9: icmp_seq=29 ttl=49 time=211 ms
64 bytes from 194.242.2.9: icmp_seq=30 ttl=49 time=212 ms
64 bytes from 194.242.2.9: icmp_seq=31 ttl=49 time=211 ms
64 bytes from 194.242.2.9: icmp_seq=32 ttl=49 time=235 ms
64 bytes from 194.242.2.9: icmp_seq=33 ttl=49 time=220 ms
64 bytes from 194.242.2.9: icmp_seq=34 ttl=49 time=210 ms
64 bytes from 194.242.2.9: icmp_seq=35 ttl=49 time=216 ms
64 bytes from 194.242.2.9: icmp_seq=36 ttl=49 time=210 ms
64 bytes from 194.242.2.9: icmp_seq=57 ttl=49 time=245 ms
64 bytes from 194.242.2.9: icmp_seq=58 ttl=49 time=210 ms
64 bytes from 194.242.2.9: icmp_seq=59 ttl=49 time=211 ms
64 bytes from 194.242.2.9: icmp_seq=60 ttl=49 time=225 ms
64 bytes from 194.242.2.9: icmp_seq=61 ttl=49 time=211 ms
64 bytes from 194.242.2.9: icmp_seq=62 ttl=49 time=240 ms
64 bytes from 194.242.2.9: icmp_seq=63 ttl=49 time=213 ms
64 bytes from 194.242.2.9: icmp_seq=64 ttl=49 time=209 ms
64 bytes from 194.242.2.9: icmp_seq=65 ttl=49 time=212 ms

Anyone with insight or expertise, please feel free to chime in.

Now it is offloaded in hardware. What is the link speed in iwinfo

# iwinfo
phy0-sta0 ESSID: ""
          Access Point: :::::
          Mode: Client  Channel: 1 (2.412 GHz)  HT Mode: HT40
          Center Channel 1: 3 2: unknown
          Tx-Power: 22 dBm  Link Quality: 64/70
          Signal: -46 dBm  Noise: unknown
          Bit Rate: 300.0 MBit/s
          Encryption: unknown
          Type: nl80211  HW Mode(s): 802.11ac/ax/b/g/n
          Hardware: 8086:2725 8086:0020 [Generic MAC80211]
          TX power offset: unknown
          Frequency offset: unknown
          Supports VAPs: no  PHY name: phy0

@brada4 ??

Can you boot clean openwrt from USB ( add iperf3 iwlwifi+fw in firmware-selectro)and check if wifi (iperf3 to some local server) functions to expectation. There is no radical difference between desktop linux-es and openwrt driver-wise.

installed iperf3 on my AP.

# iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.184 port 48872 connected to 192.168.1.1 port 5201
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-27.68  sec  1.25 MBytes   379 Kbits/sec    0             sender
[  5]   0.00-27.68  sec  0.00 Bytes  0.00 bits/sec                  receiver

# iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.184 port 37284 connected to 192.168.1.1 port 5201
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-0.00   sec  0.00 Bytes  0.00 bits/sec    0             sender
[  5]   0.00-0.00   sec  0.00 Bytes  0.00 bits/sec                  receiver

# iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.184 port 48756 connected to 192.168.1.1 port 5201
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-0.00   sec  0.00 Bytes  0.00 bits/sec    0             sender
[  5]   0.00-0.00   sec  0.00 Bytes  0.00 bits/sec                  receiver

I'm unsure if I did this step correctly...:confused:

Normally some other server or laptop would be better, but speed is so sorry than it does not matter.
Was it bare hardware or vm?

@brada4 It's a D-Link DIR-2660. Should I run this step again on a server on my Raspberry Pi?
On the same hypervisor, I passthrough-ed the same WiFi card to a Linux Mint VM and ran it again.

iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.184 port 54480 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  20.4 MBytes   171 Mbits/sec    0    898 KBytes       
[  5]   1.00-2.00   sec  17.6 MBytes   148 Mbits/sec    0   1003 KBytes       
[  5]   2.00-3.00   sec  21.1 MBytes   177 Mbits/sec    0   1003 KBytes       
[  5]   3.00-4.00   sec  18.0 MBytes   151 Mbits/sec    0   1003 KBytes       
[  5]   4.00-5.00   sec  20.2 MBytes   170 Mbits/sec    0   1003 KBytes       
[  5]   5.00-6.00   sec  20.4 MBytes   171 Mbits/sec    0   1003 KBytes       
[  5]   6.00-7.00   sec  18.5 MBytes   155 Mbits/sec    0   1003 KBytes       
[  5]   7.00-8.00   sec  18.4 MBytes   154 Mbits/sec    0   1003 KBytes       
[  5]   8.00-9.00   sec  21.0 MBytes   176 Mbits/sec    0   1003 KBytes       
[  5]   9.00-10.00  sec  18.6 MBytes   156 Mbits/sec    0   1003 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   194 MBytes   163 Mbits/sec    0             sender
[  5]   0.00-10.02  sec   192 MBytes   161 Mbits/sec                  receiver