Search Linux Wireless

Re: compat-wireless and minstrel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Is it possible this is the problem? (note supp_rates is used at the bottom of the function, outside the "if")

*** a/net/mac80211/ibss.c    2009-11-02 09:11:36.000000000 -0800
--- b/net/mac80211/ibss.c    2009-11-10 16:31:46.291563951 -0800
***************
*** 246,254 ****
     if (!channel || channel->flags & IEEE80211_CHAN_DISABLED)
         return;

     if (sdata->vif.type == NL80211_IFTYPE_ADHOC && elems->supp_rates &&
         memcmp(mgmt->bssid, sdata->u.ibss.bssid, ETH_ALEN) == 0) {
-         supp_rates = ieee80211_sta_get_rates(local, elems, band);

         rcu_read_lock();

--- 246,255 ----
     if (!channel || channel->flags & IEEE80211_CHAN_DISABLED)
         return;

+     supp_rates = ieee80211_sta_get_rates(local, elems, band);
+
     if (sdata->vif.type == NL80211_IFTYPE_ADHOC && elems->supp_rates &&
         memcmp(mgmt->bssid, sdata->u.ibss.bssid, ETH_ALEN) == 0) {

         rcu_read_lock();



Derek Smithies wrote:
Hi,
Do you know which frames in the mac80211 code are missing this required information? Or was that conjecture?

it was mostly conjecture. I had done some work with an earlier pull of compat wireless in adhoc. the rates tried by minstrel were bad - it was stuck at the slowest rate.

I too had found that the fix was to adjust the array so that all rates were marked as supported.

Derek

On Tue, 10 Nov 2009, Adam Wozniak wrote:

Reading through the 802.11 spec, it appears to me that "Supported rates" (and "Extended Supported Rates" when number of rates > 8) is REQUIRED for all management frames except authentication, deauthentication, and action frames. (IEEE 802.11-2007, 7.2.3)

Do you know which frames in the mac80211 code are missing this required information? Or was that conjecture?

Looking at mac80211/tx.c ieee80211_beacon_get_tim, it is not clear to me how (or if) this rate information is being set for ad-hoc beacons.

Derek Smithies wrote:
Some management frames don't contain a full report of the rates supported by the sender. My view is that node A (in this example) is incorrectly determining that B only supports the 1mb/sec rate. Consequently, node A fills the rate_supported array with one rate - 1mb/sec.





--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux