diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index 93f48e9de7..0affe6ce75 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/qdf/inc/qdf_nbuf.h @@ -178,6 +178,38 @@ #define MAX_CHAIN 8 #define QDF_MON_STATUS_MPDU_FCS_BMAP_NWORDS 8 +/** + * This is the length for radiotap, combined length + * (Mandatory part struct ieee80211_radiotap_header + RADIOTAP_HEADER_LEN) + * cannot be more than available headroom_sz. + * increase this when we add more radiotap elements. + * Number after '+' indicates maximum possible increase due to alignment + */ +#define RADIOTAP_VHT_FLAGS_LEN (12 + 1) +#define RADIOTAP_HE_FLAGS_LEN (12 + 1) +#define RADIOTAP_HE_MU_FLAGS_LEN (8 + 1) +#define RADIOTAP_HE_MU_OTHER_FLAGS_LEN (18 + 1) +#define RADIOTAP_FIXED_HEADER_LEN 17 +#define RADIOTAP_HT_FLAGS_LEN 3 +#define RADIOTAP_AMPDU_STATUS_LEN (8 + 3) +#define RADIOTAP_VENDOR_NS_LEN \ + (sizeof(struct qdf_radiotap_vendor_ns_ath) + 1) +/* This is Radio Tap Header Extension Length. + * 4 Bytes for Extended it_present bit map + + * 4 bytes padding for alignment + */ +#define RADIOTAP_HEADER_EXT_LEN (2 * sizeof(uint32_t)) +#define RADIOTAP_HEADER_LEN (RADIOTAP_BASE_HEADER_LEN + \ + RADIOTAP_FIXED_HEADER_LEN + \ + RADIOTAP_HT_FLAGS_LEN + \ + RADIOTAP_VHT_FLAGS_LEN + \ + RADIOTAP_AMPDU_STATUS_LEN + \ + RADIOTAP_HE_FLAGS_LEN + \ + RADIOTAP_HE_MU_FLAGS_LEN + \ + RADIOTAP_HE_MU_OTHER_FLAGS_LEN + \ + RADIOTAP_VENDOR_NS_LEN + \ + RADIOTAP_HEADER_EXT_LEN) + /** * struct mon_rx_status - This will have monitor mode rx_status extracted from * htt_rx_desc used later to update radiotap information. diff --git a/qdf/linux/src/i_qdf_nbuf.h b/qdf/linux/src/i_qdf_nbuf.h index d3d0ff1ed4..60a3aa10a5 100644 --- a/qdf/linux/src/i_qdf_nbuf.h +++ b/qdf/linux/src/i_qdf_nbuf.h @@ -70,6 +70,14 @@ typedef struct sk_buff_head __qdf_nbuf_queue_head_t; #define QDF_NBUF_CB_PACKET_TYPE_ICMP 5 #define QDF_NBUF_CB_PACKET_TYPE_ICMPv6 6 +#define RADIOTAP_BASE_HEADER_LEN sizeof(struct ieee80211_radiotap_header) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)) +#define IEEE80211_RADIOTAP_HE 23 +#define IEEE80211_RADIOTAP_HE_MU 24 +#endif + +#define IEEE80211_RADIOTAP_HE_MU_OTHER 25 /* mark the first packet after wow wakeup */ #define QDF_MARK_FIRST_WAKEUP_PACKET 0x80000000 diff --git a/qdf/linux/src/qdf_nbuf.c b/qdf/linux/src/qdf_nbuf.c index edd87e08cc..48345e06dd 100644 --- a/qdf/linux/src/qdf_nbuf.c +++ b/qdf/linux/src/qdf_nbuf.c @@ -4487,42 +4487,6 @@ qdf_nbuf_update_radiotap_he_mu_other_flags(struct mon_rx_status *rx_status, #define IEEE80211_RADIOTAP_TX_STATUS 0 #define IEEE80211_RADIOTAP_RETRY_COUNT 1 -/** - * This is the length for radiotap, combined length - * (Mandatory part struct ieee80211_radiotap_header + RADIOTAP_HEADER_LEN) - * cannot be more than available headroom_sz. - * increase this when we add more radiotap elements. - * Number after '+' indicates maximum possible increase due to alignment - */ - -#define RADIOTAP_VHT_FLAGS_LEN (12 + 1) -#define RADIOTAP_HE_FLAGS_LEN (12 + 1) -#define RADIOTAP_HE_MU_FLAGS_LEN (8 + 1) -#define RADIOTAP_HE_MU_OTHER_FLAGS_LEN (18 + 1) -#define RADIOTAP_FIXED_HEADER_LEN 17 -#define RADIOTAP_HT_FLAGS_LEN 3 -#define RADIOTAP_AMPDU_STATUS_LEN (8 + 3) -#define RADIOTAP_VENDOR_NS_LEN \ - (sizeof(struct qdf_radiotap_vendor_ns_ath) + 1) -/* This is Radio Tap Header Extension Length. - * 4 Bytes for Extended it_present bit map + - * 4 bytes padding for alignment - */ -#define RADIOTAP_HEADER_EXT_LEN (2 * sizeof(uint32_t)) -#define RADIOTAP_HEADER_LEN (sizeof(struct ieee80211_radiotap_header) + \ - RADIOTAP_FIXED_HEADER_LEN + \ - RADIOTAP_HT_FLAGS_LEN + \ - RADIOTAP_VHT_FLAGS_LEN + \ - RADIOTAP_AMPDU_STATUS_LEN + \ - RADIOTAP_HE_FLAGS_LEN + \ - RADIOTAP_HE_MU_FLAGS_LEN + \ - RADIOTAP_HE_MU_OTHER_FLAGS_LEN + \ - RADIOTAP_VENDOR_NS_LEN + \ - RADIOTAP_HEADER_EXT_LEN) - -#define IEEE80211_RADIOTAP_HE 23 -#define IEEE80211_RADIOTAP_HE_MU 24 -#define IEEE80211_RADIOTAP_HE_MU_OTHER 25 uint8_t ATH_OUI[] = {0x00, 0x03, 0x7f}; /* Atheros OUI */ /**