LINUXKPI_WLAN(4)
π LINUXKPI_WLAN β LinuxKPI 802.11 support, bestie edition
okay so real talk: this page is from the Kernel Interfaces Manual (section 4, kernel interfaces, iykyk), and it's all about linuxkpi_wlan. Buckle up, it's actually kind of iconic.
β¨ NAME β¨
linuxkpi_wlan β LinuxKPI 802.11 support π¦
πΈ DESCRIPTION πΈ
The linuxkpi_wlan kernel module is literally the matchmaker π between two worlds: it provides an 802.11 compat layer that translates between Linux 802.11 drivers and the native net8011 wireless stack. Right now it supports mac80211 based drivers. Parts of cfg80211 exist, but ngl there's no code for net80211 to drive it yet β so don't get your hopes up there. π
Here's the current wlanmode operating modes tea β β linuxkpi_wlan supports:
staβ client station in an infrastructure bss (IBSS). yes bestie, that's the one.
Compat code for 802.11n (HT) and 802.11ac (VHT) is implemented, but heads up: support may vary for different drivers because of different KPI usage. no cap, it's a per-driver situation. π
Crypto support for hardware acceleration needs to be enabled using the compat.linuxkpi.80211.hw_crypto tunable. The cipher suites that are supported:
tkipβ support forwlan_tkip(4)has to be manually enabled using thecompat.linuxkpi.80211.tkiptunable.ccmpβ support forwlan_ccmp(4)is available. β¨gcmpβ support forwlan_gcmp(4)is available. β¨
Further cipher suites will be implemented as soon as net80211(4) grows support. And yes, while it would be possible to implement wlan_wep(4) support, it was decided not to do so, given that Wired Equivalent Privacy (WEP) has been deprecated since 2004. π like... 2004. let it rest.
The list of supported drivers includes iwlwifi(4), rtw88(4), and rtw89(4). lineup goes hard. π
π 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. Default0.compat.linuxkpi.80211.tkipβ turn on support forwlan_tkip(4)offloading. Default0.
And the linuxkpi_wlan module also supports these sysctl(8) variables:
compat.linuxkpi.80211.debugβ if the kernel is compiled withIEEE80211_DEBUG, orLINUXKPI_DEBUG_80211is manually enabled, this sysctl is a bitmask to turn on individual debug messages. For the details, peepsys/compat/linuxkpi/common/src/linux_80211.h. πcompat.linuxkpi.80211.IF.dump_stasβ print statistics for a given, associatedwlan(4)interface; typically IF would bewlan0. π«Άcompat.linuxkpi.80211.IF.dump_stas_queuesβ likecompat.linuxkpi.80211.IF.dump_stas, but it also prints queue statistics. This sysctl is 'hidden' and normally only needed for debugging purposes. π
fr fr, that dump_stas_queues one? debugging only. don't be weird about it.
π§ SEE ALSO π§
iwlwifi(4), linuxkpi(4), rtw88(4), rtw89(4), wlan(4)
go read them, they're all serving. π
π 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. glow-up arc complete. β
π AUTHORS π
LinuxKPI 802.11 support was developed by Bjoern A. Zeeb under sponsorship from the FreeBSD Foundation. absolute main character energy, we love to see it. π«Ά
that's the whole page, bestie β this one shipped in the Debian build, dated December 28, 2025, page LINUXKPI_WLAN(4). mwah πβ¨
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π the page's license: BSD-2-Clause
- Copyright (c) 2025 The FreeBSD Foundation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms