The cfg80211 subsystem

Abstract

cfg80211 is the configuration API for 802.11 devices in Linux. It bridges userspace and drivers, and offers some utility functionality associated with 802.11. cfg80211 must, directly or indirectly via mac80211, be used by all modern wireless drivers in Linux, so that they offer a consistent API through nl80211. For backward compatibility, cfg80211 also offers wireless extensions to userspace, but hides them from drivers completely.

Additionally, cfg80211 contains code to help enforce regulatory spectrum use restrictions.


Table of Contents

1. Device registration
enum ieee80211_channel_flags — channel flags
struct ieee80211_channel — channel definition
enum ieee80211_rate_flags — rate flags
struct ieee80211_rate — bitrate definition
struct ieee80211_sta_ht_cap — STA's HT capabilities
struct ieee80211_supported_band — frequency band definition
enum cfg80211_signal_type — signal type
enum wiphy_params_flags — set_wiphy_params bitfield values
enum wiphy_flags — wiphy capability flags
struct wiphy — wireless hardware description
struct wireless_dev — wireless device state
wiphy_new — create a new wiphy for use with cfg80211
wiphy_register — register a wiphy with cfg80211
wiphy_unregister — deregister a wiphy from cfg80211
wiphy_free — free wiphy
wiphy_name — get wiphy name
wiphy_dev — get wiphy dev pointer
wiphy_priv — return priv from wiphy
priv_to_wiphy — return the wiphy containing the priv
set_wiphy_dev — set device pointer for wiphy
wdev_priv — return wiphy priv from wireless_dev
struct ieee80211_iface_limit — limit on certain interface types
struct ieee80211_iface_combination — possible interface combination
cfg80211_check_combinations — check interface combinations
2. Actions and configuration
struct cfg80211_ops — backend description for wireless configuration
struct vif_params — describes virtual interface parameters
struct key_params — key information
enum survey_info_flags — survey information flags
struct survey_info — channel survey response
struct cfg80211_beacon_data — beacon data
struct cfg80211_ap_settings — AP configuration
struct station_parameters — station parameters
enum rate_info_flags — bitrate info flags
struct rate_info — bitrate information
struct station_info — station information
enum monitor_flags — monitor flags
enum mpath_info_flags — mesh path information flags
struct mpath_info — mesh path information
struct bss_parameters — BSS parameters
struct ieee80211_txq_params — TX queue parameters
struct cfg80211_crypto_settings — Crypto settings
struct cfg80211_auth_request — Authentication request data
struct cfg80211_assoc_request — (Re)Association request data
struct cfg80211_deauth_request — Deauthentication request data
struct cfg80211_disassoc_request — Disassociation request data
struct cfg80211_ibss_params — IBSS parameters
struct cfg80211_connect_params — Connection parameters
struct cfg80211_pmksa — PMK Security Association
cfg80211_rx_mlme_mgmt — notification of processed MLME management frame
cfg80211_auth_timeout — notification of timed out authentication
cfg80211_rx_assoc_resp — notification of processed association response
cfg80211_assoc_timeout — notification of timed out association
cfg80211_tx_mlme_mgmt — notification of transmitted deauth/disassoc frame
cfg80211_ibss_joined — notify cfg80211 that device joined an IBSS
cfg80211_connect_result — notify cfg80211 of connection result
cfg80211_connect_bss — notify cfg80211 of connection result
cfg80211_roamed — notify cfg80211 of roaming
cfg80211_disconnected — notify cfg80211 that connection was dropped
cfg80211_ready_on_channel — notification of remain_on_channel start
cfg80211_remain_on_channel_expired — remain_on_channel duration expired
cfg80211_new_sta — notify userspace about station
cfg80211_rx_mgmt — notification of received, unprocessed management frame
cfg80211_mgmt_tx_status — notification of TX status for management frame
cfg80211_cqm_rssi_notify — connection quality monitoring rssi event
cfg80211_cqm_pktloss_notify — notify userspace about packetloss to peer
cfg80211_michael_mic_failure — notification of Michael MIC failure (TKIP)
3. Scanning and BSS list handling
struct cfg80211_ssid — SSID description
struct cfg80211_scan_request — scan request description
cfg80211_scan_done — notify that scan finished
struct cfg80211_bss — BSS description
struct cfg80211_inform_bss — BSS inform data
cfg80211_inform_bss_frame_data — inform cfg80211 of a received BSS frame
cfg80211_inform_bss_data — inform cfg80211 of a new BSS
cfg80211_unlink_bss — unlink BSS from internal data structures
cfg80211_find_ie — find information element in data
ieee80211_bss_get_ie — find IE with given ID
4. Utility functions
ieee80211_channel_to_frequency — convert channel number to frequency
ieee80211_frequency_to_channel — convert frequency to channel number
ieee80211_get_channel — get channel struct from wiphy for specified frequency
ieee80211_get_response_rate — get basic rate for a given rate
ieee80211_hdrlen — get header length in bytes from frame control
ieee80211_get_hdrlen_from_skb — get header length from data
struct ieee80211_radiotap_iterator — tracks walk thru present radiotap args
5. Data path helpers
ieee80211_data_to_8023 — convert an 802.11 data frame to 802.3
ieee80211_data_from_8023 — convert an 802.3 frame to 802.11
ieee80211_amsdu_to_8023s — decode an IEEE 802.11n A-MSDU frame
cfg80211_classify8021d — determine the 802.1p/1d tag for a data frame
6. Regulatory enforcement infrastructure
regulatory_hint — driver hint to the wireless core a regulatory domain
wiphy_apply_custom_regulatory — apply a custom driver regulatory domain
freq_reg_info — get regulatory information for the given frequency
7. RFkill integration
wiphy_rfkill_set_hw_state — notify cfg80211 about hw block state
wiphy_rfkill_start_polling — start polling rfkill
wiphy_rfkill_stop_polling — stop polling rfkill
8. Test mode
cfg80211_testmode_alloc_reply_skb — allocate testmode reply
cfg80211_testmode_reply — send the reply skb
cfg80211_testmode_alloc_event_skb — allocate testmode event
cfg80211_testmode_event — send the event