ENUM NL80211_FEATURE_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay bestie, welcome to the enum nl80211_feature_flags(9) page from the Kernel API Manual β€” aka the ultimate device/driver features vibe check. πŸ’… This enum is literally a collection of "hey, my hardware can do this" flags, and we're gonna go through every single one. No cap.


πŸ¦‹ SYNOPSIS πŸ¦‹

Here's the whole enum, copied exactly so you can admire the names:

       enum nl80211_feature_flags {
           NL80211_FEATURE_SK_TX_STATUS ,
           NL80211_FEATURE_HT_IBSS ,
           NL80211_FEATURE_INACTIVITY_TIMER ,
           NL80211_FEATURE_CELL_BASE_REG_HINTS ,
           NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL ,
           NL80211_FEATURE_SAE ,
           NL80211_FEATURE_LOW_PRIORITY_SCAN ,
           NL80211_FEATURE_SCAN_FLUSH ,
           NL80211_FEATURE_AP_SCAN ,
           NL80211_FEATURE_VIF_TXPOWER ,
           NL80211_FEATURE_NEED_OBSS_SCAN ,
           NL80211_FEATURE_P2P_GO_CTWIN ,
           NL80211_FEATURE_P2P_GO_OPPPS ,
           NL80211_FEATURE_ADVERTISE_CHAN_LIMITS ,
           NL80211_FEATURE_FULL_AP_CLIENT_STATE ,
           NL80211_FEATURE_USERSPACE_MPM ,
           NL80211_FEATURE_ACTIVE_MONITOR ,
           NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE ,
           NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES ,
           NL80211_FEATURE_WFA_TPC_IE_IN_PROBES ,
           NL80211_FEATURE_QUIET ,
           NL80211_FEATURE_TX_POWER_INSERTION ,
           NL80211_FEATURE_ACKTO_ESTIMATION ,
           NL80211_FEATURE_STATIC_SMPS ,
           NL80211_FEATURE_DYNAMIC_SMPS ,
           NL80211_FEATURE_SUPPORTS_WMM_ADMISSION ,
           NL80211_FEATURE_MAC_ON_CREATE ,
           NL80211_FEATURE_TDLS_CHANNEL_SWITCH ,
           NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR ,
           NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR ,
           NL80211_FEATURE_ND_RANDOM_MAC_ADDR

       };

