STRUCT CFG80211_MLO_RECONF_DONE_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct cfg80211_mlo_reconf_done_data(9) ✨

okay so this is a page from the Kernel API Manual and honestly? it's kind of a serve. it's all about struct cfg80211_mlo_reconf_done_data β€” the MLO reconfiguration data struct, aka the little bundle of info that tells the kernel what went down when links get reconfigured. stay with me bestie, it's gonna be good πŸ’…


πŸŽ€ NAME πŸŽ€

struct cfg80211_mlo_reconf_done_data β€” MLO reconfiguration data. that's it, that's the vibe. it's a struct that carries the reconfiguration tea β˜•


🌸 SYNOPSIS 🌸

here's the whole struct laid out, no cap, exactly as it is:

struct cfg80211_mlo_reconf_done_data {
    const u8 *buf;
    size_t len;
    bool driver_initiated;
    u16 added_links;
    struct {
      struct cfg80211_bss *bss;
      u8 *addr;
    } links[IEEE80211_MLD_MAX_NUM_LINKS];
 };

like, look at it. gorgeous. iconic. a struct of all time 🫢


πŸ¦‹ Members πŸ¦‹

okay so every single one of these is a whole personality, let's go through them:

  • buf β€” the MLO Reconfiguration Response frame. and yes, that's header + body together, the whole package, no crumbs left behind πŸ’–
  • len β€” the length of the frame data. literally just how many bytes buf is bringing to the function 😌
  • driver_initiated β€” lowkey the most interesting one ngl. this tells you whether the add links request is initiated by the driver. it gets set to true when the link reconfiguration request was initiated by the driver because of AP link recommendation requests β€” like, for example, when BTM (BSS Transition Management) request handling is offloaded to the driver. so if you see this true, that's the driver doing its own thing, respectfully 🧚
  • added_links β€” BIT mask of links that were successfully added to the association. a little bitmask of wins ✨
  • links β€” per-link information, and it's indexed by link ID. very organised, very demure πŸŽ€
  • links.bss β€” the BSS that the MLO reconfiguration was requested for. and here's the important bit bestie, do not skip this: ownership of the pointer moves to cfg80211 in the call to cfg80211_mlo_reconf_add_done. so like... it's not yours anymore after that. the pointer has left the building. 🫑

πŸ’€ Description πŸ’€

okay so the one thing this whole page is screaming at you: the BSS pointer must be set for each link for which 'add' operation was requested in the assoc_ml_reconf callback.

must. be. set. for each link. for each one where 'add' was requested in the assoc_ml_reconf callback. that's the rule, that's the main character energy of this description, don't leave a link hanging with a null bss πŸ™ˆ


okay that's part 1, there's more coming, so like... don't go anywhere πŸ¦‹πŸ’œ

✨ SEE ALSO ✨

okay so bestie, STRUCT CFG80211_MLO_RECONF_DONE_DATA(9) does not exist in a vacuum β€” the entire cfg80211 cinematic universe is cross-referenced down here, and kernel-doc dumped literally all of it on us 😭. It's giving phonebook. Every single entry is a real (9) page you can go read, so like... tap whatever you need, no cap πŸ’…

Here's the first one, and it's a file:

  • Kernel file ./include/net/cfg80211.h

then the whole crew, in the order the page gives them:

and then it just keeps going back to the flat list, no group in sight 😭:

...and honestly bestie, the guest list for the SEE ALSO section is long, so let's keep it moving β€” every single one of these is another page waiting for you, no skips, no "I'll come back to it later" (you won't 😭):


Okay that's the whole squad accounted for ✨ Sixty-three besties and not one of them skipped β€” that's the energy we're bringing πŸ’…. Go tap through them whenever you need the lore, they're all right there in the same neighbourhood (./include/net, if you're nosy like me πŸ‘€), and this whole vibe drop is dated October 2026. Yeah, future-dated, main character energy fr fr πŸ”₯πŸ¦‹

Thanks for reading bestie, mwah πŸ«ΆπŸ’–

πŸ“¦ where this page comes from