Monday, June 30, 2025

FreeBSD 14.3 - Laptop computer with Intel Wi-Fi 5 (802.11ac) Wireless-AC 9260

FreeBSD 14.3 should have significantly improved support of WiFi adapters. 

Let's test it in Dell Precision 5530 with Intel Wi-Fi 5 (802.11ac) Wireless-AC 9x6x [Thunder Peak].

 We can identify Wi-Fi Adapter by following command ...

 root@dell5530:~ # pciconf -lv | grep -B 3 -A 1 network  
 iwm0@pci0:59:0:0:     class=0x028000 rev=0x29 hdr=0x00 vendor=0x8086 device=0x2526 subvendor=0x8086 subdevice=0x4010  
   vendor   = 'Intel Corporation'  
   device   = 'Wi-Fi 5(802.11ac) Wireless-AC 9x6x [Thunder Peak]'  
   class   = network  
 rtsx0@pci0:60:0:0:     class=0xff0000 rev=0x01 hdr=0x00 vendor=0x10ec device=0x525a subvendor=0x1028 subdevice=0x087d  
 root@dell5530:~ #   

This Intel Wi-Fi Adapter is managed by driver if_iwm (FreeBSD native) or if_iwlwifi (FreeBSD port of modern driver developed by Intel for Linux) and we can validate that driver is loaded as kernel module by following command ...

 root@dell5530:~ # kldstat | grep -E "iwl|iwm"  
  5  1 0xffffffff83005000  b1270 if_iwlwifi.ko  
  7  1 0xffffffff830bb000  17314 if_iwm.ko  
 11  1 0xffffffff83200000  28fe30 iwm9260fw.ko  

The iwm is native FreeBSD driver, therefore, firmware is available out of the box. The iwlwifi driver (being a ported from Linux) requires specific firmware files to operate. These are typically provided by the linux-firmware-kmod package. We can leverage utility fwget to identify needed firmware packages ...

 root@dell5530:~ # fwget -nv  
 Trying to match device 0x3e9b in class video and vendor intel with pci_video_intel  
 Trying to match device 0x2526 in class network and vendor intel with pci_network_intel  
 Trying to match device 0x525a in class misc and vendor realtek with pci_misc_realtek  
 Needed firmware packages: 'gpu-firmware-intel-kmod-kabylake wifi-firmware-iwlwifi-kmod-9000'  
 root@dell5530:~ #  

Based on suggestion above we need following two packages ... 

  • gpu-firmware-intel-kmod-kabylake
  • wifi-firmware-iwlwifi-kmod-9000

... therefore, following command will install it 

pkg install gpu-firmware-intel-kmod-kabylake wifi-firmware-iwlwifi-kmod-9000
reboot  

Now we can check if we have wireless interface in dmesg ...

 root@dell5530:~ # dmesg | grep -i wireless  
 Intel(R) Wireless WiFi based driver for FreeBSD  
 iwm0: <Intel(R) Dual Band Wireless AC 9260> mem 0xed400000-0xed403fff at device 0.0 on pci6  

We do see iwm0 interface, so we use a FreeBSD native driver and we can continue in wireless configuration. 

Once the driver and firmware are working, the system needs to configure the network interface (iwm0) by creating wlan interface ...

ifconfig wlan0 create wlandev iwm0

... in case we would like to configure it manually. When we would like to configure it persistently we have to add following two lines to /etc/rc.conf

wlans_iwm0="wlan0" # Equivalent to: ifconfig wlan0 create wlandev iwm0
ifconfig_wlan0="WPA DHCP country CZ"

The only what we have to do is to create config file /etc/wpa_supplicant.conf with following content ...

network={
    ssid="YourSSID"
    psk="Your PreShared Key in correct format"
}

