History log of /system/connectivity/wificond/client_interface_impl.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8ec7696f5111abb46d12a6bd1f2e27d8b8291b34 08-Apr-2017 Ningyuan Wang <nywang@google.com> Add dump state for wificond interface classes

This allows wificond's ClientInterfaceImpl and
ApInterfaceImpl to dump state.

The dump state includes scan capabilities, wiphy features, and
number of current associated stations for AP mode.

This also adds the missing const keyword for IsAssociated().

Bug: 31336376
Test: compile, manual test

Sample dump output:
Current wiphy index: 0
Cached interfaces list from kernel message:
Interface index: 23, name: p2p0, mac address: 66:bc:0c:47:df:00
Interface index: 22, name: wlan0, mac address: 64:bc:0c:47:df:00
------- Dump of client interface with index: 22 and name: wlan0-------
Max number of ssids for single shot scan: 10
Max number of ssids for scheduled scan: 16
Max number of match sets for scheduled scan: 16
Device supports random MAC for single shot scan: 1
Device supports random MAC for scheduled scan: 1
------- Dump End -------
--------- 0.004s was the duration of dumpsys wificond

Change-Id: I862974af743ca6ca303dfc1a4f6c773dd5b7a03e
/system/connectivity/wificond/client_interface_impl.cpp
5ac224286705ee24c9ece2e09e611e352eaf1dec 29-Mar-2017 Ningyuan Wang <nywang@google.com> Remove unused include of wifi.h

Bug: 36697996
Test: compile, manual test: wifi works with toggling
Change-Id: I27200ad3ad4aa313f2b0d0ae42ac0460ed12fd19
/system/connectivity/wificond/client_interface_impl.cpp
1c28c5a0aaa9cbbf28baa1edcd786de609cc7c9b 07-Mar-2017 Ningyuan Wang <nywang@google.com> Parse timeout field for mlme events

Bug: 35849859
Bug: 34280407
Test: compile, unit tests

Change-Id: Id0d195b2be0a52eb0d8d765e5359617a63705c54
/system/connectivity/wificond/client_interface_impl.cpp
5711892b76b3ba2dea53aec0769ca36cb04b3cec 27-Feb-2017 Ningyuan Wang <nywang@google.com> Do not request MAC address randomization when associated

This CL includes the following changes:
1. Enables netlink manager to monitor NL80211_CMD_DISCONNECT and
NL80211_CMD_DISASSOCIATE events
2. Makes ClientInterfaceImpl listen to these additional MLME events.
3. Makes clientInterfaceImpl keep tracking of the association state.
4. Exposes the association state to ScannerImpl, and makes ScannerImpl
only request MAC address randomization when interface is not associated.

Bug: 35803146
Test: compile, unit tests, manual test

Change-Id: I7a5eeaf6329e1142a0012f27e0f72e6514ba7f94
/system/connectivity/wificond/client_interface_impl.cpp
0513378db6f1f8f2c84387c3a8bea5449cf03190 23-Feb-2017 Ningyuan Wang <nywang@google.com> Get up-to-date channel info from kernel

Bug: 35707768
Test: compile, unit tests, integration test

Change-Id: Ifb0beb9321d632ec76df3d368c10e4531743e4c3
/system/connectivity/wificond/client_interface_impl.cpp
844d7c58aa84d7b325df23ba9c623bd0ba70130d 22-Feb-2017 Ningyuan Wang <nywang@google.com> More logging for wificond scanner

Bug: 35664772
Change-Id: I6b3bb4fc01e3c06dea246e3cd55c23f27d3a2195
Test: compile, manual test
/system/connectivity/wificond/client_interface_impl.cpp
384f74dea0ad3b792428f39305b19c42c92c4039 10-Feb-2017 Ningyuan Wang <nywang@google.com> Better logging for GetWiphyInfo()

NL80211_ATTR_WIPHY_BANDS contains a list of anonymous attributes.
Each anonymous attribute represents a band.
NL80211_BAND_ATTR_FREQ is expected to be included in every anonymous
attribute to specifying supported channels for this band.

However, sometimes one of the anonymous attribute provided by kernel is
empty, where NL80211_BAND_ATTR_FREQ is not included. This always happens
on some type of devices. We should not log an error for this.

Bug: 35220903
Test: compile, unit tests, manual test

Change-Id: I0ef953266744713af627a17e7d10f04b937e0648
/system/connectivity/wificond/client_interface_impl.cpp
2c74cae9b5e0f0e72250fd5f82928768496a5f37 30-Nov-2016 Ningyuan Wang <nywang@google.com> Expose wiphy capabilities to ScannerImpl

This adds a struct WiphyFeatures to save wiphy feature flags
from netlink wiphy message. Currently we only add fields for
randomized mac address support.

This also allows ClientInterfaceImpl to expose channel info, scan
capabilities and wiphy features to ScannerImpl object.

Bug: 33216906
Test: compile, unit tests, manual test

