brcmf_p2p_tx_action_frame(9)
π brcmf_p2p_tx_action_frame β the Kernel API Manual glow-up β¨
okay so bestie, this one lives in the Kernel API Manual and honestly? it's giving "short and iconic." no cap. let's get into it π
πΈ NAME πΈ
brcmf_p2p_tx_action_frame β send action frame over fil.
(that's "fil," not a typo, don't come for me π«Ά)
β¨ SYNOPSIS β¨
s32 brcmf_p2p_tx_action_frame (struct brcmf_if *ifp , struct
brcmf_p2p_info *p2p , struct brcmf_fil_af_params_le *af_params );
she takes three args and returns an s32, periodt. π
π¦ ARGUMENTS π¦
ifpβ interface to transmit on. like, which one are we sending from, bestie?p2pβ p2p info struct for vif. this is the whole vibe container for the virtual interface.af_paramsβ action frame data/info. all the actual frame tea goes in here. π
π₯ DESCRIPTION π₯
so the whole point of this function is: send an action frame immediately, with no channel synchronization. not me skipping the channel sync line entirely π β that's literally the design, it does not wait to sync up first.
and here's the important part, the main character detail: this function waits for a completion event before it returns. so it blocks. it does not just yeet the frame and dip.
which event is it waiting on? the WLC_E_ACTION_FRAME_COMPLETE event β that's the one you get when the action frame has actually been transmitted. π so like, frame goes out β event comes in β function finally returns. slay.
lowkey important: it's a blocking wait on a completion event, so don't act surprised when it takes a sec. that's the deal. π
π SEE ALSO π
okay this section is the whole group chat, no one gets left out. π
the kernel file to check:
./drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
and the whole crew of related pages, all of them:
struct brcmf_p2p_disc_st_le(9)enum brcmf_p2p_disc_state(9)struct brcmf_p2p_scan_le(9)struct brcmf_p2p_pub_act_frame(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_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. everybody. π
π« and that's the page!! sourced from ./drivers/net/wireless/broadco..., dated October 2026. go send some action frames bestie, you got this π§ββοΈβ¨
π¦ 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