K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-05-31T22:07:28.122106Z K 7 svn:log V 1468 Bring over the initial cut of the "teach the PHY code about 11n" work. This gets a bit odd because the 11n rate representation and the basic rate representation involves the same bit (0x80) being set. In theory (hah!) the net80211 stack shouldn't ever have the MCS rates show up in code that's tinkering with legacy rates, but this won't hold true inside drivers. There's also the question of how one represents turbo mode rates (ie 108mbit) given it will exist with the basic rate bit set (as it will be represented as a value > 127.) So, the changes made: * Add in 11n aware rate tables, up to MCS23 * Modify the rate table setup code to not store basic rate entries, because doing so means we have an overlap between the basic rate tagged legacy rates (which have the 0x80 bit set) and the 11n rates (which, sadly, also have the 0x80 bit set.) * Add a routine to look up the rate table index given a rate value. Since it's for a legacy rate, we strip the basic rate bit. (The caller should do this anyway, so I may end up adding an assertion at some point to ensure this doesn't happen.) A few drivers implement some direct prodding of the net80211 rate table; something that we really should discourage. It also turns out that the rate table is global rather than per-VAP; again something that should be discouraged moving forward. A follow-up commit will fix the direct prodding of the net80211 rate table for rate code -> rate index lookups. END