linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Incorrect signal levels reported using wpa_supplicant's driver_nl80211
@ 2009-10-31  1:50 Maxim Levitsky
  2009-11-02 19:40 ` Dan Williams
  0 siblings, 1 reply; 10+ messages in thread
From: Maxim Levitsky @ 2009-10-31  1:50 UTC (permalink / raw)
  To: hostap@lists.shmoo.com; +Cc: linux-wireless, networkmanager-list

Sorry for cross-posting, but this issue really spans all three systems.

I anylized why I get 100% quality on all access points except currently
connected, when I used driver_nl80211 of wpa_supplcant.

First, when NetworkManager plans to switch to this driver?
For me it gives me faster association speeds, especially when I toggle
wireless with rfkill button.


this is what happens on the kernel side:
--> n80211 encodes only dBm data. It does so in, nl80211_send_bss.
	(or it can encode unspecified data, which has little use...)

--> kernel also gives maximum ranges in, cfg80211_wext_giwrange, which is used by NM:
	range->max_qual.updated = IW_QUAL_NOISE_INVALID | IW_QUAL_DBM | IW_QUAL_QUAL_UPDATED | IW_QUAL_LEVEL_UPDATED ;
	range->max_qual.level = -110;
	range->max_qual.qual = 70;
Thus it reports that it can't report noise.


driver_nl80211 side:

--> sends data as is, done in bss_info_handler:
	r->level = nla_get_u32(bss[NL80211_BSS_SIGNAL_MBM]);
	r->level /= 100; /* mBm to dBm */
	r->flags |= WPA_SCAN_LEVEL_DBM | WPA_SCAN_QUAL_INVALID;

Again explicitly says that has no quality data, sends only dBm or unspecified data;



NM side:

--> three strategies used (in wireless_qual_to_percent)
	--> quality: (used with driver_wext), not reported by nl80211

	--> dbm: used only if:
		* valid and zero max_qual->level (but now set to -110....) 
		* valid level (OK)
		* valid positive max_qual->noise OR valid positive current noise (noise set to invalid and not reported even by my driver...)

	--> RSSI: (device reports numbers from 0 to max_qual.level):
		* nonzero valid max_qual->level, and it is assumed to be positive too...
		* valid level
		

currently RSSI path is taken and results in 100% quality.


I think that dBm strategy should be revised, and in addtion to that.

Of course whole NM currently depends on WEXT, for exmple it would get signal level for current AP via WEXT, and thus use quality level
as reported by driver. 

Thus there are differences between NM dBm quality calculation and driver ones, and therefore NM will report different quality levels... sigh...


Best regards,
	Maxim Levitsky


PS: I want signal quality bars back in NM....


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-11-10  8:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-31  1:50 Incorrect signal levels reported using wpa_supplicant's driver_nl80211 Maxim Levitsky
2009-11-02 19:40 ` Dan Williams
2009-11-02 23:07   ` Maxim Levitsky
2009-11-03  0:53     ` Dan Williams
2009-11-03  8:06   ` Johannes Berg
2009-11-09 12:50   ` Alexander Sack
2009-11-09 12:54     ` Johannes Berg
2009-11-09 13:09       ` Marcel Holtmann
2009-11-10  6:27         ` Dan Williams
2009-11-10  8:41           ` Marcel Holtmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).