On Tue, Sep 04, 2012 at 09:38:44PM +0200, Johannes Berg wrote: > On Tue, 2012-09-04 at 20:52 +0200, Antonio Quartulli wrote: > > Each band maps the bitmap of rates to different real bitrates, therefore using > > the same bitmask for every band (as it is now) is not correct. > > Each band must have its own bitmask where the bits of the rates specified by the > > user on IBSS join have to be set > > > > Signed-off-by: Antonio Quartulli <ordex@xxxxxxxxxxxxx> > > --- > > include/net/cfg80211.h | 4 ++-- > > net/mac80211/ibss.c | 6 ++++-- > > net/mac80211/ieee80211_i.h | 2 +- > > net/wireless/nl80211.c | 12 +++++++----- > > I'm not sure I see the need to change nl80211, and the change seems > wrong anyway. > > As far as I understand it, the basic rates that are passed into the > kernel are intended to be used when the kernel creates a new IBSS. This > always happens on the channel that is also passed in, so it's always > bound to a given channel (band). I think basic rates are also used in case of merging, right? In this case we could switch to another channel (and band). > > Now mac80211 internally seems to mess this up a bit, but that doesn't > affect nl80211/cfg80211? I modified nl/cfg as well because it is in that point that the bitrates provided by the user are converted to the band bitmask and so only here I create a bitmask for every band and pass them all to the mac80211. In this way we have a bitmask for each band and we can use the one we need whenever we switch band. is it a wrong approach? Cheers, -- Antonio Quartulli ..each of us alone is worth nothing.. Ernesto "Che" Guevara
Attachment:
pgpx82IPF0B0x.pgp
Description: PGP signature