1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #include <net/ieee80211_radiotap.h> 3 4 struct tx_radiotap_hdr { 5 struct ieee80211_radiotap_header hdr; 6 u8 rate; 7 u8 txpower; 8 u8 rts_retries; 9 u8 data_retries; 10 } __packed; 11 12 #define TX_RADIOTAP_PRESENT ( \ 13 (1 << IEEE80211_RADIOTAP_RATE) | \ 14 (1 << IEEE80211_RADIOTAP_DBM_TX_POWER) | \ 15 (1 << IEEE80211_RADIOTAP_RTS_RETRIES) | \ 16 (1 << IEEE80211_RADIOTAP_DATA_RETRIES) | \ 17 0) 18 19 #define IEEE80211_FC_VERSION_MASK 0x0003 20 #define IEEE80211_FC_TYPE_MASK 0x000c 21 #define IEEE80211_FC_TYPE_MGT 0x0000 22 #define IEEE80211_FC_TYPE_CTL 0x0004 23 #define IEEE80211_FC_TYPE_DATA 0x0008 24 #define IEEE80211_FC_SUBTYPE_MASK 0x00f0 25 #define IEEE80211_FC_TOFROMDS_MASK 0x0300 26 #define IEEE80211_FC_TODS_MASK 0x0100 27 #define IEEE80211_FC_FROMDS_MASK 0x0200 28 #define IEEE80211_FC_NODS 0x0000 29 #define IEEE80211_FC_TODS 0x0100 30 #define IEEE80211_FC_FROMDS 0x0200 31 #define IEEE80211_FC_DSTODS 0x0300 32 33 struct rx_radiotap_hdr { 34 struct ieee80211_radiotap_header hdr; 35 u8 flags; 36 u8 rate; 37 u8 antsignal; 38 } __packed; 39 40 #define RX_RADIOTAP_PRESENT ( \ 41 (1 << IEEE80211_RADIOTAP_FLAGS) | \ 42 (1 << IEEE80211_RADIOTAP_RATE) | \ 43 (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL) |\ 44 0) 45 46