Lines Matching refs:sta
59 void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, in ___ieee80211_stop_rx_ba_session() argument
62 struct ieee80211_local *local = sta->local; in ___ieee80211_stop_rx_ba_session()
65 lockdep_assert_held(&sta->ampdu_mlme.mtx); in ___ieee80211_stop_rx_ba_session()
67 tid_rx = rcu_dereference_protected(sta->ampdu_mlme.tid_rx[tid], in ___ieee80211_stop_rx_ba_session()
68 lockdep_is_held(&sta->ampdu_mlme.mtx)); in ___ieee80211_stop_rx_ba_session()
73 RCU_INIT_POINTER(sta->ampdu_mlme.tid_rx[tid], NULL); in ___ieee80211_stop_rx_ba_session()
75 ht_dbg(sta->sdata, in ___ieee80211_stop_rx_ba_session()
77 sta->sta.addr, tid, in ___ieee80211_stop_rx_ba_session()
81 if (drv_ampdu_action(local, sta->sdata, IEEE80211_AMPDU_RX_STOP, in ___ieee80211_stop_rx_ba_session()
82 &sta->sta, tid, NULL, 0)) in ___ieee80211_stop_rx_ba_session()
83 sdata_info(sta->sdata, in ___ieee80211_stop_rx_ba_session()
85 sta->sta.addr, tid); in ___ieee80211_stop_rx_ba_session()
89 ieee80211_send_delba(sta->sdata, sta->sta.addr, in ___ieee80211_stop_rx_ba_session()
103 void __ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, in __ieee80211_stop_rx_ba_session() argument
106 mutex_lock(&sta->ampdu_mlme.mtx); in __ieee80211_stop_rx_ba_session()
107 ___ieee80211_stop_rx_ba_session(sta, tid, initiator, reason, tx); in __ieee80211_stop_rx_ba_session()
108 mutex_unlock(&sta->ampdu_mlme.mtx); in __ieee80211_stop_rx_ba_session()
115 struct sta_info *sta; in ieee80211_stop_rx_ba_session() local
119 sta = sta_info_get_bss(sdata, addr); in ieee80211_stop_rx_ba_session()
120 if (!sta) { in ieee80211_stop_rx_ba_session()
127 set_bit(i, sta->ampdu_mlme.tid_rx_stop_requested); in ieee80211_stop_rx_ba_session()
129 ieee80211_queue_work(&sta->local->hw, &sta->ampdu_mlme.work); in ieee80211_stop_rx_ba_session()
146 struct sta_info *sta = container_of(timer_to_id, struct sta_info, in sta_rx_agg_session_timer_expired() local
152 tid_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[*ptid]); in sta_rx_agg_session_timer_expired()
166 ht_dbg(sta->sdata, "RX session timer expired on %pM tid %d\n", in sta_rx_agg_session_timer_expired()
167 sta->sta.addr, (u16)*ptid); in sta_rx_agg_session_timer_expired()
169 set_bit(*ptid, sta->ampdu_mlme.tid_rx_timer_expired); in sta_rx_agg_session_timer_expired()
170 ieee80211_queue_work(&sta->local->hw, &sta->ampdu_mlme.work); in sta_rx_agg_session_timer_expired()
177 struct sta_info *sta = container_of(timer_to_id, struct sta_info, in sta_rx_agg_reorder_timer_expired() local
181 ieee80211_release_reorder_timeout(sta, *ptid); in sta_rx_agg_reorder_timer_expired()
231 void __ieee80211_start_rx_ba_session(struct sta_info *sta, in __ieee80211_start_rx_ba_session() argument
236 struct ieee80211_local *local = sta->sdata->local; in __ieee80211_start_rx_ba_session()
241 if (!sta->sta.ht_cap.ht_supported) { in __ieee80211_start_rx_ba_session()
242 ht_dbg(sta->sdata, in __ieee80211_start_rx_ba_session()
244 sta->sta.addr, tid); in __ieee80211_start_rx_ba_session()
249 if (test_sta_flag(sta, WLAN_STA_BLOCK_BA)) { in __ieee80211_start_rx_ba_session()
250 ht_dbg(sta->sdata, in __ieee80211_start_rx_ba_session()
252 sta->sta.addr, tid); in __ieee80211_start_rx_ba_session()
261 (!(sta->sta.ht_cap.cap & IEEE80211_HT_CAP_DELAY_BA))) || in __ieee80211_start_rx_ba_session()
264 ht_dbg_ratelimited(sta->sdata, in __ieee80211_start_rx_ba_session()
266 sta->sta.addr, tid, ba_policy, buf_size); in __ieee80211_start_rx_ba_session()
278 mutex_lock(&sta->ampdu_mlme.mtx); in __ieee80211_start_rx_ba_session()
280 if (sta->ampdu_mlme.tid_rx[tid]) { in __ieee80211_start_rx_ba_session()
281 ht_dbg_ratelimited(sta->sdata, in __ieee80211_start_rx_ba_session()
283 sta->sta.addr, tid); in __ieee80211_start_rx_ba_session()
286 ___ieee80211_stop_rx_ba_session(sta, tid, WLAN_BACK_RECIPIENT, in __ieee80211_start_rx_ba_session()
300 tid_agg_rx->session_timer.data = (unsigned long)&sta->timer_to_tid[tid]; in __ieee80211_start_rx_ba_session()
305 tid_agg_rx->reorder_timer.data = (unsigned long)&sta->timer_to_tid[tid]; in __ieee80211_start_rx_ba_session()
323 ret = drv_ampdu_action(local, sta->sdata, IEEE80211_AMPDU_RX_START, in __ieee80211_start_rx_ba_session()
324 &sta->sta, tid, &start_seq_num, 0); in __ieee80211_start_rx_ba_session()
325 ht_dbg(sta->sdata, "Rx A-MPDU request on %pM tid %d result %d\n", in __ieee80211_start_rx_ba_session()
326 sta->sta.addr, tid, ret); in __ieee80211_start_rx_ba_session()
345 rcu_assign_pointer(sta->ampdu_mlme.tid_rx[tid], tid_agg_rx); in __ieee80211_start_rx_ba_session()
353 mutex_unlock(&sta->ampdu_mlme.mtx); in __ieee80211_start_rx_ba_session()
357 ieee80211_send_addba_resp(sta->sdata, sta->sta.addr, tid, in __ieee80211_start_rx_ba_session()
363 struct sta_info *sta, in ieee80211_process_addba_request() argument
381 __ieee80211_start_rx_ba_session(sta, dialog_token, timeout, in ieee80211_process_addba_request()