However, WPA PreShared Key is not the WiFi password you normally use, but it must be generated by the command wpa_passphrase and generated PSK has to be used in /etc/wpa_supplicant.conf

  root@kuna:/etc # wpa_passphrase PASNET YourPassword
  network={   
    ssid="PASNET" 
    psk=cce6e5a21451d52d430935b7ac315278f8c37b40cf453ac98b3f252c0faadde1   
  }   
  root@kuna:/etc #   

One line command to create /etc/wpa_supplicant.conf is ...
wpa_passphrase PASNET YourPassword > /etc/wpa_supplicant.conf 

If we have wlan0 interface configured in /etc/rc.conf as discussed abovethe system will try to connect to Wi-Fi network automatically during the boot.

If you do not want connect to Wi-Fi automatically, you have to add NOAUTO option to ifconfig_wlan0 config line in /etc/rc.conf configuration file

ifconfig_wlan0="WPA DHCP NOAUTO country CZ"

With the NOAUTO option enabled, you must manually bring up the wlan0 interface to connect to the configured Wi-Fi network.

 service netif start wlan0  

and when wlan0 interface is up and associated, you can initiate DHCP Client (dhclient) ask your DHCP Server for network information like IP settings, default route, DNS, etc.

 service dhclient restart wlan0  

To disconnect from Wi-Fi Access Point use following command

 service netif stop wlan0  

We are done. 

Wi-Fi should be working. Let's do some tests and start with default IWM driver.

Network Performance iwm/802.11g

As FreeBSD Wi-Fi Client is connected to my Acces Point, we can check network details of wlan0 interface with following command.

 root@dell5530:~ # ifconfig wlan0  
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500  
     options=0  
     ether 5c:87:9c:fa:47:72 
     inet 10.0.4.142 netmask 0xfffffc00 broadcast 10.0.7.255  
     groups: wlan  
     ssid PASNET channel 6 (2437 MHz 11g ht/20) bssid f0:21:e0:9d:e3:c6  
     regdomain ETSI country CZ authmode WPA2/802.11i privacy ON  
     deftxkey UNDEF AES-CCM 2:128-bit txpower 30 bmiss 10 scanvalid 60  
     protmode CTS wme roaming MANUAL roaming MANUAL  
     parent interface: iwm0  
     media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g  
     status: associated  
     nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>  

We can see that the Wi-Fi Client uses 2.4 GHz Frequency band and Wi-Fi Standard 802.11g (11g).

This is not optimal. 5 Ghz Frequency and Wi-Fi 5 (802.11ac) would be significantly better than 802.11g, but let's test network performance of 802.11g right now to compare it with other WiFi standards we will be able to achieve.

iperf3 (Throughput) upload test - iwm/802.11g

 root@dell5530:~ # iperf3 -c 192.168.8.11 -t60 -i5  
 Connecting to host iperf3.moji.fr, port 5201  
 [ 5] local 10.0.4.142 port 37659 connected to 45.147.210.189 port 5201  
 [ ID] Interval      Transfer   Bitrate     Retr Cwnd  
 [ 5]  0.00-5.08  sec 12.4 MBytes 20.4 Mbits/sec  0  253 KBytes      
 [ 5]  5.08-10.02 sec 13.1 MBytes 22.3 Mbits/sec  60  301 KBytes      
 [ 5] 10.02-15.00 sec 12.9 MBytes 21.7 Mbits/sec  0  327 KBytes      
 [ 5] 15.00-20.00 sec 13.4 MBytes 22.4 Mbits/sec  13  346 KBytes      
 [ 5] 20.00-25.00 sec 13.5 MBytes 22.6 Mbits/sec  6  330 KBytes      
 [ 5] 25.00-30.00 sec 13.5 MBytes 22.6 Mbits/sec  0  348 KBytes      
 [ 5] 30.00-35.00 sec 13.6 MBytes 22.9 Mbits/sec  29  387 KBytes      
 [ 5] 35.00-40.00 sec 13.6 MBytes 22.9 Mbits/sec  13  348 KBytes      
 [ 5] 40.00-45.01 sec 13.1 MBytes 22.0 Mbits/sec  0  368 KBytes      
 [ 5] 45.01-50.01 sec 13.2 MBytes 22.2 Mbits/sec  20  257 KBytes      
 [ 5] 50.01-55.01 sec 13.5 MBytes 22.6 Mbits/sec  0  336 KBytes      
 [ 5] 55.01-60.01 sec 12.9 MBytes 21.6 Mbits/sec  0  400 KBytes      
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.01 sec  159 MBytes 22.2 Mbits/sec 141      sender  
 [ 5]  0.00-60.15 sec  158 MBytes 22.1 Mbits/sec         receiver  
 iperf Done.  
 root@dell5530:~ #   