Change-Id: Iac9355e45a3cf2011120fc6a91ccfb2dee434951
/system/connectivity/wificond/client_interface_impl.cpp
c2b0dce5c32b4e6baf5d923b604529ea0ed97c5f 18-Nov-2016 Ningyuan Wang <nywang@google.com> Add WifiScannerImpl object stub implementation

This includes:
1. Add getWifiScannerImpl() to IClientInterface. This call will
return an IWifiScannerImpl object.

2. Remove scanning result listening functionalities out of the
ClientInterface class. These functionalities will be added back
to ScannerImpl class later.

Bug: 31115360
Test: compile, unit tests, integration tests

Change-Id: Ie4ffcbe0d63b2db61e66093df2dda26493e2cd77
/system/connectivity/wificond/client_interface_impl.cpp
903b9d029cbb2897fc3b2c2b731bf9e1bc7bb4a0 11-Nov-2016 Ningyuan Wang <nywang@google.com> wificond: return association frequency upon signal poll

This allows wificond to return a cached frequency upon signal poll.
This frequency is updated upon MLME events.

Bug: 31595463
Test: compile, manual test

Change-Id: Iae82a8143ee87c44bade1c376a55025fae61f490
/system/connectivity/wificond/client_interface_impl.cpp
4d882abea2a9956689d32820a5c13e9f9625e0da 01-Oct-2016 Ningyuan Wang <nywang@google.com> Make wificond scan result parcelable

This includes the following changes:
1. Make ScanResult a parcelable class.
2. Move ScanResult to namespace com.android.server.wifi.wificond
3. Rename ScanResult to NativeScanResult to avoid naming confliction.
4. Add unit test for NativeScanResult class.

Test: compile, unittests, manual test
Bug: 30746278
Change-Id: Ic1225ff52149fcd00855f9c7aa78c48485b0a08b
/system/connectivity/wificond/client_interface_impl.cpp
4aab829f78a825d6426eeebb05255e19a3b1e4c7 18-Oct-2016 Ningyuan Wang <nywang@google.com> Use AP bssid for NL80211_CMD_GET_STATION command

Bug: 32095105
Change-Id: Ic048e3f96a325599001100473948c0e5a3736b2d
Test: compile, runttests.sh
/system/connectivity/wificond/client_interface_impl.cpp
042736e71ac9b9e18c38c00a3d588a5239a1da0f 05-Oct-2016 Ningyuan Wang <nywang@google.com> Monitor mlme event for wificond

1. This allows NetlinkManager to monitor MLME events.
2. This adds internal API for tracking MLME events.
3. This creates classes representing different MLME events.
4. ClientInterfaceImpl will update frequency and bssid upon
ASSOCIATE/CONNECT/ROAM events.

Bug: 31961586
Test: compile, manual tests

Change-Id: I1bd62dfa85596fd262709038fb73fc6e0ff9c5f3
/system/connectivity/wificond/client_interface_impl.cpp
8044a946f4b350291ddd44c52db7ca34e21bad8f 30-Sep-2016 Ningyuan Wang <nywang@google.com> Add internal API for handling scheduled scan results

This allows an interface object to subscribe/unsubscribe
schedulded scan results.

Bug: 31839487
Test: compile, manual tests, unit tests

Change-Id: I023fe9ca1546148bdab2ef1458934efbcdee4e76
/system/connectivity/wificond/client_interface_impl.cpp
e5d0d670dc5a22816a2ec944e2384fd42634aa06 29-Sep-2016 Ningyuan Wang <nywang@google.com> Add ANQP query binder interface to wificond

Bug: 31813700
Test: compile

Change-Id: I6d049a7e367f59ae71f52d24df70e3b038932ee2
/system/connectivity/wificond/client_interface_impl.cpp
4fc3792b547087f9fd425393cd3159d2f74fa831 22-Sep-2016 Christopher Wiley <wiley@google.com> Always set interface down in object destruction

