A-MPDU status

Bit Number
20
Structure
u32 reference number, u16 flags, u8 delimiter CRC value, u8 reserved
Required Alignment
4 bytes

The presence of this field indicates that the frame was received as part of an a-MPDU.

The reference number is generated by the capture device and is the same across each subframe of an A-MPDU. Since the capture device might be capable of capturing multiple channels or data from multiple (concurrent) captures could be merged, the reference number is not guaranteed to be unique across different channels. As a result, applications should use the channel information together with the reference number to identify the subframes belonging to the same A-MPDU.

The following flags are defined:

0x0001

driver reports 0-length subframes

0x0002

frame is 0-length subframe (valid only if 0x0001 is set)

0x0004

last subframe is known (should be set for all subframes in an A-MPDU)

0x0008

this frame is the last subframe

0x0010

delimiter CRC error

0x0020

delimiter CRC value known: the delimiter CRC value field is valid

0xffc0

reserved

Within an A-MPDU, the subframe index can be determined by the application so it is not included, but depending on the driver reporting this may miss 0-length subframes.

Antenna

Bit Number
11
Structure
u8
Unit
antenna index

Unitless indication of the Rx/Tx antenna for this packet. The first antenna is antenna 0.

Antenna noise

Bit Number
6
Structure
s8
Unit
dBm

RF noise power at the antenna. This field contains a single signed 8-bit value, which indicates the RF signal power at the antenna, in decibels difference from 1mW.

Antenna signal

Bit Number
5
Structure
s8
Unit
dBm

RF signal power at the antenna. This field contains a single signed 8-bit value, which indicates the RF signal power at the antenna, in decibels difference from 1mW.

Channel

Bit Number
3
Structure
u16 frequency, u16 flags
Required Alignment
2
Units
MHz, bitmap

Tx/Rx frequency in MHz, followed by flags.

Currently, the following flags are defined:

Mask

Meaning

0x0010

Turbo Channel

0x0020

CCK channel

0x0040

OFDM channel

0x0080

2 GHz spectrum channel

0x0100

5 GHz spectrum channel

0x0200

Only passive scan allowed

0x0400

Dynamic CCK-OFDM channel

0x0800

GFSK channel (FHSS PHY)

FHSS

Bit Number
4
Structure
u8 hop set, u8 hop pattern
Units
??

The hop set and pattern for frequency-hopping radios.

Flags

Bit Number
1
Structure
u8 flags
Unit
bitmap

Properties of transmitted and received frames.

Currently, the following flags are defined:

Mask

Meaning

0x01

sent/received during CFP

0x02

sent/received with short preamble

0x04

sent/received with WEP encryption

0x08

sent/received with fragmentation

0x10

frame includes FCS

0x20

frame has padding between 802.11 header and payload (to 32-bit boundary)

0x40

frame failed FCS check

Currently unspecified but used:

Mask

Meaning

0x80

frame used short guard interval (HT)

Lock quality

Bit Number
7
Structure
u16
Required Alignment
2
Unit
unitless

Quality of Barker code lock. Unitless. Monotonically nondecreasing with "better" lock strength. Called "Signal Quality" in datasheets. (Is there a standard way to measure this?)

MCS

Bit Number
19
Structure
u8 known, u8 flags, u8 mcs
Required Alignment
1

The mcs field indicates the MCS rate index as in IEEE_802.11n-2009

The known field indicates which information is known:

flag

definition

0x01

bandwidth

0x02

MCS index known (in mcs part of the field)

0x04

guard interval

0x08

HT format

0x10

FEC type

0x20

STBC known

0x40

Ness known (Number of extension spatial streams)

0x80

Ness data - bit 1 (MSB) of Number of extension spatial streams

The flags field is any combination of the following:

flag

definition

0x03

bandwidth - 0: 20, 1: 40, 2: 20L, 3: 20U

0x04

guard interval - 0: long GI, 1: short GI

0x08

HT format - 0: mixed, 1: greenfield

0x10

FEC type - 0: BCC, 1: LDPC

0x60

Number of STBC streams

0x80

Ness - bit 0 (LSB) of Number of extension spatial streams

RX flags

Bit Number
14
Structure
u16
Required Alignment
2
Unit
bitmap

