New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 675232 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Bad wifi when Google-A APs switch channels

Project Member Reported by kirtika@google.com, Dec 16 2016

Issue description

OS: M-55 beta
Device: Samus

Filing this from the following feedback reports:

zalcorn@: 50175383778
tbuckley@: 50178918055
kuscher@: 50175383778

Samus devices are ping-ponging between two Google-A APs, one with good signal, and one far way. The good one kicks the device out because it wants to jump to a different frequency/channel (and it does so).
The device blacklists the good and connects to the bad one. As soon as Samus connects to the bad one, it de-blacklists the good AP (thanks to crbug.com/473741) and connects back to it till it jumps frequencies again. To prove this, more data-points from Google-A would be helpful. 

We cannot fix the underlying issue (Google-A APs de-authing us because they jump frequencies) but can add the following patches that will be helpful: 

1. wpa_supplicant sends dbus signal to shill when frequency changes, and shill logs a metric. This will tell us how often freq hopping by APs occurs in the field. 

2. early de-blacklisting  of AP - if an AP hopped frequency, it de-authed us and we blacklisted it. If it now shows up at a different frequency in the next scan, we want to de-blacklist so that we select it again for connect. 

3. Do a full scan after blacklisting an AP from a BSS that you were previously connected to (and which you know has an additional AP). Right now, supplicant truncates it to a smaller list. 
 

Comment 1 by snanda@chromium.org, Dec 16 2016

I am wondering if it would be less disconcerting to the user if we delayed the UI disconnect slightly: upon receiving a deauth, try to connect to another AP on the same ESS and send a disconnect only if:
a) we can't find a suitable AP on the same ESS, or
b) association attempt to the newly found AP on same ESS failed.

If this is interesting/useful we should probably spawn it off into its own bug.
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 27 2017

Labels: merge-merged-wpa_supplicant-2.6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/hostap/+/bcae50b5da9a5bb77546cb76c6af1d334ab102f1

commit bcae50b5da9a5bb77546cb76c6af1d334ab102f1
Author: Matthew Wang <matthewmwang@chromium.org>
Date: Fri Oct 27 03:21:03 2017

CHROMIUM: wpa_supplicant: Full-scan after blacklisting

wpa_supplicant currently blacklists APs that deauth it, and
restricts the next scan to frequencies it has seen in prior scans
of the ESS it was just connected to. This precludes APs that have
changed frequencies from being discovered on subsequent scans.
See CL:421224 for more details.

This change adds a config to disable the scan restriction to
previously seen frequencies.

BUG=chromium:675232
TEST=tested manually

Change-Id: I3b127a29d5a6078457bf111419c034ced3bcff06
Reviewed-on: https://chromium-review.googlesource.com/740821
Commit-Ready: Matthew Wang <matthewmwang@chromium.org>
Tested-by: Matthew Wang <matthewmwang@chromium.org>
Reviewed-by: Matthew Wang <matthewmwang@chromium.org>

[modify] https://crrev.com/bcae50b5da9a5bb77546cb76c6af1d334ab102f1/wpa_supplicant/Android.mk
[modify] https://crrev.com/bcae50b5da9a5bb77546cb76c6af1d334ab102f1/wpa_supplicant/Makefile
[modify] https://crrev.com/bcae50b5da9a5bb77546cb76c6af1d334ab102f1/wpa_supplicant/android.config
[modify] https://crrev.com/bcae50b5da9a5bb77546cb76c6af1d334ab102f1/wpa_supplicant/defconfig
[modify] https://crrev.com/bcae50b5da9a5bb77546cb76c6af1d334ab102f1/wpa_supplicant/wpa_supplicant.c

Project Member

Comment 3 by bugdroid1@chromium.org, Nov 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/f3252e09985534972eeba493f4e86ed02b3fdc35

commit f3252e09985534972eeba493f4e86ed02b3fdc35
Author: Matthew Wang <matthewmwang@chromium.org>
Date: Sat Nov 04 04:56:50 2017

shill: wifi: add Metrics object to WiFiEndpoint constructor

WiFiEndpoint needs a Metrics object to send statistics to UMA when
an AP switches channels.

BUG=chromium:675232
TEST=Ran all unit tests

Change-Id: Ie34f3dfcd448d571e9d2e83035ac0d6f154e4204
Reviewed-on: https://chromium-review.googlesource.com/728948
Commit-Ready: Matthew Wang <matthewmwang@chromium.org>
Tested-by: Matthew Wang <matthewmwang@chromium.org>
Reviewed-by: Kevin Cernekee <cernekee@chromium.org>

[modify] https://crrev.com/f3252e09985534972eeba493f4e86ed02b3fdc35/wifi/wifi_endpoint.cc
[modify] https://crrev.com/f3252e09985534972eeba493f4e86ed02b3fdc35/wifi/wifi.cc
[modify] https://crrev.com/f3252e09985534972eeba493f4e86ed02b3fdc35/wifi/wifi_endpoint.h

