Re: [RFC v2 3/3] UHR: add new field
Johannes Berg <[email protected]> Wed, 21 Jan 2026 12:31:22 +0100
| Newsgroups | org.netbsd.radiotap |
|---|---|
| Message-ID | <[email protected]> |
While implementing the user field, On Wed, 2026-01-14 at 13:07 +0100, Johannes Berg wrote: >=20 > +### `user_known` > + > +| **bits** | **non-MU-MIMO / Co-SR** | **MU-MIMO / Co-BF** | > +| **`0x00000001`** | STA-ID known | (same) | > +| **`0x00000002`** | MCS known | (same) | > +| **`0x00000004`** | NSS known | (reserved) | > +| **`0x00000008`** | UEQM known | (reserved) | > +| **`0x00000010`** | Beamforming And Coding / UEQM Pattern known | (rese= rved) | I realized that it's far simpler to split this up into Beamforming, Coding and UEQM pattern separately. > +| **`0x00000020`** | 2xLDPC known | (same) | > +| **`0x00000040`** | (reserved) | Spatial Configuration known | > +| **`0x00000080`** | (reserved) | Disregard known | > +| **`0x00000100`** | (reserved) | Coding/BSS Color Indication known | > +| **`0x00000200`** | User Encoding Block CRC known | (same) | > +| **`0x00000400`** | User Encoding Block Tail known | (same) | > +| **`0x0000f800`** | (reserved) | (reserved) | > +| **`0x000f0000`** | User Encoding Block CRC (B23N-B23N+3) | (same) | > +| **`0x03f00000`** | User Encoding Block Tail (B23N+4-B23N+9)| (same) | > +| **`0x7c000000`** | (reserved) | (reserved) | > +| **`0x80000000`** | Data captured for this user | (same) | > + > +### `user_info` > + > +| **bits** | **non-MU-MIMO / Co-SR** | **MU-MIMO / Co-BF** | > +| **`0x000007ff`** | STA-ID | (same) | > +| **`0x0001f000`** | MCS | (same) | > +| **`0x000e0000`** | NSS (0=3D1 spatial stream, 1=3D2 spatial streams, .= ..) | (overlap) | > +| **`0x00100000`** | UEQM | (overlap) | > +| **`0x00600000`** | Beamforming And Coding / UEQM Pattern | (overlap) | > +| **`0x000f0000`** | (overlap) | Spatial Configuration | > +| **`0x00100000`** | (overlap) | Disregard | > +| **`0x00200000`** | (overlap) | Coding/BSS Color Indication | > +| **`0x00400000`** | (overlap) | (reserved) | > +| **`0x00800000`** | 2xLDPC | (same) | > +| **`0xff000000`** | (reserved) | (reserved) | which then also requires some more bits here. That should make it simpler for wireshark too. I'll update as follows I think: ### `user_known` | **bits** | **non-MU-MIMO / Co-SR** | **MU-MIMO / Co-BF** | | **`0x00000001`** | STA-ID known | (same) | | **`0x00000002`** | MCS known | (same) | | **`0x00000004`** | NSS known | (reserved) | | **`0x00000008`** | UEQM known | (reserved) | | **`0x00000010`** | Beamforming known / UEQM Pattern known | (reserved) | | **`0x00000020`** | Coding known / UEQM Pattern known | (reserved) | | **`0x00000040`** | UEQM Pattern known | (reserved) | | **`0x00000080`** | 2xLDPC known | (same) | | **`0x00000100`** | (reserved) | Spatial Configuration known | | **`0x00000200`** | (reserved) | Disregard known | | **`0x00000400`** | (reserved) | Coding/BSS Color Indication known | | **`0x00000800`** | User Encoding Block CRC known | (same) | | **`0x00001000`** | User Encoding Block Tail known | (same) | | **`0x0000e000`** | (reserved) | (reserved) | | **`0x000f0000`** | User Encoding Block CRC (B23N-B23N+3) | (same) | | **`0x03f00000`** | User Encoding Block Tail (B23N+4-B23N+9)| (same) | | **`0x7c000000`** | (reserved) | (reserved) | | **`0x80000000`** | Data captured for this user | (same) | ### `user_info` | **bits** | **non-MU-MIMO / Co-SR** | **MU-MIMO / Co-BF** | | **`0x000007ff`** | STA-ID | (same) | | **`0x0001f000`** | MCS | (same) | | **`0x000e0000`** | NSS (0=3D1 spatial stream, 1=3D2 spatial streams, ...)= | (overlap) | | **`0x00100000`** | UEQM | (overlap) | | **`0x00200000`** | Beamforming | (overlap) | | **`0x00400000`** | Coding (0 for BCC, 1 for LDPC) | (overlap) | | **`0x01800000`** | UEQM Pattern | (reserved) | | **`0x000f0000`** | (overlap) | Spatial Configuration | | **`0x00100000`** | (overlap) | Disregard | | **`0x00200000`** | (overlap) | Coding/BSS Color Indication | | **`0x01c00000`** | (overlap) | (reserved) | | **`0x02000000`** | 2xLDPC | (same) | | **`0xfc000000`** | (reserved) | (reserved) | even if some combinations are just not valid then, but otherwise the parsing needs to depend on many bits and even the STA-ID. johannes