ENUM WIPHY_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ enum wiphy_flags(9) β€” a Kernel API Manual moment ✨

okay so bestie, this is the enum wiphy_flags(9) page from the Kernel API Manual, and it is literally the master list of wiphy capability flags. Think of it as the β€œwhat can this wiphy actually do?” vibe check. πŸ’…


🌸 NAME 🌸

enum wiphy_flags β€” wiphy capability flags, aka the little enum that tells you what the hardware/firmware situation is giving. πŸ¦‹


πŸ’… SYNOPSIS πŸ’…

enum wiphy_flags {
    WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK ,
    WIPHY_FLAG_SUPPORTS_MLO ,
    WIPHY_FLAG_SPLIT_SCAN_6GHZ ,
    WIPHY_FLAG_NETNS_OK ,
    WIPHY_FLAG_PS_ON_BY_DEFAULT ,
    WIPHY_FLAG_4ADDR_AP ,
    WIPHY_FLAG_4ADDR_STATION ,
    WIPHY_FLAG_CONTROL_PORT_PROTOCOL ,
    WIPHY_FLAG_IBSS_RSN ,
    WIPHY_FLAG_MESH_AUTH ,
    WIPHY_FLAG_SUPPORTS_EXT_KCK_32 ,
    WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY ,
    WIPHY_FLAG_SUPPORTS_FW_ROAM ,
    WIPHY_FLAG_AP_UAPSD ,
    WIPHY_FLAG_SUPPORTS_TDLS ,
    WIPHY_FLAG_TDLS_EXTERNAL_SETUP ,
    WIPHY_FLAG_HAVE_AP_SME ,
    WIPHY_FLAG_REPORTS_OBSS ,
    WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD ,
    WIPHY_FLAG_OFFCHAN_TX ,
    WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL ,
    WIPHY_FLAG_HAS_CHANNEL_SWITCH ,
    WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER ,
    WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON

};

πŸŽ€ Constants πŸŽ€

  • WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK β€” the device supports bigger kek and kck keys. πŸ”‘βœ¨
  • WIPHY_FLAG_SUPPORTS_MLO β€” this is a temporary flag gating the MLO APIs, in order to not have them reachable in normal drivers, until we have complete feature/interface combinations/etc. advertisement. No driver should set this flag for now. 🚧😭
  • WIPHY_FLAG_SPLIT_SCAN_6GHZ β€” if set to true, the scan request will be split into two: first for legacy bands, and second for 6 GHz. πŸ“‘πŸ¦‹
  • WIPHY_FLAG_NETNS_OK β€” if this is not set, do not allow changing the netns of this wiphy at all. periodt. πŸ›‘
  • WIPHY_FLAG_PS_ON_BY_DEFAULT β€” if set to true, powersave will be enabled by default. This flag will be set depending on the kernel’s default on wiphy_new, but it can be changed by the driver if it has a good reason to override the default. πŸ’€βœ¨
  • WIPHY_FLAG_4ADDR_AP β€” supports 4addr mode even on AP (with a single station on a VLAN interface). This flag also serves an extra purpose of supporting 4ADDR AP mode on devices which do not support AP/VLAN iftype. πŸ§šβ€β™€οΈπŸ’œ
  • WIPHY_FLAG_4ADDR_STATION β€” supports 4addr mode even as a station. πŸŽ€
  • WIPHY_FLAG_CONTROL_PORT_PROTOCOL β€” this device supports setting the control port protocol ethertype. The device also honours the control_port_no_encrypt flag. πŸ”πŸ‘‘
  • WIPHY_FLAG_IBSS_RSN β€” the device supports IBSS RSN. 🌈
  • WIPHY_FLAG_MESH_AUTH β€” the device supports mesh authentication by routing auth frames to userspace. See NL80211_MESH_SETUP_USERSPACE_AUTH. πŸ•ΈοΈπŸ’…
  • WIPHY_FLAG_SUPPORTS_EXT_KCK_32 β€” the device supports 32-byte KCK keys. πŸ”‘πŸ”₯
  • WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY β€” support connection to non-primary link of an NSTR mobile AP MLD. πŸ“Άβœ¨
  • WIPHY_FLAG_SUPPORTS_FW_ROAM β€” the device supports roaming feature in the firmware. πŸ›°οΈπŸ’–
  • WIPHY_FLAG_AP_UAPSD β€” the device supports uapsd on AP. ⚑
  • WIPHY_FLAG_SUPPORTS_TDLS β€” the device supports TDLS (802.11z) operation. πŸ¦‹πŸ“‘
  • WIPHY_FLAG_TDLS_EXTERNAL_SETUP β€” the device does not handle TDLS (802.11z) link setup/discovery operations internally. Setup, discovery and teardown packets should be sent through the NL80211_CMD_TDLS_MGMT command. When this flag is not set, NL80211_CMD_TDLS_OPER should be used for asking the driver/firmware to perform a TDLS operation. πŸ˜­πŸ”
  • WIPHY_FLAG_HAVE_AP_SME β€” device integrates AP SME. πŸ‘‘
  • WIPHY_FLAG_REPORTS_OBSS β€” the device will report beacons from other BSSes when there are virtual interfaces in AP mode by calling cfg80211_report_obss_beacon. πŸ“£πŸŒΈ
  • WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD β€” when operating as an AP, the device responds to probe-requests in hardware. πŸ› οΈβœ¨
  • WIPHY_FLAG_OFFCHAN_TX β€” device supports direct off-channel TX. πŸ“€πŸ’«
  • WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL β€” device supports remain-on-channel call. πŸ“ž
  • WIPHY_FLAG_HAS_CHANNEL_SWITCH β€” device supports channel switch in beaconing mode (AP, IBSS, Mesh, ...). πŸ”„πŸ‘‘
  • WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER β€” the device could handle reg notify for NL80211_REGDOM_SET_BY_DRIVER. πŸŒπŸ’œ
  • WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON β€” reg_call_notifier is called if driver set this flag to update channels on beacon hints. πŸ“‘πŸ’…