iperf3 (Throughput) dowload test - iwm/802.11g

 root@dell5530:~ # iperf3 -c 192.168.8.11 -i5 -R  
 Connecting to host iperf3.moji.fr, port 5201  
 Reverse mode, remote host iperf3.moji.fr is sending  
 [ 5] local 10.0.4.142 port 26718 connected to 45.147.210.189 port 5201  
 [ ID] Interval      Transfer   Bitrate  
 [ 5]  0.00-5.01  sec 13.6 MBytes 22.8 Mbits/sec           
 [ 5]  5.01-10.01 sec 13.5 MBytes 22.6 Mbits/sec           
 [ 5] 10.01-15.01 sec 12.9 MBytes 21.6 Mbits/sec           
 [ 5] 15.01-20.01 sec 13.6 MBytes 22.9 Mbits/sec           
 [ 5] 20.01-25.01 sec 12.6 MBytes 21.2 Mbits/sec           
 [ 5] 25.01-30.01 sec 13.5 MBytes 22.6 Mbits/sec           
 [ 5] 30.01-35.03 sec 13.5 MBytes 22.6 Mbits/sec           
 [ 5] 35.03-40.02 sec 12.4 MBytes 20.8 Mbits/sec           
 [ 5] 40.02-45.02 sec 13.0 MBytes 21.8 Mbits/sec           
 [ 5] 45.02-50.00 sec 12.5 MBytes 21.0 Mbits/sec           
 [ 5] 50.00-55.00 sec 13.0 MBytes 21.8 Mbits/sec           
 [ 5] 55.00-60.00 sec 12.8 MBytes 21.4 Mbits/sec           
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.11 sec  160 MBytes 22.3 Mbits/sec  4      sender  
 [ 5]  0.00-60.00 sec  157 MBytes 21.9 Mbits/sec         receiver  
 iperf Done.  
 root@dell5530:~ #   

iwm/802.11g Network Performance Results

Driver: iwm 
Standard: 802.11g
Frequency band: 2.4 GHz only
Max PHY rate: 54 Mbps (megabits per second)
Real-world speeds: Due to protocol overhead, interference, and environmental factors, actual throughput is typically around 20–25 Mbps.

In our test above we have seen 22 Mbps network throughput, which is aligned with typical real-world speeds of 802.11g Wi-Fi.

Network Performance iwm/802.11a

My Access Point support WiFi 5 (802.11ac) over 5 Ghz, so we can switch to it even iwm driver supports just 802.11a. It can be done by explicitly defining MAC address of 5 Ghz AP BSSID. How to get MAC address of AP 5 GHz BSSID is out of scope, but when we have it, we define it in /etc/wpa_supplicant.conf

 root@dell5530:~ # cat /etc/wpa_supplicant.conf    
 network={  
      ssid="PASNET"
      psk=2d6b358c711d7901e921f538a149253a02f6ead0869653c97110d2e7eba96a52  
      # MAC address of 5 GHz AP  
      bssid=f0:21:e0:9d:e3:c5  
 }  

