Lines Matching refs:status

210 				     struct ieee80211_tx_status *status)  in ieee80211_tx_radiotap_len()  argument
215 if (status && status->n_rates) in ieee80211_tx_radiotap_len()
216 status_rate = &status->rates[status->n_rates - 1]; in ieee80211_tx_radiotap_len()
226 else if (info->status.rates[0].idx >= 0 && in ieee80211_tx_radiotap_len()
227 !(info->status.rates[0].flags & in ieee80211_tx_radiotap_len()
246 } else if (info->status.rates[0].idx >= 0) { in ieee80211_tx_radiotap_len()
247 if (info->status.rates[0].flags & IEEE80211_TX_RC_MCS) in ieee80211_tx_radiotap_len()
249 else if (info->status.rates[0].flags & IEEE80211_TX_RC_VHT_MCS) in ieee80211_tx_radiotap_len()
260 struct ieee80211_tx_status *status) in ieee80211_add_tx_radiotap_header() argument
270 if (status && status->n_rates) in ieee80211_add_tx_radiotap_header()
271 status_rate = &status->rates[status->n_rates - 1]; in ieee80211_add_tx_radiotap_header()
298 } else if (info->status.rates[0].idx >= 0 && in ieee80211_add_tx_radiotap_header()
299 !(info->status.rates[0].flags & (IEEE80211_TX_RC_MCS | in ieee80211_add_tx_radiotap_header()
305 sband->bitrates[info->status.rates[0].idx].bitrate; in ieee80211_add_tx_radiotap_header()
321 if (info->status.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) in ieee80211_add_tx_radiotap_header()
323 if (info->status.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) in ieee80211_add_tx_radiotap_header()
470 if (status_rate || info->status.rates[0].idx < 0) in ieee80211_add_tx_radiotap_header()
475 if (info->status.rates[0].flags & IEEE80211_TX_RC_MCS) { in ieee80211_add_tx_radiotap_header()
480 if (info->status.rates[0].flags & IEEE80211_TX_RC_SHORT_GI) in ieee80211_add_tx_radiotap_header()
482 if (info->status.rates[0].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ieee80211_add_tx_radiotap_header()
484 if (info->status.rates[0].flags & IEEE80211_TX_RC_GREEN_FIELD) in ieee80211_add_tx_radiotap_header()
486 pos[2] = info->status.rates[0].idx; in ieee80211_add_tx_radiotap_header()
488 } else if (info->status.rates[0].flags & IEEE80211_TX_RC_VHT_MCS) { in ieee80211_add_tx_radiotap_header()
503 if (info->status.rates[0].flags & IEEE80211_TX_RC_SHORT_GI) in ieee80211_add_tx_radiotap_header()
508 if (info->status.rates[0].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ieee80211_add_tx_radiotap_header()
510 else if (info->status.rates[0].flags & IEEE80211_TX_RC_80_MHZ_WIDTH) in ieee80211_add_tx_radiotap_header()
512 else if (info->status.rates[0].flags & IEEE80211_TX_RC_160_MHZ_WIDTH) in ieee80211_add_tx_radiotap_header()
519 *pos = (ieee80211_rate_get_vht_mcs(&info->status.rates[0]) << 4) | in ieee80211_add_tx_radiotap_header()
520 ieee80211_rate_get_vht_nss(&info->status.rates[0]); in ieee80211_add_tx_radiotap_header()
612 !!(info->status.flags & IEEE80211_TX_STATUS_ACK_SIGNAL_VALID); in ieee80211_report_ack_skb()
613 struct cfg80211_tx_status status = { in ieee80211_report_ack_skb() local
622 status.tx_tstamp = in ieee80211_report_ack_skb()
624 status.ack_tstamp = ktime_to_ns(ack_hwtstamp); in ieee80211_report_ack_skb()
641 info->status.ack_signal, in ieee80211_report_ack_skb()
646 &status, in ieee80211_report_ack_skb()
875 info->status.rates[i].idx = -1; in ieee80211_tx_get_rates()
876 info->status.rates[i].count = 0; in ieee80211_tx_get_rates()
878 } else if (info->status.rates[i].idx < 0) { in ieee80211_tx_get_rates()
882 info->status.rates[i].idx = -1; in ieee80211_tx_get_rates()
883 info->status.rates[i].count = 0; in ieee80211_tx_get_rates()
887 count += info->status.rates[i].count; in ieee80211_tx_get_rates()
898 int retry_count, struct ieee80211_tx_status *status) in ieee80211_tx_monitor() argument
907 rtap_len = ieee80211_tx_radiotap_len(info, status); in ieee80211_tx_monitor()
914 rtap_len, status); in ieee80211_tx_monitor()
953 struct ieee80211_tx_status *status, in __ieee80211_tx_status() argument
956 struct sk_buff *skb = status->skb; in __ieee80211_tx_status()
959 struct ieee80211_tx_info *info = status->info; in __ieee80211_tx_status()
969 if (status->sta) { in __ieee80211_tx_status()
970 sta = container_of(status->sta, struct sta_info, sta); in __ieee80211_tx_status()
989 info->status.rates[rates_idx]; in __ieee80211_tx_status()
1086 ieee80211_report_used_skb(local, skb, false, status->ack_hwtstamp); in __ieee80211_tx_status()
1093 ieee80211_tx_monitor(local, skb, retry_count, status); in __ieee80211_tx_status()
1094 else if (status->free_list) in __ieee80211_tx_status()
1095 list_add_tail(&skb->list, status->free_list); in __ieee80211_tx_status()
1104 struct ieee80211_tx_status status = { in ieee80211_tx_status_skb() local
1114 status.sta = &sta->sta; in ieee80211_tx_status_skb()
1116 ieee80211_tx_status_ext(hw, &status); in ieee80211_tx_status_skb()
1122 struct ieee80211_tx_status *status) in ieee80211_tx_status_ext() argument
1125 struct ieee80211_tx_info *info = status->info; in ieee80211_tx_status_ext()
1126 struct ieee80211_sta *pubsta = status->sta; in ieee80211_tx_status_ext()
1127 struct sk_buff *skb = status->skb; in ieee80211_tx_status_ext()
1136 if (status->n_rates) in ieee80211_tx_status_ext()
1138 status->rates[status->n_rates - 1].rate_idx; in ieee80211_tx_status_ext()
1153 if (!status->info) in ieee80211_tx_status_ext()
1161 !!(info->status.flags & IEEE80211_TX_STATUS_ACK_SIGNAL_VALID); in ieee80211_tx_status_ext()
1174 acked, info->status.tx_time); in ieee80211_tx_status_ext()
1192 (s8)info->status.ack_signal; in ieee80211_tx_status_ext()
1195 -info->status.ack_signal); in ieee80211_tx_status_ext()
1212 rate_control_tx_status(local, status); in ieee80211_tx_status_ext()
1214 ieee80211s_update_metric(local, sta, status); in ieee80211_tx_status_ext()
1218 return __ieee80211_tx_status(hw, status, rates_idx, in ieee80211_tx_status_ext()
1237 ieee80211_report_used_skb(local, skb, false, status->ack_hwtstamp); in ieee80211_tx_status_ext()
1238 if (status->free_list) in ieee80211_tx_status_ext()
1239 list_add_tail(&skb->list, status->free_list); in ieee80211_tx_status_ext()
1251 struct ieee80211_tx_status status = { in ieee80211_tx_rate_update() local
1256 rate_control_tx_status(local, &status); in ieee80211_tx_rate_update()
1259 sta->deflink.tx_stats.last_rate = info->status.rates[0]; in ieee80211_tx_rate_update()