Lines Matching refs:params

1585 		result->params[parse.idx].cipher = parse.p.cipher;  in nl80211_parse_connkeys()
1586 result->params[parse.idx].key_len = parse.p.key_len; in nl80211_parse_connkeys()
1587 result->params[parse.idx].key = result->data[parse.idx]; in nl80211_parse_connkeys()
4337 struct vif_params *params) in nl80211_parse_mon_options() argument
4347 &params->flags); in nl80211_parse_mon_options()
4355 if (params->flags & MONITOR_FLAG_COOK_FRAMES) in nl80211_parse_mon_options()
4358 if (params->flags & MONITOR_FLAG_ACTIVE && in nl80211_parse_mon_options()
4380 params->vht_mumimo_groups = mumimo_groups; in nl80211_parse_mon_options()
4393 params->vht_mumimo_follow_addr = in nl80211_parse_mon_options()
4453 struct vif_params params; in nl80211_set_interface() local
4461 memset(&params, 0, sizeof(params)); in nl80211_set_interface()
4487 params.use_4addr = !!nla_get_u8(info->attrs[NL80211_ATTR_4ADDR]); in nl80211_set_interface()
4489 err = nl80211_valid_4addr(rdev, dev, params.use_4addr, ntype); in nl80211_set_interface()
4493 params.use_4addr = -1; in nl80211_set_interface()
4496 err = nl80211_parse_mon_options(rdev, ntype, info, &params); in nl80211_set_interface()
4509 err = cfg80211_change_iface(rdev, dev, ntype, &params); in nl80211_set_interface()
4513 if (!err && params.use_4addr != -1) in nl80211_set_interface()
4514 dev->ieee80211_ptr->use_4addr = params.use_4addr; in nl80211_set_interface()
4528 struct vif_params params; in _nl80211_new_interface() local
4535 memset(&params, 0, sizeof(params)); in _nl80211_new_interface()
4549 nla_memcpy(params.macaddr, info->attrs[NL80211_ATTR_MAC], in _nl80211_new_interface()
4551 if (!is_valid_ether_addr(params.macaddr)) in _nl80211_new_interface()
4556 params.use_4addr = !!nla_get_u8(info->attrs[NL80211_ATTR_4ADDR]); in _nl80211_new_interface()
4557 err = nl80211_valid_4addr(rdev, NULL, params.use_4addr, type); in _nl80211_new_interface()
4562 if (!cfg80211_iftype_allowed(&rdev->wiphy, type, params.use_4addr, 0)) in _nl80211_new_interface()
4565 err = nl80211_parse_mon_options(rdev, type, info, &params); in _nl80211_new_interface()
4579 NET_NAME_USER, type, &params); in _nl80211_new_interface()
4729 static void get_key_callback(void *c, struct key_params *params) in get_key_callback() argument
4734 if ((params->seq && in get_key_callback()
4736 params->seq_len, params->seq)) || in get_key_callback()
4737 (params->cipher && in get_key_callback()
4739 params->cipher))) in get_key_callback()
4746 if ((params->seq && in get_key_callback()
4748 params->seq_len, params->seq)) || in get_key_callback()
4749 (params->cipher && in get_key_callback()
4751 params->cipher))) in get_key_callback()
6022 static void nl80211_check_ap_rate_selectors(struct cfg80211_ap_settings *params, in nl80211_check_ap_rate_selectors() argument
6032 params->ht_required = true; in nl80211_check_ap_rate_selectors()
6034 params->vht_required = true; in nl80211_check_ap_rate_selectors()
6036 params->he_required = true; in nl80211_check_ap_rate_selectors()
6038 params->sae_h2e_required = true; in nl80211_check_ap_rate_selectors()
6047 static int nl80211_calculate_ap_params(struct cfg80211_ap_settings *params) in nl80211_calculate_ap_params() argument
6049 const struct cfg80211_beacon_data *bcn = &params->beacon; in nl80211_calculate_ap_params()
6056 nl80211_check_ap_rate_selectors(params, rates); in nl80211_calculate_ap_params()
6059 nl80211_check_ap_rate_selectors(params, rates); in nl80211_calculate_ap_params()
6062 if (cap && cap->datalen >= sizeof(*params->ht_cap)) in nl80211_calculate_ap_params()
6063 params->ht_cap = (void *)cap->data; in nl80211_calculate_ap_params()
6065 if (cap && cap->datalen >= sizeof(*params->vht_cap)) in nl80211_calculate_ap_params()
6066 params->vht_cap = (void *)cap->data; in nl80211_calculate_ap_params()
6068 if (cap && cap->datalen >= sizeof(*params->he_cap) + 1) in nl80211_calculate_ap_params()
6069 params->he_cap = (void *)(cap->data + 1); in nl80211_calculate_ap_params()
6071 if (cap && cap->datalen >= sizeof(*params->he_oper) + 1) in nl80211_calculate_ap_params()
6072 params->he_oper = (void *)(cap->data + 1); in nl80211_calculate_ap_params()
6077 params->eht_cap = (void *)(cap->data + 1); in nl80211_calculate_ap_params()
6078 if (!ieee80211_eht_capa_size_ok((const u8 *)params->he_cap, in nl80211_calculate_ap_params()
6079 (const u8 *)params->eht_cap, in nl80211_calculate_ap_params()
6087 params->eht_oper = (void *)(cap->data + 1); in nl80211_calculate_ap_params()
6088 if (!ieee80211_eht_oper_size_ok((const u8 *)params->eht_oper, in nl80211_calculate_ap_params()
6096 struct cfg80211_ap_settings *params) in nl80211_get_ap_channel() argument
6108 params->chandef = wdev->u.ap.preset_chandef; in nl80211_get_ap_channel()
6203 static int nl80211_validate_ap_phy_operation(struct cfg80211_ap_settings *params) in nl80211_validate_ap_phy_operation() argument
6205 struct ieee80211_channel *channel = params->chandef.chan; in nl80211_validate_ap_phy_operation()
6207 if ((params->he_cap || params->he_oper) && in nl80211_validate_ap_phy_operation()
6211 if ((params->eht_cap || params->eht_oper) && in nl80211_validate_ap_phy_operation()
6260 struct cfg80211_ap_settings *params; in nl80211_start_ap() local
6286 params = kzalloc(sizeof(*params), GFP_KERNEL); in nl80211_start_ap()
6287 if (!params) in nl80211_start_ap()
6290 err = nl80211_parse_beacon(rdev, info->attrs, &params->beacon, in nl80211_start_ap()
6295 params->beacon_interval = in nl80211_start_ap()
6297 params->dtim_period = in nl80211_start_ap()
6301 params->beacon_interval); in nl80211_start_ap()
6313 params->ssid = nla_data(info->attrs[NL80211_ATTR_SSID]); in nl80211_start_ap()
6314 params->ssid_len = in nl80211_start_ap()
6316 if (params->ssid_len == 0) { in nl80211_start_ap()
6322 (wdev->u.ap.ssid_len != params->ssid_len || in nl80211_start_ap()
6323 memcmp(wdev->u.ap.ssid, params->ssid, params->ssid_len))) { in nl80211_start_ap()
6335 params->hidden_ssid = nla_get_u32( in nl80211_start_ap()
6338 params->privacy = !!info->attrs[NL80211_ATTR_PRIVACY]; in nl80211_start_ap()
6341 params->auth_type = nla_get_u32( in nl80211_start_ap()
6343 if (!nl80211_valid_auth_type(rdev, params->auth_type, in nl80211_start_ap()
6349 params->auth_type = NL80211_AUTHTYPE_AUTOMATIC; in nl80211_start_ap()
6351 err = nl80211_crypto_settings(rdev, info, &params->crypto, in nl80211_start_ap()
6361 params->inactivity_timeout = nla_get_u16( in nl80211_start_ap()
6370 params->p2p_ctwindow = in nl80211_start_ap()
6372 if (params->p2p_ctwindow != 0 && in nl80211_start_ap()
6387 params->p2p_opp_ps = tmp; in nl80211_start_ap()
6388 if (params->p2p_opp_ps != 0 && in nl80211_start_ap()
6396 err = nl80211_parse_chandef(rdev, info, &params->chandef); in nl80211_start_ap()
6404 params->chandef = wdev->u.ap.preset_chandef; in nl80211_start_ap()
6405 } else if (!nl80211_get_ap_channel(rdev, params)) { in nl80211_start_ap()
6413 cfg80211_get_6ghz_power_type(params->beacon.tail, in nl80211_start_ap()
6414 params->beacon.tail_len); in nl80211_start_ap()
6415 if (!cfg80211_reg_check_beaconing(&rdev->wiphy, &params->chandef, in nl80211_start_ap()
6424 &params->beacon_rate, in nl80211_start_ap()
6429 err = validate_beacon_tx_rate(rdev, params->chandef.chan->band, in nl80211_start_ap()
6430 &params->beacon_rate); in nl80211_start_ap()
6435 params->pbss = nla_get_flag(info->attrs[NL80211_ATTR_PBSS]); in nl80211_start_ap()
6436 if (params->pbss && !rdev->wiphy.bands[NL80211_BAND_60GHZ]) { in nl80211_start_ap()
6442 params->acl = parse_acl_data(&rdev->wiphy, info); in nl80211_start_ap()
6443 if (IS_ERR(params->acl)) { in nl80211_start_ap()
6444 err = PTR_ERR(params->acl); in nl80211_start_ap()
6445 params->acl = NULL; in nl80211_start_ap()
6450 params->twt_responder = in nl80211_start_ap()
6456 &params->he_obss_pd); in nl80211_start_ap()
6464 &params->fils_discovery); in nl80211_start_ap()
6472 &params->unsol_bcast_probe_resp); in nl80211_start_ap()
6480 &params->mbssid_config, in nl80211_start_ap()
6481 params->beacon.mbssid_ies ? in nl80211_start_ap()
6482 params->beacon.mbssid_ies->cnt : in nl80211_start_ap()
6488 if (!params->mbssid_config.ema && params->beacon.rnr_ies) { in nl80211_start_ap()
6499 params->s1g_long_beacon_period = nla_get_u8( in nl80211_start_ap()
6504 &params->s1g_short_beacon); in nl80211_start_ap()
6509 err = nl80211_calculate_ap_params(params); in nl80211_start_ap()
6513 err = nl80211_validate_ap_phy_operation(params); in nl80211_start_ap()
6518 params->flags = nla_get_u32( in nl80211_start_ap()
6521 params->flags |= NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT; in nl80211_start_ap()
6532 err = rdev_start_ap(rdev, dev, params); in nl80211_start_ap()
6534 wdev->links[link_id].ap.beacon_interval = params->beacon_interval; in nl80211_start_ap()
6535 wdev->links[link_id].ap.chandef = params->chandef; in nl80211_start_ap()
6536 wdev->u.ap.ssid_len = params->ssid_len; in nl80211_start_ap()
6537 memcpy(wdev->u.ap.ssid, params->ssid, in nl80211_start_ap()
6538 params->ssid_len); in nl80211_start_ap()
6546 kfree(params->acl); in nl80211_start_ap()
6547 kfree(params->beacon.mbssid_ies); in nl80211_start_ap()
6548 if (params->mbssid_config.tx_wdev && in nl80211_start_ap()
6549 params->mbssid_config.tx_wdev->netdev && in nl80211_start_ap()
6550 params->mbssid_config.tx_wdev->netdev != dev) in nl80211_start_ap()
6551 dev_put(params->mbssid_config.tx_wdev->netdev); in nl80211_start_ap()
6552 kfree(params->beacon.rnr_ies); in nl80211_start_ap()
6553 kfree(params); in nl80211_start_ap()
6565 struct cfg80211_ap_update *params; in nl80211_set_beacon() local
6579 params = kzalloc(sizeof(*params), GFP_KERNEL); in nl80211_set_beacon()
6580 if (!params) in nl80211_set_beacon()
6583 err = nl80211_parse_beacon(rdev, info->attrs, &params->beacon, in nl80211_set_beacon()
6592 cfg80211_get_6ghz_power_type(params->beacon.tail, in nl80211_set_beacon()
6593 params->beacon.tail_len); in nl80211_set_beacon()
6604 &params->fils_discovery); in nl80211_set_beacon()
6612 &params->unsol_bcast_probe_resp); in nl80211_set_beacon()
6620 &params->s1g_short_beacon); in nl80211_set_beacon()
6625 err = rdev_change_beacon(rdev, dev, params); in nl80211_set_beacon()
6628 kfree(params->beacon.mbssid_ies); in nl80211_set_beacon()
6629 kfree(params->beacon.rnr_ies); in nl80211_set_beacon()
6630 kfree(params); in nl80211_set_beacon()
6654 struct station_parameters *params) in parse_station_flags() argument
6669 params->sta_flags_mask = sta_flags->mask; in parse_station_flags()
6670 params->sta_flags_set = sta_flags->set; in parse_station_flags()
6671 params->sta_flags_set &= params->sta_flags_mask; in parse_station_flags()
6672 if ((params->sta_flags_mask | in parse_station_flags()
6673 params->sta_flags_set) & BIT(__NL80211_STA_FLAG_INVALID)) in parse_station_flags()
6697 params->sta_flags_mask = BIT(NL80211_STA_FLAG_AUTHORIZED) | in parse_station_flags()
6704 params->sta_flags_mask = BIT(NL80211_STA_FLAG_AUTHORIZED) | in parse_station_flags()
6708 params->sta_flags_mask = BIT(NL80211_STA_FLAG_AUTHENTICATED) | in parse_station_flags()
6718 params->sta_flags_set |= (1<<flag); in parse_station_flags()
7647 struct station_parameters *params, in cfg80211_check_station_change() argument
7650 if (params->listen_interval != -1 && in cfg80211_check_station_change()
7654 if (params->support_p2p_ps != -1 && in cfg80211_check_station_change()
7658 if (params->aid && in cfg80211_check_station_change()
7659 !(params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)) && in cfg80211_check_station_change()
7674 if (params->sta_flags_mask & in cfg80211_check_station_change()
7682 if (!(params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER))) in cfg80211_check_station_change()
7685 params->sta_flags_mask &= ~BIT(NL80211_STA_FLAG_TDLS_PEER); in cfg80211_check_station_change()
7689 if (params->plink_action != NL80211_PLINK_ACTION_NO_ACTION) in cfg80211_check_station_change()
7691 if (params->local_pm) in cfg80211_check_station_change()
7693 if (params->sta_modify_mask & STATION_PARAM_APPLY_PLINK_STATE) in cfg80211_check_station_change()
7700 if (params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)) in cfg80211_check_station_change()
7707 params->sta_flags_mask &= ~BIT(NL80211_STA_FLAG_TDLS_PEER); in cfg80211_check_station_change()
7713 if (params->sta_modify_mask & STATION_PARAM_APPLY_UAPSD) in cfg80211_check_station_change()
7715 if (params->sta_modify_mask & STATION_PARAM_APPLY_CAPABILITY) in cfg80211_check_station_change()
7717 if (params->link_sta_params.supported_rates) in cfg80211_check_station_change()
7719 if (params->ext_capab || params->link_sta_params.ht_capa || in cfg80211_check_station_change()
7720 params->link_sta_params.vht_capa || in cfg80211_check_station_change()
7721 params->link_sta_params.he_capa || in cfg80211_check_station_change()
7722 params->link_sta_params.eht_capa) in cfg80211_check_station_change()
7724 if (params->sta_flags_mask & BIT(NL80211_STA_FLAG_SPP_AMSDU)) in cfg80211_check_station_change()
7730 if (params->vlan) in cfg80211_check_station_change()
7736 params->eml_cap_present) in cfg80211_check_station_change()
7742 if (!(params->sta_flags_mask & BIT(NL80211_STA_FLAG_AUTHORIZED))) in cfg80211_check_station_change()
7748 if (params->sta_flags_mask & in cfg80211_check_station_change()
7760 params->sta_flags_mask & in cfg80211_check_station_change()
7768 if (params->sta_flags_mask & ~BIT(NL80211_STA_FLAG_AUTHORIZED)) in cfg80211_check_station_change()
7773 if (params->sta_flags_mask & ~(BIT(NL80211_STA_FLAG_AUTHORIZED) | in cfg80211_check_station_change()
7777 if (params->sta_flags_set & BIT(NL80211_STA_FLAG_AUTHORIZED) && in cfg80211_check_station_change()
7778 !params->link_sta_params.supported_rates) in cfg80211_check_station_change()
7785 if (params->sta_modify_mask & STATION_PARAM_APPLY_PLINK_STATE) in cfg80211_check_station_change()
7789 if (params->plink_action != NL80211_PLINK_ACTION_NO_ACTION && in cfg80211_check_station_change()
7790 params->plink_action != NL80211_PLINK_ACTION_BLOCK) in cfg80211_check_station_change()
7802 params->link_sta_params.opmode_notif_used = false; in cfg80211_check_station_change()
7849 struct station_parameters *params) in nl80211_parse_sta_wme() argument
7867 params->uapsd_queues = nla_get_u8( in nl80211_parse_sta_wme()
7869 if (params->uapsd_queues & ~IEEE80211_WMM_IE_STA_QOSINFO_AC_MASK) in nl80211_parse_sta_wme()
7873 params->max_sp = nla_get_u8(tb[NL80211_STA_WME_MAX_SP]); in nl80211_parse_sta_wme()
7875 if (params->max_sp & ~IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK) in nl80211_parse_sta_wme()
7878 params->sta_modify_mask |= STATION_PARAM_APPLY_UAPSD; in nl80211_parse_sta_wme()
7884 struct station_parameters *params) in nl80211_parse_sta_channel_info() argument
7887 params->supported_channels = in nl80211_parse_sta_channel_info()
7889 params->supported_channels_len = in nl80211_parse_sta_channel_info()
7896 if (params->supported_channels_len % 2) in nl80211_parse_sta_channel_info()
7901 params->supported_oper_classes = in nl80211_parse_sta_channel_info()
7903 params->supported_oper_classes_len = in nl80211_parse_sta_channel_info()
7910 struct station_parameters *params) in nl80211_set_station_tdls() argument
7915 params->aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]); in nl80211_set_station_tdls()
7917 params->link_sta_params.ht_capa = in nl80211_set_station_tdls()
7920 params->link_sta_params.vht_capa = in nl80211_set_station_tdls()
7923 params->link_sta_params.he_capa = in nl80211_set_station_tdls()
7925 params->link_sta_params.he_capa_len = in nl80211_set_station_tdls()
7929 params->link_sta_params.eht_capa = in nl80211_set_station_tdls()
7931 params->link_sta_params.eht_capa_len = in nl80211_set_station_tdls()
7934 if (!ieee80211_eht_capa_size_ok((const u8 *)params->link_sta_params.he_capa, in nl80211_set_station_tdls()
7935 (const u8 *)params->link_sta_params.eht_capa, in nl80211_set_station_tdls()
7936 params->link_sta_params.eht_capa_len, in nl80211_set_station_tdls()
7943 params->link_sta_params.s1g_capa = in nl80211_set_station_tdls()
7946 err = nl80211_parse_sta_channel_info(info, params); in nl80211_set_station_tdls()
7950 return nl80211_parse_sta_wme(info, params); in nl80211_set_station_tdls()
7990 struct station_parameters params; in nl80211_set_station() local
7994 memset(&params, 0, sizeof(params)); in nl80211_set_station()
8005 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_STA_AID]); in nl80211_set_station()
8008 params.vlan_id = nla_get_u16(info->attrs[NL80211_ATTR_VLAN_ID]); in nl80211_set_station()
8011 params.listen_interval = in nl80211_set_station()
8014 params.listen_interval = -1; in nl80211_set_station()
8017 params.support_p2p_ps = in nl80211_set_station()
8020 params.support_p2p_ps = -1; in nl80211_set_station()
8025 params.link_sta_params.link_id = in nl80211_set_station()
8034 if (params.link_sta_params.link_id < 0) in nl80211_set_station()
8038 params.link_sta_params.mld_mac = mac_addr; in nl80211_set_station()
8039 params.link_sta_params.link_mac = in nl80211_set_station()
8041 if (!is_valid_ether_addr(params.link_sta_params.link_mac)) in nl80211_set_station()
8049 params.link_sta_params.supported_rates = in nl80211_set_station()
8051 params.link_sta_params.supported_rates_len = in nl80211_set_station()
8056 params.capability = in nl80211_set_station()
8058 params.sta_modify_mask |= STATION_PARAM_APPLY_CAPABILITY; in nl80211_set_station()
8062 params.ext_capab = in nl80211_set_station()
8064 params.ext_capab_len = in nl80211_set_station()
8068 if (parse_station_flags(info, dev->ieee80211_ptr->iftype, &params)) in nl80211_set_station()
8072 params.plink_action = in nl80211_set_station()
8076 params.plink_state = in nl80211_set_station()
8079 params.peer_aid = nla_get_u16( in nl80211_set_station()
8081 params.sta_modify_mask |= STATION_PARAM_APPLY_PLINK_STATE; in nl80211_set_station()
8085 params.local_pm = nla_get_u32( in nl80211_set_station()
8089 params.link_sta_params.opmode_notif_used = true; in nl80211_set_station()
8090 params.link_sta_params.opmode_notif = in nl80211_set_station()
8095 params.link_sta_params.he_6ghz_capa = in nl80211_set_station()
8099 params.eml_cap_present = true; in nl80211_set_station()
8100 params.eml_cap = in nl80211_set_station()
8105 params.airtime_weight = in nl80211_set_station()
8108 if (params.airtime_weight && in nl80211_set_station()
8114 &params.link_sta_params.txpwr, in nl80211_set_station()
8115 &params.link_sta_params.txpwr_set); in nl80211_set_station()
8120 err = nl80211_set_station_tdls(info, &params); in nl80211_set_station()
8124 params.vlan = get_vlan(info, rdev); in nl80211_set_station()
8125 if (IS_ERR(params.vlan)) in nl80211_set_station()
8126 return PTR_ERR(params.vlan); in nl80211_set_station()
8143 err = rdev_change_station(rdev, dev, mac_addr, &params); in nl80211_set_station()
8146 dev_put(params.vlan); in nl80211_set_station()
8157 struct station_parameters params; in nl80211_new_station() local
8162 memset(&params, 0, sizeof(params)); in nl80211_new_station()
8180 params.link_sta_params.link_id = in nl80211_new_station()
8185 params.link_sta_params.mld_mac = mac_addr; in nl80211_new_station()
8186 params.link_sta_params.link_mac = in nl80211_new_station()
8188 if (!is_valid_ether_addr(params.link_sta_params.link_mac)) in nl80211_new_station()
8194 params.link_sta_params.supported_rates = in nl80211_new_station()
8196 params.link_sta_params.supported_rates_len = in nl80211_new_station()
8198 params.listen_interval = in nl80211_new_station()
8202 params.vlan_id = nla_get_u16(info->attrs[NL80211_ATTR_VLAN_ID]); in nl80211_new_station()
8205 params.support_p2p_ps = in nl80211_new_station()
8212 params.support_p2p_ps = in nl80211_new_station()
8217 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]); in nl80211_new_station()
8219 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_STA_AID]); in nl80211_new_station()
8222 params.capability = in nl80211_new_station()
8224 params.sta_modify_mask |= STATION_PARAM_APPLY_CAPABILITY; in nl80211_new_station()
8228 params.ext_capab = in nl80211_new_station()
8230 params.ext_capab_len = in nl80211_new_station()
8235 params.link_sta_params.ht_capa = in nl80211_new_station()
8239 params.link_sta_params.vht_capa = in nl80211_new_station()
8243 params.link_sta_params.he_capa = in nl80211_new_station()
8245 params.link_sta_params.he_capa_len = in nl80211_new_station()
8249 params.link_sta_params.eht_capa = in nl80211_new_station()
8251 params.link_sta_params.eht_capa_len = in nl80211_new_station()
8254 if (!ieee80211_eht_capa_size_ok((const u8 *)params.link_sta_params.he_capa, in nl80211_new_station()
8255 (const u8 *)params.link_sta_params.eht_capa, in nl80211_new_station()
8256 params.link_sta_params.eht_capa_len, in nl80211_new_station()
8263 params.eml_cap_present = true; in nl80211_new_station()
8264 params.eml_cap = in nl80211_new_station()
8269 params.link_sta_params.he_6ghz_capa = in nl80211_new_station()
8273 params.link_sta_params.s1g_capa = in nl80211_new_station()
8277 params.link_sta_params.opmode_notif_used = true; in nl80211_new_station()
8278 params.link_sta_params.opmode_notif = in nl80211_new_station()
8283 params.plink_action = in nl80211_new_station()
8287 params.airtime_weight = in nl80211_new_station()
8290 if (params.airtime_weight && in nl80211_new_station()
8296 &params.link_sta_params.txpwr, in nl80211_new_station()
8297 &params.link_sta_params.txpwr_set); in nl80211_new_station()
8301 err = nl80211_parse_sta_channel_info(info, &params); in nl80211_new_station()
8305 err = nl80211_parse_sta_wme(info, &params); in nl80211_new_station()
8309 if (parse_station_flags(info, dev->ieee80211_ptr->iftype, &params)) in nl80211_new_station()
8317 if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) { in nl80211_new_station()
8318 params.link_sta_params.ht_capa = NULL; in nl80211_new_station()
8319 params.link_sta_params.vht_capa = NULL; in nl80211_new_station()
8322 if (params.link_sta_params.he_capa_len || in nl80211_new_station()
8323 params.link_sta_params.he_6ghz_capa || in nl80211_new_station()
8324 params.link_sta_params.eht_capa_len) in nl80211_new_station()
8329 if (params.link_sta_params.he_6ghz_capa && in nl80211_new_station()
8330 (params.link_sta_params.ht_capa || params.link_sta_params.vht_capa)) in nl80211_new_station()
8342 !(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) in nl80211_new_station()
8343 params.sta_modify_mask &= ~STATION_PARAM_APPLY_UAPSD; in nl80211_new_station()
8346 if ((params.sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)) || in nl80211_new_station()
8350 params.sta_flags_mask &= ~BIT(NL80211_STA_FLAG_TDLS_PEER); in nl80211_new_station()
8355 params.sta_flags_mask & auth_assoc) in nl80211_new_station()
8360 params.sta_flags_mask & BIT(NL80211_STA_FLAG_SPP_AMSDU)) in nl80211_new_station()
8373 if (!(params.sta_flags_mask & auth_assoc)) { in nl80211_new_station()
8374 params.sta_flags_mask |= auth_assoc; in nl80211_new_station()
8375 params.sta_flags_set |= auth_assoc; in nl80211_new_station()
8379 params.vlan = get_vlan(info, rdev); in nl80211_new_station()
8380 if (IS_ERR(params.vlan)) in nl80211_new_station()
8381 return PTR_ERR(params.vlan); in nl80211_new_station()
8385 params.sta_modify_mask &= ~STATION_PARAM_APPLY_UAPSD; in nl80211_new_station()
8388 if (params.sta_flags_mask & BIT(NL80211_STA_FLAG_ASSOCIATED)) in nl80211_new_station()
8391 if ((params.sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)) || in nl80211_new_station()
8398 params.sta_modify_mask &= ~STATION_PARAM_APPLY_UAPSD; in nl80211_new_station()
8401 if (params.sta_flags_mask & in nl80211_new_station()
8406 if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER))) in nl80211_new_station()
8418 params.sta_flags_mask &= ~BIT(NL80211_STA_FLAG_AUTHORIZED); in nl80211_new_station()
8427 if (params.link_sta_params.link_id < 0) { in nl80211_new_station()
8431 if (!(wdev->valid_links & BIT(params.link_sta_params.link_id))) { in nl80211_new_station()
8436 if (params.link_sta_params.link_id >= 0) { in nl80211_new_station()
8441 err = rdev_add_station(rdev, dev, mac_addr, &params); in nl80211_new_station()
8443 dev_put(params.vlan); in nl80211_new_station()
8452 struct station_del_parameters params; in nl80211_del_station() local
8455 memset(&params, 0, sizeof(params)); in nl80211_del_station()
8458 params.mac = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_del_station()
8481 params.subtype = in nl80211_del_station()
8483 if (params.subtype != IEEE80211_STYPE_DISASSOC >> 4 && in nl80211_del_station()
8484 params.subtype != IEEE80211_STYPE_DEAUTH >> 4) in nl80211_del_station()
8488 params.subtype = IEEE80211_STYPE_DEAUTH >> 4; in nl80211_del_station()
8492 params.reason_code = in nl80211_del_station()
8494 if (params.reason_code == 0) in nl80211_del_station()
8498 params.reason_code = WLAN_REASON_PREV_AUTH_NOT_VALID; in nl80211_del_station()
8510 params.link_id = link_id; in nl80211_del_station()
8512 return rdev_del_station(rdev, dev, &params); in nl80211_del_station()
8831 struct bss_parameters params; in nl80211_set_bss() local
8833 memset(&params, 0, sizeof(params)); in nl80211_set_bss()
8834 params.link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_set_bss()
8836 params.use_cts_prot = -1; in nl80211_set_bss()
8837 params.use_short_preamble = -1; in nl80211_set_bss()
8838 params.use_short_slot_time = -1; in nl80211_set_bss()
8839 params.ap_isolate = -1; in nl80211_set_bss()
8840 params.ht_opmode = -1; in nl80211_set_bss()
8841 params.p2p_ctwindow = -1; in nl80211_set_bss()
8842 params.p2p_opp_ps = -1; in nl80211_set_bss()
8845 params.use_cts_prot = in nl80211_set_bss()
8848 params.use_short_preamble = in nl80211_set_bss()
8851 params.use_short_slot_time = in nl80211_set_bss()
8854 params.basic_rates = in nl80211_set_bss()
8856 params.basic_rates_len = in nl80211_set_bss()
8860 params.ap_isolate = !!nla_get_u8(info->attrs[NL80211_ATTR_AP_ISOLATE]); in nl80211_set_bss()
8862 params.ht_opmode = in nl80211_set_bss()
8868 params.p2p_ctwindow = in nl80211_set_bss()
8870 if (params.p2p_ctwindow != 0 && in nl80211_set_bss()
8881 params.p2p_opp_ps = tmp; in nl80211_set_bss()
8882 if (params.p2p_opp_ps && in nl80211_set_bss()
8894 return rdev_change_bss(rdev, dev, &params); in nl80211_set_bss()
10952 struct cfg80211_csa_settings params; in nl80211_channel_switch() local
10990 memset(&params, 0, sizeof(params)); in nl80211_channel_switch()
10991 params.beacon_csa.ftm_responder = -1; in nl80211_channel_switch()
11008 params.count = cs_count; in nl80211_channel_switch()
11013 err = nl80211_parse_beacon(rdev, info->attrs, &params.beacon_after, in nl80211_channel_switch()
11031 err = nl80211_parse_beacon(rdev, csa_attrs, &params.beacon_csa, in nl80211_channel_switch()
11041 err = nl80211_parse_counter_offsets(rdev, params.beacon_csa.tail, in nl80211_channel_switch()
11042 params.beacon_csa.tail_len, in nl80211_channel_switch()
11043 params.count, in nl80211_channel_switch()
11045 &params.counter_offsets_beacon, in nl80211_channel_switch()
11046 &params.n_counter_offsets_beacon); in nl80211_channel_switch()
11050 err = nl80211_parse_counter_offsets(rdev, params.beacon_csa.probe_resp, in nl80211_channel_switch()
11051 params.beacon_csa.probe_resp_len, in nl80211_channel_switch()
11052 params.count, in nl80211_channel_switch()
11054 &params.counter_offsets_presp, in nl80211_channel_switch()
11055 &params.n_counter_offsets_presp); in nl80211_channel_switch()
11060 err = nl80211_parse_chandef(rdev, info, &params.chandef); in nl80211_channel_switch()
11064 if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &params.chandef, in nl80211_channel_switch()
11071 &params.chandef, in nl80211_channel_switch()
11077 params.radar_required = true; in nl80211_channel_switch()
11086 params.block_tx = true; in nl80211_channel_switch()
11093 &params.unsol_bcast_probe_resp); in nl80211_channel_switch()
11098 params.link_id = link_id; in nl80211_channel_switch()
11099 err = rdev_channel_switch(rdev, dev, &params); in nl80211_channel_switch()
11102 kfree(params.beacon_after.mbssid_ies); in nl80211_channel_switch()
11103 kfree(params.beacon_csa.mbssid_ies); in nl80211_channel_switch()
11104 kfree(params.beacon_after.rnr_ies); in nl80211_channel_switch()
11105 kfree(params.beacon_csa.rnr_ies); in nl80211_channel_switch()
13435 struct cfg80211_mgmt_tx_params params = { in nl80211_tx_mgmt() local
13471 params.wait = nla_get_u32(info->attrs[NL80211_ATTR_DURATION]); in nl80211_tx_mgmt()
13477 if (params.wait < NL80211_MIN_REMAIN_ON_CHANNEL_TIME || in nl80211_tx_mgmt()
13478 params.wait > rdev->wiphy.max_remain_on_channel_duration) in nl80211_tx_mgmt()
13482 params.offchan = info->attrs[NL80211_ATTR_OFFCHANNEL_TX_OK]; in nl80211_tx_mgmt()
13484 if (params.offchan && !(rdev->wiphy.flags & WIPHY_FLAG_OFFCHAN_TX)) in nl80211_tx_mgmt()
13487 params.no_cck = nla_get_flag(info->attrs[NL80211_ATTR_TX_NO_CCK_RATE]); in nl80211_tx_mgmt()
13499 if (!chandef.chan && params.offchan) in nl80211_tx_mgmt()
13502 if (params.offchan && in nl80211_tx_mgmt()
13506 params.link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_tx_mgmt()
13512 if (params.link_id >= 0 && in nl80211_tx_mgmt()
13513 !(wdev->valid_links & BIT(params.link_id))) in nl80211_tx_mgmt()
13516 params.buf = nla_data(info->attrs[NL80211_ATTR_FRAME]); in nl80211_tx_mgmt()
13517 params.len = nla_len(info->attrs[NL80211_ATTR_FRAME]); in nl80211_tx_mgmt()
13519 err = nl80211_parse_counter_offsets(rdev, NULL, params.len, -1, in nl80211_tx_mgmt()
13521 &params.csa_offsets, in nl80211_tx_mgmt()
13522 &params.n_csa_offsets); in nl80211_tx_mgmt()
13526 if (!params.dont_wait_for_ack) { in nl80211_tx_mgmt()
13539 params.chan = chandef.chan; in nl80211_tx_mgmt()
13540 err = cfg80211_mlme_mgmt_tx(rdev, wdev, &params, &cookie); in nl80211_tx_mgmt()
16406 struct cfg80211_external_auth_params params; in nl80211_external_auth() local
16422 memset(&params, 0, sizeof(params)); in nl80211_external_auth()
16425 params.ssid.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]); in nl80211_external_auth()
16426 if (params.ssid.ssid_len == 0) in nl80211_external_auth()
16428 memcpy(params.ssid.ssid, in nl80211_external_auth()
16430 params.ssid.ssid_len); in nl80211_external_auth()
16433 memcpy(params.bssid, nla_data(info->attrs[NL80211_ATTR_BSSID]), in nl80211_external_auth()
16436 params.status = nla_get_u16(info->attrs[NL80211_ATTR_STATUS_CODE]); in nl80211_external_auth()
16439 params.pmkid = nla_data(info->attrs[NL80211_ATTR_PMKID]); in nl80211_external_auth()
16441 return rdev_external_auth(rdev, dev, &params); in nl80211_external_auth()
16810 struct cfg80211_color_change_settings params = {}; in nl80211_color_change() local
16832 params.count = nla_get_u8(info->attrs[NL80211_ATTR_COLOR_CHANGE_COUNT]); in nl80211_color_change()
16833 params.color = nla_get_u8(info->attrs[NL80211_ATTR_COLOR_CHANGE_COLOR]); in nl80211_color_change()
16835 err = nl80211_parse_beacon(rdev, info->attrs, &params.beacon_next, in nl80211_color_change()
16850 err = nl80211_parse_beacon(rdev, tb, &params.beacon_color_change, in nl80211_color_change()
16866 if (offset >= params.beacon_color_change.tail_len) { in nl80211_color_change()
16871 if (params.beacon_color_change.tail[offset] != params.count) { in nl80211_color_change()
16876 params.counter_offset_beacon = offset; in nl80211_color_change()
16886 if (offset >= params.beacon_color_change.probe_resp_len) { in nl80211_color_change()
16891 if (params.beacon_color_change.probe_resp[offset] != in nl80211_color_change()
16892 params.count) { in nl80211_color_change()
16897 params.counter_offset_presp = offset; in nl80211_color_change()
16903 &params.unsol_bcast_probe_resp); in nl80211_color_change()
16908 params.link_id = nl80211_link_id(info->attrs); in nl80211_color_change()
16909 err = rdev_color_change(rdev, dev, &params); in nl80211_color_change()
16912 kfree(params.beacon_next.mbssid_ies); in nl80211_color_change()
16913 kfree(params.beacon_color_change.mbssid_ies); in nl80211_color_change()
16914 kfree(params.beacon_next.rnr_ies); in nl80211_color_change()
16915 kfree(params.beacon_color_change.rnr_ies); in nl80211_color_change()
17004 struct link_station_parameters params = {}; in nl80211_add_mod_link_station() local
17022 params.mld_mac = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]); in nl80211_add_mod_link_station()
17025 params.link_mac = nla_data(info->attrs[NL80211_ATTR_MAC]); in nl80211_add_mod_link_station()
17026 if (!is_valid_ether_addr(params.link_mac)) in nl80211_add_mod_link_station()
17033 params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]); in nl80211_add_mod_link_station()
17036 params.supported_rates = in nl80211_add_mod_link_station()
17038 params.supported_rates_len = in nl80211_add_mod_link_station()
17043 params.ht_capa = in nl80211_add_mod_link_station()
17047 params.vht_capa = in nl80211_add_mod_link_station()
17051 params.he_capa = in nl80211_add_mod_link_station()
17053 params.he_capa_len = in nl80211_add_mod_link_station()
17057 params.eht_capa = in nl80211_add_mod_link_station()
17059 params.eht_capa_len = in nl80211_add_mod_link_station()
17062 if (!ieee80211_eht_capa_size_ok((const u8 *)params.he_capa, in nl80211_add_mod_link_station()
17063 (const u8 *)params.eht_capa, in nl80211_add_mod_link_station()
17064 params.eht_capa_len, in nl80211_add_mod_link_station()
17071 params.he_6ghz_capa = in nl80211_add_mod_link_station()
17075 params.opmode_notif_used = true; in nl80211_add_mod_link_station()
17076 params.opmode_notif = in nl80211_add_mod_link_station()
17080 err = nl80211_parse_sta_txpower_setting(info, &params.txpwr, in nl80211_add_mod_link_station()
17081 &params.txpwr_set); in nl80211_add_mod_link_station()
17086 return rdev_add_link_station(rdev, dev, &params); in nl80211_add_mod_link_station()
17088 return rdev_mod_link_station(rdev, dev, &params); in nl80211_add_mod_link_station()
17106 struct link_station_del_parameters params = {}; in nl80211_remove_link_station() local
17117 params.mld_mac = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]); in nl80211_remove_link_station()
17118 params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]); in nl80211_remove_link_station()
17120 return rdev_del_link_station(rdev, dev, &params); in nl80211_remove_link_station()
17149 struct cfg80211_ttlm_params params = {}; in nl80211_set_ttlm() local
17165 nla_memcpy(params.dlink, in nl80211_set_ttlm()
17167 sizeof(params.dlink)); in nl80211_set_ttlm()
17168 nla_memcpy(params.ulink, in nl80211_set_ttlm()
17170 sizeof(params.ulink)); in nl80211_set_ttlm()
17172 return rdev_set_ttlm(rdev, dev, &params); in nl80211_set_ttlm()
21089 struct cfg80211_external_auth_params *params, in cfg80211_external_auth_request() argument
21116 if (params->key_mgmt_suite == WLAN_AKM_SUITE_SAE) { in cfg80211_external_auth_request()
21122 params->key_mgmt_suite)) in cfg80211_external_auth_request()
21129 params->action) || in cfg80211_external_auth_request()
21130 nla_put(msg, NL80211_ATTR_BSSID, ETH_ALEN, params->bssid) || in cfg80211_external_auth_request()
21131 nla_put(msg, NL80211_ATTR_SSID, params->ssid.ssid_len, in cfg80211_external_auth_request()
21132 params->ssid.ssid) || in cfg80211_external_auth_request()
21133 (!is_zero_ether_addr(params->mld_addr) && in cfg80211_external_auth_request()
21134 nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN, params->mld_addr))) in cfg80211_external_auth_request()