H A D | p2p.c | 20 #include "p2p.h" 24 static void p2p_device_free(struct p2p_data *p2p, struct p2p_device *dev); 25 static void p2p_process_presence_req(struct p2p_data *p2p, const u8 *da, 28 static void p2p_process_presence_resp(struct p2p_data *p2p, const u8 *da, 52 void p2p_expire_peers(struct p2p_data *p2p) argument 59 dl_list_for_each_safe(dev, n, &p2p->devices, struct p2p_device, list) { 63 if (dev == p2p->go_neg_peer) { 72 if (p2p->cfg->go_connected && 73 p2p->cfg->go_connected(p2p 140 p2p_get_state_txt(struct p2p_data *p2p) argument 146 p2p_get_p2ps_adv_list(struct p2p_data *p2p) argument 152 p2p_set_intended_addr(struct p2p_data *p2p, const u8 *intended_addr) argument 159 p2p_get_provisioning_info(struct p2p_data *p2p, const u8 *addr) argument 174 p2p_clear_provisioning_info(struct p2p_data *p2p, const u8 *addr) argument 187 p2p_set_state(struct p2p_data *p2p, int new_state) argument 203 p2p_set_timeout(struct p2p_data *p2p, unsigned int sec, unsigned int usec) argument 212 p2p_clear_timeout(struct p2p_data *p2p) argument 219 p2p_go_neg_failed(struct p2p_data *p2p, int status) argument 252 p2p_listen_in_find(struct p2p_data *p2p, int dev_disc) argument 307 p2p_listen(struct p2p_data *p2p, unsigned int timeout) argument 359 p2p_device_clear_reported(struct p2p_data *p2p) argument 375 p2p_get_device(struct p2p_data *p2p, const u8 *addr) argument 392 p2p_get_device_interface(struct p2p_data *p2p, const u8 *addr) argument 413 p2p_create_device(struct p2p_data *p2p, const u8 *addr) argument 459 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 541 p2p_copy_wps_info(struct p2p_data *p2p, struct p2p_device *dev, int probe_req, const struct p2p_message *msg) argument 704 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 900 p2p_device_free(struct p2p_data *p2p, struct p2p_device *dev) argument 936 p2p_get_next_prog_freq(struct p2p_data *p2p) argument 990 p2p_search(struct p2p_data *p2p) argument 1024 struct p2p_data *p2p = eloop_ctx; local 1030 p2p_notify_scan_trigger_status(struct p2p_data *p2p, int status) argument 1046 p2p_run_after_scan(struct p2p_data *p2p) argument 1095 struct p2p_data *p2p = eloop_ctx; local 1107 p2p_free_req_dev_types(struct p2p_data *p2p) argument 1115 p2ps_gen_hash(struct p2p_data *p2p, const char *str, u8 *hash) argument 1150 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) argument 1279 p2p_stop_find_for_freq(struct p2p_data *p2p, int freq) argument 1302 p2p_stop_listen_for_freq(struct p2p_data *p2p, int freq) argument 1325 p2p_stop_listen(struct p2p_data *p2p) argument 1337 p2p_stop_find(struct p2p_data *p2p) argument 1344 p2p_prepare_channel_pref(struct p2p_data *p2p, unsigned int force_freq, unsigned int pref_freq, int go) argument 1383 p2p_prepare_channel_best(struct p2p_data *p2p) argument 1475 p2p_prepare_channel(struct p2p_data *p2p, struct p2p_device *dev, unsigned int force_freq, unsigned int pref_freq, int go) argument 1528 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 1641 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 1692 p2p_add_dev_info(struct p2p_data *p2p, const u8 *addr, struct p2p_device *dev, struct p2p_message *msg) argument 1750 p2p_build_ssid(struct p2p_data *p2p, u8 *ssid, size_t *ssid_len) argument 1760 p2p_go_params(struct p2p_data *p2p, struct p2p_go_neg_results *params) argument 1775 p2p_go_complete(struct p2p_data *p2p, struct p2p_device *peer) argument 1839 p2p_rx_p2p_action(struct p2p_data *p2p, const u8 *sa, const u8 *data, size_t len, int rx_freq) argument 1885 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 1922 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 1971 struct p2p_data *p2p = eloop_ctx; local 1991 struct p2p_data *p2p = eloop_ctx; local 2004 p2p_add_dev_from_probe_req(struct p2p_data *p2p, const u8 *addr, const u8 *ie, size_t ie_len) argument 2070 p2p_add_dev_from_go_neg_req(struct p2p_data *p2p, const u8 *addr, struct p2p_message *msg) argument 2126 p2p_match_dev_type(struct p2p_data *p2p, struct wpabuf *wps) argument 2153 p2p_build_probe_resp_ies(struct p2p_data *p2p, const u8 *query_hash, u8 query_count) argument 2216 p2p_service_find_asp(struct p2p_data *p2p, const u8 *hash) argument 2242 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 2449 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) argument 2497 p2p_assoc_req_ie_wlan_ap(struct p2p_data *p2p, const u8 *bssid, u8 *buf, size_t len, struct wpabuf *p2p_ie) argument 2558 p2p_assoc_req_ie(struct p2p_data *p2p, const u8 *bssid, u8 *buf, size_t len, int p2p_group, struct wpabuf *p2p_ie) argument 2637 p2p_service_p2ps_id(struct p2p_data *p2p, u32 adv_id) argument 2655 p2p_service_del_asp(struct p2p_data *p2p, u32 adv_id) argument 2680 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 2769 p2p_service_flush_asp(struct p2p_data *p2p) argument 2822 p2p_clear_go_neg(struct p2p_data *p2p) argument 2830 p2p_wps_success_cb(struct p2p_data *p2p, const u8 *mac_addr) argument 2853 p2p_group_formation_failed(struct p2p_data *p2p) argument 2869 struct p2p_data *p2p; local 2931 p2p_deinit(struct p2p_data *p2p) argument 2971 p2p_flush(struct p2p_data *p2p) argument 2987 p2p_unauthorize(struct p2p_data *p2p, const u8 *addr) argument 3018 p2p_set_dev_name(struct p2p_data *p2p, const char *dev_name) argument 3031 p2p_set_manufacturer(struct p2p_data *p2p, const char *manufacturer) argument 3045 p2p_set_model_name(struct p2p_data *p2p, const char *model_name) argument 3059 p2p_set_model_number(struct p2p_data *p2p, const char *model_number) argument 3073 p2p_set_serial_number(struct p2p_data *p2p, const char *serial_number) argument 3087 p2p_set_config_methods(struct p2p_data *p2p, u16 config_methods) argument 3093 p2p_set_uuid(struct p2p_data *p2p, const u8 *uuid) argument 3099 p2p_set_pri_dev_type(struct p2p_data *p2p, const u8 *pri_dev_type) argument 3106 p2p_set_sec_dev_types(struct p2p_data *p2p, const u8 dev_types[][8], size_t num_dev_types) argument 3117 p2p_remove_wps_vendor_extensions(struct p2p_data *p2p) argument 3128 p2p_add_wps_vendor_extension(struct p2p_data *p2p, const struct wpabuf *vendor_ext) argument 3151 p2p_set_country(struct p2p_data *p2p, const char *country) argument 3158 p2p_pre_find_operation(struct p2p_data *p2p, struct p2p_device *dev) argument 3183 p2p_continue_find(struct p2p_data *p2p) argument 3222 p2p_sd_cb(struct p2p_data *p2p, int success) argument 3267 p2p_retry_pd(struct p2p_data *p2p) argument 3295 p2p_prov_disc_cb(struct p2p_data *p2p, int success) argument 3344 p2p_check_after_scan_tx_continuation(struct p2p_data *p2p) argument 3361 p2p_prov_disc_resp_cb(struct p2p_data *p2p, int success) argument 3389 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 3414 p2p_scan_res_handled(struct p2p_data *p2p) argument 3429 p2p_scan_ie(struct p2p_data *p2p, struct wpabuf *ies, const u8 *dev_id) argument 3471 p2p_scan_ie_buf_len(struct p2p_data *p2p) argument 3494 p2p_go_neg_req_cb(struct p2p_data *p2p, int success) argument 3549 p2p_go_neg_resp_cb(struct p2p_data *p2p, int success) argument 3562 p2p_go_neg_resp_failure_cb(struct p2p_data *p2p, int success, const u8 *addr) argument 3584 p2p_go_neg_conf_cb(struct p2p_data *p2p, enum p2p_send_action_result result) argument 3649 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 3713 p2p_listen_cb(struct p2p_data *p2p, unsigned int freq, unsigned int duration) argument 3747 p2p_listen_end(struct p2p_data *p2p, unsigned int freq) argument 3802 p2p_timeout_connect(struct p2p_data *p2p) argument 3829 p2p_timeout_connect_listen(struct p2p_data *p2p) argument 3850 p2p_timeout_wait_peer_connect(struct p2p_data *p2p) argument 3862 p2p_timeout_wait_peer_idle(struct p2p_data *p2p) argument 3877 p2p_timeout_sd_during_find(struct p2p_data *p2p) argument 3888 p2p_timeout_prov_disc_during_find(struct p2p_data *p2p) argument 3896 p2p_timeout_prov_disc_req(struct p2p_data *p2p) argument 3946 p2p_timeout_invite(struct p2p_data *p2p) argument 3963 p2p_timeout_invite_listen(struct p2p_data *p2p) argument 3985 struct p2p_data *p2p = eloop_ctx; local 4059 p2p_reject(struct p2p_data *p2p, const u8 *peer_addr) argument 4112 p2p_get_peer_info(struct p2p_data *p2p, const u8 *addr, int next) argument 4262 p2p_peer_known(struct p2p_data *p2p, const u8 *addr) argument 4268 p2p_set_client_discoverability(struct p2p_data *p2p, int enabled) argument 4316 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 4371 p2p_process_presence_req(struct p2p_data *p2p, const u8 *da, const u8 *sa, const u8 *data, size_t len, int rx_freq) argument 4437 p2p_process_presence_resp(struct p2p_data *p2p, const u8 *da, const u8 *sa, const u8 *data, size_t len) argument 4477 struct p2p_data *p2p = eloop_ctx; local 4521 p2p_ext_listen(struct p2p_data *p2p, unsigned int period, unsigned int interval) argument 4555 p2p_deauth_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code, const u8 *ie, size_t ie_len) argument 4579 p2p_disassoc_notif(struct p2p_data *p2p, const u8 *bssid, u16 reason_code, const u8 *ie, size_t ie_len) argument 4603 p2p_set_managed_oper(struct p2p_data *p2p, int enabled) argument 4615 p2p_config_get_random_social(struct p2p_config *p2p, u8 *op_class, u8 *op_channel) argument 4622 p2p_set_listen_channel(struct p2p_data *p2p, u8 reg_class, u8 channel, u8 forced) argument 4656 p2p_get_listen_channel(struct p2p_data *p2p) argument 4662 p2p_set_ssid_postfix(struct p2p_data *p2p, const u8 *postfix, size_t len) argument 4677 p2p_set_oper_channel(struct p2p_data *p2p, u8 op_reg_class, u8 op_channel, int cfg_op_channel) argument 4692 p2p_set_pref_chan(struct p2p_data *p2p, unsigned int num_pref_chan, const struct p2p_channel *pref_chan) argument 4714 p2p_set_no_go_freq(struct p2p_data *p2p, const struct wpa_freq_range_list *list) argument 4739 p2p_get_interface_addr(struct p2p_data *p2p, const u8 *dev_addr, u8 *iface_addr) argument 4750 p2p_get_dev_addr(struct p2p_data *p2p, const u8 *iface_addr, u8 *dev_addr) argument 4761 p2p_set_peer_filter(struct p2p_data *p2p, const u8 *addr) argument 4772 p2p_set_cross_connect(struct p2p_data *p2p, int enabled) argument 4782 p2p_get_oper_freq(struct p2p_data *p2p, const u8 *iface_addr) argument 4793 p2p_set_intra_bss_dist(struct p2p_data *p2p, int enabled) argument 4801 p2p_update_channel_list(struct p2p_data *p2p, const struct p2p_channels *chan, const struct p2p_channels *cli_chan) argument 4814 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 4843 p2p_set_best_channels(struct p2p_data *p2p, int freq_24, int freq_5, int freq_overall) argument 4854 p2p_set_own_freq_preference(struct p2p_data *p2p, int freq) argument 4861 p2p_get_go_neg_peer(struct p2p_data *p2p) argument 4870 p2p_get_peer_found(struct p2p_data *p2p, const u8 *addr, int next) argument 4910 p2p_in_progress(struct p2p_data *p2p) argument 4920 p2p_set_config_timeout(struct p2p_data *p2p, u8 go_timeout, u8 client_timeout) argument 4932 p2p_update_wfd_ie_groups(struct p2p_data *p2p) argument 4944 p2p_set_wfd_ie_beacon(struct p2p_data *p2p, struct wpabuf *ie) argument 4953 p2p_set_wfd_ie_probe_req(struct p2p_data *p2p, struct wpabuf *ie) argument 4961 p2p_set_wfd_ie_probe_resp(struct p2p_data *p2p, struct wpabuf *ie) argument 4970 p2p_set_wfd_ie_assoc_req(struct p2p_data *p2p, struct wpabuf *ie) argument 4978 p2p_set_wfd_ie_invitation(struct p2p_data *p2p, struct wpabuf *ie) argument 4986 p2p_set_wfd_ie_prov_disc_req(struct p2p_data *p2p, struct wpabuf *ie) argument 4994 p2p_set_wfd_ie_prov_disc_resp(struct p2p_data *p2p, struct wpabuf *ie) argument 5002 p2p_set_wfd_ie_go_neg(struct p2p_data *p2p, struct wpabuf *ie) argument 5010 p2p_set_wfd_dev_info(struct p2p_data *p2p, const struct wpabuf *elem) argument 5024 p2p_set_wfd_assoc_bssid(struct p2p_data *p2p, const struct wpabuf *elem) argument 5038 p2p_set_wfd_coupled_sink_info(struct p2p_data *p2p, const struct wpabuf *elem) argument 5055 p2p_set_disc_int(struct p2p_data *p2p, int min_disc_int, int max_disc_int, int max_disc_tu) argument 5071 p2p_dbg(struct p2p_data *p2p, const char *fmt, ...) argument 5087 p2p_info(struct p2p_data *p2p, const char *fmt, ...) argument 5103 p2p_err(struct p2p_data *p2p, const char *fmt, ...) argument 5119 p2p_loop_on_known_peers(struct p2p_data *p2p, void (*peer_callback)(struct p2p_peer_info *peer, void *user_data), void *user_data) argument 5134 p2p_build_nfc_handover(struct p2p_data *p2p, int client_freq, const u8 *go_dev_addr, const u8 *ssid, size_t ssid_len) argument 5196 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 5206 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 5216 p2p_process_nfc_connection_handover(struct p2p_data *p2p, struct p2p_nfc_params *params) argument 5342 p2p_set_authorized_oob_dev_pw_id(struct p2p_data *p2p, u16 dev_pw_id, int go_intent, const u8 *own_interface_addr) argument 5363 p2p_set_passphrase_len(struct p2p_data *p2p, unsigned int len) argument 5372 p2p_set_vendor_elems(struct p2p_data *p2p, struct wpabuf **vendor_elem) argument 5380 struct p2p_data *p2p = eloop_ctx; local 5388 p2p_set_own_pref_freq_list(struct p2p_data *p2p, const unsigned int *pref_freq_list, unsigned int size) argument [all...] |