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

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

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

What happens if you join an IBSS that already exists?

johannes

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