When we are associated to 5 GHz AP BSSID, we have following ifconfig details ...

 root@dell5530:~ # ifconfig wlan0  
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500  
      options=0  
      ether 5c:87:9c:fa:47:72  
      inet 10.0.4.142 netmask 0xfffffc00 broadcast 10.0.7.255  
      groups: wlan  
      ssid PASNET channel 112 (5560 MHz 11a) bssid f0:21:e0:9d:e3:c5  
      regdomain ETSI country CZ authmode WPA2/802.11i privacy ON  
      deftxkey UNDEF AES-CCM 2:128-bit txpower 23 bmiss 10 mcastrate 6  
      mgmtrate 6 scanvalid 60 wme roaming MANUAL  
      parent interface: iwm0  
      media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11a  
      status: associated  
      nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>  

We can see that the Wi-Fi Client uses 5 GHz Frequency band and Wi-Fi Standard 802.11a (11a).

iperf3 (Throughput) upload test - iwm/802.11a

 dpasek@dell5530:~ $ iperf3 -c 192.168.8.11 -t60 -i5  
 Connecting to host 192.168.8.11, port 5201  
 [ 5] local 10.0.4.142 port 54210 connected to 192.168.8.11 port 5201  
 [ ID] Interval      Transfer   Bitrate     Retr Cwnd  
 [ 5]  0.00-5.01  sec 11.9 MBytes 19.9 Mbits/sec  0  350 KBytes      
 [ 5]  5.01-10.04 sec 11.9 MBytes 19.8 Mbits/sec  9  250 KBytes      
 [ 5] 10.04-15.01 sec 11.4 MBytes 19.2 Mbits/sec  0  312 KBytes      
 [ 5] 15.01-20.01 sec 10.2 MBytes 17.2 Mbits/sec  11  238 KBytes      
 [ 5] 20.01-25.01 sec 10.4 MBytes 17.4 Mbits/sec  0  296 KBytes      
 [ 5] 25.01-30.01 sec 9.88 MBytes 16.6 Mbits/sec  3  278 KBytes      
 [ 5] 30.01-35.20 sec 10.2 MBytes 16.6 Mbits/sec  2  270 KBytes      
 [ 5] 35.20-40.02 sec 9.88 MBytes 17.2 Mbits/sec  0  295 KBytes      
 [ 5] 40.02-45.02 sec 10.2 MBytes 17.2 Mbits/sec  2  308 KBytes      
 [ 5] 45.02-50.00 sec 10.4 MBytes 17.5 Mbits/sec  2  283 KBytes      
 [ 5] 50.00-55.00 sec 11.6 MBytes 19.5 Mbits/sec  0  300 KBytes      
 [ 5] 55.00-60.00 sec 12.2 MBytes 20.5 Mbits/sec  5  334 KBytes      
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.00 sec  130 MBytes 18.2 Mbits/sec  34      sender  
 [ 5]  0.00-60.12 sec  130 MBytes 18.1 Mbits/sec         receiver  
 iperf Done.  
 dpasek@dell5530:~ $   

iperf3 (Throughput) dowload test - iwm/802.11a

 dpasek@dell5530:~ $ iperf3 -c 192.168.8.11 -t60 -i5 -R  
 Connecting to host 192.168.8.11, port 5201  
 Reverse mode, remote host 192.168.8.11 is sending  
 [ 5] local 10.0.4.142 port 38377 connected to 192.168.8.11 port 5201  
 [ ID] Interval      Transfer   Bitrate  
 [ 5]  0.00-5.20  sec 11.6 MBytes 18.8 Mbits/sec           
 [ 5]  5.20-10.01 sec 10.0 MBytes 17.4 Mbits/sec           
 [ 5] 10.01-15.03 sec 10.1 MBytes 16.9 Mbits/sec           
 [ 5] 15.03-20.01 sec 6.62 MBytes 11.2 Mbits/sec           
 [ 5] 20.01-25.01 sec 9.12 MBytes 15.3 Mbits/sec           
 [ 5] 25.01-30.01 sec 9.75 MBytes 16.4 Mbits/sec           
 [ 5] 30.01-35.01 sec 10.2 MBytes 17.2 Mbits/sec           
 [ 5] 35.01-40.01 sec 8.75 MBytes 14.7 Mbits/sec           
 [ 5] 40.01-45.01 sec 10.8 MBytes 18.0 Mbits/sec           
 [ 5] 45.01-50.02 sec 9.00 MBytes 15.1 Mbits/sec           
 [ 5] 50.02-55.02 sec 10.8 MBytes 18.0 Mbits/sec           
 [ 5] 55.02-60.10 sec 9.12 MBytes 15.1 Mbits/sec           
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.11 sec  117 MBytes 16.3 Mbits/sec  0      sender  
 [ 5]  0.00-60.10 sec  116 MBytes 16.2 Mbits/sec         receiver  
 iperf Done.  
 dpasek@dell5530:~ $   

