STRUCT IEEE80211_IF_NAN(9)
π struct ieee80211_if_nan β NAN state, bestie
Okay so this is a page straight out of the Kernel API Manual, and honestly? It's giving "niche but iconic." It's struct ieee80211_if_nan, and it holds the β¨ NAN state β¨. Yeah. That's the whole vibe. NAN state. Not energy. Not a single thing else. State. π¦
πΈ NAME πΈ
struct ieee80211_if_nan β literally just the NAN state. That's it, that's the name section, periodt. π
β¨ SYNOPSIS β¨
Here's the struct in all its glory β copy it exact, don't touch a single character, she's fragile:
struct ieee80211_if_nan {
struct cfg80211_nan_conf conf;
bool started;
struct {
spinlock_t func_lock;
struct idr function_inst_ids;
} de;
unsigned long removed_channels[BITS_TO_LONGS(
IEEE80211_NAN_MAX_CHANNELS)];
};
Lowkey a little chaotic formatting-wise but we respect her π
π Members π
Bestie, here's the breakdown of every single field, no skips, no cap:
confβ the current NAN configuration. The main character of the struct, tbh. πstartedβtrueiff NAN is started. Literally just a truth-teller. If it'strue, she's running; if not, she's not. No in-between. π₯deβ Discovery Engine state. Important caveat: only valid if!WIPHY_NAN_FLAGS_USERSPACE_DE. So if that flag is set, this field is not it, bestie β don't trust it. πde.func_lockβ the lock forde.function_inst_ids. She's the bouncer at the door keeping things safe. π«Άde.function_inst_idsβ a bitmap of availableinstance_id's. Yup, a whole bitmap. Available ones. Iconic. β
removed_channelsβ a bitmap of channels that should be removed from the NAN schedule once the deferred schedule update is completed. Read that again: once the deferred schedule update is completed. Not before. Do not come for them early. π
π SEE ALSO π
Everything else you might wanna go vibe with, all of these fr fr:
- Kernel file
./net/mac80211/ieee80211_i.henum ieee80211_bss_corrupt_data_flags(9), enumieee80211_bss_valid_data_flags(9), enumieee80211_packet_rx_flags(9), enumieee80211_rx_flags(9), enumieee80211_if_ocb(9), structieee80211_mesh_sync_ops(9), structmesh_table(9), structmesh_tx_cache(9), structieee80211_sub_if_data_flags(9), enumieee80211_sdata_state_bits(9), enumieee80211_chanctx_mode(9), enumieee80211_chanctx_replace_state(9), enumtxq_info(9), structieee80211_if_nan_data(9), structmac80211_scan_flags(9), enummac80211_scan_state(9), enumieee80211_parse_ch_switch_ie(9)struct ieee80211_elems_parse_params(9)
π And that's the whole page, bestie! This gem lives in ./net/mac80211, and the version you're looking at is dated October 2026. Go forth and NAN responsibly. Mwah. πππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms