Lines Matching refs:sta

214 	struct sta_info *sta;  in ieee80211_change_iface()  local
222 RCU_INIT_POINTER(sdata->u.vlan.sta, NULL); in ieee80211_change_iface()
239 sta = sta_info_get(sdata, sdata->deflink.u.mgd.bssid); in ieee80211_change_iface()
240 if (sta) in ieee80211_change_iface()
241 drv_sta_set_4addr(local, sdata, &sta->sta, in ieee80211_change_iface()
440 struct sta_info *sta; in ieee80211_set_tx() local
447 sta = sta_info_get_bss(sdata, mac_addr); in ieee80211_set_tx()
449 if (!sta) in ieee80211_set_tx()
452 if (sta->ptk_idx == key_idx) in ieee80211_set_tx()
456 key = key_mtx_dereference(local, sta->ptk[key_idx]); in ieee80211_set_tx()
473 struct sta_info *sta = NULL; in ieee80211_add_key() local
516 sta = sta_info_get_bss(sdata, mac_addr); in ieee80211_add_key()
527 if (!sta || !test_sta_flag(sta, WLAN_STA_ASSOC)) { in ieee80211_add_key()
542 if (sta && test_sta_flag(sta, WLAN_STA_MFP)) in ieee80211_add_key()
568 err = ieee80211_key_link(key, link, sta); in ieee80211_add_key()
595 struct sta_info *sta; in ieee80211_lookup_key() local
598 sta = sta_info_get_bss(sdata, mac_addr); in ieee80211_lookup_key()
599 if (!sta) in ieee80211_lookup_key()
603 link_sta = rcu_dereference_check(sta->link[link_id], in ieee80211_lookup_key()
608 link_sta = &sta->deflink; in ieee80211_lookup_key()
613 sta->ptk[key_idx]); in ieee80211_lookup_key()
822 void sta_set_rate_info_tx(struct sta_info *sta, in sta_set_rate_info_tx() argument
836 int shift = ieee80211_vif_get_shift(&sta->sdata->vif); in sta_set_rate_info_tx()
839 sband = ieee80211_get_sband(sta->sdata); in sta_set_rate_info_tx()
863 struct sta_info *sta; in ieee80211_dump_station() local
868 sta = sta_info_get_by_idx(sdata, idx); in ieee80211_dump_station()
869 if (sta) { in ieee80211_dump_station()
871 memcpy(mac, sta->sta.addr, ETH_ALEN); in ieee80211_dump_station()
872 sta_set_sinfo(sta, sinfo, true); in ieee80211_dump_station()
893 struct sta_info *sta; in ieee80211_get_station() local
898 sta = sta_info_get_bss(sdata, mac); in ieee80211_get_station()
899 if (sta) { in ieee80211_get_station()
901 sta_set_sinfo(sta, sinfo, true); in ieee80211_get_station()
1670 struct sta_info *sta, in sta_apply_auth_flags() argument
1677 !test_sta_flag(sta, WLAN_STA_AUTH)) { in sta_apply_auth_flags()
1678 ret = sta_info_move_state(sta, IEEE80211_STA_AUTH); in sta_apply_auth_flags()
1685 !test_sta_flag(sta, WLAN_STA_ASSOC)) { in sta_apply_auth_flags()
1691 if (!test_sta_flag(sta, WLAN_STA_RATE_CONTROL)) in sta_apply_auth_flags()
1692 rate_control_rate_init(sta); in sta_apply_auth_flags()
1694 ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC); in sta_apply_auth_flags()
1701 ret = sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED); in sta_apply_auth_flags()
1702 else if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in sta_apply_auth_flags()
1703 ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC); in sta_apply_auth_flags()
1712 test_sta_flag(sta, WLAN_STA_ASSOC)) { in sta_apply_auth_flags()
1713 ret = sta_info_move_state(sta, IEEE80211_STA_AUTH); in sta_apply_auth_flags()
1720 test_sta_flag(sta, WLAN_STA_AUTH)) { in sta_apply_auth_flags()
1721 ret = sta_info_move_state(sta, IEEE80211_STA_NONE); in sta_apply_auth_flags()
1730 struct sta_info *sta, in sta_apply_mesh_params() argument
1734 struct ieee80211_sub_if_data *sdata = sta->sdata; in sta_apply_mesh_params()
1740 if (sta->mesh->plink_state != NL80211_PLINK_ESTAB) in sta_apply_mesh_params()
1742 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params()
1743 sta->mesh->aid = params->peer_aid; in sta_apply_mesh_params()
1745 ieee80211_mps_sta_status_update(sta); in sta_apply_mesh_params()
1746 changed |= ieee80211_mps_set_sta_local_pm(sta, in sta_apply_mesh_params()
1749 ewma_mesh_tx_rate_avg_init(&sta->mesh->tx_rate_avg); in sta_apply_mesh_params()
1751 ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10); in sta_apply_mesh_params()
1760 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in sta_apply_mesh_params()
1762 sta->mesh->plink_state = params->plink_state; in sta_apply_mesh_params()
1764 ieee80211_mps_sta_status_update(sta); in sta_apply_mesh_params()
1765 changed |= ieee80211_mps_set_sta_local_pm(sta, in sta_apply_mesh_params()
1779 changed |= mesh_plink_open(sta); in sta_apply_mesh_params()
1782 changed |= mesh_plink_block(sta); in sta_apply_mesh_params()
1787 changed |= ieee80211_mps_set_sta_local_pm(sta, in sta_apply_mesh_params()
1795 struct sta_info *sta, bool new_link, in sta_link_apply_parameters() argument
1800 struct ieee80211_sub_if_data *sdata = sta->sdata; in sta_link_apply_parameters()
1805 rcu_dereference_protected(sta->link[link_id], in sta_link_apply_parameters()
1843 ret = drv_sta_set_txpwr(local, sdata, sta); in sta_link_apply_parameters()
1896 struct sta_info *sta, in sta_apply_parameters() argument
1899 struct ieee80211_sub_if_data *sdata = sta->sdata; in sta_apply_parameters()
1915 } else if (test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { in sta_apply_parameters()
1931 sta->sta.wme = set & BIT(NL80211_STA_FLAG_WME); in sta_apply_parameters()
1935 if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in sta_apply_parameters()
1938 ret = sta_apply_auth_flags(local, sta, mask, set); in sta_apply_parameters()
1945 set_sta_flag(sta, WLAN_STA_SHORT_PREAMBLE); in sta_apply_parameters()
1947 clear_sta_flag(sta, WLAN_STA_SHORT_PREAMBLE); in sta_apply_parameters()
1951 sta->sta.mfp = !!(set & BIT(NL80211_STA_FLAG_MFP)); in sta_apply_parameters()
1953 set_sta_flag(sta, WLAN_STA_MFP); in sta_apply_parameters()
1955 clear_sta_flag(sta, WLAN_STA_MFP); in sta_apply_parameters()
1960 set_sta_flag(sta, WLAN_STA_TDLS_PEER); in sta_apply_parameters()
1962 clear_sta_flag(sta, WLAN_STA_TDLS_PEER); in sta_apply_parameters()
1966 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in sta_apply_parameters()
1970 set_sta_flag(sta, WLAN_STA_TDLS_CHAN_SWITCH); in sta_apply_parameters()
1972 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in sta_apply_parameters()
1977 set_sta_flag(sta, WLAN_STA_TDLS_WIDER_BW); in sta_apply_parameters()
1980 sta->sta.uapsd_queues = params->uapsd_queues; in sta_apply_parameters()
1981 sta->sta.max_sp = params->max_sp; in sta_apply_parameters()
1984 ieee80211_sta_set_max_amsdu_subframes(sta, params->ext_capab, in sta_apply_parameters()
1992 sta->sta.aid = params->aid; in sta_apply_parameters()
2003 sta->listen_interval = params->listen_interval; in sta_apply_parameters()
2005 ret = sta_link_apply_parameters(local, sta, false, in sta_apply_parameters()
2011 sta->sta.support_p2p_ps = params->support_p2p_ps; in sta_apply_parameters()
2014 sta_apply_mesh_params(local, sta, params); in sta_apply_parameters()
2017 sta->airtime_weight = params->airtime_weight; in sta_apply_parameters()
2020 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) || in sta_apply_parameters()
2022 ret = sta_apply_auth_flags(local, sta, mask, set); in sta_apply_parameters()
2029 sta->sta.mlo = true; in sta_apply_parameters()
2039 struct sta_info *sta; in ieee80211_add_station() local
2069 sta = sta_info_alloc_with_link(sdata, mac, in ieee80211_add_station()
2074 sta = sta_info_alloc(sdata, mac, GFP_KERNEL); in ieee80211_add_station()
2076 if (!sta) in ieee80211_add_station()
2080 sta->sta.tdls = true; in ieee80211_add_station()
2087 err = sta_apply_parameters(local, sta, params); in ieee80211_add_station()
2090 sta_info_free(local, sta); in ieee80211_add_station()
2099 if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER) && in ieee80211_add_station()
2100 test_sta_flag(sta, WLAN_STA_ASSOC)) in ieee80211_add_station()
2101 rate_control_rate_init(sta); in ieee80211_add_station()
2103 return sta_info_insert(sta); in ieee80211_add_station()
2126 struct sta_info *sta; in ieee80211_change_station() local
2133 sta = sta_info_get_bss(sdata, mac); in ieee80211_change_station()
2134 if (!sta) { in ieee80211_change_station()
2150 if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { in ieee80211_change_station()
2154 if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in ieee80211_change_station()
2161 if (test_sta_flag(sta, WLAN_STA_ASSOC)) in ieee80211_change_station()
2175 if (params->vlan && params->vlan != sta->sdata->dev) { in ieee80211_change_station()
2179 if (vlansdata->u.vlan.sta) { in ieee80211_change_station()
2184 rcu_assign_pointer(vlansdata->u.vlan.sta, sta); in ieee80211_change_station()
2186 drv_sta_set_4addr(local, sta->sdata, &sta->sta, true); in ieee80211_change_station()
2189 if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && in ieee80211_change_station()
2190 sta->sdata->u.vlan.sta) in ieee80211_change_station()
2191 RCU_INIT_POINTER(sta->sdata->u.vlan.sta, NULL); in ieee80211_change_station()
2193 if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in ieee80211_change_station()
2194 ieee80211_vif_dec_num_mcast(sta->sdata); in ieee80211_change_station()
2196 sta->sdata = vlansdata; in ieee80211_change_station()
2197 ieee80211_check_fast_rx(sta); in ieee80211_change_station()
2198 ieee80211_check_fast_xmit(sta); in ieee80211_change_station()
2200 if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) { in ieee80211_change_station()
2201 ieee80211_vif_inc_num_mcast(sta->sdata); in ieee80211_change_station()
2202 cfg80211_send_layer2_update(sta->sdata->dev, in ieee80211_change_station()
2203 sta->sta.addr); in ieee80211_change_station()
2208 if (sdata != sta->sdata) { in ieee80211_change_station()
2209 mutex_lock_nested(&sta->sdata->wdev.mtx, 1); in ieee80211_change_station()
2210 err = sta_apply_parameters(local, sta, params); in ieee80211_change_station()
2211 mutex_unlock(&sta->sdata->wdev.mtx); in ieee80211_change_station()
2213 err = sta_apply_parameters(local, sta, params); in ieee80211_change_station()
2238 struct sta_info *sta; in ieee80211_add_mpath() local
2243 sta = sta_info_get(sdata, next_hop); in ieee80211_add_mpath()
2244 if (!sta) { in ieee80211_add_mpath()
2255 mesh_path_fix_nexthop(mpath, sta); in ieee80211_add_mpath()
2278 struct sta_info *sta; in ieee80211_change_mpath() local
2284 sta = sta_info_get(sdata, next_hop); in ieee80211_change_mpath()
2285 if (!sta) { in ieee80211_change_mpath()
2296 mesh_path_fix_nexthop(mpath, sta); in ieee80211_change_mpath()
2308 memcpy(next_hop, next_hop_sta->sta.addr, ETH_ALEN); in mpath_set_pinfo()
3182 struct sta_info *sta; in __ieee80211_request_smps_mgd() local
3209 list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { in __ieee80211_request_smps_mgd()
3210 if (!sta->sta.tdls || sta->sdata != sdata || !sta->uploaded || in __ieee80211_request_smps_mgd()
3211 !test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in __ieee80211_request_smps_mgd()
4136 struct sta_info *sta; in ieee80211_probe_client() local
4145 sta = sta_info_get_bss(sdata, peer); in ieee80211_probe_client()
4146 if (!sta) { in ieee80211_probe_client()
4151 qos = sta->sta.wme; in ieee80211_probe_client()
4184 memcpy(nullfunc->addr1, sta->sta.addr, ETH_ALEN); in ieee80211_probe_client()
4207 ieee80211_xmit(sdata, sta, skb); in ieee80211_probe_client()
4570 struct sta_info *sta; in ieee80211_set_tid_config() local
4580 sta = sta_info_get_bss(sdata, tid_conf->peer); in ieee80211_set_tid_config()
4581 if (!sta) { in ieee80211_set_tid_config()
4586 ret = drv_set_tid_config(sdata->local, sdata, &sta->sta, tid_conf); in ieee80211_set_tid_config()
4597 struct sta_info *sta; in ieee80211_reset_tid_config() local
4607 sta = sta_info_get_bss(sdata, peer); in ieee80211_reset_tid_config()
4608 if (!sta) { in ieee80211_reset_tid_config()
4613 ret = drv_reset_tid_config(sdata->local, sdata, &sta->sta, tids); in ieee80211_reset_tid_config()
4908 struct sta_info *sta; in sta_add_link_station() local
4911 sta = sta_info_get_bss(sdata, params->mld_mac); in sta_add_link_station()
4912 if (!sta) in sta_add_link_station()
4915 if (!sta->sta.valid_links) in sta_add_link_station()
4918 if (sta->sta.valid_links & BIT(params->link_id)) in sta_add_link_station()
4921 ret = ieee80211_sta_allocate_link(sta, params->link_id); in sta_add_link_station()
4925 ret = sta_link_apply_parameters(local, sta, true, params); in sta_add_link_station()
4927 ieee80211_sta_free_link(sta, params->link_id); in sta_add_link_station()
4932 return ieee80211_sta_activate_link(sta, params->link_id); in sta_add_link_station()
4954 struct sta_info *sta; in sta_mod_link_station() local
4956 sta = sta_info_get_bss(sdata, params->mld_mac); in sta_mod_link_station()
4957 if (!sta) in sta_mod_link_station()
4960 if (!(sta->sta.valid_links & BIT(params->link_id))) in sta_mod_link_station()
4963 return sta_link_apply_parameters(local, sta, false, params); in sta_mod_link_station()
4984 struct sta_info *sta; in sta_del_link_station() local
4986 sta = sta_info_get_bss(sdata, params->mld_mac); in sta_del_link_station()
4987 if (!sta) in sta_del_link_station()
4990 if (!(sta->sta.valid_links & BIT(params->link_id))) in sta_del_link_station()
4994 if (sta->sta.valid_links == BIT(params->link_id)) in sta_del_link_station()
4997 ieee80211_sta_remove_link(sta, params->link_id); in sta_del_link_station()