OSDN Git Service
Christopher Wiley [Mon, 22 Aug 2016 17:24:22 +0000 (10:24 -0700)]
Drop privileges and become wifi user during startup
Bug:
29870863
Test: Unit and integration tests pass
Change-Id: I939ad488eb3ad17cb2c166298e720f7d7b368f57
Christopher Wiley [Tue, 23 Aug 2016 00:42:58 +0000 (17:42 -0700)]
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
Roshan Pius [Tue, 23 Aug 2016 18:26:51 +0000 (11:26 -0700)]
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
Ningyuan Wang [Fri, 19 Aug 2016 21:06:56 +0000 (14:06 -0700)]
Get rid of NL80211Packet copying
This CL removes all NL80211Packet copying by introducing the use of
unique_ptr on NL80211Packet objects.
The copy constructor is not explicitly deleted because it helps write
readable unit tests.
BUG=
30901326
TEST=compile, unit tests, manual tests
Change-Id: I8dc9b42cacc3e929aa720abbd8ff0a3862b33bd3
TreeHugger Robot [Fri, 19 Aug 2016 21:40:47 +0000 (21:40 +0000)]
Merge changes I502fb470,I5bb0d98c
* changes:
Monitor scan results for current client interface
Add helper functions to get and parse scan results
Ningyuan Wang [Fri, 19 Aug 2016 18:32:06 +0000 (18:32 +0000)]
Merge "Pass packet by reference to reduce copy operations"
Ningyuan Wang [Fri, 19 Aug 2016 18:32:06 +0000 (18:32 +0000)]
Merge "Add a copy counters for netlink packet debugging"
Ningyuan Wang [Thu, 18 Aug 2016 22:26:15 +0000 (15:26 -0700)]
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
Ningyuan Wang [Wed, 17 Aug 2016 17:22:46 +0000 (10:22 -0700)]
Add helper functions to get and parse scan results
GetScanResult() is used for request the newest scan results from kernel.
ParseScanResult() is used for converting scan result packet to a scan
result object.
This CL also moves all the scanning helper functions to a new file.
BUG=
30896985
TEST=manual tests
TEST=unit tests
Change-Id: I5bb0d98cb62daf9cc02da31a7cdf42f0c9fff16c
Ningyuan Wang [Wed, 17 Aug 2016 21:32:26 +0000 (14:32 -0700)]
Pass packet by reference to reduce copy operations
With this change, along with ag/
1333902 the copy counter is
reduced from 14 to 5, for the entire booting process.
BUG=
30901326
TEST=unit tests
Change-Id: Ie7f46b6ca1663a00d1703d567b2de35259bfd13a
TreeHugger Robot [Thu, 18 Aug 2016 17:21:55 +0000 (17:21 +0000)]
Merge "Add the ability to start/stop supplicant to wificond"
Ningyuan Wang [Wed, 17 Aug 2016 22:13:02 +0000 (15:13 -0700)]
Add a copy counters for netlink packet debugging
Copy operation of NL80211Packet copies the entire buffer. This
costs a lot resouces. We should avoid it as much as we can.
This CL adds a static variable in NL80211Packet tracking the number
of copy operations, as well as another counter tracking the bytes of
we copied. This help us debug wificond netlink performance issues.
BUG=
30901326
TEST=manual tests
Change-Id: I5be04ff977b5ffd7340a98d435a5703b0b79be28
TreeHugger Robot [Thu, 18 Aug 2016 16:29:30 +0000 (16:29 +0000)]
Merge "Add function for triggering scan"
Ningyuan Wang [Tue, 16 Aug 2016 23:49:51 +0000 (16:49 -0700)]
Add function for triggering scan
This adds a function scan() to send a 'trigger scan' message to kernel.
BUG=
30643703
TEST=manual tests
Change-Id: I8be2d8a033f38ca66fd29cc4a7135c8526985032
Ningyuan Wang [Wed, 17 Aug 2016 16:52:58 +0000 (09:52 -0700)]
Disable wificond scan result monitoring for now
This disbales the scan result monitoring of wificond.
We will re-enable it when the integration finishes, otherwise
wificond will silently using CPU/Memory to parse scan results.
BUG=None
TEST=unit tests
Change-Id: Iaa50fd4f2f6b7f60dbfcec08f59e21b539c603bc
TreeHugger Robot [Wed, 17 Aug 2016 00:51:59 +0000 (00:51 +0000)]
Merge "Add a helper function for logging scan result"
TreeHugger Robot [Wed, 17 Aug 2016 00:30:59 +0000 (00:30 +0000)]
Merge "Get SSID from information element"
Ningyuan Wang [Tue, 16 Aug 2016 20:05:08 +0000 (13:05 -0700)]
Add a helper function for logging scan result
This function is only used for debugging now.
Example output:
Scan result:
SSID: GoogleGuest
BSSID: 6c:f3:7f:af:fa:b1
FREQUENCY: 5220
SIGNAL: -86dBm
TSF:
23486915
BUG=
30746278
TEST=manual tests
Change-Id: Ia504a0e18723dcbffcd3d8da0920d1ea2238af70
Ningyuan Wang [Tue, 16 Aug 2016 20:23:09 +0000 (13:23 -0700)]
Get SSID from information element
Scan result netlink message doesn't provide SSID directly.
It provides raw information elemnt array, which contains SSID.
This helper function can get SSID from that array.
BUG=
30896985
TEST=manul tests
Change-Id: I38f43a3528ddddbdc052333e5d0e15875517c89e
Ningyuan Wang [Fri, 12 Aug 2016 20:42:02 +0000 (13:42 -0700)]
Create functions to handle scan result notification
BUG=
30737305
TEST=compile, unit tests, integration tests
Change-Id: I763db062ccb59b71ee358723b8285e1c5f2f8aa2
Christopher Wiley [Wed, 10 Aug 2016 16:33:45 +0000 (09:33 -0700)]
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
TreeHugger Robot [Sat, 13 Aug 2016 00:38:37 +0000 (00:38 +0000)]
Merge "Get interface index from kernel for wificond"
Roshan Pius [Fri, 12 Aug 2016 21:24:25 +0000 (21:24 +0000)]
Merge changes I31237daf,Ie4c8eb49
* changes:
wpa_supplicant_binder_test: Add reconnect tests
wpa_supplicant_binder_test: Simple connect tests
Ningyuan Wang [Thu, 11 Aug 2016 16:59:22 +0000 (09:59 -0700)]
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
TreeHugger Robot [Fri, 12 Aug 2016 21:16:59 +0000 (21:16 +0000)]
Merge "Create a ScanResult class for wificond internal use"
Ningyuan Wang [Wed, 10 Aug 2016 21:40:04 +0000 (14:40 -0700)]
Create a ScanResult class for wificond internal use
An object of this class is used for storing the scan result
of a BSS.
More fields will added to this class if it is neccessary.
Future parcelable scan result class is expected to inherit
from this class.
BUG=
30746278
TEST=compile
Change-Id: I5d65a6eb51e4ffdd8b92345eef6a51de61aab236
Roshan Pius [Thu, 11 Aug 2016 18:21:27 +0000 (11:21 -0700)]
wpa_supplicant_binder_test: Add reconnect tests
Create a base class for all connect tests and add a
test which exercies the new iface methods:
1. IIface.Disconnect
2. IIface.Reconnect
BUG:
30667354
TEST: Ran
/data/nativetest/wpa_supplicant_binder_test/wpa_supplicant_binder_test
Change-Id: I31237dafbcbc276feef7a2814d2246f0069c12e4
Roshan Pius [Thu, 4 Aug 2016 22:19:56 +0000 (15:19 -0700)]
wpa_supplicant_binder_test: Simple connect tests
Add a new test file for connection tests. All the tests in this file
parse a json formatted |NetworkParams| structire from command line args.
Changes in the CL:
1. Store any incoming test args in a global |kGlobalTestArgs| variable.
These can be used by the tests as needed.
2. Add a data type |NetworkParams| which is used to deserialize json
formatted command line args to parameters that can be used to connect to
a network.
3. Add a simple connect/disconnect using the above.
BUG:
30667354
TEST: Initiated connection to open/psk networks around.
Open Networks:
/data/nativetest/wpa_supplicant_binder_test/wpa_supplicant_binder_test
'{\"NetworkParams\":{\"ssid\":\"<SSID>\"}}'
PSk Networks:
/data/nativetest/wpa_supplicant_binder_test/wpa_supplicant_binder_test
'{\"NetworkParams\":{\"ssid\":\"<SSID>\",\"psk_passphrase\":\"<PSK>\"
,\"key_mgmt\":2}}'
Change-Id: Ie4c8eb49ea5f10bfd7ba3cde19aac87ab3c85e64
Christopher Wiley [Wed, 10 Aug 2016 19:10:37 +0000 (12:10 -0700)]
Process all responses to queries for interface name
Sometimes the kernel will tell us about unexpected network devices (e.g.
p2p devices without a real netdev backing them).
Also added a quick facility to log these packets in excruciating detail.
This should only be used for debugging.
Bug:
30773545
Test: angler can now configure client network interfaces in this state.
added a unittest
Change-Id: I5423acd7dc6177f73e54150e5ef734d15703163d
TreeHugger Robot [Tue, 9 Aug 2016 22:32:47 +0000 (22:32 +0000)]
Merge "Support receiving broadcast for NetlinkManager"
Ningyuan Wang [Thu, 4 Aug 2016 22:49:09 +0000 (15:49 -0700)]
Support receiving broadcast for NetlinkManager
BUG=
30737305
TEST=unit tests and integration tests
Change-Id: Ia9fb32d428970560452949b6f980b634a48c84e4
TreeHugger Robot [Tue, 9 Aug 2016 18:39:17 +0000 (18:39 +0000)]
Merge "Add unit tests for NetlinkUtils"
Ningyuan Wang [Wed, 3 Aug 2016 20:14:29 +0000 (13:14 -0700)]
Add unit tests for NetlinkUtils
This creates unit tests for helper class NetlinkUtils.
This also creates mock classes for NetlinkManager and EventLoop.
BUG=
30642046
TEST=unit tests and integration tests
Change-Id: Idc3cea812e700af8a1727c380ec92cfc1f364e28
TreeHugger Robot [Mon, 8 Aug 2016 19:48:33 +0000 (19:48 +0000)]
Merge "Fix netlink errno parsing"
Ningyuan Wang [Thu, 4 Aug 2016 20:12:08 +0000 (13:12 -0700)]
Fix netlink errno parsing
Kernel uses negative errno for nl80211 messages.
BUG=None
TEST=compile and manual tests
Change-Id: I50f5fa82ec946f8121c846017023a76e3597589e
Roshan Pius [Thu, 4 Aug 2016 18:02:55 +0000 (11:02 -0700)]
wpa_suppplicant_binder_test: Restructure tests
Restructure the existing tests before adding simple connect tests.
Move the test base class and it's dependencies into a separate file
test_base.cpp & test_base.h. The original tests.cpp will only hold the
actual tests now and will add a separate |connect_tests.cpp| for
connection tests which will need some additional parsing of input args.
BUG:
30667354
Change-Id: I7c8a5e3d7ca3a291c35ad51cb2d9d4b62adeda8f
TEST: Ran existing tests.
Roshan Pius [Fri, 29 Jul 2016 22:35:24 +0000 (15:35 -0700)]
wpa_supplicant_binder_test: Set/Get Network params
Add integration tests for network params set/get methods.
BUG:
1252274
Change-Id: I4b02bcff5c2d46d42cdd96524580bf7d1f521858
TEST: adb shell /data/wpa_supplicant_binder_test
--gtest_filter=*SetGet*
Ningyuan Wang [Mon, 1 Aug 2016 18:04:22 +0000 (11:04 -0700)]
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
Roshan Pius [Wed, 3 Aug 2016 17:17:00 +0000 (17:17 +0000)]
Merge changes I1960dfc7,I82b5eb43
* changes:
binder_dispatcher: Prevent test flakes
Add iface/network addition/removal callback tests
Roshan Pius [Tue, 26 Jul 2016 16:30:01 +0000 (09:30 -0700)]
binder_dispatcher: Prevent test flakes
Loopers & binder fd instances are sticky on a given thread. So, every
test with a new instance of |BinderDispatcher| still share the same
looper & fd instances which could lead to potential leakage of events
across tests.
Changes in the CL:
1. Stop using |PostDelayed| task to enforce the wait timeout. This could
leave behind a stale message which might affect any future tests. So,
revert back to the original design of processing each event and then
checking if the |elapsed_time| has crossed over the |timeout|.
2. In the destructor of |BinderDispatcher|, destroy the |ProcessState|
instance to trigger cleanup of the binder driver.
While there,
Flip the |needs_init| flag usage to correctly reflect the name of the
variable.
BUG:
30122642
Change-Id: I1960dfc782c6b93dcb591964b5b6cc9a984a536a
TEST: All tests run successfully.
Roshan Pius [Thu, 21 Jul 2016 15:56:41 +0000 (08:56 -0700)]
Add iface/network addition/removal callback tests
Use the |BinderDispatcher| module to verify callbacks from
wpa_supplicant for interface/network addition/removal.
BUG:
30093041
Change-Id: I82b5eb432b7c355407c3c383960b0d1258cc76ae
TEST: /data/wpa_supplicant_binder_test
Christopher Wiley [Wed, 27 Jul 2016 20:48:22 +0000 (13:48 -0700)]
Add support for creating client interfaces
Bug:
30041062
Test: unit/integration tests pass
Change-Id: I48a0adc338e474085c399750441198a4acae2cf5
TreeHugger Robot [Tue, 2 Aug 2016 15:51:08 +0000 (15:51 +0000)]
Merge "Move integration tests for IApInterface to their own file"
Christopher Wiley [Tue, 2 Aug 2016 15:50:35 +0000 (15:50 +0000)]
Merge "Add script to run related unit tests"
Christopher Wiley [Tue, 2 Aug 2016 15:49:57 +0000 (15:49 +0000)]
Merge "Give hostapd a hint that it is about to die"
Ningyuan Wang [Thu, 28 Jul 2016 22:44:10 +0000 (15:44 -0700)]
Handle control messages for NetlinkManager
BUG=
30508758
TEST=compile
TEST=unittests and intergration tests still pass
Change-Id: I6de34a4b3b7537e68a74810e4416735bc69ba3b3
Ningyuan Wang [Fri, 29 Jul 2016 23:18:00 +0000 (16:18 -0700)]
use DISALLOW_COPY_AND_ASSIGN for NetlinkManager
BUG=None
TEST=compile
Change-Id: I34d979561c85c754e8af4c06954d19b5f7153799
Ningyuan Wang [Fri, 29 Jul 2016 22:29:15 +0000 (22:29 +0000)]
Merge "Get interface name for server"
Ningyuan Wang [Fri, 29 Jul 2016 17:47:06 +0000 (10:47 -0700)]
Add IsStarted() to NetlinkManager
This is useful to prevent multiple Start() on a NetlinkManager
obejct.
BUG=
29454786
TEST=compile
TEST=unittests and intergration tests still pass
Change-Id: I006d6d9d229b16d42670534518703d9f20e602ec
Christopher Wiley [Thu, 21 Jul 2016 16:06:33 +0000 (09:06 -0700)]
Move integration tests for IApInterface to their own file
Move existing tests related to IApInterface to a new file.
Add additional test coverage to exercise IApInterface.
Bug:
30040724
Test: These tests pass. Unfortunately, hostapd start/stop
is still not as reliable as we'd like.
Change-Id: I08956798c917cf6abf09ab44c48b3588c61c8de5
Christopher Wiley [Fri, 29 Jul 2016 17:59:00 +0000 (10:59 -0700)]
Add script to run related unit tests
This helps us believe we're going to pass continuous testing.
Bug:
30501113
Change-Id: I053ae37fa80c5e75186a07e259a1d6609dbdf4ce
Test: This script reliably runs tests.
Christopher Wiley [Thu, 28 Jul 2016 22:07:47 +0000 (15:07 -0700)]
Give hostapd a hint that it is about to die
Give hostapd SIGTERM and some time do take itself down
before dropping SIGKILL on it. This is blocking, and
we'll eventually replace it with an asynchronous interface
but it keeps us healthy for now.
Bug:
30311493
Change-Id: Iadbd3a4fd5c49c42d9bba12f19cfcd65ee567a67
Test: Integration tests finally pass reliably
Ningyuan Wang [Thu, 28 Jul 2016 00:38:32 +0000 (17:38 -0700)]
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
Ningyuan Wang [Thu, 28 Jul 2016 00:08:07 +0000 (17:08 -0700)]
Do not use callback parameter for synchronous NL80211 interface
BUG=
29454786
TEST=compile
TEST=unittests and intergration tests still pass
Change-Id: Ibaf15c82035837b73021c70922e96f870fcec36b
Ningyuan Wang [Thu, 21 Jul 2016 18:12:10 +0000 (11:12 -0700)]
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
TreeHugger Robot [Wed, 27 Jul 2016 22:50:05 +0000 (22:50 +0000)]
Merge "Add function StopWatchFileDescriptor() to event_loop"
Ningyuan Wang [Tue, 26 Jul 2016 20:45:57 +0000 (13:45 -0700)]
Add function StopWatchFileDescriptor() to event_loop
This add a function StopWatchFileDescriptor() to wificond
event_loop implementation.
This function is useful when we need to clean up old fds.
This also adds the corresponding unit tests, and fixes a few
typing problems in looper unit tests.
BUG=
30442552
TEST=compile
TEST=unit tests
Change-Id: I787670c26f0389d5060362454c55525629494023
Ningyuan Wang [Tue, 26 Jul 2016 17:54:24 +0000 (10:54 -0700)]
Update netlink timeout value
android.net.ip uses 300ms as a waiting timeout for
netlink requests.
This CL updates the value according to that.
while there fixes a typo.
BUG=
29454786
TEST=compile
TEST=unit tests and intergration tests
Change-Id: I9e7b1b5ed282499cdd2bd637bc9e2a39d35ded67
Roshan Pius [Thu, 21 Jul 2016 15:55:25 +0000 (08:55 -0700)]
Add a module for binder callback handling in tests
Add a new module |BinderDispatcher| to wait for callback events
from |wificond| & |wpa_supplicant|.
The new module provides 2 public methods:
1. |DispatchFor()|: Will be invoked from the body of the test to
process all incoming binder events until |InterruptDispatch|.
2. |InterruptDispatch()|: Will be invoked from the binder object
to indicate the occurence of an event.
PS: Opted against using a multi-threaded approach here because we
anyway need to block the main thread until the callback is received.
BUG:
30122642
Change-Id: Ibfff79977bcf51942b5a67eb5b345be433ec9cc8
Christopher Wiley [Mon, 18 Jul 2016 22:30:58 +0000 (15:30 -0700)]
Control hostapd from IApInterface
Add AIDL interfaces, implementation, and tests to wificond.
Bug:
30040724
Test: unitests pass
Test: integration tests pass
Change-Id: I75339d64bf92941de26c7552b6b711cbea00eb80
Christopher Wiley [Wed, 20 Jul 2016 18:09:32 +0000 (11:09 -0700)]
Move process utilities to process_utils.cpp
These are handy for a number of other tests.
Bug:
30040724
Change-Id: I5510b0df39831c8df842d6d7c9d55ea51a2b8c0b
Test: Compiles, unit/integration tests pass
Ningyuan Wang [Tue, 19 Jul 2016 18:09:45 +0000 (11:09 -0700)]
Use different sockets for synchronous and asynchrouns netlink interface
NetlinkManager provides an interface synchronously waiting for netlink
reply.
In order not to bring in complexity of message rescheduling we use
different sockets for synchrounous and asynchrounous interfaces.
BUG=
29454786
TEST=compile
TEST=unittests pass and wificond can still get nl80211 family id
Change-Id: I3fd693882d6e1734c3ee7f470b17ffc05152f28b
TreeHugger Robot [Wed, 20 Jul 2016 18:29:23 +0000 (18:29 +0000)]
Merge "Create NetlinkManager instance"
Ningyuan Wang [Mon, 18 Jul 2016 23:27:39 +0000 (16:27 -0700)]
Create NetlinkManager instance
BUG=
29454786
TEST=compile
TEST=unittests
Change-Id: I1834cc558282ec15f92ce846e5e6921151aa64ed
Ningyuan Wang [Wed, 20 Jul 2016 16:58:57 +0000 (16:58 +0000)]
Merge "Change netlink message receive buffer size"
Ningyuan Wang [Tue, 19 Jul 2016 20:32:47 +0000 (13:32 -0700)]
Change netlink message receive buffer size
TEST=compile
BUG=
30167405
Change-Id: Ifbe39350f852978873a1858791d922d54ad75afe
Christopher Wiley [Tue, 19 Jul 2016 14:56:55 +0000 (07:56 -0700)]
Fix integration tests to not expect binder exceptions
We removed these exceptions in favor of a null binder from
createApInterface().
Bug:
30159593
Change-Id: I5789676df7068dfc01e6106321412c312fa1283b
TreeHugger Robot [Tue, 19 Jul 2016 01:43:36 +0000 (01:43 +0000)]
Merge "Expect to always get a Status::ok() from IWificond methods"
Christopher Wiley [Tue, 19 Jul 2016 00:15:28 +0000 (17:15 -0700)]
Expect to always get a Status::ok() from IWificond methods
Bug:
30159593
Change-Id: I9d9d1ee78d3fb51c801ea8a4cce877468f77613f
TreeHugger Robot [Mon, 18 Jul 2016 22:56:26 +0000 (22:56 +0000)]
Merge "Create NetlinkManager for wificond"
Ningyuan Wang [Wed, 13 Jul 2016 21:11:24 +0000 (14:11 -0700)]
Create NetlinkManager for wificond
This CL creates class NetlinkManager.
In this CL, NetlinkManager sets up netlink socket and
requests NL80211 family id from kernel.
This is the start point of all other NL80211 operations.
BUG=
29454786
TEST=compile
TEST=unit tests
TEST=manual tests
Change-Id: I3f8e08c2836d64a39243efb71cf387dab226a621
TreeHugger Robot [Mon, 18 Jul 2016 21:04:20 +0000 (21:04 +0000)]
Merge "Change include directory"
Ningyuan Wang [Fri, 15 Jul 2016 23:47:54 +0000 (16:47 -0700)]
Change include directory
This make our local headers clearly wificond prefixed.
TEST=compile
BUG=None
Change-Id: I68cc9efd2f73bec7a4cbec09a470af58420ac3e1
TreeHugger Robot [Mon, 18 Jul 2016 18:47:56 +0000 (18:47 +0000)]
Merge "Do not throw RuntimeException on error"
Christopher Wiley [Fri, 15 Jul 2016 18:30:34 +0000 (11:30 -0700)]
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.
Roshan Pius [Wed, 13 Jul 2016 18:12:34 +0000 (11:12 -0700)]
Move to ParcelableIfaceParams for |CreateInterface|
BUG:
29877893
Change-Id: I426a1fed5dc7a7d0daf6b0240910dbd4f8fa2085
TEST: /data/wpa_supplicant_binder_test
Roshan Pius [Mon, 11 Jul 2016 18:02:03 +0000 (11:02 -0700)]
Add wpa debug params setter/getter tests
Changes in the CL:
Increase wpa_supplicant debug level before test starts in
|WpaSupplicantBinderTest.Setup|.
Tests in the CL:
1. Verification of |GetDebugLevel|, |GetDebugShowTimeStamp| &
|GetDebugShowKeys| RPMC calls..
BUG:
29877893
Change-Id: Iaf504559fdd0bec5c66b7b49d80f843f188c3b6d
TEST: /data/wpa_supplicant_binder_test
Roshan Pius [Sat, 9 Jul 2016 00:04:31 +0000 (17:04 -0700)]
Add wpa |network| binder object tests
Tests in the CL:
1. AddNetwork/RemoveNetwork tests under |IIfaceTest|.
2. GetID/GetInterfaceName tests under |IINetworkTest|.
3. GetId on a stale network object.
BUG:
29877893
Change-Id: If77ab57eb5f81bcfeffff07e01be6d032d2a659f
TEST: /data/wpa_supplicant_binder_test
Roshan Pius [Fri, 8 Jul 2016 23:35:58 +0000 (16:35 -0700)]
Add wpa |iface| binder object tests.
2 tests added:
1. Verify the name of the iface from the binder object.
2. Verify that any binder calls on a removed interface raises error.
BUG:
29877893
TEST: /data/wpa_binder_test
Change-Id: I554f3ae7fc626116714b0fed076cbce9af2ef310
Roshan Pius [Thu, 7 Jul 2016 16:37:25 +0000 (09:37 -0700)]
Add wpa binder integration tests
Moving the wpa_supplicant binder interface integration tests to wificond.
These tests uses |gtests| and need to hardcode some strings for basic
verification of the binder interface. So, we probably don't want to put this in
wpa_supplicant's open source codebase.
BUG:
29877893
Change-Id: I778fceab418354e106ab36fb15fb9746a88c6947
TEST: Ran existings test on device: /data/wpa_binder_test
Christopher Wiley [Tue, 12 Jul 2016 18:46:08 +0000 (11:46 -0700)]
Change AIDL style to match other AIDL style
Bug:
30090557
Change-Id: Ic0ecca115bb94c04446edfe5c7299a70bc10e4b2
Test: Compiles
Ningyuan Wang [Wed, 13 Jul 2016 21:19:33 +0000 (21:19 +0000)]
Merge "Initial commit for NL80211Packet"
Ningyuan Wang [Thu, 7 Jul 2016 21:25:14 +0000 (14:25 -0700)]
Initial commit for NL80211Packet
This CL adds the initial implementation of class NL80211Packet
as well as the corresponding unit tests.
BUG=
29454786
TEST=compile
TEST=run unittests
Change-Id: Ide5393e77650d157cc3045ffdaaf5b62615a5346
Ningyuan Wang [Wed, 13 Jul 2016 18:22:31 +0000 (11:22 -0700)]
wificond: Fix ServerTest
ServerTest failed because we no longer turn down interface
explicitly in wificond when setting up interface mode.
TEST=compile
TEST=unit tests
Change-Id: I05448944a063bdb95885ad20aa8228fbea08288a
Christopher Wiley [Fri, 8 Jul 2016 22:15:02 +0000 (15:15 -0700)]
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
Ningyuan Wang [Thu, 7 Jul 2016 21:14:18 +0000 (21:14 +0000)]
Merge "Support more types of nl80211 attributes"
Ningyuan Wang [Thu, 30 Jun 2016 17:36:47 +0000 (10:36 -0700)]
Support more types of nl80211 attributes
This CL includes the following changes:
1.
Improve the interface design of NL80211Attribute classes.
Add a function GetAttributeValue() to NL80211NestedAttr class.
2.
Support more types of nl80211 attributes. This includes all
size of interger types, string, flag, and raw buffer.
3.
Guarantee payload size alignment by padding 0s.
4.
Support FLAG attribute by adding a function AddAttribute(int id).
We don't instanciate any flag attribute because it has no payload.
5.
Add corresponding unit tests.
BUG=
29454786
TEST=compile
TEST=run unittests
Change-Id: I3653a3babfc1df5dde42eecf4410fd636d26b956
Christopher Wiley [Fri, 24 Jun 2016 20:40:25 +0000 (13:40 -0700)]
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
Ningyuan Wang [Thu, 30 Jun 2016 21:29:11 +0000 (14:29 -0700)]
Move nl80211 code to its own library
BUG=
29454786
TEST=compile
TEST=unit tests passed
Change-Id: I30db0ec98876967221c15c1519cd5c98211ca379
TreeHugger Robot [Thu, 30 Jun 2016 18:08:58 +0000 (18:08 +0000)]
Merge "Initial commit for nl80211 attribute"
Ningyuan Wang [Fri, 24 Jun 2016 22:31:13 +0000 (15:31 -0700)]
Initial commit for nl80211 attribute
This CL includes the following changes:
1. Initial design for NL80211Attribute classes.
2. Unittests verifying the functions of NL80211Attribute
classes. This also shows how these internal interfaces
are going to be used.
BUG=
29454786
TEST=compile
TEST=run unittests
Change-Id: I52f07f9a45d5966a7787c591c5f90dc1bf55ecf8
Christopher Wiley [Mon, 27 Jun 2016 20:43:03 +0000 (13:43 -0700)]
Add a developer mode to wificond
When wificond starts up it will now check a system property
and claim a slightly different service name if the property
is set to true.
This allows us to restart wificond in a way which prevents the framework
from talking to wificond.
Bug:
29584274
Test: Modified integration tests confirm this is working.
Change-Id: I1aed389fbcb047f466f94ca568b66df4b7f9a419
Christopher Wiley [Mon, 27 Jun 2016 18:38:27 +0000 (11:38 -0700)]
Refactor initial binder configuration
Separate blocks of functionality into functions for readability.
Rename event_dispatcher_ to event_dispatcher, since it isn't a class
member.
Check that service registration was successful.
Bug:
29584274
Change-Id: Iec7c01e8974062403c1a207a80f028b70d9d11c1
Test: unit, integration tests pass
Christopher Wiley [Thu, 23 Jun 2016 00:20:04 +0000 (17:20 -0700)]
Expose IPC interfaces to create/destroy AP interfaces
Bug:
29579539
Change-Id: I49e050a6c806a5841931b1c2cddfbba7925f744a
Test: Unit, integration tests pass
Christopher Wiley [Thu, 23 Jun 2016 00:23:46 +0000 (17:23 -0700)]
Speed up LifeCycleTest
IServiceManager::checkService() returns immediately, while
getService() will block for 5 seconds.
Change-Id: Ic64add5b60bff0f509ff879fc75a0194ec883e8f
Christopher Wiley [Wed, 22 Jun 2016 21:46:18 +0000 (14:46 -0700)]
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
Ningyuan Wang [Thu, 16 Jun 2016 21:39:44 +0000 (14:39 -0700)]
Wificond: support multiple callbacks registration
This allows multiple callbacks to be registered
simultaneously with wificond chip object.
Duplicate registrations of the same callback will be ignored.
BUG=
29222398
TEST=compile
TEST=A local integration test registering same objects.
Then check log to ensure it is handled correctly.
Change-Id: I946a9935f6c839ef2f97ed345c20fc2932853b33
Ningyuan Wang [Thu, 16 Jun 2016 20:08:31 +0000 (13:08 -0700)]
Use SYSTEM instead of MAIN for wificond logging
BUG=
29418605
TEST=compile
TEST=adb logcat -b system | grep wificond
Change-Id: I1ea949cb5c9cec9884d9cf25be372a8bfd86e1cb
Ningyuan Wang [Tue, 14 Jun 2016 18:35:58 +0000 (11:35 -0700)]
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
TreeHugger Robot [Tue, 14 Jun 2016 18:00:29 +0000 (18:00 +0000)]
Merge "Keep watching file descriptor after callback is called."