Lines Matching refs:status
94 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in should_drop_frame() local
99 if (status->flag & (RX_FLAG_FAILED_FCS_CRC | in should_drop_frame()
118 struct ieee80211_rx_status *status, in ieee80211_rx_radiotap_hdrlen() argument
127 if (status->chains) in ieee80211_rx_radiotap_hdrlen()
128 len += 4 * hweight8(status->chains); in ieee80211_rx_radiotap_hdrlen()
130 if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA) in ieee80211_rx_radiotap_hdrlen()
133 if (ieee80211_have_rx_timestamp(status)) { in ieee80211_rx_radiotap_hdrlen()
141 if (!status->chains) in ieee80211_rx_radiotap_hdrlen()
147 if (status->encoding == RX_ENC_HT) /* HT info */ in ieee80211_rx_radiotap_hdrlen()
150 if (status->flag & RX_FLAG_AMPDU_DETAILS) { in ieee80211_rx_radiotap_hdrlen()
155 if (status->encoding == RX_ENC_VHT) { in ieee80211_rx_radiotap_hdrlen()
165 if (status->encoding == RX_ENC_HE && in ieee80211_rx_radiotap_hdrlen()
166 status->flag & RX_FLAG_RADIOTAP_HE) { in ieee80211_rx_radiotap_hdrlen()
172 if (status->encoding == RX_ENC_HE && in ieee80211_rx_radiotap_hdrlen()
173 status->flag & RX_FLAG_RADIOTAP_HE_MU) { in ieee80211_rx_radiotap_hdrlen()
179 if (status->flag & RX_FLAG_NO_PSDU) in ieee80211_rx_radiotap_hdrlen()
182 if (status->flag & RX_FLAG_RADIOTAP_LSIG) { in ieee80211_rx_radiotap_hdrlen()
188 if (status->chains) { in ieee80211_rx_radiotap_hdrlen()
190 len += 2 * hweight8(status->chains); in ieee80211_rx_radiotap_hdrlen()
193 if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA) { in ieee80211_rx_radiotap_hdrlen()
201 if (status->flag & RX_FLAG_RADIOTAP_HE) in ieee80211_rx_radiotap_hdrlen()
204 if (status->flag & RX_FLAG_RADIOTAP_HE_MU) in ieee80211_rx_radiotap_hdrlen()
207 if (status->flag & RX_FLAG_RADIOTAP_LSIG) in ieee80211_rx_radiotap_hdrlen()
281 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_add_rx_radiotap_header() local
289 unsigned long chains = status->chains; in ieee80211_add_rx_radiotap_header()
295 if (status->flag & RX_FLAG_RADIOTAP_HE) { in ieee80211_add_rx_radiotap_header()
298 WARN_ON_ONCE(status->encoding != RX_ENC_HE); in ieee80211_add_rx_radiotap_header()
301 if (status->flag & RX_FLAG_RADIOTAP_HE_MU) { in ieee80211_add_rx_radiotap_header()
306 if (status->flag & RX_FLAG_RADIOTAP_LSIG) { in ieee80211_add_rx_radiotap_header()
311 if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA) { in ieee80211_add_rx_radiotap_header()
331 if (!status->chains) in ieee80211_add_rx_radiotap_header()
344 if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA) { in ieee80211_add_rx_radiotap_header()
359 if (ieee80211_have_rx_timestamp(status)) { in ieee80211_add_rx_radiotap_header()
364 ieee80211_calculate_rx_timestamp(local, status, in ieee80211_add_rx_radiotap_header()
374 if (status->flag & (RX_FLAG_FAILED_FCS_CRC | RX_FLAG_FAILED_PLCP_CRC)) in ieee80211_add_rx_radiotap_header()
376 if (status->enc_flags & RX_ENC_FLAG_SHORTPRE) in ieee80211_add_rx_radiotap_header()
381 if (!rate || status->encoding != RX_ENC_LEGACY) { in ieee80211_add_rx_radiotap_header()
392 if (status->bw == RATE_INFO_BW_10) in ieee80211_add_rx_radiotap_header()
394 else if (status->bw == RATE_INFO_BW_5) in ieee80211_add_rx_radiotap_header()
402 put_unaligned_le16(status->freq, pos); in ieee80211_add_rx_radiotap_header()
404 if (status->bw == RATE_INFO_BW_10) in ieee80211_add_rx_radiotap_header()
406 else if (status->bw == RATE_INFO_BW_5) in ieee80211_add_rx_radiotap_header()
409 if (status->band == NL80211_BAND_5GHZ || in ieee80211_add_rx_radiotap_header()
410 status->band == NL80211_BAND_6GHZ) in ieee80211_add_rx_radiotap_header()
412 else if (status->encoding != RX_ENC_LEGACY) in ieee80211_add_rx_radiotap_header()
425 !(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { in ieee80211_add_rx_radiotap_header()
426 *pos = status->signal; in ieee80211_add_rx_radiotap_header()
434 if (!status->chains) { in ieee80211_add_rx_radiotap_header()
436 *pos = status->antenna; in ieee80211_add_rx_radiotap_header()
446 if (status->flag & RX_FLAG_FAILED_PLCP_CRC) in ieee80211_add_rx_radiotap_header()
451 if (status->encoding == RX_ENC_HT) { in ieee80211_add_rx_radiotap_header()
457 if (status->enc_flags & RX_ENC_FLAG_SHORT_GI) in ieee80211_add_rx_radiotap_header()
459 if (status->bw == RATE_INFO_BW_40) in ieee80211_add_rx_radiotap_header()
461 if (status->enc_flags & RX_ENC_FLAG_HT_GF) in ieee80211_add_rx_radiotap_header()
463 if (status->enc_flags & RX_ENC_FLAG_LDPC) in ieee80211_add_rx_radiotap_header()
465 stbc = (status->enc_flags & RX_ENC_FLAG_STBC_MASK) >> RX_ENC_FLAG_STBC_SHIFT; in ieee80211_add_rx_radiotap_header()
468 *pos++ = status->rate_idx; in ieee80211_add_rx_radiotap_header()
471 if (status->flag & RX_FLAG_AMPDU_DETAILS) { in ieee80211_add_rx_radiotap_header()
479 put_unaligned_le32(status->ampdu_reference, pos); in ieee80211_add_rx_radiotap_header()
481 if (status->flag & RX_FLAG_AMPDU_LAST_KNOWN) in ieee80211_add_rx_radiotap_header()
483 if (status->flag & RX_FLAG_AMPDU_IS_LAST) in ieee80211_add_rx_radiotap_header()
485 if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_ERROR) in ieee80211_add_rx_radiotap_header()
487 if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_KNOWN) in ieee80211_add_rx_radiotap_header()
489 if (status->flag & RX_FLAG_AMPDU_EOF_BIT_KNOWN) in ieee80211_add_rx_radiotap_header()
491 if (status->flag & RX_FLAG_AMPDU_EOF_BIT) in ieee80211_add_rx_radiotap_header()
495 if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_KNOWN) in ieee80211_add_rx_radiotap_header()
496 *pos++ = status->ampdu_delimiter_crc; in ieee80211_add_rx_radiotap_header()
502 if (status->encoding == RX_ENC_VHT) { in ieee80211_add_rx_radiotap_header()
509 if (status->enc_flags & RX_ENC_FLAG_SHORT_GI) in ieee80211_add_rx_radiotap_header()
512 if (status->enc_flags & RX_ENC_FLAG_STBC_MASK) in ieee80211_add_rx_radiotap_header()
514 if (status->enc_flags & RX_ENC_FLAG_BF) in ieee80211_add_rx_radiotap_header()
518 switch (status->bw) { in ieee80211_add_rx_radiotap_header()
532 *pos = (status->rate_idx << 4) | status->nss; in ieee80211_add_rx_radiotap_header()
535 if (status->enc_flags & RX_ENC_FLAG_LDPC) in ieee80211_add_rx_radiotap_header()
555 put_unaligned_le64(status->device_timestamp, pos); in ieee80211_add_rx_radiotap_header()
569 if (status->encoding == RX_ENC_HE && in ieee80211_add_rx_radiotap_header()
570 status->flag & RX_FLAG_RADIOTAP_HE) { in ieee80211_add_rx_radiotap_header()
573 if (status->enc_flags & RX_ENC_FLAG_STBC_MASK) { in ieee80211_add_rx_radiotap_header()
576 status->enc_flags)); in ieee80211_add_rx_radiotap_header()
579 he.data6 |= HE_PREP(DATA6_NSTS, status->nss); in ieee80211_add_rx_radiotap_header()
590 he.data3 |= HE_PREP(DATA3_DATA_MCS, status->rate_idx); in ieee80211_add_rx_radiotap_header()
591 he.data3 |= HE_PREP(DATA3_DATA_DCM, status->he_dcm); in ieee80211_add_rx_radiotap_header()
593 !!(status->enc_flags & RX_ENC_FLAG_LDPC)); in ieee80211_add_rx_radiotap_header()
595 he.data5 |= HE_PREP(DATA5_GI, status->he_gi); in ieee80211_add_rx_radiotap_header()
597 switch (status->bw) { in ieee80211_add_rx_radiotap_header()
628 status->he_ru + 4); in ieee80211_add_rx_radiotap_header()
631 WARN_ONCE(1, "Invalid SU BW %d\n", status->bw); in ieee80211_add_rx_radiotap_header()
642 if (status->encoding == RX_ENC_HE && in ieee80211_add_rx_radiotap_header()
643 status->flag & RX_FLAG_RADIOTAP_HE_MU) { in ieee80211_add_rx_radiotap_header()
652 if (status->flag & RX_FLAG_NO_PSDU) { in ieee80211_add_rx_radiotap_header()
655 *pos++ = status->zero_length_psdu_type; in ieee80211_add_rx_radiotap_header()
658 if (status->flag & RX_FLAG_RADIOTAP_LSIG) { in ieee80211_add_rx_radiotap_header()
668 *pos++ = status->chain_signal[chain]; in ieee80211_add_rx_radiotap_header()
672 if (status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA) { in ieee80211_add_rx_radiotap_header()
695 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(*origskb); in ieee80211_make_monitor_skb() local
700 rt_hdrlen = ieee80211_rx_radiotap_hdrlen(local, status, *origskb); in ieee80211_make_monitor_skb()
751 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(origskb); in ieee80211_rx_monitor() local
761 if (status->flag & RX_FLAG_RADIOTAP_HE) in ieee80211_rx_monitor()
764 if (status->flag & RX_FLAG_RADIOTAP_HE_MU) in ieee80211_rx_monitor()
767 if (status->flag & RX_FLAG_RADIOTAP_LSIG) in ieee80211_rx_monitor()
770 if (unlikely(status->flag & RX_FLAG_RADIOTAP_VENDOR_DATA)) { in ieee80211_rx_monitor()
788 if (!(status->flag & RX_FLAG_NO_PSDU)) { in ieee80211_rx_monitor()
811 if (!local->monitors || (status->flag & RX_FLAG_SKIP_MONITOR)) { in ieee80211_rx_monitor()
867 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_parse_qos() local
876 status->rx_flags |= IEEE80211_RX_AMSDU; in ieee80211_parse_qos()
1096 struct ieee80211_rx_status *status; in ieee80211_rx_reorder_ready() local
1104 status = IEEE80211_SKB_RXCB(tail); in ieee80211_rx_reorder_ready()
1105 if (status->flag & RX_FLAG_AMSDU_MORE) in ieee80211_rx_reorder_ready()
1118 struct ieee80211_rx_status *status; in ieee80211_release_reorder_frame() local
1133 status = IEEE80211_SKB_RXCB(skb); in ieee80211_release_reorder_frame()
1134 status->rx_flags |= IEEE80211_RX_DEFERRED_RELEASE; in ieee80211_release_reorder_frame()
1253 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_sta_manage_reorder_buf() local
1323 if (!(status->flag & RX_FLAG_AMSDU_MORE)) in ieee80211_sta_manage_reorder_buf()
1332 if (!(status->flag & RX_FLAG_AMSDU_MORE)) { in ieee80211_sta_manage_reorder_buf()
1426 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_rx_h_check_dup() local
1428 if (status->flag & RX_FLAG_DUP_VALIDATED) in ieee80211_rx_h_check_dup()
1452 } else if (!(status->flag & RX_FLAG_AMSDU_MORE)) { in ieee80211_rx_h_check_dup()
1680 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_rx_h_uapsd_and_pspoll() local
1714 !(status->rx_flags & IEEE80211_RX_DEFERRED_RELEASE) && in ieee80211_rx_h_uapsd_and_pspoll()
1731 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_rx_h_sta_process() local
1755 sta_stats_encode_rate(status); in ieee80211_rx_h_sta_process()
1767 sta->rx_stats.last_rate = sta_stats_encode_rate(status); in ieee80211_rx_h_sta_process()
1776 if (!(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { in ieee80211_rx_h_sta_process()
1777 sta->rx_stats.last_signal = status->signal; in ieee80211_rx_h_sta_process()
1778 ewma_signal_add(&sta->rx_stats_avg.signal, -status->signal); in ieee80211_rx_h_sta_process()
1781 if (status->chains) { in ieee80211_rx_h_sta_process()
1782 sta->rx_stats.chains = status->chains; in ieee80211_rx_h_sta_process()
1783 for (i = 0; i < ARRAY_SIZE(status->chain_signal); i++) { in ieee80211_rx_h_sta_process()
1784 int signal = status->chain_signal[i]; in ieee80211_rx_h_sta_process()
1786 if (!(status->chains & BIT(i))) in ieee80211_rx_h_sta_process()
1808 !(status->rx_flags & IEEE80211_RX_DEFERRED_RELEASE) && in ieee80211_rx_h_sta_process()
1898 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_rx_h_decrypt() local
1948 !(status->flag & RX_FLAG_IV_STRIPPED)) { in ieee80211_rx_h_decrypt()
1964 if ((status->flag & RX_FLAG_DECRYPTED) && in ieee80211_rx_h_decrypt()
1965 (status->flag & RX_FLAG_IV_STRIPPED)) in ieee80211_rx_h_decrypt()
1972 if ((status->flag & RX_FLAG_DECRYPTED) && in ieee80211_rx_h_decrypt()
1973 (status->flag & RX_FLAG_IV_STRIPPED)) in ieee80211_rx_h_decrypt()
1991 if ((status->flag & RX_FLAG_DECRYPTED) && in ieee80211_rx_h_decrypt()
1992 (status->flag & RX_FLAG_IV_STRIPPED)) in ieee80211_rx_h_decrypt()
2052 if ((status->flag & RX_FLAG_DECRYPTED) && in ieee80211_rx_h_decrypt()
2053 (status->flag & RX_FLAG_IV_STRIPPED)) in ieee80211_rx_h_decrypt()
2128 status->flag |= RX_FLAG_DECRYPTED; in ieee80211_rx_h_decrypt()
2244 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_rx_h_defragment() local
2303 (status->flag & RX_FLAG_DECRYPTED))) { in ieee80211_rx_h_defragment()
2350 !(status->flag & RX_FLAG_DECRYPTED)) || in ieee80211_rx_h_defragment()
2359 (status->flag & RX_FLAG_DECRYPTED)) { in ieee80211_rx_h_defragment()
2406 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_drop_unencrypted() local
2412 if (status->flag & RX_FLAG_DECRYPTED) in ieee80211_drop_unencrypted()
2452 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_drop_unencrypted_mgmt() local
2459 if (status->flag & RX_FLAG_DECRYPTED) in ieee80211_drop_unencrypted_mgmt()
2577 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_deliver_skb_to_local_stack() local
2578 bool noencrypt = !(status->flag & RX_FLAG_DECRYPTED); in ieee80211_deliver_skb_to_local_stack()
2780 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_rx_h_amsdu() local
2784 if (!(status->rx_flags & IEEE80211_RX_AMSDU)) in ieee80211_rx_h_amsdu()
3175 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_rx_h_mgmt_check() local
3197 !(status->flag & RX_FLAG_NO_SIGNAL_VAL)) in ieee80211_rx_h_mgmt_check()
3198 sig = status->signal; in ieee80211_rx_h_mgmt_check()
3202 ieee80211_rx_status_to_khz(status), in ieee80211_rx_h_mgmt_check()
3219 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_rx_h_action() local
3284 sband = rx->local->hw.wiphy->bands[status->band]; in ieee80211_rx_h_action()
3318 sband = rx->local->hw.wiphy->bands[status->band]; in ieee80211_rx_h_action()
3420 if (status->band != NL80211_BAND_5GHZ) in ieee80211_rx_h_action()
3497 status->rx_flags |= IEEE80211_RX_MALFORMED_ACTION_FRM; in ieee80211_rx_h_action()
3518 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_rx_h_userspace_mgmt() local
3522 if (status->rx_flags & IEEE80211_RX_MALFORMED_ACTION_FRM) in ieee80211_rx_h_userspace_mgmt()
3533 !(status->flag & RX_FLAG_NO_SIGNAL_VAL)) in ieee80211_rx_h_userspace_mgmt()
3534 sig = status->signal; in ieee80211_rx_h_userspace_mgmt()
3537 ieee80211_rx_status_to_khz(status), sig, in ieee80211_rx_h_userspace_mgmt()
3590 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb); in ieee80211_rx_h_action_return() local
3605 if (!(status->rx_flags & IEEE80211_RX_MALFORMED_ACTION_FRM) && in ieee80211_rx_h_action_return()
3640 status->band); in ieee80211_rx_h_action_return()
3735 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_rx_cooked_monitor() local
3751 status->flag &= ~RX_FLAG_RADIOTAP_VENDOR_DATA; in ieee80211_rx_cooked_monitor()
3753 needed_headroom = ieee80211_rx_radiotap_hdrlen(local, status, skb); in ieee80211_rx_cooked_monitor()
3810 struct ieee80211_rx_status *status; in ieee80211_rx_handlers_result() local
3812 status = IEEE80211_SKB_RXCB((rx->skb)); in ieee80211_rx_handlers_result()
3814 sband = rx->local->hw.wiphy->bands[status->band]; in ieee80211_rx_handlers_result()
3815 if (status->encoding == RX_ENC_LEGACY) in ieee80211_rx_handlers_result()
3816 rate = &sband->bitrates[status->rate_idx]; in ieee80211_rx_handlers_result()
4051 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_accept_frame() local
4081 if (status->encoding != RX_ENC_LEGACY) in ieee80211_accept_frame()
4084 rate_idx = status->rate_idx; in ieee80211_accept_frame()
4101 if (status->encoding != RX_ENC_LEGACY) in ieee80211_accept_frame()
4104 rate_idx = status->rate_idx; in ieee80211_accept_frame()
4361 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_invoke_fast_rx() local
4383 if (!(status->flag & RX_FLAG_DUP_VALIDATED)) in ieee80211_invoke_fast_rx()
4393 (status->flag & FAST_RX_CRYPT_FLAGS) != FAST_RX_CRYPT_FLAGS) in ieee80211_invoke_fast_rx()
4422 if (fast_rx->key && !(status->flag & RX_FLAG_IV_STRIPPED)) { in ieee80211_invoke_fast_rx()
4427 if (!(status->rx_flags & IEEE80211_RX_AMSDU)) { in ieee80211_invoke_fast_rx()
4448 if (rx->key && !(status->flag & RX_FLAG_MIC_STRIPPED) && in ieee80211_invoke_fast_rx()
4453 if (!(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { in ieee80211_invoke_fast_rx()
4454 stats->last_signal = status->signal; in ieee80211_invoke_fast_rx()
4457 -status->signal); in ieee80211_invoke_fast_rx()
4460 if (status->chains) { in ieee80211_invoke_fast_rx()
4463 stats->chains = status->chains; in ieee80211_invoke_fast_rx()
4464 for (i = 0; i < ARRAY_SIZE(status->chain_signal); i++) { in ieee80211_invoke_fast_rx()
4465 int signal = status->chain_signal[i]; in ieee80211_invoke_fast_rx()
4467 if (!(status->chains & BIT(i))) in ieee80211_invoke_fast_rx()
4481 if (status->rx_flags & IEEE80211_RX_AMSDU) { in ieee80211_invoke_fast_rx()
4490 stats->last_rate = sta_stats_encode_rate(status); in ieee80211_invoke_fast_rx()
4745 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); in ieee80211_rx_list() local
4749 if (WARN_ON(status->band >= NUM_NL80211_BANDS)) in ieee80211_rx_list()
4752 sband = local->hw.wiphy->bands[status->band]; in ieee80211_rx_list()
4777 if (likely(!(status->flag & RX_FLAG_FAILED_PLCP_CRC))) { in ieee80211_rx_list()
4783 switch (status->encoding) { in ieee80211_rx_list()
4795 if (WARN(status->rate_idx > 76, in ieee80211_rx_list()
4799 status->rate_idx, in ieee80211_rx_list()
4800 status->rate_idx)) in ieee80211_rx_list()
4804 if (WARN_ONCE(status->rate_idx > 11 || in ieee80211_rx_list()
4805 !status->nss || in ieee80211_rx_list()
4806 status->nss > 8, in ieee80211_rx_list()
4808 status->rate_idx, status->nss)) in ieee80211_rx_list()
4812 if (WARN_ONCE(status->rate_idx > 11 || in ieee80211_rx_list()
4813 !status->nss || in ieee80211_rx_list()
4814 status->nss > 8, in ieee80211_rx_list()
4816 status->rate_idx, status->nss)) in ieee80211_rx_list()
4823 if (WARN_ON(status->rate_idx >= sband->n_bitrates)) in ieee80211_rx_list()
4825 rate = &sband->bitrates[status->rate_idx]; in ieee80211_rx_list()
4829 status->rx_flags = 0; in ieee80211_rx_list()