Commit graph

464 commits

Author SHA1 Message Date
Roshan Pius
e65ad43046 wifi: Stub implementation of WifiStaIface methods
am: a04ba3fcb8

Change-Id: Ie61978114eb86f11e3e8f56e15a6d4293bbf4c88
2016-11-17 00:57:02 +00:00
Roshan Pius
3e8793aadf wifi: Stub implementation of WifiChip methods
am: 7d08d7a16d

Change-Id: If81d1003542b4131448c11df5a3e7c00a6c00fab
2016-11-17 00:57:01 +00:00
Roshan Pius
dd5c2b8990 wifi: Use hidl_return_util functions in Iface/Rtt
am: 907d4a234d

Change-Id: I224f3edf8aefe3e47e1604b457e5aa57b9c7a301
2016-11-17 00:57:00 +00:00
Roshan Pius
7022158220 wifi: Use hidl_return_util functions in WifiChip
am: 3c86852a2e

Change-Id: I69b20794be77270122718960ce8771ce1f451d40
2016-11-17 00:56:59 +00:00
Roshan Pius
1ab8395a21 wifi: Helper functions for invoking hidl cont callbacks
am: 5647665827

Change-Id: Id86ad2d1bf0a711622a5c1300437b027d08790d3
2016-11-17 00:56:58 +00:00
Roshan Pius
815e61624f wifi: Make methods deliver status synchronously (3/3)
am: 734fea0d98

Change-Id: I749781becee892317f741ca561ee825546870163
2016-11-17 00:56:57 +00:00
Roshan Pius
dbfb6017fb wifi: Make methods deliver status synchronously (2/3)
am: 5c05546fc9

Change-Id: Icd12fff4544ffadd62cd8a040a37a6542b829695
2016-11-17 00:56:56 +00:00
Roshan Pius
40dac08a47 wifi: Make methods deliver status synchronously (1/3)
am: 503582ed94

Change-Id: I868296a715c673937a1ce17100b392ef02b3d196
2016-11-17 00:56:55 +00:00
Roshan Pius
5aaf00608a wifi: Rename failure_reason_util to wifi_status_util
am: 1922482a5c

Change-Id: I32955402c44c8d4f6a961241d412efaeba508374
2016-11-17 00:56:53 +00:00
Roshan Pius
bedd03bc48 wifi(interface): Add status for all methods
am: 02caa1b821

Change-Id: I96bd199b2d739d5371b9f0cd761440df7cdc6eb3
2016-11-17 00:56:52 +00:00
Roshan Pius
3dd396eb5e wifi(interface): Add wifi host debug wake up reason stats
am: e0724f98b0

Change-Id: Ife791e5b1ca8046713a202e49b0a426b2c9abcae
2016-11-17 00:56:49 +00:00
Roshan Pius
17fe2cc0e4 wifi(interface): Add wifi debug packet fate related interface
am: fe9ad36cb2

Change-Id: I63b0ff50906590a4af3b1854c89cd47ea12506cb
2016-11-17 00:56:48 +00:00
Roshan Pius
ae8029852e wifi(interface): Add wifi debug ring buffer related interface
am: e3a02b07b6

Change-Id: I1cac68e450cc87b8674ca00120964bf9dfcc0a9f
2016-11-17 00:56:47 +00:00
Roshan Pius
c4b36d8100 wifi(interface): Move all StaIface types to types.hal
am: 5e25466ebf

Change-Id: I2815c82897e31ea35fd6d0ae3e2e3feb20e750b6
2016-11-17 00:56:46 +00:00
Roshan Pius
55aee95115 wifi(interface): Fix compilation failure
am: e03f736ca0

Change-Id: I687c4da68d93a7657991eb92cecb3f4e4c4d4986
2016-11-17 00:56:45 +00:00
Roshan Pius
4c0a4e5ae4 wifi(interface): Rtt controller HIDL interface
am: 18eec81adc

Change-Id: Idb2a967fe289216ad5e37a4f04ac15be7a97c215
2016-11-17 00:56:44 +00:00
Roshan Pius
ea3058f9c1 wifi(interface): NAN HIDL interface
am: 120f94c594

Change-Id: I22788dd6cd85b18c06c7bca7de53e5c1fabf5d1f
2016-11-17 00:56:43 +00:00
Roshan Pius
d195f76d21 wifi(interface): Link layer stats collection
am: 18680b7aff

