Search Linux Wireless

Re: [RFC 3/3] mac80211: Store basic rates for bss when joining ibss network

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

 



On Tue, 2010-06-08 at 14:48 +0200, ext Johannes Berg wrote:
> On Tue, 2010-06-08 at 15:34 +0300, Teemu Paasikivi wrote:
> > When joinig a ibss network, basic rates for bss were not stored. When
> > network was self created, leaving and (re)joining same network has
> > caused basic rates to be left unset. With this patch stored values are
> > used.
> 
> >  	bss = cfg80211_inform_bss_frame(local->hw.wiphy, local->hw.conf.channel,
> >  					mgmt, skb->len, 0, GFP_KERNEL);
> > +
> > +	ibss = (struct ieee80211_bss *)(bss->priv);
> 
> Watch out -- bss can be NULL here if memory allocation fails. It's just
> that put_bss(NULL) is valid.
> 

That's correct. My fault, how could I miss that? Obviously easily.


> > +	for (i = 0; i < sband->n_bitrates; i++) {
> > +		u8 basic = 0x00;
> > +		if (basic_rates & BIT(i))
> > +			basic = 0x80;
> > +
> > +		ibss->supp_rates[i] = supp_rates[i] | basic;
> > +	}
> > +
> > +	ibss->supp_rates_len = i;
> > +
> >  	cfg80211_put_bss(bss);
> 
> 
> However this kinda confuses me.
> 
> We had a long-standing TODO item on our list at
> http://wireless.kernel.org/en/developers/todo-list
> 
> "when leaving an IBSS and we were the only member, remove it from
> cfg80211's BSS list"
> 
> Maybe that would help here too?
> 

Yes, I think that would propably solve that issue where IBSS was
recreated and requested basic rates are changed.

> However I don't understand the scenario anyway. If you create an IBSS,
> you start beaconing and tell cfg80211 about it with a frame that
> includes the supported and basic rates. Then you leave, but the BSS
> stays around in cfg80211 for 15 seconds. If you re-join within those 15
> seconds, the scan results will pick up the old IBSS that no longer
> exists, and we "join" it rather than creating it.
> 
> However -- joining it will take the basic rates from it. So wouldn't you
> get the old basic rates which is fine? What do you mean by "left unset"?
> 

By "left unset" I mean that in the sniffer logs there's no rates marked
as basic rates in the beacons. No old ones or new ones.

> What happens if you join an IBSS that already exists?
> 

It works, but I haven't captured what's in the air. That's one reason
why I sent these patches as RFC.



Teemu


--
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