All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dcbw@redhat.com>
To: Jouni Malinen <j@w1.fi>
Cc: Marcel Holtmann <marcel@holtmann.org>,
	Johannes Berg <johannes@sipsolutions.net>,
	linux-wireless@vger.kernel.org
Subject: Re: Missing link quality with wireless-testing
Date: Wed, 18 Feb 2009 07:18:43 -0500	[thread overview]
Message-ID: <1234959523.13950.47.camel@localhost> (raw)
In-Reply-To: <20090218082520.GA26280@jm.kir.nu>

On Wed, 2009-02-18 at 10:25 +0200, Jouni Malinen wrote:
> On Wed, Feb 18, 2009 at 09:06:31AM +0100, Marcel Holtmann wrote:
> 
> > so it seems the missing value is affecting the details wpa_supplicant is
> > handing out via its D-Bus interface. I didn't check the code yet to see
> > what is actually happening or if I just happen to run an outdated
> > version.
> 
> Yes, it looks like the dbus interface will get all three wext values
> (quality, noise, level) regardless of whether they were available from
> kernel or not. This does not cause any issues for wpa_supplicant, but if
> other programs (e.g., NM) are using the "quality" value in preference to
> "level", they would be processing zeros for all BSSes. If I understood
> correctly, NM does indeed prefer to use "quality", so this will likely
> explain why you are seeing different behavior with the qual->qual value
> removed (= 0 for wpa_supplicant).
> 
> I don't know how NM would react to the "quality" value being removed,
> but it would sound reasonable to do that in wpa_supplicant (and same for

With WEXT, there are three ways to calculate pretty bars.  They *all*
require max_qual values returned from the GIWRANGE handler, because
otherwise you have no f**king clue what the upper or lower bounds are.

QUAL.QUAL
--------------

Requires:
  - max_qual.qual > 0
  - !(max_qual.updated & IW_QUAL_QUAL_INVALID)
  - !(qual.updated & IW_QUAL_QUAL_INVALID)

pct = 100 * (qual.qual / max_qual.qual)


QUAL.LEVEL in dBm
--------------

Requires:
  - max_qual.level == 0 (ie, dBm values)
  - !(max_qual.updated & IW_QUAL_LEVEL_INVALID)
  - !(qual.updated & IW_QUAL_LEVEL_INVALID)
  - (max_qual.noise > 0) && !(max_qual.updated & IW_QUAL_NOISE_INVALID)
      OR
    (qual.noise > 0) && !(qual.updated & IW_QUAL_NOISE_INVALID)

pct = (clamp driver values between -90 dBm and -20 dBm, then some voodoo)


QUAL.LEVEL in RSSI
--------------

Requires:
  - max_qual.level != 0
  - !(max_qual.updated & IW_QUAL_LEVEL_INVALID)
  - !(qual.updated & IW_QUAL_LEVEL_INVALID)

pct = 100 * (qual.level / max_qual.level)


Anyone think all this stuff really, really sucks?  Yes!!!  So lets just
have drivers/stack provide a few sane values that userspace really
doesn't have to go through this shit to calculate...

<rant ends>

NM is probably fine here with qual == 0 because I doubt the GIWRANGE
handler is returning a valid max_qual.qual > 0 anymore with Johannes'
patch.  Could be wrong though.

> "noise") if the value was not available from the driver (based on the
> WEXT flags or in case of nl80211, just based on the fact that these
> values are never reported). I would expect this change to go in shortly
> (assuming it does not trigger any critical issue with NM), but anyway,
> this does not help with old versions.

Ah right; the dbus interface shouldn't be appending "quality" to the
dict if the driver doesn't provide valid quality (ie, max_qual.updated
has the QUAL_INVALID bit set).  Same thing for noise and level.

Dan



  reply	other threads:[~2009-02-18 12:20 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-17 18:52 Missing link quality with wireless-testing Marcel Holtmann
2009-02-17 19:43 ` Johannes Berg
2009-02-17 20:24   ` Marcel Holtmann
2009-02-17 20:55     ` Johannes Berg
2009-02-17 21:09       ` Marcel Holtmann
2009-02-17 23:25         ` Dan Williams
2009-02-18  4:57           ` Marcel Holtmann
2009-02-18  7:31             ` Jouni Malinen
2009-02-18  8:06               ` Marcel Holtmann
2009-02-18  8:25                 ` Jouni Malinen
2009-02-18 12:18                   ` Dan Williams [this message]
2009-02-18 12:33                     ` Jouni Malinen
2009-02-18 12:48                       ` Dan Williams
2009-02-18 13:20                         ` Dan Williams
2009-02-18 14:01                         ` Jouni Malinen
2009-02-18 14:25                         ` Johannes Berg
2009-02-18 13:37                     ` Johannes Berg
2009-02-18 15:13                       ` Dan Williams
2009-02-18 16:48                         ` Johannes Berg
2009-02-18 17:27 ` [PATCH] cfg80211/mac80211: fill qual.qual value/adjust max_qual.qual Johannes Berg
2009-02-18 17:29   ` Johannes Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1234959523.13950.47.camel@localhost \
    --to=dcbw@redhat.com \
    --cc=j@w1.fi \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=marcel@holtmann.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.