Change-Id: Id21f5179208d3b5671541747894fdd875d43d8f0
2016-11-17 00:56:42 +00:00
Roshan Pius
0f0a37f375 wifi(interface): Make methods synchronous
am: a52dc7322d

Change-Id: Iee14349de899301b1b8b7ee8b1b0e24d61f5ac2c
2016-11-17 00:56:41 +00:00
Roshan Pius
556482ab99 wifi(interface): Add status for every method
am: 1f9073cfcb

Change-Id: Ic839dad94f04d974f49f67ffd125ac302a9b4fea
2016-11-17 00:56:40 +00:00
Roshan Pius
1f212a6566 wifi(interface): Add gscan/apf related API's
am: 7b77747bb5

Change-Id: Ib5efe1acd06649e65c88a3721e455725b2206778
2016-11-17 00:56:38 +00:00
Roshan Pius
a04ba3fcb8 wifi: Stub implementation of WifiStaIface methods
Bug: 32221997
Bug: 31991459
Test: Compiles
Change-Id: Iefc68958befc549fd9100b29f84cb6e6d73efe95
2016-11-16 14:57:07 -08:00
Roshan Pius
7d08d7a16d wifi: Stub implementation of WifiChip methods
Bug: 32221997
Test: Compiles
Change-Id: I627a05ce17d8b0e87101f395c3b3d6c10d3c440c
2016-11-16 14:57:07 -08:00
Roshan Pius
907d4a234d wifi: Use hidl_return_util functions in Iface/Rtt
Modify the WifiIface & WifiRttController methods to the use the new helper
functions.

Bug: 32337072
Test: Compiles
Change-Id: I8ce5450f3012ea3ad699db3c780c0bf985492aad
2016-11-16 14:57:07 -08:00
Roshan Pius
3c86852a2e wifi: Use hidl_return_util functions in WifiChip
Modify the WifiChip methods to the use the new helper functions.

Also,
1. Modify the WifiLegacyHal.requestDriverMemoryDump &
WifiLegacyHal.requestDriverMemoryDump to return a vector of |uint8_t|
instead of |char| to avoid unnecessary typecasting in the HIDL methods.
2. Remove |createHidlVecOfIfaceNames| helper function as most of the
necessary conversion should be handled by hidl_vec/hidl_string
constructors.

Bug: 32337072
Test: Compiles

Change-Id: Ic0b7aa2a5a078e53d5bc5bef18995a3cc0f548a1
2016-11-16 14:57:07 -08:00
Roshan Pius
5647665827 wifi: Helper functions for invoking hidl cont callbacks
The helper functions are used to invoke an internal method which
implements the functionality and then invoke the HIDL callback
with the return values.

HIDL's auto-generated code uses on-stack callbacks to return
non-primitive/multiple values from HIDL methods. This is unwieldy and
the implementation of the method's functionality gets mixed up with the
semantics of handling these callbacks. This tries to hide the semantics
of HIDL auto-generated code from the functionality.

Converted all IWifi methods to use these new helper functions.

Bug: 32337072
Test: Compiles
Change-Id: I57cbafcc2ecb52ec5055f4bd80bc064bd438b850
2016-11-16 14:57:07 -08:00
Roshan Pius
734fea0d98 wifi: Make methods deliver status synchronously (3/3)
Make all the |IWifiIface|/|IWifiRttController| HIDL interface
methods return a synchronous status code. Change from using the event
callbacks to the synchronous callbacks for delivering status.

While there,
Use the default std::string to hidl_string constructor in status
callbacks.

Bug: 32056230
Bug: 32061909
Test: Compiles
Change-Id: Ifa06a11afb085bfd6684f7b997fb730d192018ea
2016-11-16 14:57:07 -08:00
Roshan Pius
5c05546fc9 wifi: Make methods deliver status synchronously (2/3)
Make all the |IWifiChip| HIDL interface methods return a synchronous
status code. Change from using the event callbacks to the synchronous
callbacks for delivering status.

While there,
1. Use std::tie to retrive values out of the legacy HAL functions returning
a pair.
2. Use the std::vector to hidl_vec constructor for returning vector of
ifnames.

Bug: 32056230
Bug: 32061909
Test: Compiles
Change-Id: Iac27521be17cd9852df04ad7d412e09160a08d33
2016-11-16 14:57:07 -08:00
Roshan Pius
503582ed94 wifi: Make methods deliver status synchronously (1/3)
Make the following |IWifi| HIDL interface methods return a synchronous
status code:
a) start()
b) stop()
The other methods in this interface do not have a failure case and hence
not returning a status code.

