• Home
  • Raw
  • Download

Lines Matching refs:sta

70 		RCU_INIT_POINTER(sdata->u.vlan.sta, NULL);  in ieee80211_change_iface()
318 struct sta_info *sta = NULL; in ieee80211_add_key() local
361 sta = sta_info_get(sdata, mac_addr); in ieee80211_add_key()
363 sta = sta_info_get_bss(sdata, mac_addr); in ieee80211_add_key()
374 if (!sta || !test_sta_flag(sta, WLAN_STA_ASSOC)) { in ieee80211_add_key()
389 if (key->sta && test_sta_flag(key->sta, WLAN_STA_MFP)) in ieee80211_add_key()
415 if (sta) in ieee80211_add_key()
416 sta->cipher_scheme = cs; in ieee80211_add_key()
418 err = ieee80211_key_link(key, sdata, sta); in ieee80211_add_key()
431 struct sta_info *sta; in ieee80211_del_key() local
441 sta = sta_info_get_bss(sdata, mac_addr); in ieee80211_del_key()
442 if (!sta) in ieee80211_del_key()
446 key = key_mtx_dereference(local, sta->ptk[key_idx]); in ieee80211_del_key()
448 key = key_mtx_dereference(local, sta->gtk[key_idx]); in ieee80211_del_key()
474 struct sta_info *sta = NULL; in ieee80211_get_key() local
489 sta = sta_info_get_bss(sdata, mac_addr); in ieee80211_get_key()
490 if (!sta) in ieee80211_get_key()
494 key = rcu_dereference(sta->ptk[key_idx]); in ieee80211_get_key()
497 key = rcu_dereference(sta->gtk[key_idx]); in ieee80211_get_key()
606 void sta_set_rate_info_tx(struct sta_info *sta, in sta_set_rate_info_tx() argument
620 int shift = ieee80211_vif_get_shift(&sta->sdata->vif); in sta_set_rate_info_tx()
623 sband = ieee80211_get_sband(sta->sdata); in sta_set_rate_info_tx()
646 struct sta_info *sta; in ieee80211_dump_station() local
651 sta = sta_info_get_by_idx(sdata, idx); in ieee80211_dump_station()
652 if (sta) { in ieee80211_dump_station()
654 memcpy(mac, sta->sta.addr, ETH_ALEN); in ieee80211_dump_station()
655 sta_set_sinfo(sta, sinfo); in ieee80211_dump_station()
676 struct sta_info *sta; in ieee80211_get_station() local
681 sta = sta_info_get_bss(sdata, mac); in ieee80211_get_station()
682 if (sta) { in ieee80211_get_station()
684 sta_set_sinfo(sta, sinfo); in ieee80211_get_station()
1062 static void ieee80211_send_layer2_update(struct sta_info *sta) in ieee80211_send_layer2_update() argument
1079 memcpy(msg->sa, sta->sta.addr, ETH_ALEN); in ieee80211_send_layer2_update()
1089 skb->dev = sta->sdata->dev; in ieee80211_send_layer2_update()
1090 skb->protocol = eth_type_trans(skb, sta->sdata->dev); in ieee80211_send_layer2_update()
1096 struct sta_info *sta, in sta_apply_auth_flags() argument
1103 !test_sta_flag(sta, WLAN_STA_AUTH)) { in sta_apply_auth_flags()
1104 ret = sta_info_move_state(sta, IEEE80211_STA_AUTH); in sta_apply_auth_flags()
1111 !test_sta_flag(sta, WLAN_STA_ASSOC)) { in sta_apply_auth_flags()
1117 if (!test_sta_flag(sta, WLAN_STA_RATE_CONTROL)) in sta_apply_auth_flags()
1118 rate_control_rate_init(sta); in sta_apply_auth_flags()
1120 ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC); in sta_apply_auth_flags()
1127 ret = sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED); in sta_apply_auth_flags()
1128 else if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in sta_apply_auth_flags()
1129 ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC); in sta_apply_auth_flags()
1138 test_sta_flag(sta, WLAN_STA_ASSOC)) { in sta_apply_auth_flags()
1139 ret = sta_info_move_state(sta, IEEE80211_STA_AUTH); in sta_apply_auth_flags()
1146 test_sta_flag(sta, WLAN_STA_AUTH)) { in sta_apply_auth_flags()
1147 ret = sta_info_move_state(sta, IEEE80211_STA_NONE); in sta_apply_auth_flags()
1156 struct sta_info *sta, in sta_apply_mesh_params() argument
1160 struct ieee80211_sub_if_data *sdata = sta->sdata; in sta_apply_mesh_params()
1166 if (sta->mesh->plink_state != NL80211_PLINK_ESTAB) in sta_apply_mesh_params()
1168 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params()
1169 sta->mesh->aid = params->peer_aid; in sta_apply_mesh_params()
1171 ieee80211_mps_sta_status_update(sta); in sta_apply_mesh_params()
1172 changed |= ieee80211_mps_set_sta_local_pm(sta, in sta_apply_mesh_params()
1181 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in sta_apply_mesh_params()
1183 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params()
1185 ieee80211_mps_sta_status_update(sta); in sta_apply_mesh_params()
1186 changed |= ieee80211_mps_set_sta_local_pm(sta, in sta_apply_mesh_params()
1200 changed |= mesh_plink_open(sta); in sta_apply_mesh_params()
1203 changed |= mesh_plink_block(sta); in sta_apply_mesh_params()
1208 changed |= ieee80211_mps_set_sta_local_pm(sta, in sta_apply_mesh_params()
1216 struct sta_info *sta, in sta_apply_parameters() argument
1221 struct ieee80211_sub_if_data *sdata = sta->sdata; in sta_apply_parameters()
1240 } else if (test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { in sta_apply_parameters()
1256 sta->sta.wme = set & BIT(NL80211_STA_FLAG_WME); in sta_apply_parameters()
1260 if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in sta_apply_parameters()
1263 ret = sta_apply_auth_flags(local, sta, mask, set); in sta_apply_parameters()
1270 set_sta_flag(sta, WLAN_STA_SHORT_PREAMBLE); in sta_apply_parameters()
1272 clear_sta_flag(sta, WLAN_STA_SHORT_PREAMBLE); in sta_apply_parameters()
1276 sta->sta.mfp = !!(set & BIT(NL80211_STA_FLAG_MFP)); in sta_apply_parameters()
1278 set_sta_flag(sta, WLAN_STA_MFP); in sta_apply_parameters()
1280 clear_sta_flag(sta, WLAN_STA_MFP); in sta_apply_parameters()
1285 set_sta_flag(sta, WLAN_STA_TDLS_PEER); in sta_apply_parameters()
1287 clear_sta_flag(sta, WLAN_STA_TDLS_PEER); in sta_apply_parameters()
1291 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in sta_apply_parameters()
1295 set_sta_flag(sta, WLAN_STA_TDLS_CHAN_SWITCH); in sta_apply_parameters()
1297 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in sta_apply_parameters()
1302 set_sta_flag(sta, WLAN_STA_TDLS_WIDER_BW); in sta_apply_parameters()
1305 sta->sta.uapsd_queues = params->uapsd_queues; in sta_apply_parameters()
1306 sta->sta.max_sp = params->max_sp; in sta_apply_parameters()
1324 sta->sta.max_amsdu_subframes = 32; in sta_apply_parameters()
1327 sta->sta.max_amsdu_subframes = 16; in sta_apply_parameters()
1330 sta->sta.max_amsdu_subframes = 8; in sta_apply_parameters()
1333 sta->sta.max_amsdu_subframes = 0; in sta_apply_parameters()
1342 sta->sta.aid = params->aid; in sta_apply_parameters()
1353 sta->listen_interval = params->listen_interval; in sta_apply_parameters()
1359 &sta->sta.supp_rates[sband->band]); in sta_apply_parameters()
1364 params->ht_capa, sta); in sta_apply_parameters()
1369 params->vht_capa, sta); in sta_apply_parameters()
1375 __ieee80211_vht_handle_opmode(sdata, sta, params->opmode_notif, in sta_apply_parameters()
1380 sta->sta.support_p2p_ps = params->support_p2p_ps; in sta_apply_parameters()
1383 sta_apply_mesh_params(local, sta, params); in sta_apply_parameters()
1386 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) || in sta_apply_parameters()
1388 ret = sta_apply_auth_flags(local, sta, mask, set); in sta_apply_parameters()
1401 struct sta_info *sta; in ieee80211_add_station() local
1421 sta = sta_info_alloc(sdata, mac, GFP_KERNEL); in ieee80211_add_station()
1422 if (!sta) in ieee80211_add_station()
1426 sta->sta.tdls = true; in ieee80211_add_station()
1428 err = sta_apply_parameters(local, sta, params); in ieee80211_add_station()
1430 sta_info_free(local, sta); in ieee80211_add_station()
1439 if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in ieee80211_add_station()
1440 test_sta_flag(sta, WLAN_STA_ASSOC)) in ieee80211_add_station()
1441 rate_control_rate_init(sta); in ieee80211_add_station()
1446 err = sta_info_insert_rcu(sta); in ieee80211_add_station()
1453 ieee80211_send_layer2_update(sta); in ieee80211_add_station()
1480 struct sta_info *sta; in ieee80211_change_station() local
1487 sta = sta_info_get_bss(sdata, mac); in ieee80211_change_station()
1488 if (!sta) { in ieee80211_change_station()
1504 if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { in ieee80211_change_station()
1508 if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in ieee80211_change_station()
1515 if (test_sta_flag(sta, WLAN_STA_ASSOC)) in ieee80211_change_station()
1529 if (params->vlan && params->vlan != sta->sdata->dev) { in ieee80211_change_station()
1536 if (vlansdata->u.vlan.sta) { in ieee80211_change_station()
1541 rcu_assign_pointer(vlansdata->u.vlan.sta, sta); in ieee80211_change_station()
1546 if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && in ieee80211_change_station()
1547 sta->sdata->u.vlan.sta) { in ieee80211_change_station()
1548 RCU_INIT_POINTER(sta->sdata->u.vlan.sta, NULL); in ieee80211_change_station()
1552 sta->sdata = vlansdata; in ieee80211_change_station()
1553 ieee80211_check_fast_xmit(sta); in ieee80211_change_station()
1555 if (sta->sta_state == IEEE80211_STA_AUTHORIZED && in ieee80211_change_station()
1558 atomic_dec(&sta->sdata->bss->num_mcast_sta); in ieee80211_change_station()
1560 atomic_inc(&sta->sdata->bss->num_mcast_sta); in ieee80211_change_station()
1563 ieee80211_send_layer2_update(sta); in ieee80211_change_station()
1566 err = sta_apply_parameters(local, sta, params); in ieee80211_change_station()
1574 sta->known_smps_mode != sta->sdata->bss->req_smps && in ieee80211_change_station()
1575 test_sta_flag(sta, WLAN_STA_AUTHORIZED) && in ieee80211_change_station()
1576 sta_info_tx_streams(sta) != 1) { in ieee80211_change_station()
1577 ht_dbg(sta->sdata, in ieee80211_change_station()
1579 sta->sta.addr); in ieee80211_change_station()
1580 ieee80211_send_smps_action(sta->sdata, in ieee80211_change_station()
1581 sta->sdata->bss->req_smps, in ieee80211_change_station()
1582 sta->sta.addr, in ieee80211_change_station()
1583 sta->sdata->vif.bss_conf.bssid); in ieee80211_change_station()
1604 struct sta_info *sta; in ieee80211_add_mpath() local
1609 sta = sta_info_get(sdata, next_hop); in ieee80211_add_mpath()
1610 if (!sta) { in ieee80211_add_mpath()
1621 mesh_path_fix_nexthop(mpath, sta); in ieee80211_add_mpath()
1644 struct sta_info *sta; in ieee80211_change_mpath() local
1650 sta = sta_info_get(sdata, next_hop); in ieee80211_change_mpath()
1651 if (!sta) { in ieee80211_change_mpath()
1662 mesh_path_fix_nexthop(mpath, sta); in ieee80211_change_mpath()
1674 memcpy(next_hop, next_hop_sta->sta.addr, ETH_ALEN); in mpath_set_pinfo()
2498 struct sta_info *sta; in __ieee80211_request_smps_ap() local
2527 list_for_each_entry(sta, &sdata->local->sta_list, list) { in __ieee80211_request_smps_ap()
2532 if (sta->sdata->bss != &sdata->u.ap) in __ieee80211_request_smps_ap()
2536 if (sta_info_tx_streams(sta) == 1) in __ieee80211_request_smps_ap()
2543 if (test_sta_flag(sta, WLAN_STA_PS_STA) && in __ieee80211_request_smps_ap()
2544 !ieee80211_smps_is_restrictive(sta->known_smps_mode, in __ieee80211_request_smps_ap()
2547 sta->sta.addr); in __ieee80211_request_smps_ap()
2555 if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in __ieee80211_request_smps_ap()
2558 ht_dbg(sdata, "Sending SMPS to %pM\n", sta->sta.addr); in __ieee80211_request_smps_ap()
2559 ieee80211_send_smps_action(sdata, smps_mode, sta->sta.addr, in __ieee80211_request_smps_ap()
2576 struct sta_info *sta; in __ieee80211_request_smps_mgd() local
2603 list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { in __ieee80211_request_smps_mgd()
2604 if (!sta->sta.tdls || sta->sdata != sdata || !sta->uploaded || in __ieee80211_request_smps_mgd()
2605 !test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in __ieee80211_request_smps_mgd()
3332 struct sta_info *sta; in ieee80211_probe_client() local
3347 sta = sta_info_get_bss(sdata, peer); in ieee80211_probe_client()
3348 if (sta) { in ieee80211_probe_client()
3349 qos = sta->sta.wme; in ieee80211_probe_client()
3379 memcpy(nullfunc->addr1, sta->sta.addr, ETH_ALEN); in ieee80211_probe_client()
3402 ieee80211_xmit(sdata, sta, skb); in ieee80211_probe_client()