πŸ‘€ SEE ALSO πŸ‘€

okay so before you dip, bestie, everything you just read lives in the kernel file ./include/net/cfg80211.h β€” that's the mothership. πŸš€ And if you're the kind of girl who reads the whole bibliography (respect, honestly), here's the full reading list. Not a single one skipped, no cap. πŸ’…


🌸 The essentials & the band/capability girlies

πŸŽ€ Actions and configuration (the whole glow-up section)

πŸ¦‹ Scanning and BSS list handling

  • Scanning and BSS list handling(9)
  • struct cfg80211_ssid(9)
  • struct cfg80211_scan_info(9)
  • struct cfg80211_scan_6ghz_params(9)
  • struct cfg80211_scan_request(9)
  • struct cfg80211_match_set(9)
  • struct cfg80211_sched_scan_plan(9)
  • struct cfg80211_bss_select_adjust(9)
  • struct cfg80211_sched_scan_request(9)
  • enum cfg80211_signal_type(9)
  • struct cfg80211_inform_bss(9)
  • struct cfg80211_bss_ies(9)
  • struct cfg80211_bss(9)
  • ieee80211_bss_get_elem(9)
  • ieee80211_bss_get_ie(9)
  • struct cfg80211_auth_request(9)
  • struct cfg80211_assoc_link(9)
  • struct cfg80211_ml_reconf_req(9)
  • enum cfg80211_assoc_req_flags(9)
  • struct cfg80211_assoc_request(9)
  • struct cfg80211_deauth_request(9)
  • struct cfg80211_disassoc_request(9)
  • struct cfg80211_ibss_params(9)
  • struct cfg80211_bss_selection(9)
  • struct cfg80211_connect_params(9)
  • enum cfg80211_connect_params_changed(9)
  • enum wiphy_params_flags(9)
  • struct cfg80211_pmksa(9)
  • struct cfg80211_pkt_pattern(9)
  • struct cfg80211_wowlan_tcp(9)
  • struct cfg80211_wowlan(9)
  • struct cfg80211_coalesce_rules(9)
  • struct cfg80211_coalesce(9)
  • struct cfg80211_wowlan_nd_match(9)
  • struct cfg80211_wowlan_nd_info(9)
  • struct cfg80211_wowlan_wakeup(9)
  • struct cfg80211_gtk_rekey_data(9)
  • struct cfg80211_update_ft_ies_params(9)
  • struct cfg80211_mgmt_tx_params(9)
  • struct cfg80211_dscp_exception(9)
  • struct cfg80211_dscp_range(9)
  • struct cfg80211_qos_map(9)

🧚 NAN girlies & the wiphy/wireless_dev fam

πŸ’œ Utility functions (the little helpers that ate πŸ’…)

πŸ”₯ Data path helpers

🌈 Regulatory + BSS management + the notify girlies

⭐ RFkill, vendor, and test mode

πŸ’€ Connect / roam / station / rx-tx-whatever notification icons


like, that's the entire friend group πŸ’– every single one accounted for, not a name dropped. Go click through them, iykyk 🫢

…and the rest of the cross-references, bestie β€” same energy, all (9), all worth a click when you're done here πŸ’…

okay next batch, we're literally halfway through the guest list πŸŽ€

and that's the whole list, no crumbs left, we ate every single one πŸ”₯ now go read them all, or don't, but at least you know where they live 🫢


that's a wrap on the whole page, bestie βœ¨πŸ’– this little beauty shipped from ./include/net back in October 2026, and yes, the page itself is literally titled enum wiphy_flags(9) β€” main character energy from the filename down πŸ’… go be iconic with your flags πŸŒΈπŸ¦‹

πŸ“¦ where this page comes from