Search Linux Wireless

Re: signal strength in nl80211 and IEEE80211_HW_SIGNAL_UNSPEC

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

 



On Thu, 2012-03-15 at 10:20 -0400, John W. Linville wrote:
> On Thu, Mar 15, 2012 at 03:06:57PM +0100, Johannes Berg wrote:
> > On Thu, 2012-03-15 at 13:59 +0000, Cristian Morales Vega wrote:
> > > I don't have a device using a driver with IEEE80211_HW_SIGNAL_UNSPEC
> > > to test, but because of
> > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=19deffbeba930030cfaf000b920333c6ba99ad52
> > > I guess nl80211 will report the NL80211_STA_INFO_SIGNAL even if the
> > > driver doesn't uses dBm, true?
> > > Looking at http://permalink.gmane.org/gmane.linux.kernel.wireless.general/24814
> > > it seems this wasn't wanted. Bug, the check for
> > > IEEE80211_HW_SIGNAL_DBM is done elsewhere or finally it was decided
> > > that the signal strength should be reported even if the units are
> > > unknown?
> > 
> > Huh, yes, the nl80211 reporting here was intended to be dBm as
> > documented in the header file, so John's commit does look like a bug.
> > John, can you revert that please? The "unspec" signal strength thing is
> > used only in NL80211_BSS_SIGNAL_UNSPEC, i.e. the signal strength
> > reported in scan results. If we want/need it in station information as
> > well we need to add a separate attribute.
> 
> Well, that commit fixes this bug:
> 
> 	https://bugzilla.kernel.org/show_bug.cgi?id=14763
> 
> sta_set_sinfo is called by ieee80211_get_station, which gets invoked
> by cfg80211_wireless_stats when handling SIOCGIWSTATS ioctls.
> Without that commit, devices that use IEEE80211_HW_SIGNAL_UNSPEC
> report a 0 signal strength through wext.
> 
> So, how do we fix this and keep wext working for those devices?
> For that matter, what actual bug is it causing?

This would cause iw (for example) to display

station ...
	signal: 80 dBm

To properly fix the reporting in wext you'd have to allow the field to
be filled also for UNSPEC units and then figure out the difference (and
whether to report it in nl80211) in cfg80211 -- like in
nl80211_send_bss().

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 Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux