ieee80211_parse_p2p_noa(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 ieee80211_parse_p2p_noa(9) 🌸

okay so this one is from the Kernel API Manual (section 9, kernel land, you know the vibe) and honestly it's a little cutie. bestie, it's ieee80211_parse_p2p_noa and it initializes NoA tracking data from a P2P IE. that's the whole assignment, and it ate πŸ’…


✨ NAME ✨

ieee80211_parse_p2p_noa β€” initialize NoA tracking data from P2P IE πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

int ieee80211_parse_p2p_noa (const struct ieee80211_p2p_noa_attr *attr ,
struct ieee80211_noa_data *data , u32 tsf );

πŸ’– ARGUMENTS πŸ’–

three little besties walk in, and each of them has a job:

  • attr β€” the P2P NoA IE. yes, that's the actual information element being fed in. this is the main character of the whole function ngl πŸ‘‘
  • data β€” the NoA tracking data. this is where stuff gets written to, so it's giving "receptacle" energy 🫢
  • tsf β€” the current TSF timestamp. it's the clock, it's the moment, it's the when ⏰

⭐ RETURN ⭐

it hands back the number of successfully parsed descriptors. that's it, that's the return value β€” a count, no cap πŸ”₯


🌈 SEE ALSO 🌈

okay so this part is long but every single one of these is a real reference and i'm not about to ghost any of them, so buckle up bestie πŸ’€

Kernel file ./include/net/mac80211.h, Introduction(9), Calling mac80211 from interrupts(9), Warning(9), Frame format(9), mac80211 workqueue(9), mac80211 software tx queueing(9), HW timestamping(9), enum ieee80211_max_queues(9), enum ieee80211_ac_numbers(9), struct ieee80211_tx_queue_params(9), enum ieee80211_chanctx_change(9), struct ieee80211_chan_req(9), struct ieee80211_chanctx_conf(9), enum ieee80211_chanctx_switch_mode(9), struct ieee80211_vif_chanctx_switch(9), enum ieee80211_bss_change(9), enum ieee80211_event_type(9), enum ieee80211_rssi_event_data(9), struct ieee80211_rssi_event(9), enum ieee80211_mlme_event_data(9), enum ieee80211_mlme_event_status(9), struct ieee80211_mlme_event(9), struct ieee80211_ba_event(9), struct ieee80211_event(9), struct ieee80211_mu_group_data(9), struct ieee80211_ftm_responder_params(9), struct ieee80211_fils_discovery(9), struct ieee80211_parsed_tpe(9), struct ieee80211_bss_npca_params(9), struct ieee80211_bss_conf(9), struct ieee80211_nan_channel(9), struct ieee80211_nan_peer_map(9), struct ieee80211_nan_peer_sched(9), enum mac80211_tx_info_flags(9), enum mac80211_tx_control_flags(9), enum mac80211_tx_status_flags(9), enum mac80211_rate_control_flags(9), struct ieee80211_tx_rate(9), struct ieee80211_tx_info(9), struct ieee80211_tx_status(9), struct ieee80211_scan_ies(9), ieee80211_tx_info_clear_status(9), enum mac80211_rx_flags(9), enum mac80211_rx_encoding_flags(9), struct ieee80211_rx_status(9).

still going, don't scroll away on me 🧚

enum ieee80211_conf_flags(9), enum ieee80211_conf_changed(9), enum ieee80211_smps_mode(9), struct ieee80211_conf(9), struct ieee80211_channel_switch(9), enum ieee80211_vif_flags(9), enum ieee80211_offload_flags(9), struct ieee80211_eml_params(9), struct ieee80211_nan_sched_cfg(9), struct ieee80211_vif_cfg(9), struct ieee80211_neg_ttlm(9), enum ieee80211_neg_ttlm_res(9), struct ieee80211_vif(9), ieee80211_vif_usable_links(9), ieee80211_vif_is_mld(9), ieee80211_vif_link_active(9), wdev_to_ieee80211_vif(9), ieee80211_vif_to_wdev(9), enum ieee80211_key_flags(9), struct ieee80211_key_conf(9), struct ieee80211_key_seq(9), enum set_key_cmd(9), enum ieee80211_sta_state(9), enum ieee80211_sta_rx_bandwidth(9), struct ieee80211_sta_rates(9), struct ieee80211_sta_txpwr(9), struct ieee80211_sta_aggregates(9), struct ieee80211_link_sta(9), struct ieee80211_sta(9), enum sta_notify_cmd(9), struct ieee80211_tx_control(9), struct ieee80211_txq(9), enum ieee80211_hw_flags(9), struct ieee80211_hw(9), struct ieee80211_scan_request(9), struct ieee80211_tdls_ch_sw_params(9), wiphy_to_ieee80211_hw(9), SET_IEEE80211_DEV(9), SET_IEEE80211_PERM_ADDR(9), ieee80211_free_txskb(9), ieee80211_purge_tx_queue(9).

the lore is deepening ✨

Hardware crypto acceleration(9), Powersave support(9), Beacon filter support(9), Spatial multiplexing power save(9), Frame filtering(9), AP support for powersaving clients(9), HW queue control(9), enum ieee80211_filter_flags(9), enum ieee80211_ampdu_mlme_action(9), struct ieee80211_ampdu_params(9), enum ieee80211_frame_release_type(9), enum ieee80211_rate_control_changed(9), enum ieee80211_roc_type(9), enum ieee80211_reconfig_type(9), struct ieee80211_prep_tx_info(9), struct ieee80211_ops(9), ieee80211_alloc_hw_nm(9), ieee80211_alloc_hw(9), ieee80211_register_hw(9), struct ieee80211_tpt_blink(9), enum ieee80211_tpt_led_trigger_flags(9), ieee80211_get_tx_led_name(9), ieee80211_get_rx_led_name(9), ieee80211_get_assoc_led_name(9), ieee80211_get_radio_led_name(9), ieee80211_create_tpt_led_trigger(9), ieee80211_unregister_hw(9), ieee80211_free_hw(9), ieee80211_restart_hw(9), ieee80211_rx_list(9), ieee80211_rx_napi(9), ieee80211_rx(9), ieee80211_rx_irqsafe(9), ieee80211_rx_ni(9), ieee80211_sta_ps_transition(9), ieee80211_sta_ps_transition_ni(9), ieee80211_sta_pspoll(9), ieee80211_sta_uapsd_trigger(9), ieee80211_sta_set_buffered(9), ieee80211_get_tx_rates(9), ieee80211_tx_rate_update(9), ieee80211_tx_status_skb(9), ieee80211_tx_status_ext(9), ieee80211_tx_status_noskb(9), ieee80211_tx_status_ni(9), ieee80211_tx_status_irqsafe(9), ieee80211_report_low_ack(9).

genuinely obsessed with how many of these there are 😭

struct ieee80211_mutable_offsets(9), ieee80211_beacon_get_template(9), ieee80211_beacon_get_template_ema_index(9), struct ieee80211_ema_beacons(9), ieee80211_beacon_get_template_ema_list(9), ieee80211_beacon_free_ema_list(9), ieee80211_beacon_get_tim(9), ieee80211_beacon_get(9), ieee80211_beacon_update_cntdwn(9), ieee80211_beacon_set_cntdwn(9), ieee80211_csa_finish(9), ieee80211_beacon_cntdwn_is_complete(9), ieee80211_color_change_finish(9), ieee80211_proberesp_get(9), ieee80211_pspoll_get(9), ieee80211_nullfunc_get(9), ieee80211_probereq_get(9), ieee80211_rts_get(9), ieee80211_rts_duration(9), ieee80211_ctstoself_get(9), ieee80211_ctstoself_duration(9), ieee80211_generic_frame_duration(9), ieee80211_get_buffered_bc(9), ieee80211_get_tkip_p1k_iv(9), ieee80211_get_tkip_p1k(9), ieee80211_get_tkip_rx_p1k(9), ieee80211_get_tkip_p2k(9), ieee80211_tkip_add_iv(9), ieee80211_get_key_rx_seq(9), ieee80211_set_key_rx_seq(9), ieee80211_gtk_rekey_add(9), ieee80211_gtk_rekey_notify(9), ieee80211_key_mic_failure(9), ieee80211_key_replay(9), ieee80211_wake_queue(9), ieee80211_stop_queue(9), ieee80211_queue_stopped(9), ieee80211_stop_queues(9), ieee80211_wake_queues(9), ieee80211_scan_completed(9), ieee80211_sched_scan_results(9), ieee80211_sched_scan_stopped(9), enum ieee80211_interface_iteration_flags(9), ieee80211_iterate_interfaces(9), ieee80211_iterate_active_interfaces(9), ieee80211_iterate_active_interfaces_atomic(9), for_each_interface(9), for_each_active_interface(9), ieee80211_iterate_active_interfaces_mtx(9), ieee80211_iterate_stations_atomic(9), for_each_station(9), ieee80211_iterate_stations_mtx(9), ieee80211_queue_work(9), ieee80211_queue_delayed_work(9), ieee80211_refresh_tx_agg_session_timer(9), ieee80211_start_tx_ba_session(9), ieee80211_start_tx_ba_cb_irqsafe(9), ieee80211_stop_tx_ba_session(9), ieee80211_stop_tx_ba_cb_irqsafe(9), ieee80211_find_sta(9), ieee80211_find_sta_by_ifaddr(9), ieee80211_find_sta_by_link_addrs(9), ieee80211_sta_block_awake(9), ieee80211_sta_eosp(9), ieee80211_send_eosp_nullfunc(9), ieee80211_sta_recalc_aggregates(9), ieee80211_sta_register_airtime(9), ieee80211_txq_airtime_check(9), ieee80211_txq_aql_pending(9).

halfway-ish, we're slaying πŸ’…

ieee80211_iter_keys(9), ieee80211_iter_keys_rcu(9), ieee80211_iter_chan_contexts_atomic(9), ieee80211_iter_chan_contexts_mtx(9), ieee80211_ap_probereq_get(9), ieee80211_beacon_loss(9), ieee80211_connection_loss(9), ieee80211_disconnect(9), ieee80211_resume_disconnect(9), ieee80211_hw_restart_disconnect(9), ieee80211_cqm_rssi_notify(9), ieee80211_cqm_beacon_loss_notify(9), ieee80211_radar_detected(9), ieee80211_chswitch_done(9), ieee80211_channel_switch_disconnect(9), ieee80211_request_smps(9), ieee80211_ready_on_channel(9), ieee80211_remain_on_channel_expired(9), ieee80211_stop_rx_ba_session(9), ieee80211_mark_rx_ba_filtered_frames(9), ieee80211_send_bar(9), ieee80211_manage_rx_ba_offl(9), ieee80211_start_rx_ba_session_offl(9), ieee80211_stop_rx_ba_session_offl(9), ieee80211_rx_ba_timer_expired(9), struct ieee80211_tx_rate_control(9), enum rate_control_capabilities(9), rate_control_set_rates(9), ieee80211_get_he_iftype_cap_vif(9), ieee80211_get_he_6ghz_capa_vif(9), ieee80211_get_eht_iftype_cap_vif(9), ieee80211_get_uhr_iftype_cap_vif(9), ieee80211_update_mu_groups(9), ieee80211_ave_rssi(9), ieee80211_calculate_rx_timestamp(9), ieee80211_report_wowlan_wakeup(9), ieee80211_tx_prepare_skb(9), ieee80211_parse_tx_radiotap(9), struct ieee80211_noa_data(9), ieee80211_update_p2p_noa(9), ieee80211_tdls_oper_request(9), ieee80211_reserve_tid(9), ieee80211_unreserve_tid(9), ieee80211_tx_dequeue(9), ieee80211_tx_dequeue_ni(9), ieee80211_handle_wake_tx_queue(9), ieee80211_next_txq(9), ieee80211_txq_schedule_start(9), ieee80211_schedule_txq(9), ieee80211_return_txq(9), ieee80211_txq_may_transmit(9), ieee80211_txq_get_depth(9), ieee80211_nan_func_terminated(9), ieee80211_nan_func_match(9), ieee80211_nan_sched_update_done(9), ieee80211_nan_cluster_joined(9), ieee80211_nan_try_evacuate(9), ieee80211_calc_rx_airtime(9), ieee80211_calc_tx_airtime(9), ieee80211_get_fils_discovery_tmpl(9), ieee80211_get_unsol_bcast_probe_resp_tmpl(9), ieee80211_obss_color_collision_notify(9), ieee80211_is_tx_data(9), ieee80211_set_active_links(9), ieee80211_set_active_links_async(9), ieee80211_send_teardown_neg_ttlm(9), ieee80211_chan_width_to_rx_bw(9), ieee80211_prepare_rx_omi_bw(9), ieee80211_finalize_rx_omi_bw(9), ieee80211_vif_nan_started(9), ieee80211_encrypt_tx_skb(9).

and that's the whole list, we made it, i'm crying 😭🫢


aaaand that's the page!! if you ever need ieee80211_parse_p2p_noa at 3am, you know where to find her πŸ’œ

this little gem lives in the Kernel file ./include/net and it's dated October 2026 β€” so like, future icon behavior honestly. byeee bestie, go parse some NoA descriptors βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from