Lines Matching refs:info

105 static void wiphy_info_supported_iftypes(struct wiphy_info_data *info,  in wiphy_info_supported_iftypes()  argument
117 info->capa->flags |= WPA_DRIVER_FLAGS_AP; in wiphy_info_supported_iftypes()
120 info->capa->flags |= WPA_DRIVER_FLAGS_MESH; in wiphy_info_supported_iftypes()
123 info->capa->flags |= WPA_DRIVER_FLAGS_IBSS; in wiphy_info_supported_iftypes()
126 info->capa->flags |= in wiphy_info_supported_iftypes()
130 info->p2p_go_supported = 1; in wiphy_info_supported_iftypes()
133 info->p2p_client_supported = 1; in wiphy_info_supported_iftypes()
140 static int wiphy_info_iface_comb_process(struct wiphy_info_data *info, in wiphy_info_iface_comb_process() argument
169 info->capa->flags |= WPA_DRIVER_FLAGS_RADAR; in wiphy_info_iface_comb_process()
196 info->p2p_concurrent = 1; in wiphy_info_iface_comb_process()
197 if (info->num_multichan_concurrent < num_channels) in wiphy_info_iface_comb_process()
198 info->num_multichan_concurrent = num_channels; in wiphy_info_iface_comb_process()
205 static void wiphy_info_iface_comb(struct wiphy_info_data *info, in wiphy_info_iface_comb() argument
215 if (wiphy_info_iface_comb_process(info, nl_combi) > 0) in wiphy_info_iface_comb()
221 static void wiphy_info_supp_cmds(struct wiphy_info_data *info, in wiphy_info_supp_cmds() argument
233 info->auth_supported = 1; in wiphy_info_supp_cmds()
236 info->connect_supported = 1; in wiphy_info_supp_cmds()
239 info->capa->sched_scan_supported = 1; in wiphy_info_supp_cmds()
242 info->poll_command_supported = 1; in wiphy_info_supp_cmds()
245 info->channel_switch_supported = 1; in wiphy_info_supp_cmds()
248 info->set_qos_map_supported = 1; in wiphy_info_supp_cmds()
251 info->update_ft_ies_supported = 1; in wiphy_info_supp_cmds()
346 static void get_iface_akm_suites_info(struct wiphy_info_data *info, in get_iface_akm_suites_info() argument
364 info->has_key_mgmt_iftype = 1; in get_iface_akm_suites_info()
370 info->drv->capa.key_mgmt_iftype[WPA_IF_IBSS] = key_mgmt; in get_iface_akm_suites_info()
373 info->drv->capa.key_mgmt_iftype[WPA_IF_STATION] = in get_iface_akm_suites_info()
377 info->drv->capa.key_mgmt_iftype[WPA_IF_AP_BSS] = in get_iface_akm_suites_info()
381 info->drv->capa.key_mgmt_iftype[WPA_IF_AP_VLAN] = in get_iface_akm_suites_info()
385 info->drv->capa.key_mgmt_iftype[WPA_IF_MESH] = key_mgmt; in get_iface_akm_suites_info()
388 info->drv->capa.key_mgmt_iftype[WPA_IF_P2P_CLIENT] = in get_iface_akm_suites_info()
392 info->drv->capa.key_mgmt_iftype[WPA_IF_P2P_GO] = in get_iface_akm_suites_info()
396 info->drv->capa.key_mgmt_iftype[WPA_IF_P2P_DEVICE] = in get_iface_akm_suites_info()
400 info->drv->capa.key_mgmt_iftype[WPA_IF_NAN] = key_mgmt; in get_iface_akm_suites_info()
410 static void wiphy_info_iftype_akm_suites(struct wiphy_info_data *info, in wiphy_info_iftype_akm_suites() argument
420 get_iface_akm_suites_info(info, nl_if); in wiphy_info_iftype_akm_suites()
424 static void wiphy_info_akm_suites(struct wiphy_info_data *info, in wiphy_info_akm_suites() argument
430 info->has_key_mgmt = 1; in wiphy_info_akm_suites()
431 info->capa->key_mgmt = get_akm_suites_info(tb); in wiphy_info_akm_suites()
433 info->capa->key_mgmt); in wiphy_info_akm_suites()
437 static void wiphy_info_cipher_suites(struct wiphy_info_data *info, in wiphy_info_cipher_suites() argument
456 info->capa->enc |= WPA_DRIVER_CAPA_ENC_CCMP_256; in wiphy_info_cipher_suites()
459 info->capa->enc |= WPA_DRIVER_CAPA_ENC_GCMP_256; in wiphy_info_cipher_suites()
462 info->capa->enc |= WPA_DRIVER_CAPA_ENC_CCMP; in wiphy_info_cipher_suites()
465 info->capa->enc |= WPA_DRIVER_CAPA_ENC_GCMP; in wiphy_info_cipher_suites()
468 info->capa->enc |= WPA_DRIVER_CAPA_ENC_TKIP; in wiphy_info_cipher_suites()
471 info->capa->enc |= WPA_DRIVER_CAPA_ENC_WEP104; in wiphy_info_cipher_suites()
474 info->capa->enc |= WPA_DRIVER_CAPA_ENC_WEP40; in wiphy_info_cipher_suites()
477 info->capa->enc |= WPA_DRIVER_CAPA_ENC_BIP; in wiphy_info_cipher_suites()
480 info->capa->enc |= WPA_DRIVER_CAPA_ENC_BIP_GMAC_128; in wiphy_info_cipher_suites()
483 info->capa->enc |= WPA_DRIVER_CAPA_ENC_BIP_GMAC_256; in wiphy_info_cipher_suites()
486 info->capa->enc |= WPA_DRIVER_CAPA_ENC_BIP_CMAC_256; in wiphy_info_cipher_suites()
489 info->capa->enc |= WPA_DRIVER_CAPA_ENC_GTK_NOT_USED; in wiphy_info_cipher_suites()
533 static void wiphy_info_ext_feature_flags(struct wiphy_info_data *info, in wiphy_info_ext_feature_flags() argument
536 struct wpa_driver_capa *capa = info->capa; in wiphy_info_ext_feature_flags()
660 info->drv->multicast_registrations = 1; in wiphy_info_ext_feature_flags()
664 info->drv->fils_discovery = 1; in wiphy_info_ext_feature_flags()
668 info->drv->unsol_bcast_probe_resp = 1; in wiphy_info_ext_feature_flags()
671 info->drv->puncturing = 1; in wiphy_info_ext_feature_flags()
726 static void wiphy_info_feature_flags(struct wiphy_info_data *info, in wiphy_info_feature_flags() argument
730 struct wpa_driver_capa *capa = info->capa; in wiphy_info_feature_flags()
738 info->data_tx_status = 1; in wiphy_info_feature_flags()
758 info->p2p_go_ctwindow_supported = 1; in wiphy_info_feature_flags()
761 info->have_low_prio_scan = 1; in wiphy_info_feature_flags()
764 info->mac_addr_rand_scan_supported = 1; in wiphy_info_feature_flags()
767 info->mac_addr_rand_sched_scan_supported = 1; in wiphy_info_feature_flags()
770 info->wmm_ac_supported = 1; in wiphy_info_feature_flags()
944 struct wiphy_info_data *info = arg; in wiphy_info_handler() local
945 struct wpa_driver_capa *capa = info->capa; in wiphy_info_handler()
946 struct wpa_driver_nl80211_data *drv = info->drv; in wiphy_info_handler()
987 wiphy_info_supported_iftypes(info, tb[NL80211_ATTR_SUPPORTED_IFTYPES]); in wiphy_info_handler()
988 wiphy_info_iface_comb(info, tb[NL80211_ATTR_INTERFACE_COMBINATIONS]); in wiphy_info_handler()
989 wiphy_info_supp_cmds(info, tb[NL80211_ATTR_SUPPORTED_COMMANDS]); in wiphy_info_handler()
990 wiphy_info_cipher_suites(info, tb[NL80211_ATTR_CIPHER_SUITES]); in wiphy_info_handler()
991 wiphy_info_akm_suites(info, tb[NL80211_ATTR_AKM_SUITES]); in wiphy_info_handler()
992 wiphy_info_iftype_akm_suites(info, tb[NL80211_ATTR_IFTYPE_AKM_SUITES]); in wiphy_info_handler()
1021 info->device_ap_sme = 1; in wiphy_info_handler()
1024 wiphy_info_feature_flags(info, tb[NL80211_ATTR_FEATURE_FLAGS]); in wiphy_info_handler()
1025 wiphy_info_ext_feature_flags(info, tb[NL80211_ATTR_EXT_FEATURES]); in wiphy_info_handler()
1192 struct wiphy_info_data *info) in wpa_driver_nl80211_get_info() argument
1198 os_memset(info, 0, sizeof(*info)); in wpa_driver_nl80211_get_info()
1199 info->capa = &drv->capa; in wpa_driver_nl80211_get_info()
1200 info->drv = drv; in wpa_driver_nl80211_get_info()
1211 if (send_and_recv_resp(drv, msg, wiphy_info_handler, info)) in wpa_driver_nl80211_get_info()
1214 if (info->auth_supported) in wpa_driver_nl80211_get_info()
1216 else if (!info->connect_supported) { in wpa_driver_nl80211_get_info()
1219 info->error = 1; in wpa_driver_nl80211_get_info()
1222 if (info->p2p_go_supported && info->p2p_client_supported) in wpa_driver_nl80211_get_info()
1224 if (info->p2p_concurrent) { in wpa_driver_nl80211_get_info()
1230 if (info->num_multichan_concurrent > 1) { in wpa_driver_nl80211_get_info()
1234 info->num_multichan_concurrent; in wpa_driver_nl80211_get_info()
1243 drv->capa.wmm_ac_supported = info->wmm_ac_supported; in wpa_driver_nl80211_get_info()
1246 info->mac_addr_rand_sched_scan_supported; in wpa_driver_nl80211_get_info()
1248 info->mac_addr_rand_scan_supported; in wpa_driver_nl80211_get_info()
1250 if (info->channel_switch_supported) { in wpa_driver_nl80211_get_info()
1262 if (info->update_ft_ies_supported) in wpa_driver_nl80211_get_info()
1337 struct features_info *info = arg; in features_info_handler() local
1353 info->flags = os_malloc(len); in features_info_handler()
1354 if (info->flags != NULL) { in features_info_handler()
1355 os_memcpy(info->flags, nla_data(attr), len); in features_info_handler()
1356 info->flags_len = len; in features_info_handler()
1361 info->capa->conc_capab = nla_get_u32(attr); in features_info_handler()
1366 info->capa->max_conc_chan_2_4 = nla_get_u32(attr); in features_info_handler()
1371 info->capa->max_conc_chan_5_0 = nla_get_u32(attr); in features_info_handler()
1379 struct features_info *info) in check_feature() argument
1383 return (idx < info->flags_len) && in check_feature()
1384 (info->flags[idx] & BIT(feature % 8)); in check_feature()
1391 struct features_info info; in qca_nl80211_get_features() local
1405 os_memset(&info, 0, sizeof(info)); in qca_nl80211_get_features()
1406 info.capa = &drv->capa; in qca_nl80211_get_features()
1407 ret = send_and_recv_resp(drv, msg, features_info_handler, &info); in qca_nl80211_get_features()
1408 if (ret || !info.flags) in qca_nl80211_get_features()
1411 if (check_feature(QCA_WLAN_VENDOR_FEATURE_KEY_MGMT_OFFLOAD, &info)) in qca_nl80211_get_features()
1414 if (check_feature(QCA_WLAN_VENDOR_FEATURE_SUPPORT_HW_MODE_ANY, &info)) in qca_nl80211_get_features()
1418 &info)) in qca_nl80211_get_features()
1420 if (check_feature(QCA_WLAN_VENDOR_FEATURE_P2P_LISTEN_OFFLOAD, &info)) in qca_nl80211_get_features()
1422 if (check_feature(QCA_WLAN_VENDOR_FEATURE_OCE_STA, &info)) in qca_nl80211_get_features()
1424 if (check_feature(QCA_WLAN_VENDOR_FEATURE_OCE_AP, &info)) in qca_nl80211_get_features()
1426 if (check_feature(QCA_WLAN_VENDOR_FEATURE_OCE_STA_CFON, &info)) in qca_nl80211_get_features()
1428 if (check_feature(QCA_WLAN_VENDOR_FEATURE_SECURE_LTF_STA, &info)) in qca_nl80211_get_features()
1430 if (check_feature(QCA_WLAN_VENDOR_FEATURE_SECURE_LTF_AP, &info)) in qca_nl80211_get_features()
1432 if (check_feature(QCA_WLAN_VENDOR_FEATURE_SECURE_RTT_STA, &info)) in qca_nl80211_get_features()
1434 if (check_feature(QCA_WLAN_VENDOR_FEATURE_SECURE_RTT_AP, &info)) in qca_nl80211_get_features()
1438 &info)) in qca_nl80211_get_features()
1442 &info)) in qca_nl80211_get_features()
1445 &info)) in qca_nl80211_get_features()
1447 if (check_feature(QCA_WLAN_VENDOR_FEATURE_HT_VHT_TWT_RESPONDER, &info)) in qca_nl80211_get_features()
1449 if (check_feature(QCA_WLAN_VENDOR_FEATURE_RSN_OVERRIDE_STA, &info)) { in qca_nl80211_get_features()
1455 os_free(info.flags); in qca_nl80211_get_features()
1463 struct wiphy_info_data info; in wpa_driver_nl80211_capa() local
1466 if (wpa_driver_nl80211_get_info(drv, &info)) in wpa_driver_nl80211_capa()
1469 if (info.error) in wpa_driver_nl80211_capa()
1473 drv->has_driver_key_mgmt = info.has_key_mgmt | info.has_key_mgmt_iftype; in wpa_driver_nl80211_capa()
1506 if (!info.has_key_mgmt_iftype) { in wpa_driver_nl80211_capa()
1512 } else if (info.has_key_mgmt_iftype && !info.has_key_mgmt) { in wpa_driver_nl80211_capa()
1520 } else if (info.has_key_mgmt_iftype && info.has_key_mgmt) { in wpa_driver_nl80211_capa()
1549 if (!info.device_ap_sme) { in wpa_driver_nl80211_capa()
1560 drv->device_ap_sme = info.device_ap_sme; in wpa_driver_nl80211_capa()
1561 drv->poll_command_supported = info.poll_command_supported; in wpa_driver_nl80211_capa()
1562 drv->data_tx_status = info.data_tx_status; in wpa_driver_nl80211_capa()
1563 drv->p2p_go_ctwindow_supported = info.p2p_go_ctwindow_supported; in wpa_driver_nl80211_capa()
1564 if (info.set_qos_map_supported) in wpa_driver_nl80211_capa()
1566 drv->have_low_prio_scan = info.have_low_prio_scan; in wpa_driver_nl80211_capa()
1572 drv->use_monitor = !info.device_ap_sme && in wpa_driver_nl80211_capa()
1573 (!info.poll_command_supported || !info.data_tx_status); in wpa_driver_nl80211_capa()
1580 if (!drv->use_monitor && !info.data_tx_status) in wpa_driver_nl80211_capa()
1584 if (!(info.capa->flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD)) in wpa_driver_nl80211_capa()