Reference

linuxkpi_wlan(4)

LinuxKPI 802.11 support

NAME

linuxkpi_wlan – LinuxKPI 802.11 support

DESCRIPTION

The linuxkpi_wlan kernel module provides an 802.11 compat layer to translate between Linux 802.11 drivers and the native net8011 wireless stack. It currently supports mac80211 based drivers. Parts of the cfg80211 exist but there is no code for net80211 to drive it.

linuxkpi_wlan currently supports the following wlanmode operating modes:

sta

client station in an infrastructure bss (IBSS).

Compat code for 802.11n (HT) and 802.11ac (VHT) is implemented but support may vary for different drivers due to different KPI usage.

Crypto support for hardware acceleration needs to be enabled using the compat.linuxkpi.80211.hw_crypto tunable. The following cipher suites are supported:

tkip

Support for wlan_tkip(4) has to be manually enabled using the compat.linuxkpi.80211.tkip tunable.

ccmp

Support for wlan_ccmp(4) is available.

gcmp

Support for wlan_gcmp(4) is available.

Further cipher suites will be implemented as soon as net80211(4) grows support. While it would be possible to implement wlan_wep(4) support, it was decided not to do so given Wired Equivalent Privacy (WEP) has been deprecated since 2004.

The list of supported drivers includes iwlwifi(4), rtw88(4), and rtw89(4).

SYSCTL VARIABLES AND LOADER TUNABLES

The linuxkpi_wlan module supports the following loader(8) tunable and read-only sysctl(8) variables:

compat.linuxkpi.80211.hw_crypto

Turn on hardware crypto offload support. Default ‘0’.

compat.linuxkpi.80211.tkip

Turn on support for wlan_tkip(4) offloading. Default ‘0’.

The linuxkpi_wlan module supports the following sysctl(8) variables:

compat.linuxkpi.80211.debug

If the kernel is compiled with IEEE80211_DEBUG or LINUXKPI_DEBUG_80211 is manually enabled, the sysctl is a bitmask to turn on individual debug messages. See sys/compat/linuxkpi/common/src/linux_80211.h for details.

compat.linuxkpi.80211.suspend_type

For the time being this variable allows suspend/resume to be enabled/disabled. The default is 1 which enables normal suspend/resume. To disable any suspend/resume set it to 0. Other values may enable specific features in the future.

compat.linuxkpi.80211.IF.dump_stas

Print statistics for a given, associated wlan(4) interface; typically IF would be wlan0.

compat.linuxkpi.80211.IF.dump_stas_queues

Like compat.linuxkpi.80211.IF.dump_stas but also print queue statistics. This sysctl is ‘hidden’ and normally only needed for debugging purposes.

SEE ALSO

iwlwifi(4), linuxkpi(4), rtw88(4), rtw89(4), wlan(4)

HISTORY

The linuxkpi_wlan module first appeared in FreeBSD 13.1. Support for IEEE 802.11n and 802.11ac in linuxkpi_wlan first appeared in FreeBSD 14.3.

AUTHORS

LinuxKPI 802.11 support was developed by Bjoern A. Zeeb under sponsorship from the FreeBSD Foundation.

History