STRUCT MESH_SETUP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct mesh_setup β€” 802.11s mesh setup configuration, straight from the struct mesh_setup(9) manual page. Bestie, this is the struct that holds the setup details for an 802.11s mesh. 🫢

🌸 SYNOPSIS 🌸

struct mesh_setup {
    struct cfg80211_chan_def chandef;
    const u8 *mesh_id;
    u8 mesh_id_len;
    u8 sync_method;
    u8 path_sel_proto;
    u8 path_metric;
    u8 auth_id;
    const u8 *ie;
    size_t ie_len;
    bool is_authenticated;
    bool is_secure;
    bool user_mpm;
    u8 dtim_period;
    u16 beacon_interval;
    int mcast_rate[NUM_NL80211_BANDS];
    u32 basic_rates;
    struct cfg80211_bitrate_mask beacon_rate;
    bool userspace_handles_dfs;
    bool control_port_over_nl80211;
};

πŸ‘― Members πŸ‘―

  • chandef β€” defines the channel to use. πŸ“‘
  • mesh_id β€” the mesh ID. πŸ†”
  • mesh_id_len β€” length of the mesh ID, at least 1 and at most 32 bytes. πŸ”’
  • sync_method β€” which synchronization method to use. πŸŒ€
  • path_sel_proto β€” which path selection protocol to use. πŸ›£οΈ
  • path_metric β€” which metric to use. πŸ“
  • auth_id β€” which authentication method this mesh is using. πŸ”
  • ie β€” vendor information elements (optional). 🎁
  • ie_len β€” length of vendor information elements. πŸ“¦
  • is_authenticated β€” this mesh requires authentication. βœ…
  • is_secure β€” this mesh uses security. πŸ›‘οΈ
  • user_mpm β€” userspace handles all MPM functions. πŸ§‘β€πŸ’»
  • dtim_period β€” DTIM period to use. ⏱️
  • beacon_interval β€” beacon interval to use. πŸ“Ά
  • mcast_rate β€” multicast rate for Mesh Node [6Mbps is the default for 802.11a]. πŸ”₯
  • basic_rates β€” basic rates to use when creating the mesh. 🧱
  • beacon_rate β€” bitrate to be used for beacons. πŸ“£
  • userspace_handles_dfs β€” whether user space controls DFS operation, i.e. changes the channel when a radar is detected. This is required to operate on DFS channels. 🚨
  • control_port_over_nl80211 β€” TRUE if userspace expects to exchange control port frames over NL80211 instead of the network interface. πŸ“¨

πŸ’– Description πŸ’–

These parameters are fixed when the mesh is created. Periodt. πŸŽ€

✨ SEE ALSO ✨

okay so this section is genuinely a journey πŸ’€ β€” STRUCT MESH_SETUP(9) sits right in the middle of the cfg80211 cinematic universe, so the cross-reference list is basically the whole friend group. Grab a snack πŸ“, we're going through every single one, no skips, no cap.

that's the band/capability cluster btw, it's giving "prerequisites" ✨

struct mesh_config(9) is literally right there next to us btw β€” that's our sibling page, hi bestie 🫢

  • 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)
  • Neighbor Awareness Networking (NAN)(9)
  • struct cfg80211_nan_band_config(9)
  • struct cfg80211_nan_conf(9)
  • struct cfg80211_nan_channel(9)
  • struct cfg80211_nan_local_sched(9)
  • struct cfg80211_nan_peer_map(9)
  • struct cfg80211_nan_peer_sched(9)
  • enum cfg80211_nan_conf_changes(9)
  • struct cfg80211_nan_func_filter(9)
  • struct cfg80211_nan_func(9)
  • struct cfg80211_pmk_conf(9)
  • struct cfg80211_external_auth_params(9)
  • struct cfg80211_ftm_responder_stats(9)
  • struct cfg80211_pmsr_ftm_result(9)
  • struct cfg80211_pmsr_result(9)
  • struct cfg80211_pmsr_ftm_request_peer(9)
  • struct cfg80211_pmsr_request_peer(9)
  • struct cfg80211_pmsr_request(9)
  • struct cfg80211_update_owe_info(9)
  • struct mgmt_frame_regs(9)
  • struct cfg80211_ops(9)

the NAN block is so random and I'm obsessed 🌸

the wiphy_* work/lock block, we love a well-organised queue icon πŸŽ€

ieee80211_get_mesh_hdrlen(9) and ieee80211_strip_8023_mesh_hdr(9) are our mesh besties in this list 🧚

and that's the whole list πŸ’… β€” yes it's long, yes it's giving "who invited all these", but every single one of these is a real page you can go read. the mesh stuff lives in here too, iykyk πŸ¦‹

okay so the SEE ALSO list just KEEPS GOING and honestly? it's giving group chat with 64 members and everyone's typing πŸ’€ here's the rest of the squad, in the exact order the page serves them to you β€” no skipping, no cutting, we respect all of them equally 🫢


fr fr that's the whole page bestie, you ate that πŸ’… but before you close the tab, the little footer at the bottom is not a vibe, it's bookkeeping: this page lives in ./include/net, it's the struct mesh_setup(9) manual, and it's dated October 2026 β€” yes, the future, don't ask 🌈⭐ keep that in mind if you're citing her πŸ«ΆπŸ’–

πŸ“¦ where this page comes from