Properties of received frames.

The following flags are currently defined:

mask

meaning

0x0001

reserved [was FCS failed but this is a regular flag]

0x0002

PLCP CRC check failed

0xfffc

reserved for future expansion

Notes

This field originates from NetBSD and is also used like this in Linux.

Use bit 0x40 in the flags field to indicate FCS CRC failed.

Reset to Radiotap Namespace

Bit Number

not applicable, bit 29 in every it_present word

Structure
no contents
Required Alignment
N/A

This field is reserved in all namespaces and every it_present word, the standard radiotap namespace as well as all vendor namespaces. It is mutually exclusive with the Vendor Namespace field, setting both is undefined.

Upon interpreting this field, the interpreter shall reset its presence-bitmap index to 0 and its namespace to the default radiotap namespace, and change to the default radiotap namespace, before it interprets subsequent presence-bitmap words.

Rate

Bit Number
2
Structure
u8
Unit
500 Kbps

TX/RX data rate.

TSFT

Bit Number
0
Structure
u64 mactime
Required Alignment
8
Unit
microseconds

Value in microseconds of the MAC's 64-bit 802.11 Time Synchronization Function timer when the first bit of the MPDU arrived at the MAC. For received frames only.

TX attenuation

Bit Number
8
Structure
u16
Required Alignment
2
Unit
unitless

Transmit power expressed as unitless distance from max power set at factory calibration. 0 is max power. Monotonically nondecreasing with lower power levels.

VHT

Bit Number
21
Structure
u16 known, u8 flags, u8 bandwidth, u8 mcs_nss[4], u8 coding, u8 group_id, u16 partial_aid
Required Alignment
2

The known field indicates which information is known:

flag

definition

notes

0x0001

STBC known

In flags part of the field.

0x0002

TXOP_PS_NOT_ALLOWED known

In flags part of the field.

0x0004

Guard interval

In flags part of the field.

0x0008

Short GI NSYM disambiguation known

In flags part of the field.

0x0010

LDPC extra OFDM symbol known

In flags part of the field.

0x0020

Beamformed known/applicable

In flags part of the field. This flag should be set to zero for MU PPDUs.

0x0040

Bandwidth known

In bandwidth part of the field.

0x0080

Group ID known

In group_id part of the field.

0x0100

Partial AID known/applicable

In partial_aid part of the field. This flag should be set to zero for MU PPDUs.

0xfe00

(unused)

The flags field is any combination of the following:

flag

definition

notes

0x01

STBC

Space-time block coding.
Set to 0 if no spatial streams of any user has STBC.
Set to 1 if all spatial streams of all users have STBC.

0x02

TXOP_PS_NOT_ALLOWED

Valid only for AP transmitters.
Set to 0 if STAs may doze during TXOP.
Set to 1 if STAs may not doze during TXOP or transmitter is non-AP.

0x04

Guard interval.

Set to 0 for long GI.
Set to 1 for short GI.

0x08

Short GI NSYM disambiguation

Valid only if short GI is used.
Set to 0 if NSYM mod 10 != 9 or short GI not used.
Set to 1 if NSYM mod 10 = 9.

0x10

LDPC Extra OFDM symbol

Set to 1 if one or more users are using LDPC and the encoding process resulted in extra OFDM symbol(s).
Set to 0 otherwise.

0x20

Beamformed

Valid for SU PPDUs only.

0xc0

(unused)

The bandwidth field encodes the bandwidth:

bitmask

definition

notes

0x1f

Bandwidth

0xe0

(unused)

Note: for receive capture, the total bandwidth of the transmitter is not generally known, so the bandwidth will only be recorded as 20, 40, 80, or 160.

Note: for transmit injection, the sub-band choice for wide channels may be constrained by the current primary sub-band channels. IEEE 802.11 prohibits transmissions on sub-bands other than the designated sub-bands. For example, if the device is currently operating on the 40MHz channel pair {36, 40} with 36 designated as the primary 20MHz channel, the transmitter will naturally send 20MHz transmissions on channel 36, and may not be able to force a 20MHz transmission on channel 40.

Bandwidth values are:

value

total bandwidth (MHz)

sideband

sideband index

0

20

1

40

2

40

