STRUCT BRCMF_P2P_PUB_ACT_FRAME(9)
π struct brcmf_p2p_pub_act_frame(9) β the WiFi P2P Public Action Frame page, bestie edition
okay so this is the struct brcmf_p2p_pub_act_frame(9) manual page from the Kernel API Manual, and honestly? it's giving "tiny struct, big main character energy" β¨ it's a WiFi P2P Public Action Frame and we're gonna go through it field by field, no skips, no cap π«Ά
β¨ NAME β¨
struct brcmf_p2p_pub_act_frame β WiFi P2P Public Action Frame πΈ
π¦ SYNOPSIS π¦
look at her. she's small. she's iconic. she's literally:
struct brcmf_p2p_pub_act_frame {
u8 category;
u8 action;
u8 oui[3];
u8 oui_type;
u8 subtype;
u8 dialog_token;
u8 elts[];
};
that elts[] with the empty brackets? variable length, she grows, we love a flexible queen π
π Members π
categoryβ this one'sWLAN_CATEGORY_PUBLIC, periodt. that's the whole vibe check for this field πactionβ set toWLAN_PUB_ACTION_VENDOR_SPECIFIC, so like, it's the vendor-specific action, iykyk πouiβP2P_OUI, the OUI bytes, three of them, cute little array of 3 πoui_typeβ the OUI type, which isWLAN_OUI_TYPE_WFA_P2Pπsubtypeβ the OUI subtype, and it's one of theP2P_TYPE_*fam πdialog_tokenβ nonzero, and it identifies the req/rsp transaction. so like, not zero. ever. it's zero's whole thing to NOT be here πeltsβ Variable length information elements. that's it, that's the field, she's variable length and she's thriving π«
π SEE ALSO π
okay the reference list is long bestie, buckle up, we're going through all of it, not one single one skipped π
the kernel file in question: ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
and then, in order, the whole squad:
struct brcmf_p2p_disc_st_le(9)enum brcmf_p2p_disc_state(9)struct brcmf_p2p_scan_le(9)struct brcmf_p2p_action_frame(9)struct brcmf_p2psd_gas_pub_act_frame(9)struct brcmf_config_af_params(9)brcmf_p2p_is_pub_action(9)brcmf_p2p_is_dpp_pub_action(9)brcmf_p2p_is_p2p_action(9)brcmf_p2p_is_gas_action(9)brcmf_p2p_print_actframe(9)brcmf_p2p_set_firmware(9)brcmf_p2p_generate_bss_mac(9)brcmf_p2p_scan_is_p2p_request(9)brcmf_p2p_set_discover_state(9)brcmf_p2p_deinit_discovery(9)brcmf_p2p_enable_discovery(9)brcmf_p2p_escan(9)brcmf_p2p_run_escan(9)brcmf_p2p_find_listen_channel(9)brcmf_p2p_scan_prep(9)brcmf_p2p_discover_listen(9)brcmf_p2p_remain_on_channel(9)brcmf_p2p_notify_listen_complete(9)brcmf_p2p_cancel_remain_on_channel(9)brcmf_p2p_act_frm_search(9)brcmf_p2p_afx_handler(9)brcmf_p2p_af_searching_channel(9)brcmf_p2p_scan_finding_common_channel(9)brcmf_p2p_abort_action_frame(9)brcmf_p2p_stop_wait_next_action_frame(9)brcmf_p2p_gon_req_collision(9)brcmf_p2p_notify_action_frame_rx(9)brcmf_p2p_notify_action_tx_complete(9)brcmf_p2p_tx_action_frame(9)brcmf_p2p_pub_af_tx(9)brcmf_p2p_send_action_frame(9)brcmf_p2p_notify_rx_mgmt_p2p_probereq(9)brcmf_p2p_get_current_chanspec(9)brcmf_p2p_ifchange(9)brcmf_p2p_create_p2pdev(9)brcmf_p2p_add_vif(9)brcmf_p2p_del_vif(9)brcmf_p2p_attach(9)brcmf_p2p_detach(9)
like I said. the whole squad. ate and left no crumbs π₯
ngl if you're implementing against this, those (9) suffixes mean "these are manpage sections in the kernel API manual", so go read them, bestie, they're right there π
πΈ and that's the page!! this one came from ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c (shown truncated in the original footer as ./drivers/net/wireless/broadco...), dated October 2026, and it's struct brcmf_p2p_pub_act_frame(9) β go forth and slay your P2P action frames, ily π«Άπβ¨
π¦ 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