iwm/802.11a Network Performance Results

Driver: iwm 
Standard: 802.11a
Frequency band: 5 GHz only
Max PHY rate: 54 Mbps (megabits per second)
Real-world speeds: Due to protocol overhead, interference, and environmental factors, actual throughput is typically around 20–25 Mbps.

In our test above we have seen 16-18 Mbps network throughput, which is less then 802.11g Wi-Fi.

Network Performance iwlwifi/802.11g

Let's switch the driver from iwm to iwlwifi. It is done by following entries in /etc/rc.conf

devmatch_blocklist="if_iwm"
wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA DHCP" 

After reboot, we can check what WiFi interface is recognized by kernel during the boot ...

 root@dell5530:~ # dmesg | grep -i wireless  
 Intel(R) Wireless WiFi based driver for FreeBSD  
 iwm0: <Intel(R) Dual Band Wireless AC 9260> mem 0xed400000-0xed403fff at device 0.0 on pci2  
 Intel(R) Wireless WiFi based driver for FreeBSD  
 iwlwifi0: Detected Intel(R) Wireless-AC 9260 160MHz  
 root@dell5530:~ #   
We do see iwlwifi0 interface, so we use a Linux based iwlwifi driver. We already have wireless settings configured, so we can check what WiFi protocol is in use. Wi-Fi Client is connected to my 802.11ac Access Point, so we can check network details of wlan0 interface with following command.

 root@dell5530:~ # ifconfig wlan0  
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500  
      options=0  
      ether 5c:87:9c:fa:47:72  
      inet 10.0.4.142 netmask 0xfffffc00 broadcast 10.0.7.255  
      groups: wlan  
      ssid PASNET channel 6 (2437 MHz 11g) bssid f0:21:e0:e5:f3:84  
      regdomain FCC country US authmode WPA2/802.11i privacy ON  
      deftxkey UNDEF AES-CCM 3:128-bit txpower 30 bmiss 7 scanvalid 60  
      protmode CTS wme roaming MANUAL  
      parent interface: iwlwifi0  
      media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g  
      status: associated  
      nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>  
 root@dell5530:~ #   

It is connected with WiFi protocol 802.11g on 2.4 GHz.

