Watch out for 850Mbit/s WiFi

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Fri, 11 Apr 2025 01:43:10 UTC
Hi,

I had a bit of fun tonight after all and figured out what prevented me
from enabling VHT80P80 and VHT160 since January for testing.  Patches
to come to review tomorrow (well that is today here).  Turns out I cannot
test VHT80P80 currently.

This is likely the first VHT/160 assoc on FreeBSD so I thought I'd send
the email.

And I ran the simple silly iperf3 test.
Not much more than VHT80 but I am also sure I am starting to hit other
limits in this test setup.  It goes from the AX210 in a bhyve instance
to AP to a small 4 port switch and back into em0 on the same laptop
just the base system running the iperf3 server.

Down there is UDP TX from the wifi set to 960Mbit/s target rate.
Don't expect that with single stream TCP.  Yet another thing to debug ;)

Keep in mind we are still copying the full frame incl. data from
skb to mbuf or vice versa depending on direction and other fun bits
to optimize one day.  I guess I'll try to find an AP supporting 11BE
and SFP+ for 10G DAC or fiber for christmas this year... until then it'll
be other things to get us stable first.

Try it our yourself please -- even with VHT80!

Lots of joy
Bjoern


# ifconfig -v wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=0
         ether 74:13:ea:6e:de:c1
         inet6 fe80::7613:eaff:fe6e:dec1%wlan0 prefixlen 64 scopeid 0x3
         inet6 ....
         groups: wlan
         ssid abc123 channel 40 (5200 MHz 11a vht/160) bssid 9a:9d:7e:76:6f:fa
         regdomain ETSI country DE anywhere -ecm authmode WPA2/802.11i -wps
         -tsn privacy ON deftxkey UNDEF
         AES-CCM 2:128-bit
         powersavemode OFF powersavesleep 100 txpower 22 txpowmax 50.0 -dotd
         rtsthreshold 2346 fragthreshold 2346 bmiss 7
         11a     ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
         11b     ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
         11g     ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
         11na    ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
         11ng    ucast NONE    mgmt  1 Mb/s mcast  1 Mb/s maxretry 6
         11ac    ucast NONE    mgmt  6 Mb/s mcast  6 Mb/s maxretry 6
         scanvalid 60 -bgscan bgscanintvl 300 bgscanidle 250
         roam:11a     rssi    7dBm rate 12 Mb/s
         roam:11b     rssi    7dBm rate  1 Mb/s
         roam:11g     rssi    7dBm rate  5 Mb/s
         roam:11na    rssi    7dBm  MCS  1
         roam:11ng    rssi    7dBm  MCS  1
         roam:11ac    rssi    7dBm  MCS  1
         -pureg protmode CTS ht htcompat -ampdutx ampdurx ampdulimit 64k
         ampdudensity NA -amsdutx amsdurx shortgi htprotmode RTSCTS -puren
         -smps -rifs stbc -ldpctx ldpcrx -uapsd vht vht40 vht80 vht160
         -vht80p80 wme -burst -dwds roaming MANUAL bintval 100
         AC_BE cwmin  4 cwmax 10 aifs  3 txopLimit   0 -acm ack
               cwmin  0 cwmax  0 aifs  0 txopLimit   0 -acm
         AC_BK cwmin  4 cwmax 10 aifs  7 txopLimit   0 -acm ack
               cwmin  4 cwmax 10 aifs  7 txopLimit   0 -acm
         AC_VI cwmin  3 cwmax  4 aifs  2 txopLimit  94 -acm ack
               cwmin  0 cwmax  0 aifs  0 txopLimit   0 -acm
         AC_VO cwmin  2 cwmax  3 aifs  2 txopLimit  47 -acm ack
               cwmin  0 cwmax  0 aifs  0 txopLimit   0 -acm
         parent interface: iwlwifi0
         media: IEEE 802.11 Wireless Ethernet VHT mode 11ac
         status: associated
         nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
         drivername: wlan0

# sysctl compat.linuxkpi.80211.wlan0
compat.linuxkpi.80211.wlan0.dump_stas:
lsta 0xfffff800019b6800 sta 0xfffff800019b68c0 added_to_drv 1
  nl80211_sta_info (valid fields) 0x00004001<BEACON_RX,TX_BITRATE>
  connected_time 0 inactive_time 0
  rx_bytes 0 rx_packets 0 rx_dropped_misc 0
  rx_duration 0 rx_beacon 0 rx_beacon_signal_avg 0
  tx_bytes 0 tx_packets 0 tx_failed 0
  tx_duration 0 tx_retries 0
  signal 0 signal_avg 0 ack_signal 0 avg_ack_signal 0
  generation 0 assoc_req_ies_len 0 chains 0
  rxrate: flags 0 bw 0(20) legacy 0 kbit/s mcs 0 nss 0
          he_dcm 0 he_gi 0 he_ru_alloc 0 eht_gi 0
  txrate: flags 6<VHT_MCS,SGI> bw 5(160) legacy 0 kbit/s mcs 9 nss 2
          he_dcm 0 he_gi 0 he_ru_alloc 0 eht_gi 0

Server output:
-----------------------------------------------------------
Server listening on 5201 (test #18)
-----------------------------------------------------------
Accepted connection from fe80::7613:eaff:fe6e:dec1, port 59751
[  5] local fe80::c665:16ff:fef0:5da port 5201 connected to fe80::7613:eaff:fe6e:dec1 port 43081
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec   101 MBytes   844 Mbits/sec  0.018 ms  0/73529 (0%)
[  5]   1.00-2.00   sec   103 MBytes   866 Mbits/sec  0.017 ms  223/75199 (0.3%)
[  5]   2.00-3.00   sec   104 MBytes   870 Mbits/sec  0.023 ms  0/75572 (0%)
[  5]   3.00-4.00   sec   104 MBytes   868 Mbits/sec  0.023 ms  0/75515 (0%)
[  5]   4.00-5.00   sec   103 MBytes   868 Mbits/sec  0.018 ms  0/75137 (0%)
[  5]   5.00-6.00   sec   102 MBytes   855 Mbits/sec  0.018 ms  214/74521 (0.29%)
[  5]   6.00-7.00   sec   104 MBytes   867 Mbits/sec  0.015 ms  0/75371 (0%)
[  5]   7.00-8.00   sec   103 MBytes   867 Mbits/sec  0.016 ms  0/75074 (0%)
[  5]   8.00-9.00   sec   104 MBytes   867 Mbits/sec  0.020 ms  0/75475 (0%)
[  5]   9.00-10.00  sec   103 MBytes   867 Mbits/sec  0.017 ms  0/75057 (0%)
[  5]  10.00-11.00  sec   102 MBytes   855 Mbits/sec  0.025 ms  0/74420 (0%)
[  5]  11.00-11.10  sec  9.94 MBytes   863 Mbits/sec  0.016 ms  0/7242 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-11.10  sec  1.12 GBytes   863 Mbits/sec  0.016 ms  437/832112 (0.053%)  receiver

-- 
Bjoern A. Zeeb                                                     r15:7