Question: IEEE80211_RATE_BASIC versus IEEE80211_RATE_MCS ?

Adrian Chadd adrian at freebsd.org
Tue Apr 17 18:12:51 UTC 2012


Hi,

So after doing some digging into the rate representation, I've
discovered that both IEEE80211_RATE_BASIC and IEEE80211_RATE_MCS are
represented as the high bit set (ie, 0x80.)

My query is - how exactly should we be representing rates, and is
there a clear, consistent, non-overlapping use case for where each is
used?

This shows up in setbasicrates(), where the 11na/11ng modes have the
OFDM/CCK (respectively) rates set as basic, just like for 11a/11bg,
however the high bit is set. ifconfig(8) at least just looks at the tx
rateset list (which setbasicrates is setting up for us) and
mis-interpreting the high bit as MCS, rather than as "basic".

Any ideas/suggestions? I'd be tempted to create a 'ratecode_t' that is
a uint8_t struct, then finding/fixing all instances where ratecode is
being passed in as a uint8_t, but that may be slightly overkill.



Adrian


More information about the freebsd-wireless mailing list