We would like to reason about our interfaces as being up
when they are configured and ready for use, and down otherwise.
This helps when switching modes. For example, when setting up a SoftAP,
you can expect that the interface starts in a down state, and
transitions to up when hostapd is ready for business. Note that we
cannot do this after firmware reload, because this may cause driver
de-initialization (see c#6 in b/31205821).

Bug: 31337216
Test: Integration tests pass

Change-Id: I03a71ea623e29ef9b023d97afc81cf836ebfb1ff
/system/connectivity/wificond/client_interface_impl.cpp
b52f635f890b0370349014890fcb6bc49ebabd66 17-Sep-2016 Ningyuan Wang <nywang@google.com> Support signal poll for wificond

This adds the NL80211 implementation as well as the binder interface for
signal polling function.
In order to accommodate the existing usage of java framework, this also
returns the parameter link speed(transmission rate in Mbps).

Bug: 30978872
Test: compile, manual tests

Change-Id: I69ca8e0e2dbe52f57f1a5ad19b2cacc940f2a91a
/system/connectivity/wificond/client_interface_impl.cpp
cc77f636f4c790dd8a7ecefc3bbe8568fc8b040b 14-Sep-2016 Ningyuan Wang <nywang@google.com> Add getMacAddress() to wificond binder interface

Bug: 31042306
Test: compile, integration test

Change-Id: Ic8b510aa761b4e79bf903f2d90af680b7cb5ca24
/system/connectivity/wificond/client_interface_impl.cpp
c9566b1dc5f3bd92e03ed8806e59af9cba2b672f 20-Sep-2016 Ningyuan Wang <nywang@google.com> Notify scan aborted events

Bug: 31495091
Test: compile, manual tests

Change-Id: I94c50f44449bd1f0c7c445775434a34d5ca7390a
/system/connectivity/wificond/client_interface_impl.cpp
a12253e46c1328548c4b37d7f365b4009a6e5776 15-Sep-2016 Ningyuan Wang <nywang@google.com> Support fetching packet counters for wificond

BUG=30978872
TEST=compile, manual tests

Change-Id: Ifa0dd9ce794a1cdb6da7e357d6873992091e3ea0
/system/connectivity/wificond/client_interface_impl.cpp
537c1ba391765b3aa7750450c208c650a02c04f0 23-Aug-2016 Christopher Wiley <wiley@google.com> Use mockable supplicant delegate

This allows us to mock interactions with supplicant in unit tests.

Bug: 29620309
Test: unit/integration tests pass

Change-Id: I1526c90ffa9822a4d7dcabe5752676bfc61d6965
/system/connectivity/wificond/client_interface_impl.cpp
c62360e419c9d6aac905f8c2bcdf9107eb137e66 23-Aug-2016 Roshan Pius <rpius@google.com> Fetch the mac address in GetInterfaceNameAndIndex

Rename the |GetInterfaceNameAndIndex| function to
|GetInterfaceInfo| and fetch the mac address assigned to the interface
along with the other info being fetched.

BUG: 31038272
TEST: Modified existing tests
TEST: Manual tests on bullhead to see if the correct mac address is
fetched.

Change-Id: I89c11e2227ef9bdf90dfd681df09d8b8116cd53f
/system/connectivity/wificond/client_interface_impl.cpp
14de8b2ce5ef49218e48002a3ac0728847e90372 19-Aug-2016 Ningyuan Wang <nywang@google.com> Monitor scan results for current client interface

This CL includes the following changes:
1. Add functions which can subscribe and unsubscribe scan results
notification in ScanUtils, so we don't need to expose a NetlinkManager
object to ClientInterfaceImpl.

2. ClientInterfaceImpl subscribes the scan results when it is
initialized. It unsubscribes the scan results when it is destroyed.

3. ClientInterfaceImpl requests scan results objects using ScanUtils.
In later CLs these objects are supposed to be sent to java framework
through binder.

4. Add corresponding mock classes and unit tests adjustment for the
changes above.

This CL won't enable the scan results monitoring unless we uncomment
SubscribeToEvents() in NetlinkManager::Start().

BUG=30896985
TEST=compile, unit tests, manual tests
Manual test:
1. Uncomment SubscribeToEvents() in NetlinkManager::Start().
2. Call ScanResult::DebugLog() in ClientInterfaceImpl::
OnScanResultsReady().
After 1 and 2 we can see detail scan results in wificond logs.

Change-Id: I502fb4704ffce4dd2bf8de8d0d5d9293b2b43d9a
/system/connectivity/wificond/client_interface_impl.cpp
66527843f7df41d152e09b21dec2f0d931db08db 10-Aug-2016 Christopher Wiley <wiley@google.com> Add the ability to start/stop supplicant to wificond

Introduce two new methods:

enableSupplicant()
disableSupplicant()

to IClientInterface. These are used to start/stop
wpa_supplicant from controlling a given interface.
Today, they start/stop the wpa_supplicant service, but
in the future we may use them to add/remove the interface
from supplicant's control.

Bug: 30666540
Test: Can still connect to WiFi on bullhead.

Change-Id: I25fe9e7e5f2e3764cd38cf89902dffd957b474ee
/system/connectivity/wificond/client_interface_impl.cpp
9bc59a058868140e33bc7c46c9232c8d9b9148ca 11-Aug-2016 Ningyuan Wang <nywang@google.com> Get interface index from kernel for wificond

This CL adds the interface index query to interface name query.

With interface index wificond can assign scan request to specific
interface and ignore scan result from uninteresting interfaces.

BUG=30808053
TEST=compile, unit tests, integration tests

Change-Id: I2a6333dcad4e9faadb7793501762602017125865
/system/connectivity/wificond/client_interface_impl.cpp
c139fbf821d3c62523afbcf0950ebc2d1abaa93d 27-Jul-2016 Christopher Wiley <wiley@google.com> Add support for creating client interfaces

Bug: 30041062
Test: unit/integration tests pass

Change-Id: I48a0adc338e474085c399750441198a4acae2cf5
/system/connectivity/wificond/client_interface_impl.cpp