How can I extract the transfer rates (actually I only need the maximum value) from a WLAN_BSS_ENTRY structure (obtained by WlanGetNetworkBssList)? The value wlanRateSet (WLAN_RATE_SET) seems pretty useless as it only indicates transfer rates up to 54 Mbps.

Can the correct rates be extracted from the attached Beacon Frame data?

It might be hidden in the HT elements for 802.11n networks (and similar elements for g and ac):

  • 45: 802.11n / HT Capabilities
  • 61: 802.11n / HT Information

But looking at their structure (https://mrncciew.com/2014/10/19/cwap-ht-capabilities-ie/) I can't see where to extract the compatible transfer rates, like 72, 144, 216, 300 or 450 Mbps.

  • 3
    MCS bitmap defines which "rates" are available. [ wlanpros.com/mcs-index-charts ]
    – Ricky
    Commented Feb 26, 2019 at 18:19
  • You're probably right, but I don't quite understand that table. Does this mean, I can't calculate or directly extract the rates? Do I need to store that table in my application and first find the values for MHz, GI/SGI, Modulation & Coding before I know the max transfer rate?
    – CodeX
    Commented Feb 26, 2019 at 19:17
  • 2
    Yes. The data rate (bps) is a function of multiple things.
    – Ricky
    Commented Feb 26, 2019 at 23:54
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can provide and accept your own answer.
    – Ron Maupin
    Commented Dec 14, 2019 at 21:03
  • There is only one answer and it didn't really solve the problem. It provides just a hint. I gave it an upvote as a Thank-You, but imho it cannot be marked as an answer.
    – CodeX
    Commented Dec 16, 2019 at 10:47

1 Answer 1


The beacon frame can only advertise which rates are supported, through the HT and VHT Capabilities information elements. It is up to the rate adaptation algorithm to really decide how to select the MCS index. These algorithms are usually based on the transmit power control, power conservation, selecting the rate based on the previously cached SINR and so on.

  • I have trouble extracting the correct values from the MCS element for mapping the correct maximum transfer rate. If you have a code (in any programming language) that can do this, that would help me.
    – CodeX
    Commented Feb 28, 2019 at 16:08
  • I would recommend going through the wifi module in ns-3 (an open-source tool written in C++). nsnam.org/docs/models/html/wifi.html , nsnam.org/docs/doxygen/… . I think you will find what you need in ht-capabilities.cc
    – V-Red
    Commented Feb 28, 2019 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.