History log of /system/connectivity/wificond/server.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/server.cpp
099ee0c764bd579899ef5fc65a4cc669c55a87c9 05-Apr-2017 Ningyuan Wang <nywang@google.com> wificond: Dump interface list

Bug: 31336376
Test: compile
Test: manual test, check bug report
For example, I can see the following dump state:
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

Change-Id: Iae02bc85a73f211aa39fb16d77eb17d399651dce
/system/connectivity/wificond/server.cpp
b340bb56044c125a5b8bed939b78a14a9b94bdcc 05-Apr-2017 Ningyuan Wang <nywang@google.com> Allow wificond to dump logs

This adds the dump() function for wificond to dump logs
to provided fd.

Bug: 31336376
Test: compile
Test: manual test, see wificond dump logs in bug report

Change-Id: Ia27cee9c14728095d9843dfc08994ec981283ee3
/system/connectivity/wificond/server.cpp
075145ad1dcb8058222196becaa884b961dfced2 13-Mar-2017 Ningyuan Wang <nywang@google.com> Cleanup p2p0 interface upon tearDownInterfaces().

This replaces NetlinkUtils::GetInterfaceInfo with NetlinkUtils::
GetInterfaces. Instead of picking client interface inside NetlinkUtils,
this change allows wificond main object(server) to dump all the interfaces
from kernel.
Being able to dump all interfaces, wificond main object therefore can mark
down all the interfaces upon cleanup.

Bug: 36139978
Bug: 35949498

Test: compile, unit tests, manual test, integration test

Change-Id: I66dd4f8c3b26087dd182591763de8fa4da29f1d6
/system/connectivity/wificond/server.cpp
b5c68afba4ae8375e35e9cc6cd6707837de6b7e6 02-Mar-2017 Roshan Pius <rpius@google.com> wificond: Use Vendor HAL for mode change

Also,
Removed the usage of DriverTool & HalTool from wificond.

Bug: 35765841
Test: Will send for integration tests.
Change-Id: Ie029816bec5b168e34b3b18892b9da82285c66c0
/system/connectivity/wificond/server.cpp
9136ae3b1e8327ead81c3468d7808bb889077442 01-Mar-2017 Ningyuan Wang <nywang@google.com> Cleanup AP logic after Hostapd is down

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

Change-Id: Ic7e6c593ded19955da7a85d60730bf8e9afd679a
/system/connectivity/wificond/server.cpp
495e5b35c9b7231574658f273f2aa061e46d0a08 03-Dec-2016 Ningyuan Wang <nywang@google.com> Monitor regulatory domain change

This adds the function of regulatory domain change monitoring
on wificond.

This also allows wificond to print the supported bands/channels
upon regulatory domain change.

This also adds the corresponding unit tests.

Bug: 35150708
Test: compile, unit tests, manual tests
Change-Id: Idbcf9ebf25f4e7be3b371ec3531b6b52303476e8
/system/connectivity/wificond/server.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/server.cpp
eb59d4dd54bfaaaac243e762462bbe25f4797ea4 10-Oct-2016 Ningyuan Wang <nywang@google.com> Add RTTController and corresponding aidl interface to wificond

This add RttController interface as a lazy initialization object.
User can get an instance of RttController while register a RttClient
through wificond.

Currently HAL RttController has an optional parameter for choosing
on which network interface will RTT run. However, in order to
hide interface concept from RTT framework as well as keep simplicity,
we don't expose this interface choice via aidl to framework for now.

Bug: 31756849
Test: compile

Change-Id: I2a13374254fd8c6bd7911e5cfbe3297cde25e9e7
/system/connectivity/wificond/server.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/server.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/server.cpp
29fca8817115e7b30eac16cce5917520b1fc2834 12-Sep-2016 Ningyuan Wang <nywang@google.com> Add 'get interfaces' to wificond Binder interface.

This also adds the missing 'override' to enableSupplicant() and
disableSupplicant().

BUG=31430211
TEST=compile, manual tests

Change-Id: I23db45a41d1dcbf5d3294b50e94961eb2de6bf4a
/system/connectivity/wificond/server.cpp
8326436cf9e65d94a14bbe8f0c08bcd5265e53de 09-Sep-2016 Ningyuan Wang <nywang@google.com> Broadcast interface changes through binder

This broadcasts interface ready/towndown events after we
create/remove an interface.

BUG=31349441
TEST=compile, unit tests
Change-Id: I8d4f20ddb82db1bb53d12f3feeb06d4e761be689
/system/connectivity/wificond/server.cpp
dea7ebe3078dc347ef4d49d2293b391a479242cf 09-Sep-2016 Ningyuan Wang <nywang@google.com> Add binder interface for registering/unregistering interface changes