This changes the nature of event callbacks registered for each
interface. Previously, every operation's status was sent to all the
registered event callbacks. Now, only the caller is notified of the
operation's status via the passed synchronous callbacks. The event
callbacks are now used to broadcast only important state changes/events.

Bug: 32056230
Bug: 32061909
Test: Compiles
Change-Id: I95dc3fa139ac3ac7500d81e9e0dbc4f4de04e127
2016-11-16 14:57:02 -08:00
Roshan Pius
1922482a5c wifi: Rename failure_reason_util to wifi_status_util
The HIDL interface now returns a |WifiStatus| instance to indicate the
status of any operation. This is replacing the existing asynchronous
delivery of success or failure (using |FailureReason| instance).

Rename the existing util class to |wifi_status_util| and add a couple of
methods to create a |WifiStatus| instance with empty description.

Bug: 32056230
Test: Compiles
Change-Id: I8488f7cd7d6ad6bd7a0c3c82a7ef83299d877d45
2016-11-16 11:05:16 -08:00
Roshan Pius
02caa1b821 wifi(interface): Add status for all methods
Add missing status returns for a few HIDL methods. This is to keep the
interface consistent.

Bug: 32146455
Test: update_makefile.sh
Change-Id: Ia66fe4d00e884e5ce1e1906db77bb5ffdaebffdd
2016-11-16 11:05:16 -08:00
Roshan Pius
e0724f98b0 wifi(interface): Add wifi host debug wake up reason stats
These stats are used to determine if the device is being woken up
frequently by the wlan chipset. The stats structure describe all the
various resons for which the host was woken up by the wlan chipset
(firmware).

Bug: 32221997
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: Id52915348fef0283affcd834c6f1db5055e54ace
2016-11-16 11:05:16 -08:00
Roshan Pius
fe9ad36cb2 wifi(interface): Add wifi debug packet fate related interface
The packet fate debug mechanism is used to track the state of all the
packets transmitted/received during the association process.

Also,
Add the various debug capabilities in the respective interfaces.
All ring buffer, driver/firmware dump, etc related capabilities are in
IWifiChip object.
The packet fate capability is exposed in IWifiStaIface object.

Bug: 32221997
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: Ic6bf49d682b70a1cdcd18c69fc25a544921bd548
2016-11-16 11:05:16 -08:00
Roshan Pius
e3a02b07b6 wifi(interface): Add wifi debug ring buffer related interface
The debug ring buffers is a purely debug mechanism to let the driver
report debug info like connection events, power events, etc to the
framework.
The framework used to previously dump out the raw byte stream in
the bugreport and the vendors had some tools to parse out the data.
This is now being changed to provide the framework with the
internal ring buffer structs to ease parsing this data in framework
itself. This will eventually be used in the new wifilogd daemon.

Bug: 32221997
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: I2c90662cfa9d07ae6fc72198a286338dbaacbfc2
2016-11-16 11:05:16 -08:00
Roshan Pius
5e25466ebf wifi(interface): Move all StaIface types to types.hal
Some of these structs are used in the debug framework and hence needs to
live in types.hal. Add a |Sta| prefix to differentiate them from other
types similar to what is done for Nan and Rtt types.

Bug: 31991459
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: Idc49b28447609c4334b0a086481c404c06a63fea
2016-11-16 11:05:16 -08:00
Roshan Pius
e03f736ca0 wifi(interface): Fix compilation failure
Changes in the CL:
a) Unions are not allowed in the HIDL generated code that is going to be
used in java.
b) Few RTT constants were defined twice in the legacy rtt.h. One set
as enums, the other set as #define's. Remove the duplicated values in
the HIDL interface.

Bug: 31991076
Bug: 31991232
Test: mmm -j32 hardware/interfaces/wifi/1.0/
Change-Id: I03db70c7b89c0be53a7754ab8b34a19ad2c6e536
2016-11-16 11:05:16 -08:00
Roshan Pius
18eec81adc wifi(interface): Rtt controller HIDL interface
Bug: 31991232
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: I53b95e85ee8a71bcb0494420913c9511f87908c0
2016-11-16 11:05:16 -08:00
Roshan Pius
120f94c594 wifi(interface): NAN HIDL interface
Interface is mostly a replication of the wifi_nan.h HAL header file.
1. All the methods are in |IWifiNanIface|.
2. Moved all the callbacks to |IWifiNanIfaceEventCallback.hal|.
2. Moved all the data types to |types.hal|.
3. Changed all the variable size arrays to vecs.