20L

0

3

40

20U

1

4

80

5

80

40L

0

6

80

40U

1

7

80

20LL

0

8

80

20LU

1

9

80

20UL

2

10

80

20UU

3

11

160

12

160

80L

0

13

160

80U

1

14

160

40LL

0

15

160

40LU

1

16

160

40UL

2

17

160

40UU

3

18

160

20LLL

0

19

160

20LLU

1

20

160

20LUL

2

21

160

20LUU

3

22

160

20ULL

4

23

160

20ULU

5

24

160

20UUL

6

25

160

20UUU

7

The four mcs_nss fields encode MCS and NSS for up to four users:

bitmask

definition

notes

0x0f

NSS

Number of spatial streams, range 1-8.

0xf0

MCS

MCS rate index, range 0-9.

If the NSS field for a user is zero, the user is not present and the MCS and coding (in the coding field) associated with that user are not valid. For SU PPDUs, only the first user will have a nonzero NSS field.

Note: the number of space-time streams (NSTS) for a user can be calculated from the NSS for that user and the STBC flag:

  • STBC not in use: NSTS = NSS
  • STBC in use: NSTS = 2*NSS

The coding field encodes the FEC for up to four users:

bitmask

definition

notes

0x01

Coding for user 0

Set to 0 for BCC.
Set to 1 for LDPC.

0x02

Coding for user 1

Set to 0 for BCC.
Set to 1 for LDPC.

0x04

Coding for user 2

Set to 0 for BCC.
Set to 1 for LDPC.

0x08

Coding for user 3

Set to 0 for BCC.
Set to 1 for LDPC.

0xf0

(unused)

The coding for a user is only valid if the NSS (in the mcs_nss field) for that user is nonzero.

The group_id field contains the group ID.

Note: the group ID can be used to differentiate between SU PPDUs (group ID is 0 or 63) and MU PPDUs (group ID is 1 through 62).

The partial_aid field contains the partial AID. Only applicable to SU PPDUs.

Vendor Namespace

Bit Number

not applicable, bit 30 in every it_present word

Structure
u8 OUI[3], u8 sub_namespace, u16 skip_length
Required Alignment
2

This field is reserved in all namespaces and every it_present word, the standard radiotap namespace as well as all vendor namespaces. It is mutually exclusive with the Reset to Radiotap Namespace field, setting both is undefined.

The Vendor Namespace Field contains three sub-fields. The first sub-field is 3 bytes long. It contains the vendor's IEEE 802 Organizationally Unique Identifier (OUI). The fourth byte is a vendor-specific "namespace selector."

Before it resumes interpretation of presence bits in the following 32-bit presence words, if any, the interpreter shall reset its presence-bitmap index to 0, and change to the vendor namespace specified by the OUI and selector.

The fifth and sixth bytes, skip_length, comprise a 16 bit little-endian value that tells the interpreter how many bytes of data after the end of the Vendor Namespace Field can only be interpreted according to the vendor namespace. If a radiotap header changes to a namespace that the interpreter does not understand, and back, the interpreter may resume interpretation in the new namespace by skipping skip_length data bytes after the end of the Vendor Namespace Field. If a radiotap header changes from a vendor namespace to another vendor namespace, the 6-byte data describing the new vendor namespace shall not be accounted for in skip_length.

dB TX attenuation

Bit Number
9
Structure
u16
Required Alignment
2
Unit
dB

Transmit power expressed as decibel distance from max power set at factory calibration. 0 is max power. Monotonically nondecreasing with lower power levels.

dB antenna noise

Bit Number
13
Structure
u8
Unit
dB

RF noise power at the antenna, decibel difference from an arbitrary, fixed reference. This field contains a single unsigned 8-bit value.

dB antenna signal

Bit Number
12
Structure
u8
Unit
dB

RF signal power at the antenna, decibel difference from an arbitrary, fixed reference. This field contains a single unsigned 8-bit value.

dBm TX power

Bit Number
10
Structure
s8
Required Alignment
1
Unit
dBm

Transmit power expressed as dBm (decibels from a 1 milliwatt reference). This is the absolute power level measured at the antenna port.

defined-fields/all (last edited 2008-06-19 16:41:44 by JohannesBerg)