Lines Matching defs:sta

23 #include "sta.h"
89 struct ieee80211_sta *sta,
794 struct ieee80211_sta *sta)
796 if (likely(sta)) {
797 if (likely(iwl_mvm_tx_skb_sta(mvm, skb, sta) == 0))
811 struct ieee80211_sta *sta = control->sta;
818 struct ieee80211_sta *tmp_sta = sta;
835 sta = NULL;
837 /* If there is no sta, and it's not offchannel - send through AP */
838 if (!sta && info->control.vif->type == NL80211_IFTYPE_STATION &&
846 sta = rcu_dereference(mvm->fw_id_to_mac_id[ap_sta_id]);
847 if (IS_ERR_OR_NULL(sta))
852 if (tmp_sta && !sta && link_id != IEEE80211_LINK_UNSPECIFIED &&
864 /* if sta is NULL, the frame is a management frame */
871 iwl_mvm_tx_skb(mvm, skb, sta);
917 if (txq->sta)
919 "TXQ of sta %pM tid %d is now empty\n",
920 txq->sta->addr,
925 iwl_mvm_tx_skb(mvm, skb, txq->sta);
938 !txq->sta) {
967 struct ieee80211_sta *sta, u16 tid, u16 rx_ba_ssn,
982 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
987 sta->addr, tid, tid_data->ssn);
993 sta->addr, tid);
998 sta->addr, tid, rx_ba_ssn);
1003 sta->addr, tid);
1016 struct ieee80211_sta *sta = params->sta;
1025 sta->addr, tid, action);
1035 iwl_mvm_sta_from_mac80211(sta)->deflink.sta_id) {
1048 ret = iwl_mvm_sta_rx_agg(mvm, sta, tid, *ssn, true, buf_size,
1052 ret = iwl_mvm_sta_rx_agg(mvm, sta, tid, 0, false, buf_size,
1060 ret = iwl_mvm_sta_tx_agg_start(mvm, vif, sta, tid, ssn);
1063 ret = iwl_mvm_sta_tx_agg_stop(mvm, vif, sta, tid);
1067 ret = iwl_mvm_sta_tx_agg_flush(mvm, vif, sta, tid);
1070 ret = iwl_mvm_sta_tx_agg_oper(mvm, vif, sta, tid,
1085 iwl_mvm_ampdu_check_trigger(mvm, vif, sta, tid,
1443 static void iwl_mvm_post_csa_tx(void *data, struct ieee80211_sta *sta)
1448 for (i = 0; i < ARRAY_SIZE(sta->txq); i++) {
1450 iwl_mvm_txq_from_mac80211(sta->txq[i]);
1453 iwl_mvm_mac_itxq_xmit(hw, sta->txq[i]);
1604 IWL_ERR(mvm, "Failed to allocate bcast sta\n");
2444 __le32 iwl_mvm_get_sta_htc_flags(struct ieee80211_sta *sta,
2493 struct ieee80211_sta *sta;
2522 sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_ctxt_cmd.sta_id]);
2523 if (IS_ERR_OR_NULL(sta)) {
2529 if (!sta->deflink.he_cap.has_he) {
2541 sta_ctxt_cmd.htc_flags = iwl_mvm_get_sta_htc_flags(sta, &sta->deflink);
2544 if (!iwl_mvm_set_sta_pkt_ext(mvm, &sta->deflink, &sta_ctxt_cmd.pkt_ext))
2547 if (sta->deflink.he_cap.he_cap_elem.mac_cap_info[2] &
2551 if (sta->deflink.he_cap.he_cap_elem.mac_cap_info[2] &
3004 * For older FWs adding the mcast sta before the bcast station may
3140 * For older FWs removing the mcast sta before the bcast station may
3282 struct ieee80211_sta *sta, u16 tids,
3291 iwl_mvm_sta_modify_sleep_tx_count(mvm, sta, reason, num_frames,
3297 struct ieee80211_sta *sta, u16 tids,
3306 iwl_mvm_sta_modify_sleep_tx_count(mvm, sta, reason, num_frames,
3312 struct ieee80211_sta *sta)
3315 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
3345 ieee80211_sta_set_buffered(sta, tid, true);
3361 iwl_mvm_sta_modify_ps_wake(mvm, sta);
3370 enum sta_notify_cmd cmd, struct ieee80211_sta *sta)
3372 __iwl_mvm_mac_sta_notify(hw, cmd, sta);
3379 struct ieee80211_sta *sta;
3387 sta = rcu_dereference(mvm->fw_id_to_mac_id[notif->sta_id]);
3388 if (WARN_ON(IS_ERR_OR_NULL(sta))) {
3393 mvmsta = iwl_mvm_sta_from_mac80211(sta);
3405 sta);
3406 ieee80211_sta_ps_transition(sta, sleeping);
3415 ieee80211_sta_uapsd_trigger(sta, IEEE80211_NUM_TIDS);
3418 ieee80211_sta_pspoll(sta);
3430 struct ieee80211_sta *sta)
3433 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta);
3457 if (sta == rcu_access_pointer(mvm->fw_id_to_mac_id[sta_id])) {
3698 struct ieee80211_sta *sta,
3709 return iwl_mvm_mac_sta_state_common(hw, vif, sta, old_state, new_state,
3713 /* FIXME: temporary making two assumptions in all sta handling functions:
3714 * (1) when setting sta state, the link exists and protected
3715 * (2) if a link is valid in sta then it's valid in vif (can
3720 struct ieee80211_sta *sta)
3729 link_sta_dereference_check(sta, link_id);
3734 iwl_mvm_rs_rate_init(mvm, vif, sta, conf, link_sta,
3743 struct ieee80211_sta *sta)
3755 for_each_sta_active_link(vif, sta, link_sta, link_id) {
3777 struct ieee80211_sta *sta,
3784 for_each_sta_active_link(vif, sta, link_sta, link_id) {
3806 struct ieee80211_sta *sta,
3817 !iwl_mvm_vif_conf_from_sta(mvm, vif, sta))
3820 if (sta->tdls &&
3824 IWL_DEBUG_MAC80211(mvm, "refusing TDLS sta\n");
3828 ret = callbacks->add_sta(mvm, vif, sta);
3829 if (sta->tdls && ret == 0) {
3831 iwl_mvm_tdls_check_trigger(mvm, vif, sta->addr,
3838 for_each_sta_active_link(vif, sta, link_sta, i)
3841 ieee80211_sta_recalc_aggregates(sta);
3843 if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
3844 mvmvif->ap_sta = sta;
3857 iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
3866 struct ieee80211_sta *sta,
3870 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta);
3877 iwl_mvm_vif_set_he_support(hw, vif, sta, false);
3889 iwl_mvm_vif_set_he_support(hw, vif, sta, true);
3896 for_each_sta_active_link(vif, sta, link_sta, link_id) {
3913 iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
3915 return callbacks->update_sta(mvm, vif, sta);
3921 struct ieee80211_sta *sta,
3925 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta);
3933 if (sta->tdls) {
3934 iwl_mvm_tdls_check_trigger(mvm, vif, sta->addr,
3972 if (!sta->mfp) {
3973 int ret = callbacks->update_sta(mvm, vif, sta);
3979 iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
3987 struct ieee80211_sta *sta,
3991 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
4000 iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
4002 if (!sta->tdls) {
4032 struct ieee80211_sta *sta,
4039 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta);
4045 sta->addr, old_state, new_state);
4086 for_each_sta_active_link(vif, sta, link_sta, link_id) {
4100 ret = iwl_mvm_sta_state_notexist_to_none(mvm, vif, sta,
4111 iwl_mvm_check_uapsd(mvm, vif, sta->addr);
4115 ret = iwl_mvm_sta_state_auth_to_assoc(hw, mvm, vif, sta,
4119 ret = iwl_mvm_sta_state_assoc_to_authorized(mvm, vif, sta,
4123 ret = iwl_mvm_sta_state_authorized_to_assoc(mvm, vif, sta,
4130 } else if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
4138 if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls) {
4142 ret = callbacks->rm_sta(mvm, vif, sta);
4143 if (sta->tdls) {
4145 iwl_mvm_tdls_check_trigger(mvm, vif, sta->addr,
4159 if (sta->tdls && ret == 0) {
4162 ieee80211_reserve_tid(sta, IWL_MVM_TDLS_FW_TID);
4165 ieee80211_unreserve_tid(sta, IWL_MVM_TDLS_FW_TID);
4181 struct ieee80211_sta *sta, u32 changed)
4188 iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
4300 struct ieee80211_sta *sta,
4313 if (sta)
4314 mvmsta = iwl_mvm_sta_from_mac80211(sta);
4359 vif->type == NL80211_IFTYPE_AP) && !sta) {
4462 IWL_DEBUG_MAC80211(mvm, "set hwcrypto key (sta:%pM, id:%d)\n",
4463 sta ? sta->addr : NULL, key->keyidx);
4466 ret = iwl_mvm_sec_key_add(mvm, vif, sta, key);
4468 ret = iwl_mvm_set_sta_key(mvm, vif, sta, key, key_offset);
4528 ret = iwl_mvm_sec_key_del(mvm, vif, sta, key);
4530 ret = iwl_mvm_remove_sta_key(mvm, vif, sta, key);
4540 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
4547 ret = __iwl_mvm_mac_set_key(hw, cmd, vif, sta, key);
4556 struct ieee80211_sta *sta,
4564 iwl_mvm_update_tkip_key(mvm, vif, keyconf, sta, iv32, phase1key);
5408 static int iwl_mvm_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
5412 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta);
5566 static void iwl_mvm_csa_block_txqs(void *data, struct ieee80211_sta *sta)
5570 for (i = 0; i < ARRAY_SIZE(sta->txq); i++) {
5572 iwl_mvm_txq_from_mac80211(sta->txq[i]);
5792 struct ieee80211_sta *sta;
5794 sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[i],
5796 if (IS_ERR_OR_NULL(sta))
5803 iwl_mvm_sta_from_mac80211(sta));
5814 struct ieee80211_sta *sta;
5843 sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[i],
5845 if (IS_ERR_OR_NULL(sta))
5848 mvmsta = iwl_mvm_sta_from_mac80211(sta);
5852 if (sta == mvmvif->ap_sta) {
5880 struct ieee80211_sta *sta)
5882 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
5889 for_each_sta_active_link(vif, sta, link_sta, link_id) {
6160 struct ieee80211_sta *sta,
6165 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
6302 event->u.ba.sta->addr, event->u.ba.tid,
6320 iwl_mvm_event_frame_timeout_callback(mvm, vif, event->u.ba.sta,