In this article, we will see how we can figure out the data rate of a specific 802.11ax data frame.
If you want to know how to capture 802.11ax data frames, refer to this article first: https://www.semfionetworks.com/blog/80211ax-remote-packet-captures-using-the-jetson-nano
The HE RadioTap header provided by the Intel AX card installed on Ubuntu is great and provides a lot of valuable information that we will use to figure out the data rate.
Step 1 - Filter to find the 802.11ax Data Frames
wlan.fc.type == 2 means that we are filtering for 802.11 Data Frames
radiotap.he.data_1.ppdu_format == 0x0 means that we are filtering for HE Single User PPDUs.
radiotap.he.data_1.ppdu_format == 0x2 means that we are filtering for HE Multi User PPDUs.
Step 2 - Select the frame you want to analyse
Step 3 - Find the transmission details in the RadioTap header
- MCS Index
- Guard Interval
- Channel Width or Ressource Unit size
- Number of Spatial Streams
We can find these information in the RadioTap Header.
The MCS Index is located in the "HE Information/HE Data 3" section. In this example, we have a MCS Index of 9:
The Guard Interval and the Channel Width/Ressource Unit size are located in the "HE Information/HE Data 5" section. In this example, we have a GI of 1.6us and a channel width of 20MHZ:
The number of spatial streams information is located in the "HE Information/HE Data 6" section. In this example, we are using 1 spatial stream:
Step 4 - Reference the MCS Table to find the exact Data Rate
To summarize, here are transmission details what we have for our example:
- PHY: 802.11ax
- MCS Index: 9
- Guard Interval: 1.6us
- Channel Width: 20MHz (OFDMA)
- Number of Spatial Streams: 1
If we reference the MCS Table with this information, we see that the data rate is 108.3Mbps:
Bonus - Configure your Wireshark column to display these transmission details
- radiotap.he.data_3.data_mcs: For the MCS Index
- radiotap.he.data_5.gi: For the Guard Interval
- radiotap.he.data_5.data_bw_ru_allocation: For the Channel Width or RU Allocation
- radiotap.he.data_6.nsts : For the number of Spatial Streams
Here is what it will look like: