| Crates.io | radiotap-rs |
| lib.rs | radiotap-rs |
| version | 0.1.0 |
| created_at | 2026-01-04 04:07:52.132475+00 |
| updated_at | 2026-01-04 04:07:52.132475+00 |
| description | no_std compatible radiotap header encoder and decoder. |
| homepage | |
| repository | https://github.com/wakeful-cloud/radiotap-rs |
| max_upload_size | |
| id | 2021284 |
| size | 296,089 |
no_std compatible radiotap header encoder and decoder for Rust.
Supports repeated fields, vendor-specific fields (both vendor-specific namespaces and vendor-
specific TLV fields), and most standard radiotap fields.
See the examples directory for and header_tests.rs for
usage examples.
The following fields are currently supported:
| Bit Index | Field Name |
|---|---|
0 |
TSFT |
1 |
Flags |
2 |
Rate |
3 |
Channel |
4 |
FHSS |
5 |
Antenna Signal |
6 |
Antenna Noise |
7 |
Lock Quality |
8 |
TX Attenuation |
9 |
db TX Attenuation |
10 |
dbm TX Power |
11 |
Antenna |
12 |
dB Antenna Signal |
13 |
dB Antenna Noise |
14 |
RX Flags |
14 |
FCS in Header |
15 |
TX Flags |
15 |
Hardware Queue |
16 |
RSSI |
16 |
RTS Retries |
17 |
Data Retries |
18 |
XChannel |
19 |
MCS |
20 |
A-MPDU Status |
21 |
VHT |
22 |
Timestamp |
22 |
Extended Flags |
23 |
HE |
24 |
HE-MU |
25 |
HE-MU-Other-User |
26 |
0-Length-PSDU |
27 |
L-SIG |
28 |
TLV |
29 |
Radiotap Namespace |
30 |
Vendor Namespace |
Additional, vendor-specific fields are also supported. If you need support for non-vendor-specific fields not listed above, please feel free to submit a pull request.
This section contains some important notes for library consumers and contributors alike.
As a consequence of some of the quirks of the radiotap specification (See the next subsection for details) and various other factors, you should note the following about this library:
28 in the first radiotap namespace are encoded using the older
implicit-length encoding for backwards compatibility.If you aren't familiar with the radiotap specification, it is suggested to read about Type Length Value (TLV) fields, the Radiotap Namespace pseudo-field, and the Vendor Namespace field in particular. Some important observations about the radiotap specification itself are:
[0xA0000001, 0x00000001] define 2 TSFT fields back-to-back in 2 separate radiotap
namespaces.28 can either use the older implicit-length encoding or the newer
Type-Length-Value (TLV) encoding. Additionally, fields with a bit index >= 32 must use TLV
encoding. TLV encoded fields are nested under the TLV field, which itself uses the older encoding.data4 station ID member).