MCS Table (Updated with 802.11ax Data Rates)
I wanted to find out which MCS index and which modulation was used but after doing some research online, I couldn’t find any easy resources that could give me the new data rates available with 802.11ax (Wi-Fi 6). So I decided to create that resource myself.
COMPLETE MCS TABLE
Here is a link to the full MCS Table: http://bit.ly/2G0DIcD
MCS TABLE UP TO 3 SPATIAL STREAMS
802.11AX MCS TABLE
802.11AX MCS TABLE (OFDM)
802.11ax MCS Table (OFDMA)
Here is a link to the spreadsheet: http://bit.ly/2VztdmU
THE MATH BEHIND IT
First we need to understand how the MCS data rates are calculated prior 802.11ax. I am only going to focus on 802.11n (HT) and 802.11ac (VHT) here.
Now, the formula doesn’t change much with 802.11ax. However, some new features will impact the way we calculate data rate for 802.11ax:
- A new symbol duration is used: 12.8µs
- Different Guard Intervals are used: 0.8µs, 1.6µs and 3.2µs
- The size and number of data subcarriers is not the same (especially with the different RU sizes introduced by OFDMA.
Even though the formula doesn’t change much, the IEEE does define 2 different formulas depending on if OFDMA is used or not. When OFDMA is not used, we can used the formula previously presented above.
Due to the addition of a new modulation technique (QAM-1024), 2 new MCS indexes are now available with 802.11ax:
- Index 10: when the 1024-QAM modulation is used with a coding of 3/4
- Index 11: when the 1024-QAM modulation is used with a coding of 5/6
So now that we have this information, let’s try to understand the data rate that my phone was using.
The phone is a Samsung GS10 which supports 802.11ax and up to 2 spatial streams. The AP used is an Aerohive AP630. I have configured it with an 80MHz wide channel. OFDMA is not used here because ODFMA was not activated at the time of this capture.
So based on this information, we can determine some of the variables required to calculate the data rate and narrow down the data rates that will be used by this device:
- Number of Data Subcarriers for an 80MHz wide channel: 980
- Number of Coded bit per subcarrier (Modulation): we don’t know yet
- Coding: we don’t know yet
- Number of Spatial Streams: 2
- OFDM Symbol Duration: 12.8µs
- Guard Interval: we don’t know yet
Because we know that the data rate used was 1200.95 Mbps (as indicated on the picture above), we can now determine that:
- MCS 11 was used
- 1024QAM with a coding of 5/6 was being used
- A guard interval of 0.8µs was used
Here are some resources that I have used or that can be interesting if you want to learn more about:
- IEEE 802.11ax Draft D4.0 ($400): https://www.techstreet.com/ieee/standards/ieee-p802-11ax?gateway_code=ieee&vendor_id=7180&product_id=2019792
- “802.11 OFDM Data Rates – The Math Behind The Numbers” great article from Renzo Notter: http://dot11.exposed/2018/11/29/802-11-ofdm-data-rates-the-math-behind-the-numbers/
- MCS Table by Keith Parsons at WirelessLAN Proffesionals: https://d2cpnw0u24fjm4.cloudfront.net/wp-content/uploads/802.11ac-VHT-MCS-SNR-and-RSSI.pdf
- Clear To Send Podcast – 802.11ax OFDMA Subcarriers: https://www.cleartosend.net/802-11ax-ofdma-subcarriers/
- Clear To Send Podcast – 802.11ax OFDMA Resource Units: https://www.cleartosend.net/802-11ax-ofdma-resource-units/
- 802.11ac Missing MCSs by Jérôme Henry: https://www.youtube.com/watch?v=vTIy-rjopY8
It looks like there is a mistake in HE OFDM and OFDMA parameters table. Mid Guard Interval should be 1.6 instead of 1.2
Thank you, great job!
What throughput did you get at the end of the day? Did you tested with an iPerf or a traffic generator (Breaking point or such?
I’m also getting such theoretical rates, by looking at my AP clients tables, but not experiencing much more than with 80211ac. (OFMD I think)
I’m using an Intel A200x in both a laptop and a Raspberry.
What calculation do you use to get the real tcp throughput? (x0,65?)
This is something truly useful. Would you have some table for the 802.11ac protocol as well?