H A D | p2p.c | 21 #include "p2p.h" 25 static void p2p_device_free(struct p2p_data *p2p, struct p2p_device *dev); 26 static void p2p_process_presence_req(struct p2p_data *p2p, const u8 *da, 29 static void p2p_process_presence_resp(struct p2p_data *p2p, const u8 *da, 53 void p2p_expire_peers(struct p2p_data *p2p) argument 60 dl_list_for_each_safe(dev, n, &p2p->devices, struct p2p_device, list) { 64 if (dev == p2p->go_neg_peer) { 73 if (p2p->cfg->go_connected && 74 p2p->cfg->go_connected(p2p 141 p2p_get_state_txt(struct p2p_data *p2p) argument 147 p2p_get_p2ps_adv_list(struct p2p_data *p2p) argument 153 p2p_set_intended_addr(struct p2p_data *p2p, const u8 *intended_addr) argument 160 p2p_get_provisioning_info(struct p2p_data *p2p, const u8 *addr) argument 175 p2p_clear_provisioning_info(struct p2p_data *p2p, const u8 *addr) argument 188 p2p_set_state(struct p2p_data *p2p, int new_state) argument 204 p2p_set_timeout(struct p2p_data *p2p, unsigned int sec, unsigned int usec) argument 213 p2p_clear_timeout(struct p2p_data *p2p) argument 220 p2p_go_neg_failed(struct p2p_data *p2p, int status) argument 253 p2p_listen_in_find(struct p2p_data *p2p, int dev_disc) argument 308 p2p_listen(struct p2p_data *p2p, unsigned int timeout) argument 360 p2p_device_clear_reported(struct p2p_data *p2p) argument 376 p2p_get_device(struct p2p_data *p2p, const u8 *addr) argument 393 p2p_get_device_interface(struct p2p_data *p2p, const u8 *addr) argument 414 p2p_create_device(struct p2p_data *p2p, const u8 *addr) argument 465 p2p_add_group_clients(struct p2p_data *p2p, const u8 *go_dev_addr, const u8 *go_interface_addr, int freq, const u8 *gi, size_t gi_len, struct os_reltime *rx_time) argument 547 p2p_copy_wps_info(struct p2p_data *p2p, struct p2p_device *dev, int probe_req, const struct p2p_message *msg) argument 712 p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq, struct os_reltime *rx_time, int level, const u8 *ies, size_t ies_len, int scan_res) argument 916 p2p_device_free(struct p2p_data *p2p, struct p2p_device *dev) argument 952 p2p_get_next_prog_freq(struct p2p_data *p2p) argument 1006 p2p_search(struct p2p_data *p2p) argument 1048 struct p2p_data *p2p = eloop_ctx; local 1054 p2p_notify_scan_trigger_status(struct p2p_data *p2p, int status) argument 1070 p2p_run_after_scan(struct p2p_data *p2p) argument 1103 struct p2p_data *p2p = eloop_ctx; local 1115 p2p_free_req_dev_types(struct p2p_data *p2p) argument 1123 p2ps_gen_hash(struct p2p_data *p2p, const char *str, u8 *hash) argument 1158 p2p_find(struct p2p_data *p2p, unsigned int timeout, enum p2p_discovery_type type, unsigned int num_req_dev_types, const u8 *req_dev_types, const u8 *dev_id, unsigned int search_delay, u8 seek_count, const char **seek, int freq, bool include_6ghz) argument 1304 p2p_stop_find_for_freq(struct p2p_data *p2p, int freq) argument 1327 p2p_stop_listen_for_freq(struct p2p_data *p2p, int freq) argument 1352 p2p_stop_listen(struct p2p_data *p2p) argument 1364 p2p_stop_find(struct p2p_data *p2p) argument 1371 p2p_prepare_channel_pref(struct p2p_data *p2p, unsigned int force_freq, unsigned int pref_freq, int go) argument 1410 p2p_prepare_channel_best(struct p2p_data *p2p) argument 1515 p2p_prepare_channel(struct p2p_data *p2p, struct p2p_device *dev, unsigned int force_freq, unsigned int pref_freq, int go) argument 1568 p2p_connect(struct p2p_data *p2p, const u8 *peer_addr, enum p2p_wps_method wps_method, int go_intent, const u8 *own_interface_addr, unsigned int force_freq, int persistent_group, const u8 *force_ssid, size_t force_ssid_len, int pd_before_go_neg, unsigned int pref_freq, u16 oob_pw_id) argument 1670 p2p_authorize(struct p2p_data *p2p, const u8 *peer_addr, enum p2p_wps_method wps_method, int go_intent, const u8 *own_interface_addr, unsigned int force_freq, int persistent_group, const u8 *force_ssid, size_t force_ssid_len, unsigned int pref_freq, u16 oob_pw_id) argument 1721 p2p_add_dev_info(struct p2p_data *p2p, const u8 *addr, struct p2p_device *dev, struct p2p_message *msg) argument 1779 p2p_build_ssid(struct p2p_data *p2p, u8 *ssid, size_t *ssid_len) argument 1789 p2p_go_params(struct p2p_data *p2p, struct p2p_go_neg_results *params) argument 1804 p2p_go_complete(struct p2p_data *p2p, struct p2p_device *peer) argument 1869 p2p_rx_p2p_action(struct p2p_data *p2p, const u8 *sa, const u8 *data, size_t len, int rx_freq) argument 1915 p2p_rx_action_public(struct p2p_data *p2p, const u8 *da, const u8 *sa, const u8 *bssid, const u8 *data, size_t len, int freq) argument 1952 p2p_rx_action(struct p2p_data *p2p, const u8 *da, const u8 *sa, const u8 *bssid, u8 category, const u8 *data, size_t len, int freq) argument 2001 struct p2p_data *p2p = eloop_ctx; local 2021 struct p2p_data *p2p = eloop_ctx; local 2034 p2p_add_dev_from_probe_req(struct p2p_data *p2p, const u8 *addr, const u8 *ie, size_t ie_len) argument 2115 p2p_add_dev_from_go_neg_req(struct p2p_data *p2p, const u8 *addr, struct p2p_message *msg) argument 2171 p2p_match_dev_type(struct p2p_data *p2p, struct wpabuf *wps) argument 2198 p2p_build_probe_resp_ies(struct p2p_data *p2p, const u8 *query_hash, u8 query_count) argument 2260 p2p_build_probe_resp_buf(struct p2p_data *p2p, struct wpabuf *buf, struct wpabuf *ies, const u8 *addr, int rx_freq) argument 2313 p2p_service_find_asp(struct p2p_data *p2p, const u8 *hash) argument 2339 p2p_reply_probe(struct p2p_data *p2p, const u8 *addr, const u8 *dst, const u8 *bssid, const u8 *ie, size_t ie_len, unsigned int rx_freq) argument 2507 p2p_probe_req_rx(struct p2p_data *p2p, const u8 *addr, const u8 *dst, const u8 *bssid, const u8 *ie, size_t ie_len, unsigned int rx_freq, int p2p_lo_started) argument 2561 p2p_assoc_req_ie_wlan_ap(struct p2p_data *p2p, const u8 *bssid, u8 *buf, size_t len, struct wpabuf *p2p_ie) argument 2622 p2p_assoc_req_ie(struct p2p_data *p2p, const u8 *bssid, u8 *buf, size_t len, int p2p_group, struct wpabuf *p2p_ie) argument 2701 p2p_service_p2ps_id(struct p2p_data *p2p, u32 adv_id) argument 2719 p2p_service_del_asp(struct p2p_data *p2p, u32 adv_id) argument 2744 p2p_service_add_asp(struct p2p_data *p2p, int auto_accept, u32 adv_id, const char *adv_str, u8 svc_state, u16 config_methods, const char *svc_info, const u8 *cpt_priority) argument 2833 p2p_service_flush_asp(struct p2p_data *p2p) argument 2887 p2p_clear_go_neg(struct p2p_data *p2p) argument 2895 p2p_wps_success_cb(struct p2p_data *p2p, const u8 *mac_addr) argument 2918 p2p_group_formation_failed(struct p2p_data *p2p) argument 2932 is_p2p_6ghz_disabled(struct p2p_data *p2p) argument 2942 struct p2p_data *p2p; local 3004 p2p_deinit(struct p2p_data *p2p) argument 3043 p2p_flush(struct p2p_data *p2p) argument 3063 p2p_unauthorize(struct p2p_data *p2p, const u8 *addr) argument 3087 p2p_set_dev_name(struct p2p_data *p2p, const char *dev_name) argument 3100 p2p_set_manufacturer(struct p2p_data *p2p, const char *manufacturer) argument 3114 p2p_set_model_name(struct p2p_data *p2p, const char *model_name) argument 3128 p2p_set_model_number(struct p2p_data *p2p, const char *model_number) argument 3142 p2p_set_serial_number(struct p2p_data *p2p, const char *serial_number) argument 3156 p2p_set_config_methods(struct p2p_data *p2p, u16 config_methods) argument 3162 p2p_set_uuid(struct p2p_data *p2p, const u8 *uuid) argument 3168 p2p_set_pri_dev_type(struct p2p_data *p2p, const u8 *pri_dev_type) argument 3175 p2p_set_sec_dev_types(struct p2p_data *p2p, const u8 dev_types[][8], size_t num_dev_types) argument 3186 p2p_remove_wps_vendor_extensions(struct p2p_data *p2p) argument 3197 p2p_add_wps_vendor_extension(struct p2p_data *p2p, const struct wpabuf *vendor_ext) argument 3220 p2p_set_country(struct p2p_data *p2p, const char *country) argument 3227 p2p_pre_find_operation(struct p2p_data *p2p, struct p2p_device *dev) argument 3257 p2p_continue_find(struct p2p_data *p2p) argument 3304 p2p_sd_cb(struct p2p_data *p2p, int success) argument 3358 p2p_retry_pd(struct p2p_data *p2p) argument 3386 p2p_prov_disc_cb(struct p2p_data *p2p, int success) argument 3472 p2p_prov_disc_resp_cb(struct p2p_data *p2p, int success) argument 3502 p2p_scan_res_handler(struct p2p_data *p2p, const u8 *bssid, int freq, struct os_reltime *rx_time, int level, const u8 *ies, size_t ies_len) argument 3529 p2p_scan_res_handled(struct p2p_data *p2p, unsigned int delay) argument 3549 p2p_scan_ie(struct p2p_data *p2p, struct wpabuf *ies, const u8 *dev_id, unsigned int bands) argument 3595 p2p_scan_ie_buf_len(struct p2p_data *p2p) argument 3618 p2p_go_neg_req_cb(struct p2p_data *p2p, int success) argument 3673 p2p_go_neg_resp_cb(struct p2p_data *p2p, int success) argument 3686 p2p_go_neg_resp_failure_cb(struct p2p_data *p2p, int success, const u8 *addr) argument 3708 p2p_go_neg_conf_cb(struct p2p_data *p2p, enum p2p_send_action_result result) argument 3773 p2p_send_action_cb(struct p2p_data *p2p, unsigned int freq, const u8 *dst, const u8 *src, const u8 *bssid, enum p2p_send_action_result result) argument 3834 p2p_listen_cb(struct p2p_data *p2p, unsigned int freq, unsigned int duration) argument 3868 p2p_listen_end(struct p2p_data *p2p, unsigned int freq) argument 3936 p2p_timeout_connect(struct p2p_data *p2p) argument 3963 p2p_timeout_connect_listen(struct p2p_data *p2p) argument 3984 p2p_timeout_wait_peer_connect(struct p2p_data *p2p) argument 3996 p2p_timeout_wait_peer_idle(struct p2p_data *p2p) argument 4016 p2p_timeout_sd_during_find(struct p2p_data *p2p) argument 4027 p2p_timeout_prov_disc_during_find(struct p2p_data *p2p) argument 4035 p2p_timeout_prov_disc_req(struct p2p_data *p2p) argument 4085 p2p_timeout_invite(struct p2p_data *p2p) argument 4102 p2p_timeout_invite_listen(struct p2p_data *p2p) argument 4124 struct p2p_data *p2p = eloop_ctx; local 4198 p2p_reject(struct p2p_data *p2p, const u8 *peer_addr) argument 4251 p2p_get_peer_info(struct p2p_data *p2p, const u8 *addr, int next) argument 4401 p2p_peer_known(struct p2p_data *p2p, const u8 *addr) argument 4407 p2p_set_client_discoverability(struct p2p_data *p2p, int enabled) argument 4455 p2p_presence_req(struct p2p_data *p2p, const u8 *go_interface_addr, const u8 *own_interface_addr, unsigned int freq, u32 duration1, u32 interval1, u32 duration2, u32 interval2) argument 4510 p2p_process_presence_req(struct p2p_data *p2p, const u8 *da, const u8 *sa, const u8 *data, size_t len, int rx_freq) argument 4576 p2p_process_presence_resp(struct p2p_data *p2p, const u8 *da, const u8 *sa, const u8 *data, size_t len) argument 4616 struct p2p_data *p2p = eloop_ctx; local 4660 p2p_ext_listen(struct p2p_data *p2p, unsigned int period, unsigned int interval) argument 4694 p2p_deauth_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code, const u8 *ie, size_t ie_len) argument 4718 p2p_disassoc_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code, const u8 *ie, size_t ie_len) argument 4742 p2p_set_managed_oper(struct p2p_data *p2p, int enabled) argument 4754 p2p_config_get_random_social(struct p2p_config *p2p, u8 *op_class, u8 *op_channel, struct wpa_freq_range_list *avoid_list, struct wpa_freq_range_list *disallow_list) argument 4764 p2p_set_listen_channel(struct p2p_data *p2p, u8 reg_class, u8 channel, u8 forced) argument 4798 p2p_get_listen_channel(struct p2p_data *p2p) argument 4804 p2p_set_ssid_postfix(struct p2p_data *p2p, const u8 *postfix, size_t len) argument 4819 p2p_set_oper_channel(struct p2p_data *p2p, u8 op_reg_class, u8 op_channel, int cfg_op_channel) argument 4834 p2p_set_pref_chan(struct p2p_data *p2p, unsigned int num_pref_chan, const struct p2p_channel *pref_chan) argument 4855 p2p_set_no_go_freq(struct p2p_data *p2p, const struct wpa_freq_range_list *list) argument 4880 p2p_get_interface_addr(struct p2p_data *p2p, const u8 *dev_addr, u8 *iface_addr) argument 4891 p2p_get_dev_addr(struct p2p_data *p2p, const u8 *iface_addr, u8 *dev_addr) argument 4902 p2p_set_peer_filter(struct p2p_data *p2p, const u8 *addr) argument 4913 p2p_set_cross_connect(struct p2p_data *p2p, int enabled) argument 4923 p2p_get_oper_freq(struct p2p_data *p2p, const u8 *iface_addr) argument 4934 p2p_set_intra_bss_dist(struct p2p_data *p2p, int enabled) argument 4942 p2p_update_channel_list(struct p2p_data *p2p, const struct p2p_channels *chan, const struct p2p_channels *cli_chan) argument 4955 p2p_send_action(struct p2p_data *p2p, unsigned int freq, const u8 *dst, const u8 *src, const u8 *bssid, const u8 *buf, size_t len, unsigned int wait_time) argument 4975 p2p_set_best_channels(struct p2p_data *p2p, int freq_24, int freq_5, int freq_overall) argument 4986 p2p_set_own_freq_preference(struct p2p_data *p2p, int freq) argument 4993 p2p_get_go_neg_peer(struct p2p_data *p2p) argument 5002 p2p_get_peer_found(struct p2p_data *p2p, const u8 *addr, int next) argument 5042 p2p_in_progress(struct p2p_data *p2p) argument 5052 p2p_set_config_timeout(struct p2p_data *p2p, u8 go_timeout, u8 client_timeout) argument 5064 p2p_update_wfd_ie_groups(struct p2p_data *p2p) argument 5076 p2p_set_wfd_ie_beacon(struct p2p_data *p2p, struct wpabuf *ie) argument 5085 p2p_set_wfd_ie_probe_req(struct p2p_data *p2p, struct wpabuf *ie) argument 5093 p2p_set_wfd_ie_probe_resp(struct p2p_data *p2p, struct wpabuf *ie) argument 5102 p2p_set_wfd_ie_assoc_req(struct p2p_data *p2p, struct wpabuf *ie) argument 5110 p2p_set_wfd_ie_invitation(struct p2p_data *p2p, struct wpabuf *ie) argument 5118 p2p_set_wfd_ie_prov_disc_req(struct p2p_data *p2p, struct wpabuf *ie) argument 5126 p2p_set_wfd_ie_prov_disc_resp(struct p2p_data *p2p, struct wpabuf *ie) argument 5134 p2p_set_wfd_ie_go_neg(struct p2p_data *p2p, struct wpabuf *ie) argument 5142 p2p_set_wfd_dev_info(struct p2p_data *p2p, const struct wpabuf *elem) argument 5156 p2p_set_wfd_r2_dev_info(struct p2p_data *p2p, const struct wpabuf *elem) argument 5170 p2p_set_wfd_assoc_bssid(struct p2p_data *p2p, const struct wpabuf *elem) argument 5184 p2p_set_wfd_coupled_sink_info(struct p2p_data *p2p, const struct wpabuf *elem) argument 5201 p2p_set_disc_int(struct p2p_data *p2p, int min_disc_int, int max_disc_int, int max_disc_tu) argument 5217 p2p_dbg(struct p2p_data *p2p, const char *fmt, ...) argument 5233 p2p_info(struct p2p_data *p2p, const char *fmt, ...) argument 5249 p2p_err(struct p2p_data *p2p, const char *fmt, ...) argument 5265 p2p_loop_on_known_peers(struct p2p_data *p2p, void (*peer_callback)(struct p2p_peer_info *peer, void *user_data), void *user_data) argument 5280 p2p_build_nfc_handover(struct p2p_data *p2p, int client_freq, const u8 *go_dev_addr, const u8 *ssid, size_t ssid_len) argument 5342 p2p_build_nfc_handover_req(struct p2p_data *p2p, int client_freq, const u8 *go_dev_addr, const u8 *ssid, size_t ssid_len) argument 5352 p2p_build_nfc_handover_sel(struct p2p_data *p2p, int client_freq, const u8 *go_dev_addr, const u8 *ssid, size_t ssid_len) argument 5362 p2p_process_nfc_connection_handover(struct p2p_data *p2p, struct p2p_nfc_params *params) argument 5488 p2p_set_authorized_oob_dev_pw_id(struct p2p_data *p2p, u16 dev_pw_id, int go_intent, const u8 *own_interface_addr) argument 5509 p2p_set_passphrase_len(struct p2p_data *p2p, unsigned int len) argument 5518 p2p_set_vendor_elems(struct p2p_data *p2p, struct wpabuf **vendor_elem) argument 5526 struct p2p_data *p2p = eloop_ctx; local 5534 p2p_set_own_pref_freq_list(struct p2p_data *p2p, const unsigned int *pref_freq_list, unsigned int size) argument 5551 p2p_set_override_pref_op_chan(struct p2p_data *p2p, u8 op_class, u8 chan) argument 5559 p2p_build_probe_resp_template(struct p2p_data *p2p, unsigned int freq) argument 5590 p2p_is_peer_6ghz_capab(struct p2p_data *p2p, const u8 *addr) argument 5602 p2p_set_6ghz_dev_capab(struct p2p_data *p2p, bool allow_6ghz) argument 5615 is_p2p_6ghz_capable(struct p2p_data *p2p) argument 5621 p2p_wfd_enabled(struct p2p_data *p2p) argument 5631 p2p_peer_wfd_enabled(struct p2p_data *p2p, const u8 *peer_addr) argument 5644 is_p2p_allow_6ghz(struct p2p_data *p2p) argument 5650 set_p2p_allow_6ghz(struct p2p_data *p2p, bool value) argument [all...] |