Bug: 31991076
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: I2af0b0003cf30a0f2bfdcb56b69c492cf831745b
2016-11-16 11:05:16 -08:00
Roshan Pius
18680b7aff wifi(interface): Link layer stats collection
Add HIDL methods for STA iface link layer stats.

While there,
Add the missing gscan API for fetching a list of channels for a given
band.

Bug:31991459
Test: Compiles
Change-Id: I5d448eb823faae4e8f5c25f746cf59e70df454cf
2016-11-16 11:05:16 -08:00
Roshan Pius
a52dc7322d wifi(interface): Make methods synchronous
Having all the HIDL methods asynchronous, makes it hard for the
calling code to keep track of the operation status/result.
There are some operations which will generate asynchronous results (like
bgscan), convert all the other methods to synchronous methods.

The |EventCallback| objects will now just broadcast important events
(needed for other clients to listen for state changes). This will no
longer be used to send responses to every command sent to the HAL.

Bug: 32061909
Test: `./hardware/interfaces/update-makefiles.sh`
Change-Id: Id2433f4c8e028268dd027cdeb239ba4082b157b5
2016-11-16 11:05:16 -08:00
Roshan Pius
1f9073cfcb wifi(interface): Add status for every method
Add a status parameter for every HIDL interface object method which can
possibly become invalid. This should help inform the caller that the
object being used is stale/invalid now.

While there,
Rename |CommandFailureReson| to |FailureReasonCode|.

NOTE: |FailureReason| will continue to indicate any errors during the
processing of the command via the corresponding |onFailure| callback.

Bug: 32056230
Test: Compiles
Change-Id: I2ec5af3075221e483579410f344bcedd6bf17a93
2016-11-16 11:05:16 -08:00
Roshan Pius
7b77747bb5 wifi(interface): Add gscan/apf related API's
Changes in the CL:
1. Add gscan/APF related API's to |IWifiStaIface|.
2. Add a new callback HIDL interface (|IWifiStaIfaceEventCallback)
for all callbacks received from |IWifiStaIface|.

Bug: 31991459
Test: Compiles
Change-Id: Id9f2ded9e20bee393ab53d84efa814d52704cd2c
2016-11-16 11:05:16 -08:00
Roshan Pius
211c3b874c supplicant(interface): Fix compilation failure
am: 9e01c51793

Change-Id: Ib0fa885cb256ca000ca04e3bface3690bbd6f1fc
2016-11-16 19:00:29 +00:00
Roshan Pius
9e01c51793 supplicant(interface): Fix compilation failure
The generated code uses the variable |code| internally.

Bug: 31116047
Test: mmm -j32 hardware/interfaces/wifi/supplicant/1.0/
Change-Id: Ic6d0c9a198a026460f67fa4920b8003a304f6727
2016-11-16 10:29:37 -08:00
Roshan Pius
21e39f87e4 Merge "supplicant(interface): Add support for Hotspot 2.0"
am: 06a3daad19

Change-Id: I6784df7d3dcc34483f4b7c681d64d4d4e76c9fc0
2016-11-16 17:32:37 +00:00
Roshan Pius
06a3daad19 Merge "supplicant(interface): Add support for Hotspot 2.0" 2016-11-16 17:24:13 +00:00
Roshan Pius
b76dbbef4f supplicant(interface): Add support for Hotspot 2.0
HIDL interface to
a) Initiate ANQP queries & icon queries for hotspot 2.0
b) Add callbacks for the reception of WNM frames (hotspot
remediation, deauth imminent notice).

Bug: 31116047
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: Ib3353f04b493f50c6415d1f3475efa957d921540
2016-11-10 15:16:28 -08:00
Connor O'Brien
22cb80d62f Merge "Run boot HAL service as root"
am: 72882f05ec

Change-Id: I524ad08c38268fb37d51a1006b72c263bf9b2cd5
2016-11-10 20:40:54 +00:00
Connor O'Brien
72882f05ec Merge "Run boot HAL service as root" 2016-11-10 20:23:01 +00:00
Sanket Padawe
1545f16308 Merge "Extend Telephony HIDL interface to include unsolicited RIL commands."
am: d91322ea43

Change-Id: I47481fb3f145fe5e53649716b989dd4120556518
2016-11-10 00:05:40 +00:00