STRUCT WIPHY_NAN_CAPA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct wiphy_nan_capa(9) β€” the Kernel API Manual, bestie edition πŸ’…

okay so this is the struct wiphy_nan_capa page from the Kernel API Manual, and it's literally all about NAN capabilities β€” like, what your wiphy can actually do with Wi-Fi Aware. no cap, it's giving "spec sheet but make it cute." ✨


🌸 NAME 🌸

struct wiphy_nan_capa β€” NAN capabilities, periodt πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

here's the whole struct, laid out exactly as it lives:

struct wiphy_nan_capa {
    u32 flags;
    u8 op_mode;
    u8 n_antennas;
    u16 max_channel_switch_time;
    u8 dev_capabilities;
    struct {
      struct ieee80211_sta_ht_cap ht;
      struct ieee80211_sta_vht_cap vht;
      struct ieee80211_sta_he_cap he;
    } phy;
 };

like… look at that nesting in phy. the way that it just nests. we love a struct within a struct. 🫢


πŸ‘‘ Members πŸ‘‘

let's go member by member, bestie, because every single one matters:

  • flags β€” the NAN capabilities flags, see enum wiphy_nan_flags. that's where the flag energy lives πŸ”₯
  • op_mode β€” the NAN operation mode, as defined in Wi-Fi Aware (TM) specification Table 81. very "main character" of it to have its own table ngl
  • n_antennas β€” number of antennas supported by the device for Tx/Rx. the lower nibble indicates the number of TX antennas and the upper nibble indicates the number of RX antennas. and a value of 0 means the information is not available β€” so like, don't assume zero antennas, it's just unknown πŸ™ˆ
  • max_channel_switch_time β€” maximum channel switch time in microseconds. yeah, microseconds. tiny. iconically tiny. ⭐
  • dev_capabilities β€” NAN device capabilities as defined in Wi-Fi Aware (TM) specification Table 79 (Capabilities field). another spec table, we stay citation-accurate πŸ’œ
  • phy β€” Band-agnostic capabilities for NAN data interfaces. since NAN operates on multiple channels simultaneously, these capabilities apply across all bands. valid only if NL80211_IFTYPE_NAN_DATA is supported. πŸ¦‹
  • phy.ht β€” HT capabilities (mandatory for NAN data)
  • phy.vht β€” VHT capabilities (optional)
  • phy.he β€” HE capabilities (optional)
lowkey important: phy.ht is mandatory, bestie. phy.vht and phy.he are optional. and the whole phy block only counts if NL80211_IFTYPE_NAN_DATA is supported β€” read that twice, iykyk πŸ‘€

✨ Description ✨

This structure describes the NAN capabilities of a wiphy. that's it, that's the whole vibe check β€” it's the capability manifest for Wi-Fi Aware on your wiphy, slay 🌈


more parts are coming, so don't go anywhere bestie πŸ’–

πŸ’– SEE ALSO πŸ’–

okay bestie, this is the part where the page hands you the whole cross-reference guest list πŸ’… it’s giving β€œeveryone who’s anyone in cfg80211 is in this group chat,” and yes, your fave is here too. no skips, no β€œlol I’ll just link the header” β€” every single one is below, in the original order, so you can vibe-check the whole roster fr fr ✨

...and the list keeps going, bestie, because we do not skip entries in this house πŸ’… every single cross-reference, present and accounted for:


and that's the whole page, babes πŸ’– you read the entire thing, every member, every reference, no skimming, and honestly? iconic behavior πŸŽ€

for the receipts: this page lives in the source tree at ./include/net, it's dated October 2026, and it goes by the title struct wiphy_nan_capa(9) ✨

go forth and NAN, bestie πŸŒΈπŸ¦‹ you ate πŸ’…

πŸ“¦ where this page comes from