Changeset View
Changeset View
Standalone View
Standalone View
sys/net80211/ieee80211_radiotap.h
Show First 20 Lines • Show All 361 Lines • ▼ Show 20 Lines | |||||
#define IEEE80211_RADIOTAP_VHT_BW_20LLU 19 | #define IEEE80211_RADIOTAP_VHT_BW_20LLU 19 | ||||
#define IEEE80211_RADIOTAP_VHT_BW_20LUL 20 | #define IEEE80211_RADIOTAP_VHT_BW_20LUL 20 | ||||
#define IEEE80211_RADIOTAP_VHT_BW_20LUU 21 | #define IEEE80211_RADIOTAP_VHT_BW_20LUU 21 | ||||
#define IEEE80211_RADIOTAP_VHT_BW_20ULL 22 | #define IEEE80211_RADIOTAP_VHT_BW_20ULL 22 | ||||
#define IEEE80211_RADIOTAP_VHT_BW_20ULU 23 | #define IEEE80211_RADIOTAP_VHT_BW_20ULU 23 | ||||
#define IEEE80211_RADIOTAP_VHT_BW_20UUL 24 | #define IEEE80211_RADIOTAP_VHT_BW_20UUL 24 | ||||
#define IEEE80211_RADIOTAP_VHT_BW_20UUU 25 | #define IEEE80211_RADIOTAP_VHT_BW_20UUU 25 | ||||
/* | |||||
* These are found in various drivers already so use them rather than | |||||
* going by our own names and changing everything. | |||||
*/ | |||||
/* https://www.radiotap.org/fields/VHT.html */ | |||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_STBC 0x0001 /* net80211::IEEE80211_RADIOTAP_VHT_HAVE_STBC */ | |||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_BEAMFORMED 0x0020 /* net80211::IEEE80211_RADIOTAP_VHT_HAVE_BF */ | |||||
/* https://www.radiotap.org/fields/0-length-PSDU.html */ | |||||
#define IEEE80211_RADIOTAP_ZERO_LEN_PSDU_SOUNDING 0x00 | |||||
#define IEEE80211_RADIOTAP_ZERO_LEN_PSDU_NOT_CAPTURED 0x01 | |||||
#define IEEE80211_RADIOTAP_ZERO_LEN_PSDU_VENDOR 0xFF | |||||
/* https://www.radiotap.org/fields/HE.html */ | |||||
struct ieee80211_radiotap_he { | |||||
uint16_t data1, data2, data3, data4, data5, data6; | |||||
}; | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_SU 0x0000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_EXT_SU 0x0001 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MU 0x0002 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_TRIG 0x0003 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_BSS_COLOR_KNOWN 0x0004 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_BEAM_CHANGE_KNOWN 0x0008 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_UL_DL_KNOWN 0x0010 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN 0x0020 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_DATA_DCM_KNOWN 0x0040 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN 0x0080 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_LDPC_XSYMSEG_KNOWN 0x0100 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN 0x0200 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN 0x0400 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN 0x0800 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN 0x1000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN 0x2000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN 0x4000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA1_DOPPLER_KNOWN 0x8000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_KNOWN 0x0001 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN 0x0002 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN 0x0004 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_PRE_FEC_PAD_KNOWN 0x0008 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_TXBF_KNOWN 0x0010 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_PE_DISAMBIG_KNOWN 0x0020 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_TXOP_KNOWN 0x0040 | |||||
/* #define IEEE80211_RADIOTAP_HE_DATA2_ midamble periodicity _KNOWN 0x0080 */ | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET 0x3F00 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET_KNOWN 0x4000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_SEC 0x8000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA3_BSS_COLOR 0x003F | |||||
#define IEEE80211_RADIOTAP_HE_DATA3_BEAM_CHANGE 0x0040 | |||||
#define IEEE80211_RADIOTAP_HE_DATA3_UL_DL 0x0080 | |||||
/* #deifne IEEE80211_RADIOTAP_HE_DATA3_data_MCS 0x0F00 */ | |||||
/* #define IEEE80211_RADIOTAP_HE_DATA3_data_DCM 0x1000 */ | |||||
/* #define IEEE80211_RADIOTAP_HE_DATA3_Coding 0x2000 */ | |||||
#define IEEE80211_RADIOTAP_HE_DATA3_LDPC_XSYMSEG 0x4000 | |||||
/* #define IEEE80211_RADIOTAP_HE_DATA3_STBC 0x8000 */ | |||||
#define IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE 0x000F | |||||
#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1 0x000F | |||||
#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2 0x00F0 | |||||
#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3 0x0F00 | |||||
#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4 0xF000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE 0x00C0 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_1X 0x1 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_2X 0x2 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_4X 0x3 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS 0x0700 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_PRE_FEC_PAD 0x3000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_TXBF 0x4000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA5_PE_DISAMBIG 0x8000 | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_DOPPLER 0x0010 | |||||
/* 0x00e0 (reserved) ; use these for the following undocumented. */ | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_KNOWN 0x0020 | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW 0x00C0 | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_20MHZ 0x0 | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_40MHZ 0x1 | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_80MHZ 0x2 | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_160MHZ 0x3 | |||||
#define IEEE80211_RADIOTAP_HE_DATA6_TXOP 0x7F00 | |||||
/* https://www.radiotap.org/fields/HE-MU.html */ | |||||
struct ieee80211_radiotap_he_mu { | |||||
uint16_t flags1; | |||||
uint16_t flags2; | |||||
uint8_t ru_ch1[4]; | |||||
uint8_t ru_ch2[4]; | |||||
}; | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS 0x000F | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS_KNOWN 0x0010 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM 0x0020 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM_KNOWN 0x0040 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_CTR_26T_RU_KNOWN 0x0080 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_RU_KNOWN 0x0100 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_RU_KNOWN 0x0200 | |||||
/* reserved 0x0C00 */ | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU_KNOWN 0x1000 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU 0x2000 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_COMP_KNOWN 0x4000 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_SYMS_USERS_KNOWN 0x8000 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW 0x0003 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_20MHZ 0x0000 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_40MHZ 0x0001 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_80MHZ 0x0002 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_160MHZ 0x0003 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_KNOWN 0x0004 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_COMP 0x0008 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_SYMS_USERS 0x00F0 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW 0x0300 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW_KNOWN 0x0400 | |||||
#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_CH2_CTR_26T_RU 0x0800 | |||||
/* https://www.radiotap.org/fields/L-SIG.html */ | |||||
struct ieee80211_radiotap_lsig { | |||||
uint16_t data1; | |||||
uint16_t data2; | |||||
}; | |||||
#define IEEE80211_RADIOTAP_LSIG_DATA1_LENGTH_KNOWN 0x0002 | |||||
#define IEEE80211_RADIOTAP_LSIG_DATA2_LENGTH 0xFFF0 | |||||
/* https://www.radiotap.org/fields/MCS.html */ | |||||
#define IEEE80211_RADIOTAP_MCS_HAVE_FEC 0x10 | |||||
#define IEEE80211_RADIOTAP_MCS_HAVE_STBC 0x20 | |||||
/* https://www.radiotap.org/fields/timestamp.html */ | |||||
#define IEEE80211_RADIOTAP_TIMESTAMP_UNIT_US 0x01 | |||||
#define IEEE80211_RADIOTAP_TIMESTAMP_SPOS_PLCP_SIG_ACQ 0x10 | |||||
#endif /* !_NET80211_IEEE80211_RADIOTAP_H_ */ | #endif /* !_NET80211_IEEE80211_RADIOTAP_H_ */ |