Lines Matching defs:params
1523 result->params[parse.idx].cipher = parse.p.cipher;
1524 result->params[parse.idx].key_len = parse.p.key_len;
1525 result->params[parse.idx].key = result->data[parse.idx];
4082 struct vif_params *params)
4092 ¶ms->flags);
4099 if (params->flags & MONITOR_FLAG_ACTIVE &&
4121 params->vht_mumimo_groups = mumimo_groups;
4134 params->vht_mumimo_follow_addr =
4171 struct vif_params params;
4177 memset(¶ms, 0, sizeof(params));
4209 params.use_4addr = !!nla_get_u8(info->attrs[NL80211_ATTR_4ADDR]);
4211 err = nl80211_valid_4addr(rdev, dev, params.use_4addr, ntype);
4215 params.use_4addr = -1;
4218 err = nl80211_parse_mon_options(rdev, ntype, info, ¶ms);
4225 err = cfg80211_change_iface(rdev, dev, ntype, ¶ms);
4229 if (!err && params.use_4addr != -1)
4230 dev->ieee80211_ptr->use_4addr = params.use_4addr;
4244 struct vif_params params;
4250 memset(¶ms, 0, sizeof(params));
4264 nla_memcpy(params.macaddr, info->attrs[NL80211_ATTR_MAC],
4266 if (!is_valid_ether_addr(params.macaddr))
4271 params.use_4addr = !!nla_get_u8(info->attrs[NL80211_ATTR_4ADDR]);
4272 err = nl80211_valid_4addr(rdev, NULL, params.use_4addr, type);
4277 if (!cfg80211_iftype_allowed(&rdev->wiphy, type, params.use_4addr, 0))
4280 err = nl80211_parse_mon_options(rdev, type, info, ¶ms);
4290 NET_NAME_USER, type, ¶ms);
4444 static void get_key_callback(void *c, struct key_params *params)
4449 if ((params->key &&
4451 params->key_len, params->key)) ||
4452 (params->seq &&
4454 params->seq_len, params->seq)) ||
4455 (params->cipher &&
4457 params->cipher)))
4464 if ((params->key &&
4466 params->key_len, params->key)) ||
4467 (params->seq &&
4469 params->seq_len, params->seq)) ||
4470 (params->cipher &&
4472 params->cipher)))
5677 struct cfg80211_ap_settings *params)
5681 struct cfg80211_fils_discovery *fd = ¶ms->fils_discovery;
5708 struct cfg80211_ap_settings *params)
5713 ¶ms->unsol_bcast_probe_resp;
5734 static void nl80211_check_ap_rate_selectors(struct cfg80211_ap_settings *params,
5744 params->ht_required = true;
5746 params->vht_required = true;
5748 params->he_required = true;
5750 params->sae_h2e_required = true;
5759 static int nl80211_calculate_ap_params(struct cfg80211_ap_settings *params)
5761 const struct cfg80211_beacon_data *bcn = ¶ms->beacon;
5768 nl80211_check_ap_rate_selectors(params, rates);
5771 nl80211_check_ap_rate_selectors(params, rates);
5774 if (cap && cap->datalen >= sizeof(*params->ht_cap))
5775 params->ht_cap = (void *)cap->data;
5777 if (cap && cap->datalen >= sizeof(*params->vht_cap))
5778 params->vht_cap = (void *)cap->data;
5780 if (cap && cap->datalen >= sizeof(*params->he_cap) + 1)
5781 params->he_cap = (void *)(cap->data + 1);
5783 if (cap && cap->datalen >= sizeof(*params->he_oper) + 1)
5784 params->he_oper = (void *)(cap->data + 1);
5789 params->eht_cap = (void *)(cap->data + 1);
5790 if (!ieee80211_eht_capa_size_ok((const u8 *)params->he_cap,
5791 (const u8 *)params->eht_cap,
5799 params->eht_oper = (void *)(cap->data + 1);
5800 if (!ieee80211_eht_oper_size_ok((const u8 *)params->eht_oper,
5808 struct cfg80211_ap_settings *params)
5820 params->chandef = wdev->u.ap.preset_chandef;
5915 static int nl80211_validate_ap_phy_operation(struct cfg80211_ap_settings *params)
5917 struct ieee80211_channel *channel = params->chandef.chan;
5919 if ((params->he_cap || params->he_oper) &&
5923 if ((params->eht_cap || params->eht_oper) &&
5936 struct cfg80211_ap_settings *params;
5955 params = kzalloc(sizeof(*params), GFP_KERNEL);
5956 if (!params)
5959 err = nl80211_parse_beacon(rdev, info->attrs, ¶ms->beacon,
5964 params->beacon_interval =
5966 params->dtim_period =
5970 params->beacon_interval);
5982 params->ssid = nla_data(info->attrs[NL80211_ATTR_SSID]);
5983 params->ssid_len =
5985 if (params->ssid_len == 0) {
5991 (wdev->u.ap.ssid_len != params->ssid_len ||
5992 memcmp(wdev->u.ap.ssid, params->ssid, params->ssid_len))) {
6004 params->hidden_ssid = nla_get_u32(
6007 params->privacy = !!info->attrs[NL80211_ATTR_PRIVACY];
6010 params->auth_type = nla_get_u32(
6012 if (!nl80211_valid_auth_type(rdev, params->auth_type,
6018 params->auth_type = NL80211_AUTHTYPE_AUTOMATIC;
6020 err = nl80211_crypto_settings(rdev, info, ¶ms->crypto,
6030 params->inactivity_timeout = nla_get_u16(
6039 params->p2p_ctwindow =
6041 if (params->p2p_ctwindow != 0 &&
6056 params->p2p_opp_ps = tmp;
6057 if (params->p2p_opp_ps != 0 &&
6065 err = nl80211_parse_chandef(rdev, info, ¶ms->chandef);
6073 params->chandef = wdev->u.ap.preset_chandef;
6074 } else if (!nl80211_get_ap_channel(rdev, params)) {
6081 ¶ms->chandef,
6082 ¶ms->punct_bitmap);
6087 if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, ¶ms->chandef,
6098 ¶ms->beacon_rate,
6103 err = validate_beacon_tx_rate(rdev, params->chandef.chan->band,
6104 ¶ms->beacon_rate);
6110 params->smps_mode =
6112 switch (params->smps_mode) {
6134 params->smps_mode = NL80211_SMPS_OFF;
6137 params->pbss = nla_get_flag(info->attrs[NL80211_ATTR_PBSS]);
6138 if (params->pbss && !rdev->wiphy.bands[NL80211_BAND_60GHZ]) {
6144 params->acl = parse_acl_data(&rdev->wiphy, info);
6145 if (IS_ERR(params->acl)) {
6146 err = PTR_ERR(params->acl);
6147 params->acl = NULL;
6152 params->twt_responder =
6158 ¶ms->he_obss_pd);
6166 params);
6174 params);
6182 ¶ms->mbssid_config,
6183 params->beacon.mbssid_ies ?
6184 params->beacon.mbssid_ies->cnt :
6190 if (!params->mbssid_config.ema && params->beacon.rnr_ies) {
6195 err = nl80211_calculate_ap_params(params);
6199 err = nl80211_validate_ap_phy_operation(params);
6204 params->flags = nla_get_u32(
6207 params->flags |= NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT;
6218 err = rdev_start_ap(rdev, dev, params);
6220 wdev->links[link_id].ap.beacon_interval = params->beacon_interval;
6221 wdev->links[link_id].ap.chandef = params->chandef;
6222 wdev->u.ap.ssid_len = params->ssid_len;
6223 memcpy(wdev->u.ap.ssid, params->ssid,
6224 params->ssid_len);
6234 kfree(params->acl);
6235 kfree(params->beacon.mbssid_ies);
6236 if (params->mbssid_config.tx_wdev &&
6237 params->mbssid_config.tx_wdev->netdev &&
6238 params->mbssid_config.tx_wdev->netdev != dev)
6239 dev_put(params->mbssid_config.tx_wdev->netdev);
6240 kfree(params->beacon.rnr_ies);
6241 kfree(params);
6252 struct cfg80211_beacon_data params;
6265 err = nl80211_parse_beacon(rdev, info->attrs, ¶ms, info->extack);
6270 err = rdev_change_beacon(rdev, dev, ¶ms);
6274 kfree(params.mbssid_ies);
6275 kfree(params.rnr_ies);
6299 struct station_parameters *params)
6314 params->sta_flags_mask = sta_flags->mask;
6315 params->sta_flags_set = sta_flags->set;
6316 params->sta_flags_set &= params->sta_flags_mask;
6317 if ((params->sta_flags_mask |
6318 params->sta_flags_set) & BIT(__NL80211_STA_FLAG_INVALID))
6342 params->sta_flags_mask = BIT(NL80211_STA_FLAG_AUTHORIZED) |
6349 params->sta_flags_mask = BIT(NL80211_STA_FLAG_AUTHORIZED) |
6353 params->sta_flags_mask = BIT(NL80211_STA_FLAG_AUTHENTICATED) |
6363 params->sta_flags_set |= (1<<flag);
6852 struct station_parameters *params,
6855 if (params->listen_interval != -1 &&
6859 if (params->support_p2p_ps != -1 &&
6863 if (params->aid &&
6864 !(params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)) &&
6879 if (params->sta_flags_mask &
6887 if (!(params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)))
6890 params->sta_flags_mask &= ~BIT(NL80211_STA_FLAG_TDLS_PEER);
6894 if (params->plink_action != NL80211_PLINK_ACTION_NO_ACTION)
6896 if (params->local_pm)
6898 if (params->sta_modify_mask & STATION_PARAM_APPLY_PLINK_STATE)
6905 if (params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER))
6912 params->sta_flags_mask &= ~BIT(NL80211_STA_FLAG_TDLS_PEER);
6918 if (params->sta_modify_mask & STATION_PARAM_APPLY_UAPSD)
6920 if (params->sta_modify_mask & STATION_PARAM_APPLY_CAPABILITY)
6922 if (params->link_sta_params.supported_rates)
6924 if (params->ext_capab || params->link_sta_params.ht_capa ||
6925 params->link_sta_params.vht_capa ||
6926 params->link_sta_params.he_capa ||
6927 params->link_sta_params.eht_capa)
6933 if (params->vlan)
6940 if (!(params->sta_flags_mask & BIT(NL80211_STA_FLAG_AUTHORIZED)))
6946 if (params->sta_flags_mask &
6957 params->sta_flags_mask &
6965 if (params->sta_flags_mask & ~BIT(NL80211_STA_FLAG_AUTHORIZED))
6970 if (params->sta_flags_mask & ~(BIT(NL80211_STA_FLAG_AUTHORIZED) |
6974 if (params->sta_flags_set & BIT(NL80211_STA_FLAG_AUTHORIZED) &&
6975 !params->link_sta_params.supported_rates)
6982 if (params->sta_modify_mask & STATION_PARAM_APPLY_PLINK_STATE)
6986 if (params->plink_action != NL80211_PLINK_ACTION_NO_ACTION &&
6987 params->plink_action != NL80211_PLINK_ACTION_BLOCK)
6999 params->link_sta_params.opmode_notif_used = false;
7046 struct station_parameters *params)
7064 params->uapsd_queues = nla_get_u8(
7066 if (params->uapsd_queues & ~IEEE80211_WMM_IE_STA_QOSINFO_AC_MASK)
7070 params->max_sp = nla_get_u8(tb[NL80211_STA_WME_MAX_SP]);
7072 if (params->max_sp & ~IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK)
7075 params->sta_modify_mask |= STATION_PARAM_APPLY_UAPSD;
7081 struct station_parameters *params)
7084 params->supported_channels =
7086 params->supported_channels_len =
7093 if (params->supported_channels_len % 2)
7098 params->supported_oper_classes =
7100 params->supported_oper_classes_len =
7107 struct station_parameters *params)
7112 params->aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]);
7114 params->link_sta_params.ht_capa =
7117 params->link_sta_params.vht_capa =
7120 params->link_sta_params.he_capa =
7122 params->link_sta_params.he_capa_len =
7126 params->link_sta_params.eht_capa =
7128 params->link_sta_params.eht_capa_len =
7131 if (!ieee80211_eht_capa_size_ok((const u8 *)params->link_sta_params.he_capa,
7132 (const u8 *)params->link_sta_params.eht_capa,
7133 params->link_sta_params.eht_capa_len,
7139 err = nl80211_parse_sta_channel_info(info, params);
7143 return nl80211_parse_sta_wme(info, params);
7183 struct station_parameters params;
7187 memset(¶ms, 0, sizeof(params));
7198 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_STA_AID]);
7201 params.vlan_id = nla_get_u16(info->attrs[NL80211_ATTR_VLAN_ID]);
7204 params.listen_interval =
7207 params.listen_interval = -1;
7210 params.support_p2p_ps =
7213 params.support_p2p_ps = -1;
7218 params.link_sta_params.link_id =
7227 if (params.link_sta_params.link_id < 0)
7231 params.link_sta_params.mld_mac = mac_addr;
7232 params.link_sta_params.link_mac =
7234 if (!is_valid_ether_addr(params.link_sta_params.link_mac))
7242 params.link_sta_params.supported_rates =
7244 params.link_sta_params.supported_rates_len =
7249 params.capability =
7251 params.sta_modify_mask |= STATION_PARAM_APPLY_CAPABILITY;
7255 params.ext_capab =
7257 params.ext_capab_len =
7261 if (parse_station_flags(info, dev->ieee80211_ptr->iftype, ¶ms))
7265 params.plink_action =
7269 params.plink_state =
7272 params.peer_aid = nla_get_u16(
7274 params.sta_modify_mask |= STATION_PARAM_APPLY_PLINK_STATE;
7278 params.local_pm = nla_get_u32(
7282 params.link_sta_params.opmode_notif_used = true;
7283 params.link_sta_params.opmode_notif =
7288 params.link_sta_params.he_6ghz_capa =
7292 params.airtime_weight =
7295 if (params.airtime_weight &&
7301 ¶ms.link_sta_params.txpwr,
7302 ¶ms.link_sta_params.txpwr_set);
7307 err = nl80211_set_station_tdls(info, ¶ms);
7311 params.vlan = get_vlan(info, rdev);
7312 if (IS_ERR(params.vlan))
7313 return PTR_ERR(params.vlan);
7331 err = rdev_change_station(rdev, dev, mac_addr, ¶ms);
7335 dev_put(params.vlan);
7346 struct station_parameters params;
7351 memset(¶ms, 0, sizeof(params));
7369 params.link_sta_params.link_id =
7374 params.link_sta_params.mld_mac = mac_addr;
7375 params.link_sta_params.link_mac =
7377 if (!is_valid_ether_addr(params.link_sta_params.link_mac))
7383 params.link_sta_params.supported_rates =
7385 params.link_sta_params.supported_rates_len =
7387 params.listen_interval =
7391 params.vlan_id = nla_get_u16(info->attrs[NL80211_ATTR_VLAN_ID]);
7394 params.support_p2p_ps =
7401 params.support_p2p_ps =
7406 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_PEER_AID]);
7408 params.aid = nla_get_u16(info->attrs[NL80211_ATTR_STA_AID]);
7411 params.capability =
7413 params.sta_modify_mask |= STATION_PARAM_APPLY_CAPABILITY;
7417 params.ext_capab =
7419 params.ext_capab_len =
7424 params.link_sta_params.ht_capa =
7428 params.link_sta_params.vht_capa =
7432 params.link_sta_params.he_capa =
7434 params.link_sta_params.he_capa_len =
7438 params.link_sta_params.eht_capa =
7440 params.link_sta_params.eht_capa_len =
7443 if (!ieee80211_eht_capa_size_ok((const u8 *)params.link_sta_params.he_capa,
7444 (const u8 *)params.link_sta_params.eht_capa,
7445 params.link_sta_params.eht_capa_len,
7452 params.link_sta_params.he_6ghz_capa =
7456 params.link_sta_params.opmode_notif_used = true;
7457 params.link_sta_params.opmode_notif =
7462 params.plink_action =
7466 params.airtime_weight =
7469 if (params.airtime_weight &&
7475 ¶ms.link_sta_params.txpwr,
7476 ¶ms.link_sta_params.txpwr_set);
7480 err = nl80211_parse_sta_channel_info(info, ¶ms);
7484 err = nl80211_parse_sta_wme(info, ¶ms);
7488 if (parse_station_flags(info, dev->ieee80211_ptr->iftype, ¶ms))
7496 if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) {
7497 params.link_sta_params.ht_capa = NULL;
7498 params.link_sta_params.vht_capa = NULL;
7501 if (params.link_sta_params.he_capa_len ||
7502 params.link_sta_params.he_6ghz_capa ||
7503 params.link_sta_params.eht_capa_len)
7508 if (params.link_sta_params.he_6ghz_capa &&
7509 (params.link_sta_params.ht_capa || params.link_sta_params.vht_capa))
7521 !(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME)))
7522 params.sta_modify_mask &= ~STATION_PARAM_APPLY_UAPSD;
7525 if ((params.sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)) ||
7529 params.sta_flags_mask &= ~BIT(NL80211_STA_FLAG_TDLS_PEER);
7534 params.sta_flags_mask & auth_assoc)
7547 if (!(params.sta_flags_mask & auth_assoc)) {
7548 params.sta_flags_mask |= auth_assoc;
7549 params.sta_flags_set |= auth_assoc;
7553 params.vlan = get_vlan(info, rdev);
7554 if (IS_ERR(params.vlan))
7555 return PTR_ERR(params.vlan);
7559 params.sta_modify_mask &= ~STATION_PARAM_APPLY_UAPSD;
7562 if (params.sta_flags_mask & BIT(NL80211_STA_FLAG_ASSOCIATED))
7565 if ((params.sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)) ||
7572 params.sta_modify_mask &= ~STATION_PARAM_APPLY_UAPSD;
7575 if (params.sta_flags_mask &
7580 if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER)))
7592 params.sta_flags_mask &= ~BIT(NL80211_STA_FLAG_AUTHORIZED);
7598 /* be aware of params.vlan when changing code here */
7602 if (params.link_sta_params.link_id < 0) {
7606 if (!(wdev->valid_links & BIT(params.link_sta_params.link_id))) {
7611 if (params.link_sta_params.link_id >= 0) {
7616 err = rdev_add_station(rdev, dev, mac_addr, ¶ms);
7619 dev_put(params.vlan);
7627 struct station_del_parameters params;
7630 memset(¶ms, 0, sizeof(params));
7633 params.mac = nla_data(info->attrs[NL80211_ATTR_MAC]);
7656 params.subtype =
7658 if (params.subtype != IEEE80211_STYPE_DISASSOC >> 4 &&
7659 params.subtype != IEEE80211_STYPE_DEAUTH >> 4)
7663 params.subtype = IEEE80211_STYPE_DEAUTH >> 4;
7667 params.reason_code =
7669 if (params.reason_code == 0)
7673 params.reason_code = WLAN_REASON_PREV_AUTH_NOT_VALID;
7677 ret = rdev_del_station(rdev, dev, ¶ms);
8000 struct bss_parameters params;
8003 memset(¶ms, 0, sizeof(params));
8004 params.link_id = nl80211_link_id_or_invalid(info->attrs);
8006 params.use_cts_prot = -1;
8007 params.use_short_preamble = -1;
8008 params.use_short_slot_time = -1;
8009 params.ap_isolate = -1;
8010 params.ht_opmode = -1;
8011 params.p2p_ctwindow = -1;
8012 params.p2p_opp_ps = -1;
8015 params.use_cts_prot =
8018 params.use_short_preamble =
8021 params.use_short_slot_time =
8024 params.basic_rates =
8026 params.basic_rates_len =
8030 params.ap_isolate = !!nla_get_u8(info->attrs[NL80211_ATTR_AP_ISOLATE]);
8032 params.ht_opmode =
8038 params.p2p_ctwindow =
8040 if (params.p2p_ctwindow != 0 &&
8051 params.p2p_opp_ps = tmp;
8052 if (params.p2p_opp_ps &&
8065 err = rdev_change_bss(rdev, dev, ¶ms);
8324 /* Fill in the params struct */
10096 struct cfg80211_csa_settings params;
10135 memset(¶ms, 0, sizeof(params));
10136 params.beacon_csa.ftm_responder = -1;
10153 params.count = cs_count;
10158 err = nl80211_parse_beacon(rdev, info->attrs, ¶ms.beacon_after,
10176 err = nl80211_parse_beacon(rdev, csa_attrs, ¶ms.beacon_csa,
10192 params.n_counter_offsets_beacon = len / sizeof(u16);
10194 (params.n_counter_offsets_beacon >
10200 params.counter_offsets_beacon =
10204 for (i = 0; i < params.n_counter_offsets_beacon; i++) {
10205 u16 offset = params.counter_offsets_beacon[i];
10207 if (offset >= params.beacon_csa.tail_len) {
10212 if (params.beacon_csa.tail[offset] != params.count) {
10225 params.n_counter_offsets_presp = len / sizeof(u16);
10227 (params.n_counter_offsets_presp >
10233 params.counter_offsets_presp =
10237 for (i = 0; i < params.n_counter_offsets_presp; i++) {
10238 u16 offset = params.counter_offsets_presp[i];
10240 if (offset >= params.beacon_csa.probe_resp_len) {
10245 if (params.beacon_csa.probe_resp[offset] !=
10246 params.count) {
10254 err = nl80211_parse_chandef(rdev, info, ¶ms.chandef);
10258 if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, ¶ms.chandef,
10265 ¶ms.chandef,
10271 params.radar_required = true;
10280 params.block_tx = true;
10284 ¶ms.chandef,
10285 ¶ms.punct_bitmap);
10291 err = rdev_channel_switch(rdev, dev, ¶ms);
10295 kfree(params.beacon_after.mbssid_ies);
10296 kfree(params.beacon_csa.mbssid_ies);
10297 kfree(params.beacon_after.rnr_ies);
10298 kfree(params.beacon_csa.rnr_ies);
12536 struct cfg80211_mgmt_tx_params params = {
12572 params.wait = nla_get_u32(info->attrs[NL80211_ATTR_DURATION]);
12578 if (params.wait < NL80211_MIN_REMAIN_ON_CHANNEL_TIME ||
12579 params.wait > rdev->wiphy.max_remain_on_channel_duration)
12583 params.offchan = info->attrs[NL80211_ATTR_OFFCHANNEL_TX_OK];
12585 if (params.offchan && !(rdev->wiphy.flags & WIPHY_FLAG_OFFCHAN_TX))
12588 params.no_cck = nla_get_flag(info->attrs[NL80211_ATTR_TX_NO_CCK_RATE]);
12600 if (!chandef.chan && params.offchan)
12604 if (params.offchan &&
12610 params.link_id = nl80211_link_id_or_invalid(info->attrs);
12616 if (params.link_id >= 0 &&
12617 !(wdev->valid_links & BIT(params.link_id))) {
12623 params.buf = nla_data(info->attrs[NL80211_ATTR_FRAME]);
12624 params.len = nla_len(info->attrs[NL80211_ATTR_FRAME]);
12633 params.n_csa_offsets = len / sizeof(u16);
12634 params.csa_offsets =
12638 for (i = 0; i < params.n_csa_offsets; i++) {
12639 if (params.csa_offsets[i] >= params.len)
12644 if (!params.dont_wait_for_ack) {
12657 params.chan = chandef.chan;
12658 err = cfg80211_mlme_mgmt_tx(rdev, wdev, ¶ms, &cookie);
15607 struct cfg80211_external_auth_params params;
15623 memset(¶ms, 0, sizeof(params));
15626 params.ssid.ssid_len = nla_len(info->attrs[NL80211_ATTR_SSID]);
15627 if (params.ssid.ssid_len == 0)
15629 memcpy(params.ssid.ssid,
15631 params.ssid.ssid_len);
15634 memcpy(params.bssid, nla_data(info->attrs[NL80211_ATTR_BSSID]),
15637 params.status = nla_get_u16(info->attrs[NL80211_ATTR_STATUS_CODE]);
15640 params.pmkid = nla_data(info->attrs[NL80211_ATTR_PMKID]);
15642 return rdev_external_auth(rdev, dev, ¶ms);
16024 struct cfg80211_color_change_settings params = {};
16046 params.count = nla_get_u8(info->attrs[NL80211_ATTR_COLOR_CHANGE_COUNT]);
16047 params.color = nla_get_u8(info->attrs[NL80211_ATTR_COLOR_CHANGE_COLOR]);
16049 err = nl80211_parse_beacon(rdev, info->attrs, ¶ms.beacon_next,
16064 err = nl80211_parse_beacon(rdev, tb, ¶ms.beacon_color_change,
16080 if (offset >= params.beacon_color_change.tail_len) {
16085 if (params.beacon_color_change.tail[offset] != params.count) {
16090 params.counter_offset_beacon = offset;
16100 if (offset >= params.beacon_color_change.probe_resp_len) {
16105 if (params.beacon_color_change.probe_resp[offset] !=
16106 params.count) {
16111 params.counter_offset_presp = offset;
16115 err = rdev_color_change(rdev, dev, ¶ms);
16119 kfree(params.beacon_next.mbssid_ies);
16120 kfree(params.beacon_color_change.mbssid_ies);
16121 kfree(params.beacon_next.rnr_ies);
16122 kfree(params.beacon_color_change.rnr_ies);
16215 struct link_station_parameters params = {};
16233 params.mld_mac = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
16236 params.link_mac = nla_data(info->attrs[NL80211_ATTR_MAC]);
16237 if (!is_valid_ether_addr(params.link_mac))
16244 params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]);
16247 params.supported_rates =
16249 params.supported_rates_len =
16254 params.ht_capa =
16258 params.vht_capa =
16262 params.he_capa =
16264 params.he_capa_len =
16268 params.eht_capa =
16270 params.eht_capa_len =
16273 if (!ieee80211_eht_capa_size_ok((const u8 *)params.he_capa,
16274 (const u8 *)params.eht_capa,
16275 params.eht_capa_len,
16282 params.he_6ghz_capa =
16286 params.opmode_notif_used = true;
16287 params.opmode_notif =
16291 err = nl80211_parse_sta_txpower_setting(info, ¶ms.txpwr,
16292 ¶ms.txpwr_set);
16298 err = rdev_add_link_station(rdev, dev, ¶ms);
16300 err = rdev_mod_link_station(rdev, dev, ¶ms);
16321 struct link_station_del_parameters params = {};
16333 params.mld_mac = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
16334 params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]);
16337 ret = rdev_del_link_station(rdev, dev, ¶ms);
20118 struct cfg80211_external_auth_params *params,
20139 nla_put_u32(msg, NL80211_ATTR_AKM_SUITES, params->key_mgmt_suite) ||
20141 params->action) ||
20142 nla_put(msg, NL80211_ATTR_BSSID, ETH_ALEN, params->bssid) ||
20143 nla_put(msg, NL80211_ATTR_SSID, params->ssid.ssid_len,
20144 params->ssid.ssid) ||
20145 (!is_zero_ether_addr(params->mld_addr) &&
20146 nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN, params->mld_addr)))