The
definitions provide a device-independent
bpf(4)
attachment for the
capture of information about 802.11 traffic which is not part of
the 802.11 frame structure.
Radiotap was designed to balance the desire for a capture format
that conserved CPU and memory bandwidth on embedded systems,
with the desire for a hardware-independent, extensible format
that would support the diverse capabilities of virtually all
802.11
radios.
These considerations led radiotap to settle on a format consisting of
a standard preamble followed by an extensible bitmap indicating the
presence of optional capture fields.
The capture fields were packed into the header as compactly as possible,
modulo the requirements that they had to be packed swiftly,
with suitable alignment, in the same order as the bits indicating
their presence.
This typically includes information such as signal quality and
timestamps.
This information may be used by a variety of user agents, including
tcpdump(1).
It is requested by using the
bpf(4)
data-link type
DLT_IEEE802_11_RADIO
Each frame using this attachment has the following header prepended to it:
A device driver implementing
Vt radiotap
typically defines a packed structure embedding an instance of
Vt struct ieee80211_radiotap_header
at the beginning,
with subsequent fields in the appropriate order,
and a macro to set the bits of the
it_present
bitmap to indicate which fields exist and are filled in by the driver.
Radiotap headers are copied to the userland via a separate bpf attachment.
It is necessary for the driver to create this attachment after calling
ieee80211_ifattach9
by calling
bpfattach2 ();
with the data-link type set to
DLT_IEEE802_11_RADIO
When the the information is available,
usually immediately before a link-layer transmission or after a receive,
the driver copies it to the bpf layer using the
bpf_mtap2 ();
function.
The following extension fields are defined for
Vt radiotap ,
in the order in which they should appear in the buffer copied to userland:
IEEE80211_RADIOTAP_TSFT
This field contains the unsigned 64-bit value, in microseconds,
of the MAC's 802.11 Time Synchronization Function timer,
when the first bit of the MPDU arrived at the MAC.
This field should be present for received frames only.
IEEE80211_RADIOTAP_FLAGS
This field contains a single unsigned 8-bit value, containing a bitmap
of flags specifying properties of the frame being transmitted or received.
IEEE80211_RADIOTAP_RATE
This field contains a single unsigned 8-bit value, which is the data rate in
use in units of 500Kbps.
IEEE80211_RADIOTAP_CHANNEL
This field contains two unsigned 16-bit values.
The first value is the frequency upon which this PDU was transmitted
or received.
The second value is a bitmap containing flags which specify properties of
the channel in use.
These are documented within the header file,
In net80211/ieee80211_radiotap.h .
IEEE80211_RADIOTAP_FHSS
This field contains two 8-bit values.
This field should be present for frequency-hopping radios only.
The first byte is the hop set.
The second byte is the pattern in use.
IEEE80211_RADIOTAP_DBM_ANTSIGNAL
This field contains a single signed 8-bit value, which indicates the
RF signal power at the antenna, in decibels difference from 1mW.
IEEE80211_RADIOTAP_DBM_ANTNOISE
This field contains a single signed 8-bit value, which indicates the
RF noise power at the antenna, in decibels difference from 1mW.
IEEE80211_RADIOTAP_LOCK_QUALITY
This field contains a single unsigned 16-bit value, indicating the
quality of the Barker Code lock.
No unit is specified for this field.
There does not appear to be a standard way of measuring this at this time;
this quantity is often referred to as
``Signal Quality''
in some datasheets.
IEEE80211_RADIOTAP_TX_ATTENUATION
This field contains a single unsigned 16-bit value, expressing transmit
power as unitless distance from maximum power set at factory calibration.
0 indicates maximum transmit power.
Monotonically nondecreasing with lower power levels.
IEEE80211_RADIOTAP_DB_TX_ATTENUATION
This field contains a single unsigned 16-bit value, expressing transmit
power as decibel distance from maximum power set at factory calibration.
0 indicates maximum transmit power.
Monotonically nondecreasing with lower power levels.
IEEE80211_RADIOTAP_DBM_TX_POWER
Transmit power expressed as decibels from a 1mW reference.
This field is a single signed 8-bit value.
This is the absolute power level measured at the antenna port.
IEEE80211_RADIOTAP_ANTENNA
For radios which support antenna diversity, this field contains a single
unsigned 8-bit value specifying which antenna is being used to transmit
or receive this frame.
The first antenna is antenna 0.
IEEE80211_RADIOTAP_DB_ANTSIGNAL
This field contains a single unsigned 8-bit value, which indicates the
RF signal power at the antenna, in decibels difference from an
arbitrary, fixed reference.
IEEE80211_RADIOTAP_DB_ANTNOISE
This field contains a single unsigned 8-bit value, which indicates the
RF noise power at the antenna, in decibels difference from an
arbitrary, fixed reference.
IEEE80211_RADIOTAP_EXT
This bit is reserved for any future extensions to the
Vt radiotap
structure.
It should not be used at this time.