πŸŽ€ Constants πŸŽ€

  • NL80211_FEATURE_SK_TX_STATUS β€” πŸ’Œ This driver supports reflecting back TX status to the socket error queue when requested with the socket option. It's giving "receipts, but for packets."
  • NL80211_FEATURE_HT_IBSS β€” 🌸 This driver supports IBSS with HT datarates. Fancy mesh energy, slay.
  • NL80211_FEATURE_INACTIVITY_TIMER β€” ⏰ This driver takes care of freeing up the connected inactive stations in AP mode. It's the cleanup bestie we all need.
  • NL80211_FEATURE_CELL_BASE_REG_HINTS β€” πŸ“‘ This driver has been tested to work properly to support receiving regulatory hints from cellular base stations. Tested and trusted, no cap.
  • NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL β€” πŸ’€ (no longer available, only here to reserve the value for API/ABI compatibility) β€” so it's basically a historical icon, not a usable feature.
  • NL80211_FEATURE_SAE β€” πŸ” This driver supports simultaneous authentication of equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station mode. Secure handshake main character energy.
  • NL80211_FEATURE_LOW_PRIORITY_SCAN β€” πŸ¦‹ This driver supports low priority scan. Scanning, but make it chill.
  • NL80211_FEATURE_SCAN_FLUSH β€” 🧹 Scan flush is supported. Clean slate vibes.
  • NL80211_FEATURE_AP_SCAN β€” πŸ“Ά Support scanning using an AP vif. AP mode said "I can scan too, actually."
  • NL80211_FEATURE_VIF_TXPOWER β€” 🎚️ The driver supports per-vif TX power setting. Per-interface power control, we love to see it.
  • NL80211_FEATURE_NEED_OBSS_SCAN β€” πŸ‘€ The driver expects userspace to perform OBSS scans and generate 20/40 BSS coex reports. This flag is used only for drivers implementing the CONNECT API; for AUTH/ASSOC it is implied. Big "you handle the scanning, I'll handle the connection" energy.
  • NL80211_FEATURE_P2P_GO_CTWIN β€” πŸͺŸ P2P GO implementation supports CT Window setting. Window management, but make it peer-to-peer.
  • NL80211_FEATURE_P2P_GO_OPPPS β€” 😴 P2P GO implementation supports opportunistic powersave. Saving power when the moment is right.
  • NL80211_FEATURE_ADVERTISE_CHAN_LIMITS β€” πŸ“» cfg80211 advertises channel limits (HT40, VHT 80/160 MHz) if this flag is set. It's giving "here are the bandwidth boundaries, bestie."
  • NL80211_FEATURE_FULL_AP_CLIENT_STATE β€” 🫢 The driver supports full state transitions for AP clients. Without this flag (and if the driver doesn't have the AP SME in the device) the driver supports adding stations only when they're associated and adds them in associated state (to later be transitioned into authorized). With this flag they should be added before even sending the authentication reply and then transitioned into authenticated, associated and authorized states using station flags. Note that even for drivers that support this, the default is to add stations in authenticated/associated state, so to add unauthenticated stations the authenticated/associated bits have to be set in the mask. Lowkey a lot, but every detail matters. πŸ’…
  • NL80211_FEATURE_USERSPACE_MPM β€” 🧚 This driver supports a userspace Mesh Peering Management entity which may be implemented by registering for beacons or NL80211_CMD_NEW_PEER_CANDIDATE events. The mesh beacon is still generated by the driver. Userspace does the peering management, driver still handles the beacon.
  • NL80211_FEATURE_ACTIVE_MONITOR β€” πŸ›°οΈ This driver supports an active monitor interface. An active monitor interface behaves like a normal monitor interface, but gets added to the driver. It ensures that incoming unicast packets directed at the configured interface address get ACKed. Monitor mode, but with extra accountability.
  • NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE β€” 🌈 This driver supports dynamic channel bandwidth change (e.g., HT 20 <-> 40 MHz channel) during the lifetime of a BSS. Bandwidth said "I contain multitudes."
  • NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES β€” πŸŽ€ This device adds a DS Parameter Set IE to probe requests. Probe requests, but accessorized.
  • NL80211_FEATURE_WFA_TPC_IE_IN_PROBES β€” πŸ“¨ This device adds a WFA TPC Report IE to probe requests. Another little IE moment.
  • NL80211_FEATURE_QUIET β€” 🀫 This device, in client mode, supports Quiet Period requests sent to it by an AP. Client mode said "I can be quiet on command."
  • NL80211_FEATURE_TX_POWER_INSERTION β€” πŸ”‹ This device is capable of inserting the current tx power value into the TPC Report IE in the spectrum management TPC Report action frame, and in the Radio Measurement Link Measurement Report action frame. Power value insertion, very demure, very mindful.
  • NL80211_FEATURE_ACKTO_ESTIMATION β€” ⏱️ This driver supports dynamic ACK timeout estimation (dynack). NL80211_ATTR_WIPHY_DYN_ACK flag attribute is used to enable dynack. Timeout estimation, but make it adaptive.
  • NL80211_FEATURE_STATIC_SMPS β€” πŸ”Œ Device supports static spatial multiplexing powersave, ie. can turn off all but one chain even on HT connections that should be using more chains. It's giving "one chain is enough, actually."
  • NL80211_FEATURE_DYNAMIC_SMPS β€” ⚑ Device supports dynamic spatial multiplexing powersave, ie. can turn off all but one chain and then wake the rest up as required after, for example, rts/cts handshake. Sleepy chains that wake up when needed, iconic.
  • NL80211_FEATURE_SUPPORTS_WMM_ADMISSION β€” πŸ“ the device supports setting up WMM TSPEC sessions (TID aka TSID 0-7) with the NL80211_CMD_ADD_TX_TS command. Standard IEEE 802.11 TSPEC setup is not yet supported, it needs to be able to handle Block-Ack agreements and other things. So: WMM admission yes, full standard TSPEC setup not yet.
  • NL80211_FEATURE_MAC_ON_CREATE β€” πŸͺͺ Device supports configuring the vif's MAC address upon creation. See 'macaddr' field in the vif_params (cfg80211.h). Set the MAC at creation time, slay.
  • NL80211_FEATURE_TDLS_CHANNEL_SWITCH β€” πŸ”€ Driver supports channel switching when operating as a TDLS peer. Channel switch, but peer-to-peer.
  • NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR β€” 🎭 This device/driver supports using a random MAC address during scan (if the device is unassociated); the NL80211_SCAN_FLAG_RANDOM_ADDR flag may be set for scans and the MAC address mask/value will be used. Privacy era.
  • NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR β€” πŸŒ€ This device/driver supports using a random MAC address for every scan iteration during scheduled scan (while not associated), the NL80211_SCAN_FLAG_RANDOM_ADDR may be set for scheduled scan and the MAC address mask/value will be used. Every iteration gets its own random-MAC moment.
  • NL80211_FEATURE_ND_RANDOM_MAC_ADDR β€” πŸŒ™ This device/driver supports using a random MAC address for every scan iteration during "net detect", i.e. scan in unassociated WoWLAN, the NL80211_SCAN_FLAG_RANDOM_ADDR may be set for scheduled scan and the MAC address mask/value will be used. Net detect scans said "random MAC for every iteration, periodt."

Okay so this section is basically the group chat of the whole wireless doc universe β€” every page that's friends with this enum lives here. πŸ’– All of them are section 9 pages, and they all come from the kernel file ./include/uapi/linux/nl80211.h, which is the source of truth for literally everything below. No cap.

  • Station handling(9)
  • Frame transmission/registration support(9)
  • Virtual interface / concurrency capabilities(9)
  • packet coalesce support(9)
  • WPA/WPA2 EAPOL handshake offload(9)
  • FILS shared key authentication offload(9)
  • SAE authentication offload(9)
  • VLAN offload support for setting group keys and binding STAs to VLANs(9)
  • TID configuration(9)
  • FILS shared key crypto offload(9)
  • Multi-Link Operation(9)
  • OWE DH IE handling offload(9)
  • enum nl80211_commands(9)
  • enum nl80211_attrs(9)
  • enum nl80211_iftype(9)
  • enum nl80211_sta_flags(9)
  • enum nl80211_sta_p2p_ps_status(9)
  • struct nl80211_sta_flag_update(9)
  • enum nl80211_he_gi(9)
  • enum nl80211_he_ltf(9)
  • enum nl80211_he_ru_alloc(9)
  • enum nl80211_eht_gi(9)
  • enum nl80211_eht_ltf(9)
  • enum nl80211_eht_ru_alloc(9)
  • enum nl80211_rate_info(9)
  • enum nl80211_sta_bss_param(9)
  • enum nl80211_sta_info(9)
  • enum nl80211_tid_stats(9)
  • enum nl80211_txq_stats(9)
  • enum nl80211_mpath_flags(9)
  • enum nl80211_mpath_info(9)
  • enum nl80211_band_iftype_attr(9)
  • enum nl80211_band_attr(9)
  • enum nl80211_nan_phy_cap_attr(9)
  • enum nl80211_wmm_rule(9)
  • enum nl80211_frequency_attr(9)
  • enum nl80211_bitrate_attr(9)
  • enum nl80211_reg_initiator(9)
  • enum nl80211_reg_type(9)
  • enum nl80211_reg_rule_attr(9)
  • enum nl80211_sched_scan_match_attr(9)
  • enum nl80211_reg_rule_flags(9)
  • enum nl80211_dfs_regions(9)
  • enum nl80211_user_reg_hint_type(9)
  • enum nl80211_survey_info(9)
  • enum nl80211_mntr_flags(9)
  • enum nl80211_mesh_power_mode(9)
  • enum nl80211_meshconf_params(9)
  • enum nl80211_mesh_setup_params(9)
  • enum nl80211_txq_attr(9)
  • enum nl80211_channel_type(9)
  • enum nl80211_key_mode(9)
  • enum nl80211_chan_width(9)
  • enum nl80211_bss_scan_width(9)
  • enum nl80211_bss_use_for(9)
  • enum nl80211_bss_cannot_use_reasons(9)
  • enum nl80211_bss(9)
  • enum nl80211_bss_status(9)
  • enum nl80211_auth_type(9)
  • enum nl80211_key_type(9)
  • enum nl80211_mfp(9)
  • enum nl80211_key_default_types(9)
  • enum nl80211_key_attributes(9)
  • enum nl80211_tx_rate_attributes(9)
  • struct nl80211_txrate_vht(9)
  • struct nl80211_txrate_he(9)
  • struct nl80211_txrate_eht(9)
  • enum nl80211_band(9)
  • enum nl80211_ps_state(9)
  • enum nl80211_attr_cqm(9)
  • enum nl80211_cqm_rssi_threshold_event(9)
  • enum nl80211_tx_power_setting(9)
  • enum nl80211_tid_config(9)
  • enum nl80211_packet_pattern_attr(9)
  • struct nl80211_pattern_support(9)
  • enum nl80211_wowlan_triggers(9)
  • TCP connection wakeup(9)
  • struct nl80211_wowlan_tcp_data_seq(9)
  • struct nl80211_wowlan_tcp_data_token(9)
  • struct nl80211_wowlan_tcp_data_token_feature(9)
  • enum nl80211_wowlan_tcp_attrs(9)
  • struct nl80211_coalesce_rule_support(9)
  • enum nl80211_attr_coalesce_rule(9)
  • enum nl80211_coalesce_condition(9)
  • enum nl80211_iface_limit_attrs(9)
  • enum nl80211_if_combination_attrs(9)
  • enum nl80211_plink_state(9)
  • enum nl80211_plink_action(9)
  • enum nl80211_rekey_data(9)
  • enum nl80211_hidden_ssid(9)
  • enum nl80211_sta_wme_attr(9)
  • enum nl80211_pmksa_candidate_attr(9)
  • enum nl80211_tdls_operation(9)
  • enum nl80211_ap_sme_features(9)
  • enum nl80211_ext_feature_index(9)
  • enum nl80211_probe_resp_offload_support_attr(9)
  • enum nl80211_connect_failed_reason(9)
  • enum nl80211_timeout_reason(9)
  • enum nl80211_scan_flags(9)
  • enum nl80211_acl_policy(9)
  • enum nl80211_smps_mode(9)
  • enum nl80211_radar_event(9)
  • enum nl80211_dfs_state(9)
  • enum nl80211_protocol_features(9)
  • enum nl80211_crit_proto_id(9)
  • enum nl80211_rxmgmt_flags(9)
  • struct nl80211_vendor_cmd_info(9)
  • enum nl80211_tdls_peer_capability(9)
  • enum nl80211_sched_scan_plan(9)
  • struct nl80211_bss_select_rssi_adjust(9)
  • enum nl80211_bss_select_attr(9)
  • enum nl80211_nan_function_type(9)
  • enum nl80211_nan_publish_type(9)
  • enum nl80211_nan_func_term_reason(9)
  • enum nl80211_nan_func_attributes(9)
  • enum nl80211_nan_srf_attributes(9)
  • enum nl80211_nan_match_attributes(9)
  • enum nl80211_nan_band_conf_attributes(9)
  • enum nl80211_nan_conf_attributes(9)
  • enum nl80211_external_auth_action(9)
  • enum nl80211_ftm_responder_attributes(9)
  • enum nl80211_preamble(9)
  • enum nl80211_peer_measurement_type(9)
  • enum nl80211_peer_measurement_status(9)
  • enum nl80211_peer_measurement_req(9)
  • enum nl80211_peer_measurement_resp(9)
  • enum nl80211_peer_measurement_ftm_req_type(9)
  • enum nl80211_peer_measurement_peer_attrs(9)
  • enum nl80211_peer_measurement_attrs(9)
  • enum nl80211_peer_measurement_ftm_capa(9)
  • enum nl80211_peer_measurement_ftm_type_capa(9)
  • enum nl80211_peer_measurement_ftm_req(9)
  • enum nl80211_peer_measurement_ftm_failure_reasons(9)
  • enum nl80211_peer_measurement_ftm_resp(9)
  • enum nl80211_obss_pd_attributes(9)
  • enum nl80211_bss_color_attributes(9)
  • enum nl80211_iftype_akm_attributes(9)
  • enum nl80211_fils_discovery_attributes(9)
  • enum nl80211_unsol_bcast_probe_resp_attributes(9)
  • enum nl80211_sae_pwe_mechanism(9)
  • enum nl80211_sar_type(9)
  • enum nl80211_sar_attrs(9)
  • enum nl80211_sar_specs_attrs(9)
  • enum nl80211_mbssid_config_attributes(9)
  • enum nl80211_ap_settings_flags(9)
  • enum nl80211_wiphy_radio_attrs(9)
  • enum nl80211_wiphy_radio_freq_range(9)
  • enum nl80211_s1g_short_beacon_attrs(9)
  • enum nl80211_nan_capabilities(9)
  • enum nl80211_nan_peer_map_attrs(9)

That's the whole crew 🫢 Every single one of them is a section 9 page, and they're all listed here in this exact order β€” so if you're deep-diving the nl80211 universe, this is your reading list, bestie. Go pick a fave and get obsessed. πŸ’…βœ¨

And that's a wrap on the page, fr fr β€” shoutout to the source tree ./include/uapi/linux and the October 2026 date stamped on this one, from your girl enum nl80211_feature_flags(9). πŸŽ€πŸ¦‹ Mwah, bye! πŸ’–

πŸ“¦ where this page comes from