BUG=31349441
TEST=compile, unit tests
Change-Id: I0fa00ecdeec46246875f7de2479dab1470d102e5
/system/connectivity/wificond/server.cpp
3b8946990595b90770b05651c9310cde9ff4aa18 31-Aug-2016 Ningyuan Wang <nywang@google.com> Fix logging of GetInterfaceInfo() and GetWiphyIndex()

CleanUpSystemState() calls GetWiphyIndex() to mark down
any existing interfaces.
It should not be an ERROR if we find no wiphy/interface
at this time.

BUG=None
TEST=compile

Change-Id: I64c1f81625c4964b5ed8c501bd6f761cde883495
/system/connectivity/wificond/server.cpp
fc6af08571620a5e9d8edf745191ae1009889b92 23-Aug-2016 Christopher Wiley <wiley@google.com> Tear down system state on wificond startup

Test: Added an integration test
Bug: 29620309

Change-Id: Ibf378dda9b6ca2dfa29cca3071d967a3e4f6b036
/system/connectivity/wificond/server.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/server.cpp
d42ca5abc3f3f80fb1e20ead3c093780cd409935 23-Aug-2016 Christopher Wiley <wiley@google.com> Set AP interfaces down after stopping hostapd

This cleans up after we unceremoniously kill hostapd with SIGKILL.
It also guarantees that we don't continue beaconing after the death
of hostapd.

Test: Unit and integration tests pass
Bug: 31023120

Change-Id: I6a363bfdab81ea24a25d6a86a42ff4ccc99556dd
/system/connectivity/wificond/server.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/server.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/server.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/server.cpp
f28bd901d9588058fe4256bbfe1ee720249b9747 01-Aug-2016 Ningyuan Wang <nywang@google.com> Seperate netlink util functions to NL80211Utils

This creates a new clas NetlinkUtils and moves two util
functions GetWiphyIndex() and GetInterfaceName() from
NelinkManager to NetlinkUtils.

BUG=30565670
TEST=unit tests and integration tests

Change-Id: I713d4388e688f5235b7fbf61c7b9ea9341d667db
/system/connectivity/wificond/server.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/server.cpp
45a655e6c6ba304c577ee098732ac176aaab311b 28-Jul-2016 Ningyuan Wang <nywang@google.com> Get interface name for server

This CL adds a util function on NetlinkManager for getting
interface name from kernel.

Server uses this function after driver and firmware reloading
to verify the interface is set up correctly.

BUG=29454786
TEST=unit tests and intergration tests

Change-Id: Ib8cea0e7cb744be428ddaf96b6d50f10a6cea255
/system/connectivity/wificond/server.cpp
47b3d35354ee70c78e1c2d6df3320f43fd2b2c24 28-Jul-2016 Ningyuan Wang <nywang@google.com> Do not use callback parameter for synchronous NL80211 interface

BUG=29454786
TEST=compile
TEST=unittests and intergration tests still pass

Change-Id: Ibaf15c82035837b73021c70922e96f870fcec36b
/system/connectivity/wificond/server.cpp
e6dce59eaa5f1fcbdfb4b3fc6a60d5cd3b522b06 21-Jul-2016 Ningyuan Wang <nywang@google.com> Get wiphy index using NL80211 messages

Add utils functions in NetlinkManager to get wiphy index.
wificond should refresh wiphy index using those utils after
reloading the driver.

BUG=29454786
TEST=compile
TEST=unittests and intergration tests still pass

Change-Id: I303ac6b81ab3650acfb7a823cb0b423f55d373b4
/system/connectivity/wificond/server.cpp
1f8dd4511dc210fb0e49e8619ceaa039bd82aa52 19-Jul-2016 Christopher Wiley <wiley@google.com> Control hostapd from IApInterface

Add AIDL interfaces, implementation, and tests to wificond.

Bug: 30040724
Test: unitests pass
Test: integration tests pass

Change-Id: I75339d64bf92941de26c7552b6b711cbea00eb80
/system/connectivity/wificond/server.cpp
28bc02de7b0e35a1c47c9705959f8176c66dc89a 18-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Change include directory"
808c670699b218f8cc16f83e81be408ae441d44a 16-Jul-2016 Ningyuan Wang <nywang@google.com> Change include directory

This make our local headers clearly wificond prefixed.

TEST=compile
BUG=None

