LINUXKPI_WLAN(4)

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.