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