STRUCT CFG80211_PMSR_RESULT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct cfg80211_pmsr_result β€” peer measurement result ✨

okay so this is from the Kernel API Manual, section 9, and it's literally the struct that holds a peer measurement result πŸ’… get comfy, bestie, we're going in.


🌸 NAME 🌸

struct cfg80211_pmsr_result β€” peer measurement result. that's it, that's the vibe. it's the lil container that carries back what happened when you measured a peer 🫢


πŸŽ€ SYNOPSIS πŸŽ€

struct cfg80211_pmsr_result {
    u64 host_time, ap_tsf;
    enum nl80211_peer_measurement_status status;
    u8 addr[ETH_ALEN];
    u8 final:1, ap_tsf_valid:1;
    enum nl80211_peer_measurement_type type;
    union {
      struct cfg80211_pmsr_ftm_result ftm;
    };
 };

look at her. iconic. no notes πŸ‘‘


πŸ¦‹ Members πŸ¦‹

okay so these are all the fields and what they're giving, one by one, no skipping, i promise πŸ’–

  • host_time β€” host time, and heads up: use ktime_get_boottime and adjust it to the time when the measurement was actually made. don't just leave it raw, that's not the move 😌
  • ap_tsf β€” the AP's TSF at measurement time. that's the AP's timestamp, bestie ⭐
  • status β€” status of the measurement. how did it go, basically πŸ’«
  • addr β€” address of the peer. who are we even measuring, right? 🎯
  • final β€” if you're reporting partial results, mark this one as the last one. and if you're not reporting partial results? always set this flag. literally always, no cap 🚩
  • ap_tsf_valid β€” indicates the ap_tsf value is valid. so if it's not set, don't go trusting that TSF, ok? πŸ™ˆ
  • type β€” type of the measurement reported. and here's the tea: we only support reporting one type at a time 🍡 but you can report multiple results separately and they're all aggregated for userspace. so like, one at a time but also all together, iykyk ✨
  • {unnamed_union} β€” anonymous. she has no name. mysterious. main character energy fr πŸ’€
  • ftm β€” FTM result. the actual payload of the union right here πŸŽ€

and that's part one, bestie β€” more coming, don't go anywhere πŸ’œ

✨ SEE ALSO ✨

okay so this is the part where the page just drops the entire extended friend group on you πŸ’– like genuinely, every single cross-reference cfg80211 has ever known shows up here. Don't panic. Nothing got cut, nothing got merged, and yes we're going through all of them. Consider this the group chat roster: everybody's tagged, everybody's here, and the order is exactly as it was. Slay.

and yeah, the original list literally ends on a comma and we respect it πŸ’… no cap, that's the whole posse, every last one cross-referenced exactly as it came.

okay bestie, buckle up, because this SEE ALSO list is not a short one β€” it's basically the whole extended friend group πŸ’… every one of these is its own (9) page, so if you need the full lore on anything up there, this is your rolodex:


like, that's sixty-four whole manual pages, no cap 😭 your girl did not skip a single one. if you're the type who reads the whole friend group's lore before committing, honestly? iconic. go click around, i'll wait 🫢

and that's a wrap on this page! it lives in the source tree at ./include/net, and the copy you're reading is dated October 2026 ✨ mwah, go forth and configure your wireless, bestie πŸ’–

πŸ“¦ where this page comes from