iperf3 (Throughput) upload test - iwlwifi/802.11g

 root@dell5530:~ # iperf3 -c 192.168.8.11 -t60 -i5   
 Connecting to host 192.168.8.11, port 5201  
 [ 5] local 10.0.4.142 port 35562 connected to 192.168.8.11 port 5201  
 [ ID] Interval      Transfer   Bitrate     Retr Cwnd  
 [ 5]  0.00-5.01  sec 2.62 MBytes 4.39 Mbits/sec  0  63.7 KBytes      
 [ 5]  5.01-10.08 sec 2.62 MBytes 4.34 Mbits/sec  0  63.7 KBytes      
 [ 5] 10.08-15.31 sec 2.62 MBytes 4.21 Mbits/sec  0  63.7 KBytes      
 [ 5] 15.31-20.29 sec 2.50 MBytes 4.21 Mbits/sec  0  63.7 KBytes      
 [ 5] 20.29-25.01 sec 2.38 MBytes 4.22 Mbits/sec  0  63.7 KBytes      
 [ 5] 25.01-30.00 sec 2.50 MBytes 4.20 Mbits/sec  0  63.7 KBytes      
 [ 5] 30.00-35.06 sec 2.62 MBytes 4.35 Mbits/sec  0  63.7 KBytes      
 [ 5] 35.06-40.02 sec 2.50 MBytes 4.23 Mbits/sec  0  63.7 KBytes      
 [ 5] 40.02-45.08 sec 2.50 MBytes 4.14 Mbits/sec  0  63.7 KBytes      
 [ 5] 45.08-50.01 sec 2.50 MBytes 4.26 Mbits/sec  0  63.7 KBytes      
 [ 5] 50.01-55.00 sec 2.50 MBytes 4.20 Mbits/sec  0  63.7 KBytes      
 [ 5] 55.00-60.08 sec 2.50 MBytes 4.13 Mbits/sec  0  63.7 KBytes      
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.08 sec 30.4 MBytes 4.24 Mbits/sec  0      sender  
 [ 5]  0.00-60.10 sec 30.4 MBytes 4.24 Mbits/sec         receiver  
 iperf Done.  
 root@dell5530:~ #   

iperf3 (Throughput) download test - iwlwifi/802.11g

 root@dell5530:~ # iperf3 -c 192.168.8.11 -t60 -i5 -R  
 Connecting to host 192.168.8.11, port 5201  
 Reverse mode, remote host 192.168.8.11 is sending  
 [ 5] local 10.0.4.142 port 42552 connected to 192.168.8.11 port 5201  
 [ ID] Interval      Transfer   Bitrate  
 [ 5]  0.00-5.00  sec 9.00 MBytes 15.1 Mbits/sec           
 [ 5]  5.00-10.00 sec 9.25 MBytes 15.5 Mbits/sec           
 [ 5] 10.00-15.00 sec 9.38 MBytes 15.7 Mbits/sec           
 [ 5] 15.00-20.23 sec 9.75 MBytes 15.6 Mbits/sec           
 [ 5] 20.23-25.30 sec 9.25 MBytes 15.3 Mbits/sec           
 [ 5] 25.30-30.29 sec 9.50 MBytes 16.0 Mbits/sec           
 [ 5] 30.29-35.00 sec 8.38 MBytes 14.9 Mbits/sec           
 [ 5] 35.00-40.31 sec 9.38 MBytes 14.8 Mbits/sec           
 [ 5] 40.31-45.03 sec 8.25 MBytes 14.7 Mbits/sec           
 [ 5] 45.03-50.10 sec 9.00 MBytes 14.9 Mbits/sec           
 [ 5] 50.10-55.00 sec 8.88 MBytes 15.2 Mbits/sec           
 [ 5] 55.00-60.07 sec 9.00 MBytes 14.9 Mbits/sec           
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.08 sec  110 MBytes 15.3 Mbits/sec  0      sender  
 [ 5]  0.00-60.07 sec  109 MBytes 15.2 Mbits/sec         receiver  
 iperf Done.  
 root@dell5530:~ #   

iwlwifi/802.11g Network Performance Results

Driver: iwlwifi
Standard: 802.11g
Frequency band: 2.4 GHz only
Max PHY rate: 54 Mbps (megabits per second)
Real-world speeds: Due to protocol overhead, interference, and environmental factors, actual throughput is typically around 20–25 Mbps.

In our test above we have seen 4 Mbps network upload and 15 Mbps download throughput, which is lower performance than typical real-world speeds of 802.11g Wi-Fi, especially in upload direction,  and less then throughput achievable with native iwn driver.

Network Performance iwlwifi/802.11a