Project Member

Comment 4 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/f77cca80211bbc74f921eafe6eebd84f60f492ae

commit f77cca80211bbc74f921eafe6eebd84f60f492ae
Author: Matthew Wang <matthewmwang@chromium.org>
Date: Tue Nov 07 01:26:25 2017

shill: wifi: Add Metrics support for channel switch logging

The Metrics object needs to support channel switch logging (Notify
function, consts and enums, and helper functions). This commit
includes those changes and adds unit tests.

BUG=chromium:675232
TEST=Unit tests pass

Change-Id: Iad109ff625cb6012c75ef23845cb3727e4f044fa
Reviewed-on: https://chromium-review.googlesource.com/753994
Commit-Ready: Matthew Wang <matthewmwang@chromium.org>
Tested-by: Matthew Wang <matthewmwang@chromium.org>
Reviewed-by: Matthew Wang <matthewmwang@chromium.org>

[modify] https://crrev.com/f77cca80211bbc74f921eafe6eebd84f60f492ae/metrics.h
[modify] https://crrev.com/f77cca80211bbc74f921eafe6eebd84f60f492ae/metrics_unittest.cc
[modify] https://crrev.com/f77cca80211bbc74f921eafe6eebd84f60f492ae/metrics.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Nov 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/0c278a782c5aff9bf32f392c0502e903d835eee0

commit 0c278a782c5aff9bf32f392c0502e903d835eee0
Author: Matthew Wang <matthewmwang@chromium.org>
Date: Wed Nov 08 09:11:17 2017

shill: wifi: Add GetCurrentEndpoint function for Wifi device object

WiFiEndpoint needs to be able to check if it is the current endpoint
in order to log the frequency switch.

BUG=chromium:675232
TEST=Unit tests pass

Change-Id: Idcf2540ffd29433ef9a893a6f367ce0424d02974
Reviewed-on: https://chromium-review.googlesource.com/753995
Commit-Ready: Matthew Wang <matthewmwang@chromium.org>
Tested-by: Matthew Wang <matthewmwang@chromium.org>
Reviewed-by: Kevin Cernekee <cernekee@chromium.org>

[modify] https://crrev.com/0c278a782c5aff9bf32f392c0502e903d835eee0/wifi/wifi.cc
[modify] https://crrev.com/0c278a782c5aff9bf32f392c0502e903d835eee0/wifi/wifi.h
[modify] https://crrev.com/0c278a782c5aff9bf32f392c0502e903d835eee0/wifi/wifi_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Nov 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/6008f24a942958aa50439f037eb18cc2dde089ed

commit 6008f24a942958aa50439f037eb18cc2dde089ed
Author: Matthew Wang <matthewmwang@chromium.org>
Date: Fri Nov 10 05:45:58 2017

shill: wifi: Log UMA stats for AP channel switching

Currently, ChromeOS jumps back and forth between Google-A APs when
one jumps to a different channel. Logging a metric whenever an AP
in the field switches channels can help diagnose how severe of a
problem this is.

BUG=chromium:675232
TEST=Unit tests still pass, tested manually as well

Change-Id: Ib8c649bb90880eb1d986bde1f4d555851d823b36
Reviewed-on: https://chromium-review.googlesource.com/753996
Commit-Ready: Matthew Wang <matthewmwang@chromium.org>
Tested-by: Matthew Wang <matthewmwang@chromium.org>
Reviewed-by: Matthew Wang <matthewmwang@chromium.org>

[modify] https://crrev.com/6008f24a942958aa50439f037eb18cc2dde089ed/wifi/wifi_endpoint.cc
[modify] https://crrev.com/6008f24a942958aa50439f037eb18cc2dde089ed/wifi/wifi_endpoint_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f8e1e7c0383309ff23018df85e7c407d8be7ee9a

commit f8e1e7c0383309ff23018df85e7c407d8be7ee9a
Author: Matthew Wang <matthewmwang@chromium.org>
Date: Thu Dec 21 00:09:55 2017

Creating histogram for AP Channel Switching

Histogram displays APs that have logged a channel switch. Histograms
implemented in CL:753996.

Bug: 675232
Change-Id: I09a1ad230e3424651c1dddcf49b495166da4c67f
Reviewed-on: https://chromium-review.googlesource.com/729494
Commit-Queue: Matthew Wang <matthewmwang@chromium.org>
Reviewed-by: Kevin Cernekee <cernekee@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525526}
[modify] https://crrev.com/f8e1e7c0383309ff23018df85e7c407d8be7ee9a/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/f8e1e7c0383309ff23018df85e7c407d8be7ee9a/tools/metrics/histograms/histograms.xml

Comment 8 by yoshi@chromium.org, Jan 3 2018

Cc: -yoshi@chromium.org

Sign in to add a comment