12 #ifndef IEEE80211RADIOTAP_H 13 #define IEEE80211RADIOTAP_H 18 #define PKTHDR_RADIOTAP_VERSION 0 174 enum ieee80211_radiotap_type {
175 IEEE80211_RADIOTAP_TSFT = 0,
176 IEEE80211_RADIOTAP_FLAGS = 1,
177 IEEE80211_RADIOTAP_RATE = 2,
178 IEEE80211_RADIOTAP_CHANNEL = 3,
179 IEEE80211_RADIOTAP_FHSS = 4,
180 IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5,
181 IEEE80211_RADIOTAP_DBM_ANTNOISE = 6,
182 IEEE80211_RADIOTAP_LOCK_QUALITY = 7,
183 IEEE80211_RADIOTAP_TX_ATTENUATION = 8,
184 IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9,
185 IEEE80211_RADIOTAP_DBM_TX_POWER = 10,
186 IEEE80211_RADIOTAP_ANTENNA = 11,
187 IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
188 IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
189 IEEE80211_RADIOTAP_RX_FLAGS = 14,
190 IEEE80211_RADIOTAP_TX_FLAGS = 15,
191 IEEE80211_RADIOTAP_RTS_RETRIES = 16,
192 IEEE80211_RADIOTAP_DATA_RETRIES = 17,
193 IEEE80211_RADIOTAP_XCHANNEL = 18,
194 IEEE80211_RADIOTAP_MCS = 19,
195 IEEE80211_RADIOTAP_AMPDU_STATUS = 20,
196 IEEE80211_RADIOTAP_VHT = 21,
197 IEEE80211_RADIOTAP_TIMESTAMP = 22,
198 IEEE80211_RADIOTAP_HE = 23,
199 IEEE80211_RADIOTAP_HE_MU = 24,
202 IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
203 IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30,
204 IEEE80211_RADIOTAP_EXT = 31
209 #define IEEE80211_RADIOTAP_NOTDEFINED 0x1E000000 213 #define IEEE80211_CHAN_TURBO 0x00000010 214 #define IEEE80211_CHAN_CCK 0x00000020 215 #define IEEE80211_CHAN_OFDM 0x00000040 216 #define IEEE80211_CHAN_2GHZ 0x00000080 217 #define IEEE80211_CHAN_5GHZ 0x00000100 218 #define IEEE80211_CHAN_PASSIVE 0x00000200 219 #define IEEE80211_CHAN_DYN 0x00000400 220 #define IEEE80211_CHAN_GFSK 0x00000800 223 #define IEEE80211_CHAN_GSM 0x00001000 224 #define IEEE80211_CHAN_STURBO 0x00002000 225 #define IEEE80211_CHAN_HALF 0x00004000 226 #define IEEE80211_CHAN_QUARTER 0x00008000 227 #define IEEE80211_CHAN_HT20 0x00010000 228 #define IEEE80211_CHAN_HT40U 0x00020000 229 #define IEEE80211_CHAN_HT40D 0x00040000 231 #define IEEE80211_CHAN_HT40 (IEEE80211_CHAN_HT40U | IEEE80211_CHAN_HT40D) 232 #define IEEE80211_CHAN_HT (IEEE80211_CHAN_HT20 | IEEE80211_CHAN_HT40) 234 #define IEEE80211_CHAN_ALL \ 235 (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_GFSK | \ 236 IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN | \ 237 IEEE80211_CHAN_HALF | IEEE80211_CHAN_QUARTER | \ 239 #define IEEE80211_CHAN_ALLTURBO \ 240 (IEEE80211_CHAN_ALL | IEEE80211_CHAN_TURBO | IEEE80211_CHAN_STURBO) 243 #define IEEE80211_RADIOTAP_F_CFP 0x01 246 #define IEEE80211_RADIOTAP_F_SHORTPRE 0x02 250 #define IEEE80211_RADIOTAP_F_WEP 0x04 253 #define IEEE80211_RADIOTAP_F_FRAG 0x08 256 #define IEEE80211_RADIOTAP_F_FCS 0x10 257 #define IEEE80211_RADIOTAP_F_DATAPAD 0x20 261 #define IEEE80211_RADIOTAP_F_BADFCS 0x40 264 #define IEEE80211_RADIOTAP_F_RX_BADPLCP 0x0002 267 #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 269 #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 270 #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 274 #define IEEE80211_RADIOTAP_MCS_HAVE_BW 0x01 275 #define IEEE80211_RADIOTAP_MCS_HAVE_MCS 0x02 276 #define IEEE80211_RADIOTAP_MCS_HAVE_GI 0x04 277 #define IEEE80211_RADIOTAP_MCS_HAVE_FMT 0x08 278 #define IEEE80211_RADIOTAP_MCS_HAVE_FEC 0x10 279 #define IEEE80211_RADIOTAP_MCS_HAVE_STBC 0x20 280 #define IEEE80211_RADIOTAP_MCS_HAVE_NESS 0x40 281 #define IEEE80211_RADIOTAP_MCS_NESS_BIT1 0x80 283 #define IEEE80211_RADIOTAP_MCS_BW_MASK 0x03 284 #define IEEE80211_RADIOTAP_MCS_BW_20 0 285 #define IEEE80211_RADIOTAP_MCS_BW_40 1 286 #define IEEE80211_RADIOTAP_MCS_BW_20L 2 287 #define IEEE80211_RADIOTAP_MCS_BW_20U 3 288 #define IEEE80211_RADIOTAP_MCS_SGI 0x04 289 #define IEEE80211_RADIOTAP_MCS_FMT_GF 0x08 290 #define IEEE80211_RADIOTAP_MCS_FEC_LDPC 0x10 291 #define IEEE80211_RADIOTAP_MCS_STBC_MASK 0x60 292 #define IEEE80211_RADIOTAP_MCS_STBC_SHIFT 5 293 #define IEEE80211_RADIOTAP_MCS_STBC_1 1 294 #define IEEE80211_RADIOTAP_MCS_STBC_2 2 295 #define IEEE80211_RADIOTAP_MCS_STBC_3 3 296 #define IEEE80211_RADIOTAP_MCS_NESS_BIT0 0x80 299 #define IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN 0x0001 300 #define IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN 0x0002 301 #define IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN 0x0004 302 #define IEEE80211_RADIOTAP_AMPDU_IS_LAST 0x0008 303 #define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR 0x0010 304 #define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN 0x0020 305 #define IEEE80211_RADIOTAP_AMPDU_EOF 0x0040 306 #define IEEE80211_RADIOTAP_AMPDU_EOF_KNOWN 0x0080 309 #define IEEE80211_RADIOTAP_VHT_HAVE_STBC 0x0001 310 #define IEEE80211_RADIOTAP_VHT_HAVE_TXOP_PS 0x0002 311 #define IEEE80211_RADIOTAP_VHT_HAVE_GI 0x0004 312 #define IEEE80211_RADIOTAP_VHT_HAVE_SGI_NSYM_DA 0x0008 313 #define IEEE80211_RADIOTAP_VHT_HAVE_LDPC_EXTRA 0x0010 314 #define IEEE80211_RADIOTAP_VHT_HAVE_BF 0x0020 315 #define IEEE80211_RADIOTAP_VHT_HAVE_BW 0x0040 316 #define IEEE80211_RADIOTAP_VHT_HAVE_GID 0x0080 317 #define IEEE80211_RADIOTAP_VHT_HAVE_PAID 0x0100 318 #define IEEE80211_RADIOTAP_VHT_STBC 0x01 319 #define IEEE80211_RADIOTAP_VHT_TXOP_PS 0x02 320 #define IEEE80211_RADIOTAP_VHT_SGI 0x04 321 #define IEEE80211_RADIOTAP_VHT_SGI_NSYM_DA 0x08 322 #define IEEE80211_RADIOTAP_VHT_LDPC_EXTRA 0x10 323 #define IEEE80211_RADIOTAP_VHT_BF 0x20 324 #define IEEE80211_RADIOTAP_VHT_NSS 0x0f 325 #define IEEE80211_RADIOTAP_VHT_MCS 0xf0 326 #define IEEE80211_RADIOTAP_VHT_CODING_LDPC 0x01 328 #define IEEE80211_RADIOTAP_VHT_BW_MASK 0x1f 329 #define IEEE80211_RADIOTAP_VHT_BW_20 IEEE80211_RADIOTAP_MCS_BW_20 330 #define IEEE80211_RADIOTAP_VHT_BW_40 IEEE80211_RADIOTAP_MCS_BW_40 331 #define IEEE80211_RADIOTAP_VHT_BW_20L IEEE80211_RADIOTAP_MCS_BW_20L 332 #define IEEE80211_RADIOTAP_VHT_BW_20U IEEE80211_RADIOTAP_MCS_BW_20U 333 #define IEEE80211_RADIOTAP_VHT_BW_80 4 334 #define IEEE80211_RADIOTAP_VHT_BW_40L 5 335 #define IEEE80211_RADIOTAP_VHT_BW_40U 6 336 #define IEEE80211_RADIOTAP_VHT_BW_20LL 7 337 #define IEEE80211_RADIOTAP_VHT_BW_20LU 8 338 #define IEEE80211_RADIOTAP_VHT_BW_20UL 9 339 #define IEEE80211_RADIOTAP_VHT_BW_20UU 10 340 #define IEEE80211_RADIOTAP_VHT_BW_160 11 341 #define IEEE80211_RADIOTAP_VHT_BW_80L 12 342 #define IEEE80211_RADIOTAP_VHT_BW_80U 13 343 #define IEEE80211_RADIOTAP_VHT_BW_40LL 14 344 #define IEEE80211_RADIOTAP_VHT_BW_40LU 15 345 #define IEEE80211_RADIOTAP_VHT_BW_40UL 16 346 #define IEEE80211_RADIOTAP_VHT_BW_40UU 17 347 #define IEEE80211_RADIOTAP_VHT_BW_20LLL 18 348 #define IEEE80211_RADIOTAP_VHT_BW_20LLU 19 349 #define IEEE80211_RADIOTAP_VHT_BW_20LUL 20 350 #define IEEE80211_RADIOTAP_VHT_BW_20LUU 21 351 #define IEEE80211_RADIOTAP_VHT_BW_20ULL 22 352 #define IEEE80211_RADIOTAP_VHT_BW_20ULU 23 353 #define IEEE80211_RADIOTAP_VHT_BW_20UUL 24 354 #define IEEE80211_RADIOTAP_VHT_BW_20UUU 25 357 #define IEEE80211_RADIOTAP_TS_UNIT_MASK 0x0F 358 #define IEEE80211_RADIOTAP_TS_UNIT_MSEC 0x00 359 #define IEEE80211_RADIOTAP_TS_UNIT_USEC 0x01 360 #define IEEE80211_RADIOTAP_TS_UNIT_NSEC 0x02 361 #define IEEE80211_RADIOTAP_TS_SPOS_MASK 0xF0 362 #define IEEE80211_RADIOTAP_TS_SPOS_SHIFT 4 363 #define IEEE80211_RADIOTAP_TS_SPOS_MPDU 0x0 364 #define IEEE80211_RADIOTAP_TS_SPOS_ACQ 0x1 365 #define IEEE80211_RADIOTAP_TS_SPOS_EOF 0x2 366 #define IEEE80211_RADIOTAP_TS_SPOS_UNDEF 0xF 369 #define IEEE80211_RADIOTAP_HE_PPDU_FORMAT_MASK 0x0003 370 #define IEEE80211_RADIOTAP_HE_PPDU_FORMAT_HE_SU 0 371 #define IEEE80211_RADIOTAP_HE_PPDU_FORMAT_HE_EXT_SU 1 372 #define IEEE80211_RADIOTAP_HE_PPDU_FORMAT_HE_MU 2 373 #define IEEE80211_RADIOTAP_HE_PPDU_FORMAT_HE_TRIG 3 374 #define IEEE80211_RADIOTAP_HE_BSS_COLOR_KNOWN 0x0004 375 #define IEEE80211_RADIOTAP_HE_BEAM_CHANGE_KNOWN 0x0008 376 #define IEEE80211_RADIOTAP_HE_UL_DL_KNOWN 0x0010 377 #define IEEE80211_RADIOTAP_HE_DATA_MCS_KNOWN 0x0020 378 #define IEEE80211_RADIOTAP_HE_DATA_DCM_KNOWN 0x0040 379 #define IEEE80211_RADIOTAP_HE_CODING_KNOWN 0x0080 380 #define IEEE80211_RADIOTAP_HE_LDPC_EXTRA_SYMBOL_SEGMENT_KNOWN 0x0100 381 #define IEEE80211_RADIOTAP_HE_STBC_KNOWN 0x0200 382 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_KNOWN 0x0400 383 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_2_KNOWN 0x0800 384 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_3_KNOWN 0x1000 385 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_4_KNOWN 0x2000 386 #define IEEE80211_RADIOTAP_HE_DATA_BW_RU_ALLOCATION_KNOWN 0x4000 387 #define IEEE80211_RADIOTAP_HE_DOPPLER_KNOWN 0x8000 388 #define IEEE80211_RADIOTAP_HE_PRI_SEC_80_MHZ_KNOWN 0x0001 389 #define IEEE80211_RADIOTAP_HE_GI_KNOWN 0x0002 390 #define IEEE80211_RADIOTAP_HE_LTF_SYMBOLS_KNOWN 0x0004 391 #define IEEE80211_RADIOTAP_HE_PRE_FEC_PADDING_FACTOR_KNOWN 0x0008 392 #define IEEE80211_RADIOTAP_HE_TXBF_KNOWN 0x0010 393 #define IEEE80211_RADIOTAP_HE_PE_DISAMBIGUITY_KNOWN 0x0020 394 #define IEEE80211_RADIOTAP_HE_TXOP_KNOWN 0x0040 395 #define IEEE80211_RADIOTAP_HE_MIDAMBLE_PERIODICITY_KNOWN 0x0080 396 #define IEEE80211_RADIOTAP_HE_RU_ALLOCATION_OFFSET 0x3F00 397 #define IEEE80211_RADIOTAP_HE_RU_ALLOCATION_OFFSET_KNOWN 0x4000 398 #define IEEE80211_RADIOTAP_HE_PRI_SEC_80_MHZ 0x8000 399 #define IEEE80211_RADIOTAP_HE_BSS_COLOR_MASK 0x003F 400 #define IEEE80211_RADIOTAP_HE_BEAM_CHANGE 0x0040 401 #define IEEE80211_RADIOTAP_HE_UL_DL 0x0080 402 #define IEEE80211_RADIOTAP_HE_DATA_MCS_MASK 0x0F00 403 #define IEEE80211_RADIOTAP_HE_DATA_DCM 0x1000 404 #define IEEE80211_RADIOTAP_HE_CODING 0x2000 405 #define IEEE80211_RADIOTAP_HE_LDPC_EXTRA_SYMBOL_SEGMENT 0x4000 406 #define IEEE80211_RADIOTAP_HE_STBC 0x8000 408 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_MASK 0x000F 409 #define IEEE80211_RADIOTAP_HE_D4_FFF0 0xFFF0 411 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_1_MASK 0X000F 412 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_2_MASK 0X00F0 413 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_3_MASK 0X0F00 414 #define IEEE80211_RADIOTAP_HE_SPATIAL_REUSE_4_MASK 0XF000 416 #define IEEE80211_RADIOTAP_HE_STA_ID_MASK 0x7FF0 417 #define IEEE80211_RADIOTAP_HE_RESERVED_D4_B15 0x8000 419 #define IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_ALLOC_MASK 0x000F 420 #define IEEE80211_RADIOTAP_HE_GI_MASK 0x0030 421 #define IEEE80211_RADIOTAP_HE_GI_0_POINT_8_MICRO 0 422 #define IEEE80211_RADIOTAP_HE_GI_1_POINT_6_MICRO 1 423 #define IEEE80211_RADIOTAP_HE_GI_3_POINT_2_MICRO 2 424 #define IEEE80211_RADIOTAP_HE_GI_RESERVED 3 425 #define IEEE80211_RADIOTAP_HE_RESERVED_D5_00C0 0x00C0 426 #define IEEE80211_RADIOTAP_HE_LTF_SYMBOLS_MASK 0x0700 427 #define IEEE80211_RADIOTAP_HE_RESERVED_D5_B11 0x0800 428 #define IEEE80211_RADIOTAP_HE_PRE_FEC_PADDING_FACTOR_MASK 0x3000 429 #define IEEE80211_RADIOTAP_HE_TXBF 0x4000 430 #define IEEE80211_RADIOTAP_HE_PE_DISAMBIGUITY 0x8000 431 #define IEEE80211_RADIOTAP_HE_NSTS_MASK 0x000F 432 #define IEEE80211_RADIOTAP_HE_DOPLER_VALUE 0x0010 433 #define IEEE80211_RADIOTAP_HE_RESERVED_D6_00E0 0x00E0 434 #define IEEE80211_RADIOTAP_HE_TXOP_VALUE_MASK 0x7F00 435 #define IEEE80211_RADIOTAP_HE_MIDAMBLE_PERIODICITY 0x8000 438 #define IEEE80211_RADIOTAP_HE_MU_SIG_B_MCS_MASK 0x000F 439 #define IEEE80211_RADIOTAP_HE_MU_SIG_B_MCS_KNOWN 0x0010 440 #define IEEE80211_RADIOTAP_HE_MU_SIG_B_DCM 0x0020 441 #define IEEE80211_RADIOTAP_HE_MU_SIG_B_DCM_KNOWN 0x0040 442 #define IEEE80211_RADIOTAP_HE_MU_RESERVED_F1_B7 0x0080 443 #define IEEE80211_RADIOTAP_HE_MU_RU_0_KNOWN 0x0100 444 #define IEEE80211_RADIOTAP_HE_MU_RU_1_KNOWN 0x0200 445 #define IEEE80211_RADIOTAP_HE_MU_RU_2_KNOWN 0x0400 446 #define IEEE80211_RADIOTAP_HE_MU_RU_3_KNOWN 0x0800 447 #define IEEE80211_RADIOTAP_HE_MU_CENTER_26_TONE_RU_BIT_KNOWN 0x1000 448 #define IEEE80211_RADIOTAP_HE_MU_CENTER_26_TONE_RU_VALUE 0x2000 449 #define IEEE80211_RADIOTAP_HE_MU_SIG_B_COMPRESSION_KNOWN 0x4000 450 #define IEEE80211_RADIOTAP_HE_MU_SYMBOL_CNT_OR_USER_CNT_KNOWN 0x8000 451 #define IEEE80211_RADIOTAP_HE_MU_BW_FROM_BW_IN_SIG_A_MASK 0x0003 452 #define IEEE80211_RADIOTAP_HE_MU_BW_FROM_BW_IN_SIG_A_KNOWN 0x0004 453 #define IEEE80211_RADIOTAP_HE_MU_SIG_B_COMPRESSION_FROM_SIG_A 0x0008 454 #define IEEE80211_RADIOTAP_HE_MU_SYMBOL_CNT_OR_USER_CNT 0x00F0 455 #define IEEE80211_RADIOTAP_HE_MU_PREAMBLE_PUNCTURING_MASK 0x0300 456 #define IEEE80211_RADIOTAP_HE_MU_PREAMBLE_PUNCTURING_KNOWN 0x0400 457 #define IEEE80211_RADIOTAP_HE_MU_RESERVED_F2_B11_B15 0xF800 459 #define IEEE80211_RADIOTAP_TS_FLG_32BIT 0x01 460 #define IEEE80211_RADIOTAP_TS_FLG_ACCURACY 0x02