My Access Point support WiFi 5 (802.11ac) over 5 Ghz, so we can switch to it. It can be done by explicitly defining MAC address of 5 Ghz AP BSSID. How to get MAC address of AP 5 GHz BSSID is out of scope, but when we have it, we define it in /etc/wpa_supplicant.conf

 root@dell5530:~ # cat /etc/wpa_supplicant.conf    
 network={  
      ssid="PASNET"
      psk=2d6b358c711d7901e921f538a149253a02f6ead0869653c97110d2e7eba96a52  
      # MAC address of 5 GHz AP  
      bssid=f0:21:e0:9d:e3:c5  
 }  

When we are associated to 5 GHz AP BSSID, we have following ifconfig details ...

 dpasek@dell5530:~ $ ifconfig wlan0  
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500  
      options=0  
      ether 5c:87:9c:fa:47:72  
      inet 10.0.4.142 netmask 0xfffffc00 broadcast 10.0.7.255  
      groups: wlan  
      ssid PASNET channel 36 (5180 MHz 11a) bssid f0:21:e0:9d:e3:c5  
      regdomain FCC country US authmode WPA2/802.11i privacy ON  
      deftxkey UNDEF AES-CCM 2:128-bit txpower 17 bmiss 7 mcastrate 6  
      mgmtrate 6 scanvalid 60 wme roaming MANUAL  
      parent interface: iwlwifi0  
      media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11a  
      status: associated  
      nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>  
 dpasek@dell5530:~ $   

We see that the Wi-Fi Client uses 5 GHz Frequency band and Wi-Fi Standard 802.11a (11a).

iperf3 (Throughput) upload test - iwlwifi/802.11a

 dpasek@dell5530:~ $ iperf3 -c 192.168.8.11 -t60 -i5  
 Connecting to host 192.168.8.11, port 5201  
 [ 5] local 10.0.4.142 port 25207 connected to 192.168.8.11 port 5201  
 [ ID] Interval      Transfer   Bitrate     Retr Cwnd  
 [ 5]  0.00-5.05  sec 2.38 MBytes 3.95 Mbits/sec  0  99.0 KBytes      
 [ 5]  5.05-10.07 sec 2.50 MBytes 4.17 Mbits/sec  0  99.0 KBytes      
 [ 5] 10.07-15.01 sec 2.50 MBytes 4.25 Mbits/sec  0  99.0 KBytes      
 [ 5] 15.01-20.00 sec 2.38 MBytes 3.99 Mbits/sec  0  99.0 KBytes      
 [ 5] 20.00-25.03 sec 2.62 MBytes 4.38 Mbits/sec  0  99.0 KBytes      
 [ 5] 25.03-30.30 sec 2.75 MBytes 4.38 Mbits/sec  0  99.0 KBytes      
 [ 5] 30.30-35.00 sec 2.00 MBytes 3.57 Mbits/sec  0  99.0 KBytes      
 [ 5] 35.00-40.31 sec 2.62 MBytes 4.15 Mbits/sec  0  99.0 KBytes      
 [ 5] 40.31-45.29 sec 2.25 MBytes 3.79 Mbits/sec  0  99.0 KBytes      
 [ 5] 45.29-50.29 sec 2.25 MBytes 3.78 Mbits/sec  0  99.0 KBytes      
 [ 5] 50.29-55.13 sec 2.50 MBytes 4.33 Mbits/sec  0  99.0 KBytes      
 [ 5] 55.13-60.31 sec 2.62 MBytes 4.26 Mbits/sec  0  99.0 KBytes      
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.31 sec 29.4 MBytes 4.09 Mbits/sec  0      sender  
 [ 5]  0.00-60.49 sec 29.4 MBytes 4.07 Mbits/sec         receiver  
 iperf Done.  

