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 Feb 26 '19 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 Feb 26 '19 at 19:17
  • 2
    Yes. The data rate (bps) is a function of multiple things. – Ricky Feb 26 '19 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 Dec 14 '19 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 Dec 16 '19 at 10:47

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.

| improve this answer | |
  • 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 Feb 28 '19 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 Feb 28 '19 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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