Change-Id: I68cc9efd2f73bec7a4cbec09a470af58420ac3e1
/system/connectivity/wificond/server.cpp
eafdaa952e5d9de2c944d28c861a17406b54337c 15-Jul-2016 Christopher Wiley <wiley@google.com> Do not throw RuntimeException on error

Signal that we've hit an error condition while creating an interface by
returning null and logging a message in wificond. The Java can't do
anything more meaningful with an exception.

Bug: 30159593
Change-Id: I5e75f2edad4a5e319adc865216a2e3566d9a1573
Test: WiFi tethering continues to work.
/system/connectivity/wificond/server.cpp
30b1d2976873e3fe3cf7b8c5f381848c9c1ccdb2 12-Jul-2016 Christopher Wiley <wiley@google.com> Change AIDL style to match other AIDL style

Bug: 30090557
Change-Id: Ic0ecca115bb94c04446edfe5c7299a70bc10e4b2
Test: Compiles
/system/connectivity/wificond/server.cpp
bf16aa68f995077669c9f34c8f38cbf4552388a7 09-Jul-2016 Christopher Wiley <wiley@google.com> Remove extra interface down

This code was put here because WifiStateMachine#setupDriverForSoftAp()
had a similar clause. However that code was a no-op, because the HAL
was stopped at the point that it was called, preventing WSM from getting
the interface index to turn down.

The very next thing that WSM did after setting the interface status to
down was to start the HAL, which sets the interface state to up anyway.

Change-Id: I184166bfd45b33171c3b2603a4ac3423e1674132
/system/connectivity/wificond/server.cpp
e17d6dd0dde4d63f8ec8bf8434198c7f1ead83c8 24-Jun-2016 Christopher Wiley <wiley@google.com> Setup wlan0 in AP mode on request

Test: Added unittests that we call appropriate functionality from
libwifi-system, integration tests continue to pass
Bug: 29579539

Change-Id: I7f3c565765d88f9bb522fd31d2e8e5be6e289e5c
/system/connectivity/wificond/server.cpp
f229bbe6676ac7d12f4aa22a902eb2eefb2fc5c6 23-Jun-2016 Christopher Wiley <wiley@google.com> Expose IPC interfaces to create/destroy AP interfaces

Bug: 29579539
Change-Id: I49e050a6c806a5841931b1c2cddfbba7925f744a
Test: Unit, integration tests pass
/system/connectivity/wificond/server.cpp
fb2880c1108cf2b68599f3a879bf2f97dce6a3d4 22-Jun-2016 Christopher Wiley <wiley@google.com> Remove the concept of a chip from wificond

Today, there is little point in obsessing about chips, since we have
exactly one chip per device. At some point, wificond will need to
become aware of chips, but we can make more progress by delaying
speculation until the HAL is ready.

Bug: 29578895
Change-Id: I68b2d069118538555b7a9fb315e62f294f13bbeb
Test: Compiles, unit, integration tests pass
/system/connectivity/wificond/server.cpp
4e9b2bd3d41f47c3a4b7b9a9ae9f6508b463ba67 14-Jun-2016 Ningyuan Wang <nywang@google.com> Wificond: Expose IChip and IClientInterface object

This CL enabls wificond to expose chips and client
interfaces through binder.

This also adds an intergration test to verify we can
access these objects through binder.

BUG=29222398
TEST=compile
TEST=unit tests passed
TEST=new intergration tests passed

Change-Id: I352928de382aa22e9bdb27e9dfb49fdc8ce36994
/system/connectivity/wificond/server.cpp
f771ca1e6e0961f7a9296f140f4df0eaea9dcadd 08-Jun-2016 Christopher Wiley <wiley@google.com> Add android.net.wifi.IWificond AIDL

This is the root object exposed by wificond via Binder as described in
the design document.

Bug: 29218284
Change-Id: Ia6a21285f974d322f3ed9dd20e865fac4c4b31ac
Test: Compiles, unit, integration tests pass.
/system/connectivity/wificond/server.cpp
fa9619e3efeb8afab8be0a71f77cda26261622cb 03-Jun-2016 Ningyuan Wang <nywang@google.com> Binder interface skeleten of wificond

This CL adds a dummy binder interface of wificond.
There is only one function called Ping() which is
supposed to return a std string "Pong".

BUG=28867093
TEST=compile
TEST=Mannually modify wificond sepolicy file to allow
binder operations.
Use an executable to test this interface by calling
Ping() through binder and verifying the response is
"Pong".

Change-Id: I8b5b1b65811f018612ad095f692d8acf2289c3c9
/system/connectivity/wificond/server.cpp