Lines Matching full:drv
79 struct wpa_driver_nl80211_data *drv, struct nl80211_noise_info *info) in nl80211_get_noise_for_scan_results() argument
84 msg = nl80211_drv_msg(drv, NLM_F_DUMP, NL80211_CMD_GET_SURVEY); in nl80211_get_noise_for_scan_results()
85 return send_and_recv_resp(drv, msg, get_noise_for_scan_results, info); in nl80211_get_noise_for_scan_results()
93 struct wpa_driver_nl80211_data *drv = bss->drv; in nl80211_abort_scan() local
97 ret = send_and_recv_cmd(drv, msg); in nl80211_abort_scan()
107 static int nl80211_abort_vendor_scan(struct wpa_driver_nl80211_data *drv, in nl80211_abort_vendor_scan() argument
117 msg = nl80211_drv_msg(drv, 0, NL80211_CMD_VENDOR); in nl80211_abort_vendor_scan()
128 ret = send_and_recv_cmd(drv, msg); in nl80211_abort_vendor_scan()
155 struct wpa_driver_nl80211_data *drv = eloop_ctx; in wpa_driver_nl80211_scan_timeout() local
159 if (drv->vendor_scan_cookie && in wpa_driver_nl80211_scan_timeout()
160 nl80211_abort_vendor_scan(drv, drv->vendor_scan_cookie) == 0) in wpa_driver_nl80211_scan_timeout()
163 if (!drv->vendor_scan_cookie && in wpa_driver_nl80211_scan_timeout()
164 nl80211_abort_scan(drv->first_bss) == 0) in wpa_driver_nl80211_scan_timeout()
169 if (drv->ap_scan_as_station != NL80211_IFTYPE_UNSPECIFIED) in wpa_driver_nl80211_scan_timeout()
170 nl80211_restore_ap_mode(drv->first_bss); in wpa_driver_nl80211_scan_timeout()
181 struct wpa_driver_nl80211_data *drv = bss->drv; in nl80211_scan_common() local
246 os_free(drv->filter_ssids); in nl80211_scan_common()
247 drv->filter_ssids = params->filter_ssids; in nl80211_scan_common()
249 drv->num_filter_ssids = params->num_filter_ssids; in nl80211_scan_common()
251 if (!drv->hostapd && is_ap_interface(drv->nlmode)) { in nl80211_scan_common()
261 if (params->low_priority && drv->have_low_prio_scan) { in nl80211_scan_common()
290 if (!(drv->capa.rrm_flags & in nl80211_scan_common()
318 if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_SCAN_MIN_PREQ) in nl80211_scan_common()
346 struct wpa_driver_nl80211_data *drv = bss->drv; in wpa_driver_nl80211_scan() local
350 wpa_dbg(drv->ctx, MSG_DEBUG, "nl80211: scan request"); in wpa_driver_nl80211_scan()
351 drv->scan_for_auth = 0; in wpa_driver_nl80211_scan()
399 ret = send_and_recv_cmd(drv, msg); in wpa_driver_nl80211_scan()
404 if (drv->hostapd && is_ap_interface(drv->nlmode)) { in wpa_driver_nl80211_scan()
409 drv->ap_scan_as_station = drv->nlmode; in wpa_driver_nl80211_scan()
422 drv->scan_state = SCAN_REQUESTED; in wpa_driver_nl80211_scan()
425 timeout = drv->uses_6ghz ? 20 : 10; in wpa_driver_nl80211_scan()
426 if (drv->uses_s1g) in wpa_driver_nl80211_scan()
428 if (drv->scan_complete_events) { in wpa_driver_nl80211_scan()
438 eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx); in wpa_driver_nl80211_scan()
440 drv, drv->ctx); in wpa_driver_nl80211_scan()
441 drv->last_scan_cmd = NL80211_CMD_TRIGGER_SCAN; in wpa_driver_nl80211_scan()
450 nl80211_sched_scan_add_scan_plans(struct wpa_driver_nl80211_data *drv, in nl80211_sched_scan_add_scan_plans() argument
470 drv->capa.max_sched_scan_plan_interval) { in nl80211_sched_scan_add_scan_plans()
482 drv->capa.max_sched_scan_plan_iterations) { in nl80211_sched_scan_add_scan_plans()
527 struct wpa_driver_nl80211_data *drv = bss->drv; in wpa_driver_nl80211_sched_scan() local
532 wpa_dbg(drv->ctx, MSG_DEBUG, "nl80211: sched_scan request"); in wpa_driver_nl80211_sched_scan()
535 if (!drv->capa.sched_scan_supported) in wpa_driver_nl80211_sched_scan()
540 params->sched_scan_plans_num > drv->capa.max_sched_scan_plans) { in wpa_driver_nl80211_sched_scan()
551 if (drv->capa.max_sched_scan_plan_iterations) { in wpa_driver_nl80211_sched_scan()
552 if (nl80211_sched_scan_add_scan_plans(drv, msg, params)) in wpa_driver_nl80211_sched_scan()
560 if ((drv->num_filter_ssids && in wpa_driver_nl80211_sched_scan()
561 (int) drv->num_filter_ssids <= drv->capa.max_match_sets) || in wpa_driver_nl80211_sched_scan()
568 for (i = 0; i < drv->num_filter_ssids; i++) { in wpa_driver_nl80211_sched_scan()
572 wpa_ssid_txt(drv->filter_ssids[i].ssid, in wpa_driver_nl80211_sched_scan()
573 drv->filter_ssids[i].ssid_len)); in wpa_driver_nl80211_sched_scan()
578 drv->filter_ssids[i].ssid_len, in wpa_driver_nl80211_sched_scan()
579 drv->filter_ssids[i].ssid) || in wpa_driver_nl80211_sched_scan()
649 ret = send_and_recv_cmd(drv, msg); in wpa_driver_nl80211_sched_scan()
676 struct wpa_driver_nl80211_data *drv = bss->drv; in wpa_driver_nl80211_stop_sched_scan() local
681 if (!drv->capa.sched_scan_supported) in wpa_driver_nl80211_stop_sched_scan()
685 msg = nl80211_drv_msg(drv, 0, NL80211_CMD_STOP_SCHED_SCAN); in wpa_driver_nl80211_stop_sched_scan()
686 ret = send_and_recv_cmd(drv, msg); in wpa_driver_nl80211_stop_sched_scan()
700 static int nl80211_scan_filtered(struct wpa_driver_nl80211_data *drv, in nl80211_scan_filtered() argument
706 if (drv->filter_ssids == NULL) in nl80211_scan_filtered()
713 for (i = 0; i < drv->num_filter_ssids; i++) { in nl80211_scan_filtered()
714 if (ssid[1] == drv->filter_ssids[i].ssid_len && in nl80211_scan_filtered()
715 os_memcmp(ssid + 2, drv->filter_ssids[i].ssid, ssid[1]) == in nl80211_scan_filtered()
725 nl80211_parse_bss_info(struct wpa_driver_nl80211_data *drv, in nl80211_parse_bss_info() argument
778 if (nl80211_scan_filtered(drv, ie ? ie : beacon_ie, in nl80211_parse_bss_info()
865 struct wpa_driver_nl80211_data *drv; member
877 r = nl80211_parse_bss_info(_arg->drv, msg, _arg->bssid); in bss_info_handler()
898 static void clear_state_mismatch(struct wpa_driver_nl80211_data *drv, in clear_state_mismatch() argument
901 if (drv->capa.flags & WPA_DRIVER_FLAGS_SME) { in clear_state_mismatch()
904 wpa_driver_nl80211_mlme(drv, addr, in clear_state_mismatch()
907 drv->first_bss); in clear_state_mismatch()
912 static void nl80211_check_bss_status(struct wpa_driver_nl80211_data *drv, in nl80211_check_bss_status() argument
920 if (is_sta_interface(drv->nlmode) && !drv->associated) { in nl80211_check_bss_status()
923 clear_state_mismatch(drv, r->bssid); in nl80211_check_bss_status()
924 } else if (is_sta_interface(drv->nlmode) && in nl80211_check_bss_status()
925 !ether_addr_equal(drv->bssid, r->bssid)) { in nl80211_check_bss_status()
929 MAC2STR(drv->bssid)); in nl80211_check_bss_status()
931 if (!ether_addr_equal(drv->sta_mlo_info.ap_mld_addr, in nl80211_check_bss_status()
932 drv->bssid)) { in nl80211_check_bss_status()
933 clear_state_mismatch(drv, r->bssid); in nl80211_check_bss_status()
935 if (!is_zero_ether_addr(drv->sta_mlo_info.ap_mld_addr)) in nl80211_check_bss_status()
937 drv, drv->sta_mlo_info.ap_mld_addr); in nl80211_check_bss_status()
939 clear_state_mismatch(drv, drv->bssid); in nl80211_check_bss_status()
950 struct wpa_driver_nl80211_data *drv, struct wpa_scan_results *res) in wpa_driver_nl80211_check_bss_status() argument
955 nl80211_check_bss_status(drv, res->res[i]); in wpa_driver_nl80211_check_bss_status()
975 nl80211_get_scan_results(struct wpa_driver_nl80211_data *drv, const u8 *bssid) in nl80211_get_scan_results() argument
987 if (!(msg = nl80211_cmd_msg(drv->first_bss, NLM_F_DUMP, in nl80211_get_scan_results()
993 arg.drv = drv; in nl80211_get_scan_results()
996 ret = send_and_recv_resp(drv, msg, bss_info_handler, &arg); in nl80211_get_scan_results()
1014 if (nl80211_get_noise_for_scan_results(drv, &info) == 0) { in nl80211_get_scan_results()
1040 struct wpa_driver_nl80211_data *drv = bss->drv; in wpa_driver_nl80211_get_scan_results() local
1043 res = nl80211_get_scan_results(drv, bssid); in wpa_driver_nl80211_get_scan_results()
1045 wpa_driver_nl80211_check_bss_status(drv, res); in wpa_driver_nl80211_get_scan_results()
1051 struct wpa_driver_nl80211_data *drv; member
1060 r = nl80211_parse_bss_info(ctx->drv, msg, NULL); in nl80211_dump_scan_handler()
1072 void nl80211_dump_scan(struct wpa_driver_nl80211_data *drv) in nl80211_dump_scan() argument
1078 ctx.drv = drv; in nl80211_dump_scan()
1080 msg = nl80211_cmd_msg(drv->first_bss, NLM_F_DUMP, NL80211_CMD_GET_SCAN); in nl80211_dump_scan()
1082 send_and_recv_resp(drv, msg, nl80211_dump_scan_handler, &ctx); in nl80211_dump_scan()
1090 struct wpa_driver_nl80211_data *drv = bss->drv; in wpa_driver_nl80211_abort_scan() local
1097 if (drv->scan_vendor_cmd_avail && scan_cookie) in wpa_driver_nl80211_abort_scan()
1098 return nl80211_abort_vendor_scan(drv, scan_cookie); in wpa_driver_nl80211_abort_scan()
1140 struct wpa_driver_nl80211_data *drv = bss->drv; in wpa_driver_nl80211_vendor_scan() local
1148 wpa_dbg(drv->ctx, MSG_DEBUG, "nl80211: vendor scan request"); in wpa_driver_nl80211_vendor_scan()
1149 drv->scan_for_auth = 0; in wpa_driver_nl80211_vendor_scan()
1151 if (!(msg = nl80211_drv_msg(drv, 0, NL80211_CMD_VENDOR)) || in wpa_driver_nl80211_vendor_scan()
1203 os_free(drv->filter_ssids); in wpa_driver_nl80211_vendor_scan()
1204 drv->filter_ssids = params->filter_ssids; in wpa_driver_nl80211_vendor_scan()
1206 drv->num_filter_ssids = params->num_filter_ssids; in wpa_driver_nl80211_vendor_scan()
1208 if (params->low_priority && drv->have_low_prio_scan) { in wpa_driver_nl80211_vendor_scan()
1273 if (is_ap_interface(drv->nlmode) && in wpa_driver_nl80211_vendor_scan()
1280 ret = send_and_recv_resp(drv, msg, scan_cookie_handler, &cookie); in wpa_driver_nl80211_vendor_scan()
1289 drv->vendor_scan_cookie = cookie; in wpa_driver_nl80211_vendor_scan()
1290 drv->scan_state = SCAN_REQUESTED; in wpa_driver_nl80211_vendor_scan()
1297 eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx); in wpa_driver_nl80211_vendor_scan()
1299 drv, drv->ctx); in wpa_driver_nl80211_vendor_scan()
1300 drv->last_scan_cmd = NL80211_CMD_VENDOR; in wpa_driver_nl80211_vendor_scan()
1318 struct wpa_driver_nl80211_data *drv = bss->drv; in nl80211_set_default_scan_ies() local
1323 if (!drv->set_wifi_conf_vendor_cmd_avail) in nl80211_set_default_scan_ies()
1326 if (!(msg = nl80211_drv_msg(drv, 0, NL80211_CMD_VENDOR)) || in nl80211_set_default_scan_ies()
1343 ret = send_and_recv_cmd(drv, msg); in nl80211_set_default_scan_ies()