iperf3 (Throughput) download test - iwlwifi/802.11a

 dpasek@dell5530:~ $ iperf3 -c 192.168.8.11 -t60 -i5 -R  
 Connecting to host 192.168.8.11, port 5201  
 Reverse mode, remote host 192.168.8.11 is sending  
 [ 5] local 10.0.4.142 port 54492 connected to 192.168.8.11 port 5201  
 [ ID] Interval      Transfer   Bitrate  
 [ 5]  0.00-5.25  sec 13.9 MBytes 22.2 Mbits/sec           
 [ 5]  5.25-10.03 sec 12.6 MBytes 22.2 Mbits/sec           
 [ 5] 10.03-15.10 sec 13.5 MBytes 22.3 Mbits/sec           
 [ 5] 15.10-20.03 sec 13.1 MBytes 22.3 Mbits/sec           
 [ 5] 20.03-25.25 sec 13.8 MBytes 22.1 Mbits/sec           
 [ 5] 25.25-30.00 sec 12.6 MBytes 22.3 Mbits/sec           
 [ 5] 30.00-35.00 sec 13.2 MBytes 22.2 Mbits/sec           
 [ 5] 35.00-40.00 sec 10.8 MBytes 18.0 Mbits/sec           
 [ 5] 40.00-45.08 sec 10.1 MBytes 16.7 Mbits/sec           
 [ 5] 45.08-50.11 sec 13.2 MBytes 22.1 Mbits/sec           
 [ 5] 50.11-55.00 sec 11.6 MBytes 19.9 Mbits/sec           
 [ 5] 55.00-60.00 sec 12.8 MBytes 21.4 Mbits/sec           
 - - - - - - - - - - - - - - - - - - - - - - - - -  
 [ ID] Interval      Transfer   Bitrate     Retr  
 [ 5]  0.00-60.00 sec  152 MBytes 21.3 Mbits/sec  0      sender  
 [ 5]  0.00-60.00 sec  151 MBytes 21.1 Mbits/sec         receiver  
 iperf Done.  

iwlwifi/802.11a Network Performance Results

Driver: iwlwifi
Standard: 802.11a
Frequency band: 5 GHz only
Max PHY rate: 54 Mbps (megabits per second)
Real-world speeds: Due to protocol overhead, interference, and environmental factors, actual throughput is typically around 20–25 Mbps.

In our test above we have seen 4 Mbps network upload and 21 Mbps download throughput, which is lower performance than typical real-world speeds of 802.11g Wi-Fi, especially in upload direction, and less then throughput achievable with native iwn driver.

Conclusion

The native FreeBSD iwm driver supports 2.4 GHz (802.11g) and 5 GHz (802.11a) and is capable of achieving approximately 20 Mbps for both download and upload.

The FreeBSD port of the Intel-developed iwlwifi driver for Linux currently also operates only over 2.4 GHz (802.11g) and 5 GHz (802.11a), and it suffers from performance issues, with upload speeds reaching only around 4 Mbps, and download speeds ranging between 15 and 21 Mbps. The driver does not support Wi-Fi 5 (802.11ac), and even for 802.11g/a, it is less stable than the native iwm driver. As a result, there’s little practical benefit to using it in its current state.

UPDATE 2025-07-03: 

My WiFi card - Intel Wi-Fi 5 (802.11ac) Wireless-AC 9260 [Thunder Peak] has a 9000-series chipset.

The iwlwifi driver supports PCIe devices from the mvm sub-driver with the following chipset generations:

       •   7000
       •   8000
       •   9000     << my WiFi card
       •   22000   << 802.11ac should work on this chipset
       •   AX210 << 802.11ac should work on this chipset  
 
However, when I read the iwlwifi man page again there is documented following bug ... 
"BUGS: While iwlwifi supports 802.11a/b/g/n/ac/ax/be modes, the compatibility code  currently only  supports 802.11a/b/g/n/ac modes. 802.11n/ac is only available on the 22000 and later chipset generations.  802.11ax/be and 6Ghz support are planned.
I initially missed it, but tests have confirmed that 802.11ac is not working with my Wi-Fi card. I double-checked that my card (Intel Wireless-AC 9260) supports 802.11ac on Linux, so this is likely something that could be improved or ported from Linux to FreeBSD in the future. Since the driver authors have acknowledged it as a bug, there's a good chance that 802.11ac support may eventually be implemented. 
 

No comments:

Post a Comment