Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching refs:p2p

2  * wpa_supplicant - P2P
18 #include "p2p/p2p.h"
52 * it is currently using, but is no longer valid for P2P use cases.
65 * How many seconds to try to reconnect to the GO when connection in P2P client
75 * P2P Client.
83 * WPS provisioning step on the GO. This controls the extra time the P2P
99 #define P2P_MGMT_DEVICE_PREFIX "p2p-dev-"
198 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: num_unused_channels: %d", unused);
205 * interfaces, and that are also valid for P2P operation.
227 if (p2p_supported_freq(wpa_s->global->p2p, freqs[i].freq))
233 dump_freq_data(wpa_s, "valid for P2P", p2p_freqs, j);
242 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
245 /* Use the wpa_s used to control the P2P Device operation */
251 wpa_printf(MSG_DEBUG, "P2P: Ignore own channel preference %d MHz due to p2p_ignore_shared_freq=1 configuration",
255 p2p_set_own_freq_preference(wpa_s->global->p2p, freq);
263 /* In case of concurrent P2P and external scans, delay P2P search. */
267 "P2P: Delay next P2P search by %d ms to let externally triggered scan complete",
271 p2p_scan_res_handled(wpa_s->global->p2p, delay);
286 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
289 wpa_printf(MSG_DEBUG, "P2P: Scan results received (%d BSS)",
307 wpa_printf(MSG_DEBUG, "P2P: Use P2P IE(s) from Beacon frame since no P2P IE(s) in Probe Response frames received for "
314 if (p2p_scan_res_handler(wpa_s->global->p2p, bss->bssid,
333 if (wpa_s->global->p2p_disabled || !wpa_s->global->p2p)
337 "P2P: Failed to get scan results - try to continue");
353 is_p2p_allow_6ghz(wpa_s->global->p2p) && include_6ghz)
391 p2p_notify_scan_trigger_status(wpa_s->global->p2p, ret);
395 p2p_notify_scan_trigger_status(wpa_s->global->p2p, ret);
412 * been disabled for P2P operating channel use to avoid missing
417 return p2p_supported_freq(wpa_s->global->p2p, freq);
435 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
439 wpa_dbg(wpa_s, MSG_INFO, "P2P: Reject scan trigger since one is already pending");
447 /* P2P Wildcard SSID */
456 wpa_s->wps->dev.p2p = 1;
464 * In case 6 GHz channels are requested as part of the P2P scan, only
465 * the PSCs would be included as P2P GOs are not expected to be
505 if (p2p_supported_freq(wpa_s->global->p2p, freq))
511 ielen = p2p_scan_ie_buf_len(wpa_s->global->p2p);
521 p2p_scan_ie(wpa_s->global->p2p, ies, dev_id, bands);
534 radio_remove_works(wpa_s, "p2p-scan", 0);
535 if (radio_add_work(wpa_s, 0, "p2p-scan", 0, wpas_p2p_trigger_scan_cb,
590 "P2P: Complete previously requested removal of %s",
626 "P2P: sup:%p ssid:%p disabled:%d p2p:%d mode:%d",
657 /* Find an interface for a P2P group where we are the GO */
688 /* Find an interface for a P2P group where we are the P2P Client */
730 wpa_printf(MSG_DEBUG, "P2P: Conncap - in:%d role:%d", incoming, role);
759 "P2P: GO(iface)=%p members=%u CLI(iface)=%p persistent(ssid)=%p",
764 wpa_printf(MSG_DEBUG, "P2P: p2p_no_group_iface");
893 p2p_set_intended_addr(wpa_s->global->p2p,
901 "P2P: Failed to allocate a new interface for the group");
905 p2p_set_intended_addr(wpa_s->global->p2p,
925 * pending P2P group interface waiting for provisioning or a
926 * P2P group that is trying to reconnect.
937 wpa_printf(MSG_ERROR, "P2P: P2P group interface "
960 "P2P: PSK failure removal was scheduled, so use PSK failure as reason for group removal");
1006 wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group freq_conflict timeout");
1008 wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group idle timeout");
1011 wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group formation "
1032 wpa_printf(MSG_DEBUG, "P2P: Remove group interface %s",
1047 * The primary interface was used for P2P group operations, so
1069 wpa_printf(MSG_DEBUG, "P2P: Remove temporary group network");
1080 * Networks objects created during any P2P activities are not
1081 * exposed out as they might/will confuse certain non-P2P aware
1093 wpa_printf(MSG_DEBUG, "P2P: Temporary group network not "
1115 struct wpabuf *p2p;
1131 if (p2p_get_interface_addr(wpa_s->global->p2p, bssid,
1136 wpa_printf(MSG_DEBUG, "P2P: Could not figure out whether "
1142 p2p = wpa_bss_get_vendor_ie_multi(bss, P2P_IE_VENDOR_TYPE);
1143 if (p2p == NULL)
1144 p2p = wpa_bss_get_vendor_ie_multi_beacon(bss,
1146 if (p2p == NULL) {
1147 wpa_printf(MSG_DEBUG, "P2P: Could not figure out whether "
1149 " did not include P2P IE", MAC2STR(bssid));
1150 wpa_hexdump(MSG_DEBUG, "P2P: Probe Response IEs",
1152 wpa_hexdump(MSG_DEBUG, "P2P: Beacon IEs",
1158 group_capab = p2p_get_group_capab(p2p);
1159 addr = p2p_get_go_dev_addr(p2p);
1160 P2P: Checking whether group is persistent: "
1164 wpa_printf(MSG_DEBUG, "P2P: GO Device Address " MACSTR,
1168 wpabuf_free(p2p);
1170 wpa_printf(MSG_DEBUG, "P2P: BSS " MACSTR " group_capab=0x%x "
1185 wpa_printf(MSG_DEBUG, "P2P: Storing credentials for a persistent "
1196 wpa_printf(MSG_DEBUG, "P2P: Update existing persistent group "
1204 wpa_printf(MSG_DEBUG, "P2P: Create a new persistent group "
1261 wpa_printf(MSG_DEBUG, "P2P: Failed to update configuration");
1343 wpa_printf(MSG_DEBUG, "P2P: Failed to update configuration");
1412 "P2P: Stop provisioning state due to failure");
1508 "P2P: Free Action frame radio work @%p (freq=%u dst="
1513 wpa_hexdump(MSG_DEBUG, "P2P: Freeing pending Action frame",
1530 wpa_printf(MSG_DEBUG, "P2P: Send Action frame radio work timed out");
1542 "P2P: Clear Action TX work @%p (wait_time=%u)",
1549 * places in the P2P code is still using non-zero wait
1576 if (wpa_s->global->p2p == NULL || wpa_s->global->p2p_disabled)
1591 p2p_send_action_cb(wpa_s->global->p2p, freq, dst, src, bssid, res);
1599 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: No ACK for PD Req "
1645 if (radio_work_pending(wpa_s, "p2p-send-action")) {
1646 wpa_printf(MSG_DEBUG, "P2P: Cannot schedule new p2p-send-action work since one is already pending");
1662 if (radio_add_work(wpa_s, freq, "p2p-send-action", 1,
1688 wpa_printf(MSG_DEBUG, "P2P: Schedule new radio work for Action frame TX (listen_freq=%d send_freq=%d freq=%u)",
1697 wpa_printf(MSG_DEBUG, "P2P: Use ongoing radio work for Action frame TX");
1737 wpa_printf(MSG_DEBUG, "P2P: Start WPS Enrollee for peer " MACSTR
1741 wpa_hexdump_ascii(MSG_DEBUG, "P2P: Start WPS Enrollee for SSID",
1792 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Add persistent group PSK entry for "
1794 MAC2STR(psk->addr), psk->p2p);
1799 if (psk->p2p)
1827 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Common group frequencies:%s", buf);
1857 wpa_printf(MSG_DEBUG, "P2P: Failed to update configuration");
1873 "P2P: p2p_go_configured() called with wpa_s->go_params == NULL");
1882 wpa_printf(MSG_DEBUG, "P2P: Group setup without provisioning");
1927 "P2P: Start group formation timeout of %d seconds until first data connection on GO",
1942 wpa_printf(MSG_DEBUG, "P2P: Setting up WPS for GO provisioning");
1945 wpa_printf(MSG_DEBUG, "P2P: Failed to setup MAC address "
1957 wpa_printf(MSG_DEBUG, "P2P: No NFC Dev Pw known");
2008 /* Find the highest EDMG channel bandwidth to start the P2P GO */
2057 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Starting GO");
2059 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Could not copy GO Negotiation "
2066 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Could not add network for GO");
2096 "P2P: Could not match EDMG channel, freq %d, for GO",
2109 is_p2p_6ghz_capable(wpa_s->global->p2p)) {
2114 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Use SAE auth_alg and key_mgmt");
2116 p2p_set_6ghz_dev_capab(wpa_s->global->p2p, false);
2128 /* P2P GO in 60 GHz is always a PCP (PBSS) */
2135 "P2P: Failed to copy passphrase for GO");
2155 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Request scan (that will be skipped) to "
2233 os_snprintf(ifname, len, "p2p-%s-%d", ifname_ptr, wpa_s->p2p_group_idx);
2239 res = os_snprintf(ifname, len, "p2p-%d", wpa_s->p2p_group_idx);
2252 wpa_printf(MSG_DEBUG, "P2P: Pending virtual interface exists "
2255 wpa_printf(MSG_DEBUG, "P2P: Pending virtual address "
2266 wpa_printf(MSG_DEBUG, "P2P: Create a new interface %s for the group",
2273 wpa_printf(MSG_ERROR, "P2P: Failed to create new group "
2280 wpa_printf(MSG_DEBUG, "P2P: Generate random MAC address " MACSTR
2286 wpa_printf(MSG_DEBUG, "P2P: Driver forced interface name %s",
2293 wpa_printf(MSG_DEBUG, "P2P: Created pending virtual interface %s addr "
2308 wpa_printf(MSG_DEBUG, "P2P: Removing pending group interface %s",
2325 wpa_printf(MSG_ERROR, "P2P: No pending group interface");
2351 wpa_printf(MSG_ERROR, "P2P: Failed to create new "
2381 wpa_printf(MSG_DEBUG, "P2P: Using random MAC address " MACSTR
2394 wpa_printf(MSG_DEBUG, "P2P: Group Formation timed out");
2404 if (wpa_s->global->p2p)
2405 p2p_group_formation_failed(wpa_s->global->p2p);
2412 wpa_printf(MSG_DEBUG, "P2P: Reject group formation due to WPS provisioning failure");
2439 wpa_printf(MSG_DEBUG, "P2P: Group join retry limit exceeded");
2500 wpa_printf(MSG_DEBUG, "P2P: Override passphrase based "
2660 wpa_printf(MSG_DEBUG, "P2P: Abort ongoing scan failed");
2717 wpa_printf(MSG_DEBUG, "P2P: Failed to request the driver to "
2736 wpa_printf(MSG_DEBUG, "P2P: Failed to request the driver "
2756 wpa_printf(MSG_DEBUG, "P2P: Reject start_listen since p2p_listen_work already exists");
2773 if (radio_add_work(wpa_s, freq, "p2p-listen", 0, wpas_start_listen_cb,
2794 * Don't cancel Probe Request RX reporting for a connected P2P Client
2802 if (radio_work_pending(wpa_s, "p2p-listen")) {
2804 "P2P: p2p-listen is still pending - remove it");
2805 radio_remove_works(wpa_s, "p2p-listen", 0);
2877 wpa_printf(MSG_DEBUG, "P2P: PD Request event truncated");
2882 wpa_printf(MSG_DEBUG, "P2P: Could not generate PIN");
2912 wpa_printf(MSG_DEBUG, "P2P: Starting pending "
2933 wpa_printf(MSG_DEBUG, "P2P: Could not generate PIN");
2959 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: PD for p2p_connect-auto "
2970 wpa_printf(MSG_DEBUG, "P2P: Starting pending "
3023 "P2P: Failed to get group common freqs");
3089 /* find a candidate freq that is supported by P2P */
3091 if (p2p_supported_freq(wpa_s->global->p2p, freqs[c].freq))
3099 if (!p2p_supported_freq(wpa_s->global->p2p, freqs[i].freq))
3104 * 2. P2P Clients have higher preference.
3145 if (!res && !is_p2p_allow_6ghz(wpa_s->global->p2p))
3150 "P2P: No preferred frequency list available");
3157 (!p2p_supported_freq(wpa_s->global->p2p,
3163 "P2P: preferred_freq_list[%d]=%d is disallowed",
3169 wpa_printf(MSG_DEBUG, "P2P: Using preferred_freq_list[%d]=%d",
3173 "P2P: All driver preferred frequencies are disallowed for P2P use");
3199 wpa_printf(MSG_DEBUG, "P2P: Invitation from " MACSTR
3205 wpa_printf(MSG_DEBUG, "P2P: Accept previously "
3213 wpa_printf(MSG_DEBUG, "P2P: Accept invitation based on local enabled NFC Tag");
3233 wpa_printf(MSG_DEBUG, "P2P: Accept invitation to already "
3242 wpa_printf(MSG_DEBUG, "P2P: Accept previously initiated "
3257 wpa_printf(MSG_DEBUG, "P2P: Invitation from " MACSTR
3266 wpa_printf(MSG_DEBUG, "P2P: The only available "
3280 wpa_printf(MSG_ERROR, "P2P: Failed to allocate a new "
3309 wpa_printf(MSG_DEBUG, "P2P: Trying to prefer a channel already used by one of the interfaces");
3314 wpa_printf(MSG_DEBUG, "P2P: No extra channels available - trying to force channel to match a channel already used by one of the interfaces");
3323 wpa_printf(MSG_DEBUG, "P2P: Peer was found to be "
3330 wpa_printf(MSG_DEBUG, "P2P: Forced GO freq %d MHz not "
3358 wpa_printf(MSG_DEBUG, "P2P: Invitation from peer " MACSTR
3384 1, is_p2p_allow_6ghz(wpa_s->global->p2p), 0,
3402 wpa_printf(MSG_DEBUG, "P2P: Invitation from peer " MACSTR
3459 wpa_printf(MSG_DEBUG, "P2P: Remove persistent group %d "
3468 wpa_printf(MSG_DEBUG, "P2P: Remove peer " MACSTR " from persistent "
3478 wpa_printf(MSG_DEBUG, "P2P: Failed to update configuration");
3519 wpa_printf(MSG_DEBUG, "P2P: Invitation result - status=%d peer=" MACSTR,
3541 "Testing: force P2P GO CSA after invitation");
3556 wpa_printf(MSG_DEBUG, "P2P: Waiting for peer to start another "
3574 wpa_printf(MSG_ERROR, "P2P: Could not find persistent group "
3587 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: 50 ms wait on current channel before "
3600 wpa_printf(MSG_DEBUG, "P2P: Persistent group invitation success - op_freq=%d MHz SSID=%s",
3615 is_p2p_allow_6ghz(wpa_s->global->p2p), 0,
3646 wpa_printf(MSG_DEBUG, "P2P: Enable operating classes for 2.4 GHz "
3659 wpa_printf(MSG_DEBUG, "P2P: Enable operating classes for lower 5 GHz "
3676 wpa_printf(MSG_DEBUG, "P2P: Enable operating classes for higher 5 GHz "
3780 return NOT_ALLOWED; /* Do not allow DFS channels for P2P */
3961 P2P: Driver did not support fetching "
3974 if (o->p2p == NO_P2P_SUPP ||
3999 wpa_printf(MSG_DEBUG, "P2P: Add operating class %u",
4014 wpa_printf(MSG_DEBUG, "P2P: Add operating class %u (client only)",
4028 wpa_hexdump(MSG_DEBUG, "P2P: Channels",
4032 wpa_hexdump(MSG_DEBUG, "P2P: Channels (client only)",
4057 if ((o->p2p == NO_P2P_SUPP &&
4226 wpa_msg_global(wpa_s, level, "P2P: %s", msg);
4258 wpa_printf(MSG_DEBUG, "P2P: Failed to create P2P Device interface");
4271 * If a P2P Device configuration file was given, use it as the interface
4284 wpa_printf(MSG_DEBUG, "P2P: Failed to add P2P Device interface");
4305 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: No group interface was waiting for presence response");
4358 * group_iface will be set to 1 only if a dedicated interface for P2P
4410 "P2P: Remove stale persistent group id=%d",
4537 "P2P: Remove empty persistent group id=%d",
4564 "P2P: Peer device is a GO in a persistent group, but it did not provide the intended MAC address");
4582 "P2P: Remove stale persistent group id=%d",
4617 "P2P: Remove empty persistent group id=%d",
4699 "P2P: Setting PIN-1 for ANY");
4705 "P2P: Setting PIN-1 for " MACSTR,
4735 "P2P: Remove empty persistent group id=%d",
4805 is_p2p_allow_6ghz(wpa_s->global->p2p), 0, NULL);
4808 is_p2p_allow_6ghz(wpa_s->global->p2p));
4885 * wpas_p2p_init - Initialize P2P module for %wpa_supplicant
4892 struct p2p_config p2p;
4901 if (global->p2p)
4906 "Failed to initialize P2P random MAC address.");
4910 os_memset(&p2p, 0, sizeof(p2p));
4911 p2p.cb_ctx = wpa_s;
4912 p2p.debug_print = wpas_p2p_debug_print;
4913 p2p.p2p_scan = wpas_p2p_scan;
4914 p2p.send_action = wpas_send_action;
4915 p2p.send_action_done = wpas_send_action_done;
4916 p2p.go_neg_completed = wpas_go_neg_completed;
4917 p2p.go_neg_req_rx = wpas_go_neg_req_rx;
4918 p2p.dev_found = wpas_dev_found;
4919 p2p.dev_lost = wpas_dev_lost;
4920 p2p.find_stopped = wpas_find_stopped;
4921 p2p.start_listen = wpas_start_listen;
4922 p2p.stop_listen = wpas_stop_listen;
4923 p2p.send_probe_resp = wpas_send_probe_resp;
4924 p2p.sd_request = wpas_sd_request;
4925 p2p.sd_response = wpas_sd_response;
4926 p2p.prov_disc_req = wpas_prov_disc_req;
4927 p2p.prov_disc_resp = wpas_prov_disc_resp;
4928 p2p.prov_disc_fail = wpas_prov_disc_fail;
4929 p2p.invitation_process = wpas_invitation_process;
4930 p2p.invitation_received = wpas_invitation_received;
4931 p2p.invitation_result = wpas_invitation_result;
4932 p2p.get_noa = wpas_get_noa;
4933 p2p.go_connected = wpas_go_connected;
4934 p2p.presence_resp = wpas_presence_resp;
4935 p2p.is_concurrent_session_active = wpas_is_concurrent_session_active;
4936 p2p.is_p2p_in_progress = _wpas_p2p_in_progress;
4937 p2p.get_persistent_group = wpas_get_persistent_group;
4938 p2p.get_go_info = wpas_get_go_info;
4939 p2p.remove_stale_groups = wpas_remove_stale_groups;
4940 p2p.p2ps_prov_complete = wpas_p2ps_prov_complete;
4941 p2p.prov_disc_resp_cb = wpas_prov_disc_resp_cb;
4942 p2p.p2ps_group_capability = p2ps_group_capability;
4943 p2p.get_pref_freq_list = wpas_p2p_get_pref_freq_list;
4944 p2p.p2p_6ghz_disable = wpa_s->conf->p2p_6ghz_disable;
4947 os_memcpy(p2p.dev_addr, wpa_s->global->p2p_dev_addr, ETH_ALEN);
4948 p2p.dev_name = wpa_s->conf->device_name;
4949 p2p.manufacturer = wpa_s->conf->manufacturer;
4950 p2p.model_name = wpa_s->conf->model_name;
4951 p2p.model_number = wpa_s->conf->model_number;
4952 p2p.serial_number = wpa_s->conf->serial_number;
4954 os_memcpy(p2p.uuid, wpa_s->wps->uuid, 16);
4955 p2p.config_methods = wpa_s->wps->config_methods;
4958 if (wpas_p2p_setup_channels(wpa_s, &p2p.channels, &p2p.cli_channels,
4959 p2p.p2p_6ghz_disable)) {
4961 "P2P: Failed to configure supported channel list");
4967 p2p.reg_class = wpa_s->conf->p2p_listen_reg_class;
4968 p2p.channel = wpa_s->conf->p2p_listen_channel;
4969 p2p.channel_forced = 1;
4975 if (p2p_config_get_random_social(&p2p, &p2p.reg_class,
4976 &p2p.channel,
4981 "P2P: No social channels supported by the driver - do not enable P2P");
4984 p2p.channel_forced = 0;
4986 wpa_printf(MSG_DEBUG, "P2P: Own listen channel: %d:%d",
4987 p2p.reg_class, p2p.channel);
4991 p2p.op_reg_class = wpa_s->conf->p2p_oper_reg_class;
4992 p2p.op_channel = wpa_s->conf->p2p_oper_channel;
4993 p2p.cfg_op_channel = 1;
4994 wpa_printf(MSG_DEBUG, "P2P: Configured operating channel: "
4995 "%d:%d", p2p.op_reg_class, p2p.op_channel);
5003 if (p2p_config_get_random_social(&p2p, &p2p.op_reg_class,
5004 &p2p.op_channel, NULL,
5007 "P2P: Failed to select random social channel as operation channel");
5008 p2p.op_reg_class = 0;
5009 p2p.op_channel = 0;
5013 p2p.cfg_op_channel = 0;
5014 wpa_printf(MSG_DEBUG, "P2P: Random operating channel: "
5015 "%d:%d", p2p.op_reg_class, p2p.op_channel);
5019 p2p.pref_chan = wpa_s->conf->p2p_pref_chan;
5020 p2p.num_pref_chan = wpa_s->conf->num_p2p_pref_chan;
5024 os_memcpy(p2p.country, wpa_s->conf->country, 2);
5025 p2p.country[2] = 0x04;
5027 os_memcpy(p2p.country, "XX\x04", 3);
5029 os_memcpy(p2p.pri_dev_type, wpa_s->conf->device_type,
5032 p2p.num_sec_dev_types = wpa_s->conf->num_sec_device_types;
5033 os_memcpy(p2p.sec_dev_type, wpa_s->conf->sec_device_type,
5034 p2p.num_sec_dev_types * WPS_DEV_TYPE_LEN);
5036 p2p.concurrent_operations = !!(wpa_s->drv_flags &
5039 p2p.max_peers = 100;
5042 p2p.ssid_postfix_len =
5044 if (p2p.ssid_postfix_len > sizeof(p2p.ssid_postfix))
5045 p2p.ssid_postfix_len = sizeof(p2p.ssid_postfix);
5046 os_memcpy(p2p.ssid_postfix, wpa_s->conf->p2p_ssid_postfix,
5047 p2p.ssid_postfix_len);
5050 p2p.p2p_intra_bss = wpa_s->conf->p2p_intra_bss;
5052 p2p.max_listen = wpa_s->max_remain_on_chan;
5056 p2p.passphrase_len = wpa_s->conf->p2p_passphrase_len;
5058 p2p.passphrase_len = 8;
5060 global->p2p = p2p_init(&p2p);
5061 if (global->p2p == NULL)
5069 global->p2p, wpa_s->conf->wps_vendor_ext[i]);
5072 p2p_set_no_go_freq(global->p2p, &wpa_s->conf->p2p_no_go_freq);
5079 * wpas_p2p_deinit - Deinitialize per-interface P2P data
5082 * This function deinitialize per-interface P2P data.
5092 wpa_s->global->p2p,
5123 * is on top of a P2P group interface */
5128 * wpas_p2p_deinit_global - Deinitialize global P2P module
5131 * This function deinitializes the global (per device) P2P module.
5141 /* Remove remaining P2P group interfaces */
5153 /* Disconnect from the P2P group and deinit the interface */
5166 p2p_deinit(global->p2p);
5167 global->p2p = NULL;
5179 return 1; /* P2P group requires a new interface in every case
5205 p2p_set_config_timeout(wpa_s->global->p2p,
5208 return p2p_connect(wpa_s->global->p2p, peer_addr, wps_method,
5228 return p2p_authorize(wpa_s->global->p2p, peer_addr, wps_method,
5240 wpa_printf(MSG_DEBUG, "P2P: Join scan attempt %d",
5243 wpa_printf(MSG_DEBUG, "P2P: Failed to find GO " MACSTR
5257 "P2P: Join operation failed - fall back to GO Negotiation");
5292 wpa_printf(MSG_DEBUG, "P2P: Frequency %d MHz in use by another virtual interface and can be used",
5299 wpa_printf(MSG_DEBUG, "P2P: No valid operating frequencies");
5318 wpa_printf(MSG_DEBUG, "P2P: Peer BSS entry not updated in the "
5325 wpa_printf(MSG_DEBUG, "P2P: Current BSS entry for peer updated at "
5346 wpa_printf(MSG_DEBUG, "P2P: Scan results received (%d BSS) for %sjoin",
5363 wpa_printf(MSG_DEBUG, "P2P: Scan retry %d for "
5379 wpa_printf(MSG_DEBUG, "P2P: Auto PD with " MACSTR " join=%d",
5381 if (p2p_prov_disc_req(wpa_s->global->p2p,
5398 wpa_printf(MSG_DEBUG, "P2P: Peer was not found to be "
5417 is_p2p_allow_6ghz(wpa_s->global->p2p));
5421 wpa_printf(MSG_DEBUG, "P2P: Peer was found running GO%s -> "
5431 freq = p2p_get_oper_freq(wpa_s->global->p2p,
5434 p2p_get_interface_addr(wpa_s->global->p2p,
5439 wpa_printf(MSG_DEBUG, "P2P: Overwrite pending interface "
5441 " based on newly discovered P2P peer entry",
5447 freq = p2p_get_oper_freq(wpa_s->global->p2p,
5451 wpa_printf(MSG_DEBUG, "P2P: Target GO operating frequency "
5452 "from P2P peer table: %d MHz", freq);
5455 wpa_printf(MSG_DEBUG, "P2P: Trying to find target GO BSS entry based on BSSID "
5464 wpa_printf(MSG_DEBUG, "P2P: Trying to find target GO BSS entry based on BSSID "
5473 wpa_printf(MSG_DEBUG, "P2P: Target GO operating frequency "
5482 "P2P: Update target GO device address based on BSS entry: " MACSTR " (was " MACSTR ")",
5501 wpa_printf(MSG_DEBUG, "P2P: Send Provision Discovery Request "
5525 if ((p2p_get_provisioning_info(wpa_s->global->p2p,
5532 wpa_printf(MSG_DEBUG, "P2P: Provision discovery "
5540 if (p2p_prov_disc_req(wpa_s->global->p2p,
5544 wpa_printf(MSG_DEBUG, "P2P: Failed to send Provision "
5553 wpa_printf(MSG_DEBUG, "P2P: Failed to find BSS/GO - try again later");
5578 /* P2P Wildcard SSID */
5591 wpa_s->wps->dev.p2p = 1;
5606 oper_freq = p2p_get_oper_freq(wpa_s->global->p2p,
5618 ielen = p2p_scan_ie_buf_len(wpa_s->global->p2p);
5629 p2p_scan_ie(wpa_s->global->p2p, ies, NULL, bands);
5658 wpa_printf(MSG_DEBUG, "P2P: Failed to start scan for join - "
5679 wpa_printf(MSG_DEBUG, "P2P: Request to join existing group (iface "
5684 wpa_printf(MSG_DEBUG, "P2P: Group SSID specified: %s",
5753 wpa_printf(MSG_DEBUG, "P2P: Join target GO operating frequency from BSS table: %d MHz (SSID %s)",
5759 wpa_printf(MSG_DEBUG, "P2P: Join target GO (SSID %s)",
5765 wpa_printf(MSG_DEBUG, "P2P: Cancel remain-on-channel prior to "
5808 * than the number of frequencies used for P2P, so get the system wide
5814 "P2P: Setup freqs: freq=%d num_MCC=%d shared_freqs=%u num_unused=%d",
5820 ret = p2p_supported_freq(wpa_s->global->p2p, freq);
5822 ret = p2p_supported_freq_cli(wpa_s->global->p2p, freq);
5829 * to the driver, allow P2P GO to use it.
5832 "P2P: The forced channel for GO (%u MHz) is DFS, and DFS is offloaded to the driver",
5836 "P2P: The forced channel (%u MHz) is not supported for P2P uses",
5849 wpa_printf(MSG_DEBUG, "P2P: Cannot start P2P group on %u MHz as there are no available channels",
5854 wpa_printf(MSG_DEBUG, "P2P: Trying to force us to use the "
5863 wpa_printf(MSG_DEBUG, "P2P: best_freq=%d, go=%d",
5876 wpa_printf(MSG_DEBUG, "P2P: Try to prefer a frequency (%u MHz) we are already using",
5880 wpa_printf(MSG_DEBUG, "P2P: Try to force us to use frequency (%u MHz) which is already in use",
5886 "P2P: Current operating channels are not available for P2P. Try to use another channel");
5890 "P2P: All channels are in use and none of them are P2P enabled. Cannot start P2P group");
5911 if (!p2p_wfd_enabled(wpa_s->global->p2p))
5913 if (peer_addr && !p2p_peer_wfd_enabled(wpa_s->global->p2p, peer_addr))
5925 "P2P: Allow connection on 6 GHz channels");
5926 p2p_set_6ghz_dev_capab(wpa_s->global->p2p, true);
5930 p2p_set_6ghz_dev_capab(wpa_s->global->p2p, false);
5938 * wpas_p2p_connect - Request P2P Group Formation to be started
5940 * @peer_addr: Address of the peer P2P Device
5961 * @allow_6ghz: Allow P2P connection on 6 GHz channels
5983 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
6033 wpa_printf(MSG_DEBUG, "P2P: Randomly generated PIN: %s",
6044 wpa_printf(MSG_DEBUG, "P2P: Authorize invitation to "
6051 if (p2p_get_interface_addr(wpa_s->global->p2p, peer_addr,
6054 p2p_get_dev_addr(wpa_s->global->p2p, peer_addr,
6059 wpa_printf(MSG_DEBUG, "P2P: Auto join started at "
6080 p2p_set_own_pref_freq_list(wpa_s->global->p2p, pref_freq_list, size);
6090 wpa_printf(MSG_ERROR, "P2P: Failed to allocate a new "
6136 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
6138 wpa_printf(MSG_DEBUG, "P2P: remain-on-channel callback (off_channel_freq=%u pending_listen_freq=%d roc_waiting_drv_freq=%d freq=%u duration=%u)",
6143 p2p_listen_cb(wpa_s->global->p2p, wpa_s->pending_listen_freq,
6147 wpa_printf(MSG_DEBUG, "P2P: Ignore remain-on-channel callback (off_channel_freq=%u pending_listen_freq=%d freq=%u duration=%u)",
6160 return p2p_listen(wpa_s->global->p2p, timeout);
6176 wpa_printf(MSG_DEBUG, "P2P: Cancel remain-on-channel callback "
6181 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
6185 if (p2p_listen_end(wpa_s->global->p2p, freq) > 0)
6186 return; /* P2P module started a new operation */
6190 wpa_printf(MSG_DEBUG, "P2P: Continuing long Listen state");
6197 p2p_stop_listen(wpa_s->global->p2p);
6203 * wpas_p2p_group_remove - Remove a P2P group
6209 * This function is used to remove a P2P group. This can be used to disconnect
6210 * from a group in which the local end is a P2P Client or to end a P2P Group in
6213 * configured P2P group network will be removed from the interface.
6243 wpa_printf(MSG_DEBUG, "Remove calling_wpa_s P2P group");
6271 if (!res && size > 0 && !is_p2p_allow_6ghz(wpa_s->global->p2p))
6277 (!p2p_supported_freq(wpa_s->global->p2p,
6285 "P2P: preferred_freq_list[%d]=%d is disallowed",
6292 "P2P: Using preferred_freq_list[%d]=%d",
6296 "P2P: All driver preferred frequencies are disallowed for P2P use");
6300 "P2P: No preferred frequency list available");
6305 wpa_printf(MSG_DEBUG, "P2P: Request to start GO on 2.4 GHz "
6308 p2p_supported_freq_go(wpa_s->global->p2p,
6311 wpa_printf(MSG_DEBUG, "P2P: Use best 2.4 GHz band "
6317 wpa_printf(MSG_DEBUG, "P2P: Use random 2.4 GHz band "
6323 wpa_printf(MSG_DEBUG, "P2P: Request to start GO on 5 GHz "
6326 p2p_supported_freq_go(wpa_s->global->p2p,
6329 wpa_printf(MSG_DEBUG, "P2P: Use best 5 GHz band "
6352 if (p2p_supported_freq_go(wpa_s->global->p2p,
6358 wpa_printf(MSG_DEBUG, "P2P: Could not select "
6359 "5 GHz channel for P2P group");
6362 wpa_printf(MSG_DEBUG, "P2P: Use random 5 GHz band "
6367 if (freq > 0 && !p2p_supported_freq_go(wpa_s->global->p2p, freq)) {
6373 * driver, allow P2P GO to use it.
6375 wpa_printf(MSG_DEBUG, "P2P: "
6380 wpa_printf(MSG_DEBUG, "P2P: The forced channel for GO "
6381 "(%u MHz) is not supported for P2P uses",
6395 p2p_supported_freq_go(wpa_s->global->p2p, freq) &&
6459 wpa_printf(MSG_DEBUG, "P2P: No 2.4, 5, or 60 GHz channel allowed");
6462 wpa_printf(MSG_DEBUG, "P2P: Set GO freq %d MHz (no preference known)",
6514 wpa_printf(MSG_DEBUG, "P2P: %s called for an active GO",
6518 * If the frequency selection is done for an active P2P GO that
6521 * move the P2P GO so its frequency can be re-used.
6544 "P2P: Forced GO freq %d MHz disallowed",
6548 if (!p2p_supported_freq_go(wpa_s->global->p2p, freq)) {
6554 * to the driver, allow P2P GO to use it.
6557 "P2P: %s: The forced channel for GO (%u MHz) requires DFS and DFS is offloaded",
6561 "P2P: The forced channel for GO (%u MHz) is not supported for P2P uses",
6570 "P2P: forced freq (%d MHz) is also shared",
6579 "P2P: Cannot force GO on freq (%d MHz) as all the channels are in use",
6585 "P2P: force GO freq (%d MHz) on a free channel",
6597 "P2P: Use shared freq (%d MHz) for GO",
6608 "P2P: Use shared freq (%d MHz) for GO",
6618 "P2P: Cannot force GO on any of the channels we are already using");
6630 wpa_printf(MSG_DEBUG, "P2P: Set GO freq based on configured "
6646 wpa_printf(MSG_DEBUG, "P2P: Set GO freq based on configured "
6657 wpa_printf(MSG_DEBUG, "P2P: Set GO freq based on best overall "
6667 wpa_printf(MSG_DEBUG, "P2P: Set GO freq based on best 2.4 GHz "
6677 wpa_printf(MSG_DEBUG, "P2P: Set GO freq based on best 5 GHz "
6683 cand = p2p_get_pref_freq(wpa_s->global->p2p, channels);
6686 wpa_printf(MSG_DEBUG, "P2P: Set GO freq %d MHz from preferred "
6711 "P2P: Use freq %d MHz common with the peer and allowing VHT80",
6766 "P2P: Use freq %d MHz common with the peer, allowing HT40, and maintaining same band",
6784 "P2P: Use freq %d MHz common with the peer and maintaining same band",
6798 "P2P: Use freq %d MHz common with the peer",
6809 wpa_printf(MSG_DEBUG, "P2P: did not find a freq for GO use");
6839 "P2P: Use primary interface for group operations");
6849 "P2P: Failed to add group interface");
6855 "P2P: Failed to initialize group interface");
6871 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Use separate group interface %s",
6879 * wpas_p2p_group_add - Add a new P2P group with local end as Group Owner
6888 * @allow_6ghz: Allow P2P group creation on a 6 GHz channel
6891 * This function creates a new P2P group with the local end as the Group Owner,
6902 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
6911 wpa_printf(MSG_DEBUG, "P2P: Stop any on-going P2P FIND");
6926 p2p_go_params(wpa_s->global->p2p, &params);
6971 is_p2p_6ghz_capable(wpa_s->global->p2p)) {
6977 "P2P: Enable SAE auth_alg and key_mgmt");
7058 wpa_printf(MSG_DEBUG, "P2P: Requested persistent group is "
7072 "P2P: Reschedule group formation timeout since peer is still trying to invite us");
7133 wpa_printf(MSG_ERROR, "P2P: Invalid passphrase in "
7163 if (!(hapd->conf->p2p & P2P_GROUP_OWNER)) {
7187 wpa_printf(MSG_DEBUG, "P2P: GO - group %sidle", idle ? "" : "not ");
7206 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL ||
7233 group = p2p_group_init(wpa_s->global->p2p, cfg);
7249 wpa_printf(MSG_DEBUG, "P2P: Ignore WPS success event - P2P "
7260 p2p_clear_provisioning_info(wpa_s->global->p2p, go_dev_addr);
7270 * something goes wrong in this step before the P2P group idle
7274 "P2P
7288 "P2P: Re-start group formation timeout (%d seconds) as GO for initial connection",
7298 if (wpa_s->global->p2p)
7299 p2p_wps_success_cb(wpa_s->global->p2p, peer_addr);
7308 wpa_printf(MSG_DEBUG, "P2P: Ignore WPS fail event - P2P "
7315 wpa_s->global->p2p,
7327 wpa_printf(MSG_DEBUG, "P2P: WPS step failed during group formation - reject connection from timeout");
7365 "P2P: %s conncap: %d - ASP parsed: %x %x %d %s",
7379 wpa_printf(MSG_DEBUG, "P2P: Unknown config method");
7394 wpa_printf(MSG_DEBUG, "P2P: Auto PD started at %ld.%06ld",
7401 if (wpa_s->global->p2p == NULL || wpa_s->global->p2p_disabled) {
7406 return p2p_prov_disc_req(wpa_s->global->p2p, peer_addr, p2ps_prov,
7434 wpa_printf(MSG_DEBUG, "P2P: Drop pending Action TX due to new "
7450 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL ||
7452 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Reject p2p_find operation%s%s",
7453 (wpa_s->global->p2p_disabled || !wpa_s->global->p2p) ?
7454 " (P2P disabled)" : "",
7462 return p2p_find(wpa_s->global->p2p, timeout, type,
7472 wpa_printf(MSG_DEBUG, "P2P: Ignore scan results");
7480 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
7484 * Indicate that results have been processed so that the P2P module can
7498 if (wpa_s->global->p2p)
7499 p2p_stop_find(wpa_s->global->p2p);
7503 "P2P: Do not consider the scan results after stop_find");
7528 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
7533 "P2P: Cannot start P2P listen, it is offloaded");
7556 if (wpa_s->global->p2p)
7557 p2p_stop_find(wpa_s->global->p2p);
7581 * p2p_disabled=1 interface when associating with a P2P Manager WLAN AP.
7585 if (wpa_s->global->p2p == NULL)
7591 ret = p2p_assoc_req_ie(wpa_s->global->p2p, bss->bssid, buf, len,
7606 if (wpa_s->global->p2p == NULL)
7609 switch (p2p_probe_req_rx(wpa_s->global->p2p, addr, dst, bssid,
7632 if (wpa_s->global->p2p == NULL)
7635 p2p_rx_action(wpa_s->global->p2p, da, sa, bssid, category, data, len,
7646 if (wpa_s->global->p2p == NULL)
7650 p2p_scan_ie(wpa_s->global->p2p, ies, NULL, bands);
7670 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
7673 return p2p_reject(wpa_s->global->p2p, addr);
7710 wpa_printf(MSG_DEBUG, "P2P: Missing peer "
7717 wpa_printf(MSG_ERROR, "P2P: Failed to "
7740 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
7743 p2p_set_own_pref_freq_list(wpa_s->global->p2p, pref_freq_list, size);
7749 wpa_printf(MSG_DEBUG, "P2P: Ignore own channel preference %d MHz for invitation due to p2p_ignore_shared_freq=1 configuration",
7760 return p2p_invite(wpa_s->global->p2p, peer_addr, role, bssid,
7793 wpa_printf(MSG_DEBUG, "P2P: Interface '%s' not found", ifname);
7799 wpa_printf(MSG_DEBUG, "P2P: No current SSID to use for "
7818 wpa_printf(MSG_DEBUG, "P2P: Not associated - cannot "
7831 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
7844 return p2p_invite(wpa_s->global->p2p, peer_addr, role, bssid,
7871 "P2P: Marking group formation completed on client on data connection");
7926 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
7934 ret = p2p_presence_req(wpa_s->global->p2p, wpa_s->bssid,
7947 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
7950 return p2p_ext_listen(wpa_s->global->p2p, period, interval);
7958 * current_ssid can be cleared when P2P client interface gets
7959 * disconnected, so assume this interface was used as P2P
7974 wpa_printf(MSG_DEBUG, "P2P: Ignore group idle timeout - "
7979 wpa_printf(MSG_DEBUG, "P2P: Group idle timeout reached - terminate "
7990 wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group idle timeout");
8016 wpa_printf(MSG_DEBUG, "P2P: Do not use P2P group idle timeout "
8028 wpa_printf(MSG_DEBUG, "P2P: Do not use P2P group idle timeout "
8034 wpa_printf(MSG_DEBUG, "P2P: Set P2P group idle timeout to %u seconds",
8046 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
8050 p2p_deauth_notif(wpa_s->global->p2p, bssid, reason_code, ie,
8057 wpa_printf(MSG_DEBUG, "P2P: GO indicated that the P2P Group "
8073 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
8077 p2p_disassoc_notif(wpa_s->global->p2p, bssid, reason_code, ie,
8084 struct p2p_data *p2p = wpa_s->global->p2p;
8086 if (p2p == NULL)
8093 p2p_set_dev_name(p2p, wpa_s->conf->device_name);
8096 p2p_set_pri_dev_type(p2p, wpa_s->conf->device_type);
8100 p2p_set_config_methods(p2p, wpa_s->wps->config_methods);
8103 p2p_set_uuid(p2p, wpa_s->wps->uuid);
8106 p2p_set_manufacturer(p2p, wpa_s->conf->manufacturer);
8107 p2p_set_model_name(p2p, wpa_s->conf->model_name);
8108 p2p_set_model_number(p2p, wpa_s->conf->model_number);
8109 p2p_set_serial_number(p2p, wpa_s->conf->serial_number);
8113 p2p_set_sec_dev_types(p2p,
8119 p2p_remove_wps_vendor_extensions(p2p);
8124 p2p, wpa_s->conf->wps_vendor_ext[i]);
8134 p2p_set_country(p2p, country);
8138 p2p_set_ssid_postfix(p2p, (u8 *) wpa_s->conf->p2p_ssid_postfix,
8145 p2p_set_intra_bss_dist(p2p, wpa_s->conf->p2p_intra_bss);
8170 ret = p2p_set_listen_channel(p2p, reg_class, channel,
8173 wpa_printf(MSG_ERROR, "P2P: Own listen channel update "
8197 ret = p2p_set_oper_channel(p2p, op_reg_class, op_channel,
8200 wpa_printf(MSG_ERROR, "P2P: Own oper channel update "
8205 if (p2p_set_pref_chan(p2p, wpa_s->conf->num_p2p_pref_chan,
8207 wpa_printf(MSG_ERROR, "P2P: Preferred channel list "
8211 if (p2p_set_no_go_freq(p2p, &wpa_s->conf->p2p_no_go_freq) < 0) {
8212 wpa_printf(MSG_ERROR, "P2P: No GO channel list "
8218 p2p_set_passphrase_len(p2p, wpa_s->conf->p2p_passphrase_len);
8234 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
8238 p2p_set_cross_connect(wpa_s->global->p2p, enabled);
8318 wpa_printf(MSG_DEBUG, "P2P: Cancelled P2P group idle timeout");
8352 wpa_printf(MSG_DEBUG, "P2P: Enable cross connection from "
8375 return 0; /* not P2P client operation */
8377 wpa_printf(MSG_DEBUG, "P2P: Terminate connection due to WPS PBC "
8400 if (wpa_s->global == NULL || wpa_s->global->p2p == NULL)
8412 is_p2p_6ghz_disabled(wpa_s->global->p2p))) {
8413 wpa_printf(MSG_ERROR, "P2P: Failed to update supported "
8418 p2p_update_channel_list(wpa_s->global->p2p, &chan, &cli_chan);
8424 * using a channel that is no longer valid for P2P use. It is also
8437 wpa_printf(MSG_DEBUG, "P2P: Ignore scan results");
8447 if (global->p2p == NULL)
8450 wpa_printf(MSG_DEBUG, "P2P: Request to cancel group formation");
8456 peer = p2p_get_go_neg_peer(global->p2p);
8458 wpa_printf(MSG_DEBUG, "P2P: Unauthorize pending GO Neg peer "
8460 p2p_unauthorize(global->p2p, peer);
8465 wpa_printf(MSG_DEBUG, "P2P: Stop pending scan for join");
8471 wpa_printf(MSG_DEBUG, "P2P: Stop pending PD before join");
8483 wpa_printf(MSG_DEBUG, "P2P: Interface %s in group "
8497 wpa_printf(MSG_DEBUG, "P2P: Interface %s in invitation found - cancelling",
8506 wpa_printf(MSG_DEBUG, "P2P: No ongoing group formation found");
8519 wpa_printf(MSG_DEBUG, "P2P: Remove group due to driver resource not "
8528 struct p2p_data *p2p = wpa_s->global->p2p;
8529 if (p2p == NULL)
8531 p2p_set_best_channels(p2p, freq_24, freq_5, freq_overall);
8538 struct p2p_data *p2p = wpa_s->global->p2p;
8540 if (p2p == NULL)
8546 return p2p_unauthorize(p2p, peer);
8551 * wpas_p2p_disconnect - Disconnect from a P2P Group
8555 * This can be used to disconnect from a group in which the local end is a P2P
8556 * Client or to end a P2P Group in case the local end is the Group Owner. If a
8558 * removed. Otherwise, only the configured P2P group network will be removed
8576 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
8579 ret = p2p_in_progress(wpa_s->global->p2p);
8589 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Another interface (%s) "
8595 "P2P: Skip Extended Listen timeout and allow scans on current interface for group formation");
8608 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Waiting for initial client connection during group formation");
8631 wpa_printf(MSG_DEBUG, "P2P: Canceled group formation due to "
8632 "P2P group network getting removed");
8665 return s; /* peer is P2P client in persistent
8681 * cleanly (e.g., P2P Client does not send WSC_Done). Since the
8688 wpa_printf(MSG_DEBUG, "P2P: Canceled P2P group formation timeout on data connection");
8695 * notification now since the P2P Client was able to
8699 if (wpa_s->global->p2p)
8700 p2p_wps_success_cb(wpa_s->global->p2p, addr);
8705 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Marking group formation completed on GO on first data connection");
8731 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Fall back to GO Negotiation");
8743 NULL, 0, is_p2p_allow_6ghz(wpa_s->global->p2p));
8759 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: GO not found for p2p_connect-auto - "
8774 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Use %u ms search delay due to "
8783 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Use %u ms search "
8805 if ((iface_addr && !psk->p2p &&
8807 (!iface_addr && psk->p2p &&
8810 "P2P: Remove persistent group PSK list entry for "
8811 MACSTR " p2p=%u",
8812 MAC2STR(psk->addr), psk->p2p);
8835 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: New PSK for addr=" MACSTR
8841 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: New PSK for addr=" MACSTR,
8846 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: new_psk_cb during group formation");
8855 p->p2p = 1;
8858 p->p2p = 0;
8866 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Ignore new_psk_cb on not-persistent GO");
8873 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Could not find persistent group information to store the new PSK");
8881 p->p2p = 1;
8884 p->p2p = 0;
8892 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Remove oldest PSK entry for "
8893 MACSTR " (p2p=%u) to make room for a new one",
8894 MAC2STR(last->addr), last->p2p);
8903 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Add new PSK for p2p_dev_addr="
8906 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Add new PSK for addr=" MACSTR,
8913 wpa_printf(MSG_DEBUG, "P2P: Failed to update configuration");
8927 "P2P: Failed to update configuration");
8950 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Remove operating group PSK entry for "
8972 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Disconnect peer " MACSTR
8989 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Remove client " MACSTR, MAC2STR(peer));
9017 P2P: Frequency conflict - terminate group");
9037 * P2P connection, so remove the interface. */
9038 wpa_printf(MSG_DEBUG, "P2P: Removing P2P connection due to single channel concurrent mode frequency conflict");
9042 /* If connection in progress is P2P connection, do not
9049 /* P2P connection has priority, disable the STA network
9057 /* If P2P connection is in progress, continue
9085 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Could not determine whether 4-way handshake failures were for a persistent group");
9089 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Two 4-way handshake failures for a P2P group - go_dev_addr="
9095 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: No matching persistent group stored");
9105 * continuing to use the interface if this is on a P2P group
9121 struct wpabuf *p2p)
9126 if (p2p == NULL) {
9128 wpa_printf(MSG_DEBUG, "P2P: No p2p buffer for handover");
9133 ret = wpabuf_alloc(2 + wsc_len + 2 + wpabuf_len(p2p));
9136 wpabuf_free(p2p);
9143 wpabuf_put_be16(ret, wpabuf_len(p2p));
9144 wpabuf_put_buf(ret, p2p);
9147 wpabuf_free(p2p);
9149 "P2P: Generated NFC connection handover message", ret);
9156 wpa_printf(MSG_DEBUG, "P2P: Failed to NDEF encapsulate handover request");
9194 struct wpabuf *wsc, *p2p;
9199 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL) {
9200 wpa_printf(MSG_DEBUG, "P2P: P2P disabled - cannot build handover request");
9207 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: No DH key available for handover request");
9216 p2p = p2p_build_nfc_handover_req(wpa_s->global->p2p, cli_freq,
9220 return wpas_p2p_nfc_handover(ndef, wsc, p2p);
9227 struct wpabuf *wsc, *p2p;
9232 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
9249 p2p = p2p_build_nfc_handover_sel(wpa_s->global->p2p, cli_freq,
9253 return wpas_p2p_nfc_handover(ndef, wsc, p2p);
9260 wpa_printf(MSG_DEBUG, "P2P: Initiate join-group based on NFC "
9291 wpa_printf(MSG_DEBUG, "P2P: Authorize join-group based on NFC "
9304 wpa_printf(MSG_DEBUG, "P2P: Could not find GO interface");
9311 wpa_printf(MSG_DEBUG, "P2P: No NFC Dev Pw known");
9323 wpa_printf(MSG_DEBUG, "P2P: Negotiated handover - wait for peer to join without invitation");
9331 wpa_printf(MSG_DEBUG, "P2P: Static handover - invite peer " MACSTR
9341 return p2p_invite(wpa_s->global->p2p, params->peer->p2p_device_addr,
9353 wpa_printf(MSG_DEBUG, "P2P: Initiate GO Negotiation based on NFC "
9370 wpa_printf(MSG_DEBUG, "P2P: Authorize GO Negotiation based on NFC "
9383 p2p_unauthorize(wpa_s->global->p2p,
9403 wpa_hexdump_buf(MSG_DEBUG, "P2P: Received NFC tag payload", data);
9409 wpa_printf(MSG_DEBUG, "P2P: Not enough data for Length of WSC "
9416 wpa_printf(MSG_DEBUG, "P2P: Not enough data for WSC "
9425 wpa_printf(MSG_DEBUG, "P2P: Not enough data for Length of P2P "
9432 wpa_printf(MSG_DEBUG, "P2P: Not enough data for P2P "
9440 wpa_hexdump(MSG_DEBUG, "P2P: WSC attributes",
9442 wpa_hexdump(MSG_DEBUG, "P2P: P2P attributes",
9446 "P2P: Ignored extra data after P2P attributes",
9450 res = p2p_process_nfc_connection_handover(wpa_s->global->p2p, &params);
9492 wpa_printf(MSG_DEBUG, "P2P: No peer OOB Dev Pw "
9498 wpa_printf(MSG_DEBUG, "P2P: Peer OOB Dev Pw %u", id);
9499 wpa_hexdump(MSG_DEBUG, "P2P: Peer OOB Public Key hash",
9507 wpa_printf(MSG_DEBUG, "P2P: Static handover - invalid "
9511 wpa_printf(MSG_DEBUG, "P2P: Static handover - use peer OOB "
9513 wpa_hexdump_key(MSG_DEBUG, "P2P: Peer OOB Device Password",
9530 wpa_printf(MSG_DEBUG, "P2P: Using abbreviated WPS handshake "
9559 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
9573 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
9576 wpa_printf(MSG_DEBUG, "NFC: P2P connection handover reported");
9586 wpa_printf(MSG_DEBUG, "P2P: Could not parse NDEF");
9604 if (wpa_s->global->p2p == NULL)
9608 wpa_printf(MSG_DEBUG, "P2P: Disable use of own NFC Tag");
9615 p2p_set_authorized_oob_dev_pw_id(wpa_s->global->p2p, 0,
9630 wpa_printf(MSG_DEBUG, "P2P: NFC password token not configured "
9635 wpa_printf(MSG_DEBUG, "P2P: Enable use of own NFC Tag");
9647 * P2P Group Interface present and the command came on group
9662 wpa_printf(MSG_ERROR, "P2P: Failed to allocate a new "
9693 "P2P: Failed to enable NFC Tag for GO");
9697 wpa_s->global->p2p, wpa_s->conf->wps_nfc_dev_pw_id, go_intent,
9720 curr_chan = p2p_get_listen_channel(wpa_s->global->p2p);
9734 "P2P: Update Listen channel to %u based on operating channel",
9736 p2p_set_listen_channel(wpa_s->global->p2p, 81, cand, 0);
9762 "P2P CSA: Failed to select new frequency for GO");
9768 "P2P CSA: Selected same frequency - not moving GO");
9775 "P2P CSA: Failed to allocate default config");
9782 "P2P CSA: Failed to create new GO config");
9792 "P2P CSA: CSA from hardware mode %d%s to %d is not supported",
9818 wpa_printf(MSG_ERROR, "P2P CSA: Bad freq");
9835 "P2P CSA: Selected invalid VHT center freqs");
9874 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Move GO from freq=%d MHz",
9879 * P2P Clients in the group that the group is terminated. */
9892 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Failed to reselect freq");
9897 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: New freq selected for the GO (%u MHz)",
9901 !p2p_supported_freq_go(wpa_s->global->p2p, params.freq)) {
9903 "P2P: Selected freq (%u MHz) is not valid for P2P",
9936 "P2P: CSA is in progress - not moving GO");
9999 if (!p2p_supported_freq_go(wpa_s->global->p2p, freq) &&
10002 "P2P: Freq=%d MHz no longer valid for GO",
10009 } else if (!p2p_supported_freq(wpa_s->global->p2p,
10011 /* Freq is not valid for P2P use cases */
10043 "P2P: GO move: invalid_freq=%u, policy_move=%u, flags=0x%X",
10052 "P2P: Cancel a GO move from freq=%d MHz", freq);
10057 "P2P: GO move: policy CS is not allowed - setting timeout to re-consider GO move");
10069 "P2P: Not initiating a GO frequency change");
10079 "P2P: Not initiating a GO frequency change - CSA is in progress");
10088 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Move GO from freq=%d MHz in %d secs",
10124 "P2P: GO move - schedule re-consideration");
10138 if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
10148 if (wpa_s == wpa_s->global->p2p_init_wpa_s && wpa_s->global->p2p) {
10149 wpa_dbg(wpa_s, MSG_DEBUG, "P2P: Disable P2P since removing "
10168 struct p2p_data *p2p = wpa_s->global->p2p;
10176 "P2P Listen offload is already started");
10180 if (wpa_s->global->p2p == NULL ||
10182 wpa_printf(MSG_DEBUG, "P2P: Listen offload not supported");
10186 if (!p2p_supported_freq(wpa_s->global->p2p, freq)) {
10187 wpa_printf(MSG_ERROR, "P2P: Input channel not supported: %u",
10203 buf = p2p_build_probe_resp_template(p2p, freq);
10214 "P2P: Failed to start P2P listen offload");
10222 /* Stop current P2P listen if any */
10240 "P2P: Failed to stop P2P listen offload");