summaryrefslogtreecommitdiffstats
path: root/wifi
Commit message (Collapse)AuthorAgeFilesLines
...
* Split libhidl into base and transport.Yifan Hong2016-11-183-5/+10
| | | | | | | Bug: 32756130 Test: mma Change-Id: Id21cf23abe2910f26bb7895511862443b93dc112
* wifi: Add APF/feature-set wrappers in WifiLegacyHalRoshan Pius2016-11-172-4/+36
| | | | | | | | | Add wrappers for retrieving the feature set supported by the device & APF functionality. Bug: 31991459 Test: Compiles Change-Id: I34b8896a21e34f688374750faefd589eca2a4de1
* wifi: Move legacy hal types to a new namespace (2/2)Roshan Pius2016-11-1614-24/+30
| | | | | | | | | Changes in HIDL interface obejcts to use the new namespace for legacy HAL. Bug: 32242225 Test: Compiles Change-Id: I7d0e9cee8656bd779a24d9eaede415317dceaf9b
* wifi: Move legacy hal types to a new namespace (1/2)Roshan Pius2016-11-162-15/+24
| | | | | | | | | | | | | | | | | | To prevent typename conflicts between the types in "hardware_legacy/wifi_hal.h" and the HIDL interface, Move all the legacy HAL types under a separate namespace (legacy_hal). This is especially needed for Nan data types. Some of the typenames are exactly the same in the legacy HAL header file and the HIDL interface. Related changes, Remove the use of |HalTool| class. This causes compilation failures because it tries to include wifi_hal.h as well (but, that is now wrapped inside a namespace). Bug: 32242225 Test: Compiles Change-Id: I937877798b81aea280d1797833745ae97fb02dc9
* wifi: Changes to WifiLegacy HalRoshan Pius2016-11-163-15/+19
| | | | | | | | | | | | | | Changes in the CL: a. Removed the usage of wifi_status_util in WifiLegacyHal. The |legacyErrorToString| log will be done in the HIDL object. This is to remove any reference of |WifiStatus| b. Moved the cleanup of function pointers to a separate helper function |invalidate|. c. Moved static constants out of WifiLegacyHal class. Bug: 32505551 Test: Compiles Change-Id: I9dc3900c40cf30de2c0a4376d4de2b08076e2b5f
* wifi: Remove passthrough modeRoshan Pius2016-11-161-21/+2
| | | | | | | | | Wifi HAL is not going to support HIDL passthrough mode. So, remove the target definition. Bug: 32376894 Test: Compiles Change-Id: I43740541f576746826d75c6ac48a11bb2a619227
* wifi: Stub implementation of WifiNanIface methodsRoshan Pius2016-11-162-0/+362
| | | | | | Bug: 31991076 Test: Compiles Change-Id: Ia3723a14af20176c08e6e466e8b55bb32c8f9d41
* wifi: Stub implementation of WifiRttController methodsRoshan Pius2016-11-162-0/+272
| | | | | | Bug: 31991232 Test: Compiles Change-Id: I90f803ae19746ef844280cd8df96987e350f8a3f
* wifi: Stub implementation of WifiStaIface methodsRoshan Pius2016-11-162-0/+281
| | | | | | | Bug: 32221997 Bug: 31991459 Test: Compiles Change-Id: Iefc68958befc549fd9100b29f84cb6e6d73efe95
* wifi: Stub implementation of WifiChip methodsRoshan Pius2016-11-162-4/+109
| | | | | | Bug: 32221997 Test: Compiles Change-Id: I627a05ce17d8b0e87101f395c3b3d6c10d3c440c
* wifi: Use hidl_return_util functions in Iface/RttRoshan Pius2016-11-1610-74/+132
| | | | | | | | | Modify the WifiIface & WifiRttController methods to the use the new helper functions. Bug: 32337072 Test: Compiles Change-Id: I8ce5450f3012ea3ad699db3c780c0bf985492aad
* wifi: Use hidl_return_util functions in WifiChipRoshan Pius2016-11-164-279/+313
| | | | | | | | | | | | | | | | | 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
* wifi: Helper functions for invoking hidl cont callbacksRoshan Pius2016-11-164-44/+192
| | | | | | | | | | | | | | | | | | 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
* wifi: Make methods deliver status synchronously (3/3)Roshan Pius2016-11-1613-44/+86
| | | | | | | | | | | | | | | 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
* wifi: Make methods deliver status synchronously (2/3)Roshan Pius2016-11-162-143/+191
| | | | | | | | | | | | | | | | | 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
* wifi: Make methods deliver status synchronously (1/3)Roshan Pius2016-11-162-41/+44
| | | | | | | | | | | | | | | | | | | | 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
* wifi: Rename failure_reason_util to wifi_status_utilRoshan Pius2016-11-163-28/+40
| | | | | | | | | | | | | 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
* wifi(interface): Add status for all methodsRoshan Pius2016-11-161-4/+19
| | | | | | | | | 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
* wifi(interface): Add wifi host debug wake up reason statsRoshan Pius2016-11-163-0/+265
| | | | | | | | | | | 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
* wifi(interface): Add wifi debug packet fate related interfaceRoshan Pius2016-11-164-0/+522
| | | | | | | | | | | | | | | 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
* wifi(interface): Add wifi debug ring buffer related interfaceRoshan Pius2016-11-164-7/+1073
| | | | | | | | | | | | | | | 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
* wifi(interface): Move all StaIface types to types.halRoshan Pius2016-11-164-315/+762
| | | | | | | | | | 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
* wifi(interface): Fix compilation failureRoshan Pius2016-11-163-563/+396
| | | | | | | | | | | | | | 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
* wifi(interface): Rtt controller HIDL interfaceRoshan Pius2016-11-167-16/+1581
| | | | | | Bug: 31991232 Test: ./hardware/interfaces/update-makefiles.sh Change-Id: I53b95e85ee8a71bcb0494420913c9511f87908c0
* wifi(interface): NAN HIDL interfaceRoshan Pius2016-11-167-11/+3954
| | | | | | | | | | | | 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
* wifi(interface): Link layer stats collectionRoshan Pius2016-11-162-5/+173
| | | | | | | | | | | | 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
* wifi(interface): Make methods synchronousRoshan Pius2016-11-1610-330/+245
| | | | | | | | | | | | | | | 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
* wifi(interface): Add status for every methodRoshan Pius2016-11-166-49/+234
| | | | | | | | | | | | | | | | 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
* wifi(interface): Add gscan/apf related API'sRoshan Pius2016-11-166-6/+458
| | | | | | | | | | | 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
* supplicant(interface): Fix compilation failureRoshan Pius2016-11-161-2/+2
| | | | | | | | The generated code uses the variable |code| internally. Bug: 31116047 Test: mmm -j32 hardware/interfaces/wifi/supplicant/1.0/ Change-Id: Ic6d0c9a198a026460f67fa4920b8003a304f6727
* supplicant(interface): Add support for Hotspot 2.0Roshan Pius2016-11-102-0/+139
| | | | | | | | | | | 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
* Merge "supplicant(interface): Support P2P operations"Roshan Pius2016-11-093-0/+483
|\
| * supplicant(interface): Support P2P operationsRoshan Pius2016-11-083-0/+483
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add methods for all the P2P related operations. This is a subset of P2P functionalities exposed by wpa_supplicant used in the Android codebase currently. While there, Add missing |FAILURE_ARGS_INVALID| status code in the setter methods in ISupplicantStaNetwork.hal Bug: 31497295 Test: ./hardware/interfaces/update-makefiles.sh Change-Id: I657ef6deaa6203bcf890c43f98a32f6230962d04
* | Merge "Support genrules with multiple tools"Colin Cross2016-11-072-8/+8
|\ \ | |/ |/|
| * Support genrules with multiple toolsColin Cross2016-11-072-8/+8
| | | | | | | | | | | | | | | | | | | | | | To allow genrules with more than one tool, rename the tool property to tools and make it an array, replace $tool with $(location <label>), and use $() for other variables for consistency. Bug: 31948427 Test: compare build.ninja Change-Id: I3d714f70a2af0dc60faeee10e09b6ed166601f1d (cherry picked from commit b785f5b82ef2efa62ca9d7288cfff64c178080b0)
* | supplicant(interface): Remove "wpa_supplicant"Roshan Pius2016-11-0312-39/+39
|/ | | | | | | | sed -i "s/wpa_supplicant/the supplicant/g" *.hal Bug: 32602594 Test: Compiles Change-Id: Id905cabba29359db8727c131fb64357dfbb104cd
* wpa_supplicant(interface): Remove create/remove iface methods from HIDLRoshan Pius2016-11-021-31/+20
| | | | | | | | Use a new struct(IfaceInfo) to list and get iface objects from the root. Bug: 32577464 Test: ./hardware/interfaces/update-makefiles.sh Change-Id: I912d37f62767980e7f88de5b4439425276de50f8
* wpa_supplicant(interface): Add iface/network typeRoshan Pius2016-11-0213-850/+1419
| | | | | | | | | | | | | Add separate types of Iface/Network object for STA (station mode) and P2P mode ifaces and associated networks. These expose very different functionality and exposing 2 different types of objects makes the interface cleaner. Although, they're still represented via the same struct for both types in the wpa_supplicant core. Bug: 32553421 Test: ./hardware/interfaces/update-makefiles.sh Change-Id: I41601a650709429c65014cb7adaf6cb9ab03787e
* Running update-makefiles for fixed spacing.Steven Moreland2016-11-012-8/+8
| | | | | Test: pass Change-Id: I4dcaf70b1c014f3ecf685d4884601be6f17ee51d
* Stop all these merge conflicts.Steven Moreland2016-10-261-0/+5
| | | | | Test: mma -j64 Change-Id: I319198af32adf1fef180c5c2c22ba4b360fa7609
* Update headers (for export shared lib headers)Steven Moreland2016-10-222-0/+10
| | | | | | Test: mma -j64 Bug: 32337293 Change-Id: I93e7cab90efac407525a1a5f2ad30f816a530e17
* wifi: Removing reference to IServiceManager.h.Steven Moreland2016-10-211-1/+0
| | | | | | | Bug: 32313592 Test: make Change-Id: If1b842c563b5934b58fb328c2f2315c42ae6fc06
* wifi: Invoke failure callbacksRoshan Pius2016-10-111-0/+18
| | | | | | | | | Invoke the failure callbacks for |requestChipDebugInfo|, |requestDriverDebugDump| and |requestFirmwareDebugDump| methods. Bug: 32014425 Test: Compiles Change-Id: I49b8ae93fe846df6d9663b10d2a70eb89bd00931
* wifi: Add WifiRttController objectRoshan Pius2016-10-115-0/+131
| | | | | | | | | Create the WifiRttController object and add the createRttController method in WifiChip. Bug: 31991232 Test: Compiles Change-Id: I34649097c96488c660bef5acceac1a6478f80dca
* wifi: Add Iface related method implementations in WifiChipRoshan Pius2016-10-112-11/+245
| | | | | | | | | | | | | | | | | | | Add the iface creation/retrieval/list method implementations in WifiChip. WifiChip does not yet support the chip mode configuration. So, all |createIface| method calls succeed today. Once the mode configuration changes are in place, we will deny iface creation requests depending on the iface combination supported in the current mode. The iface objects are all invalidated and deleted on mode switches and when HAL is stopped. While there, Change the |callbacks_| member to std::vector instead of std::set. We don't really need a set to store the list of callbacks. Bug: 31943042 Test: Compiles Change-Id: Ic94864c8b11aabbe569b5157d68d6056364a3c4c
* wifi: Add the various iface object implementationRoshan Pius2016-10-1110-3/+467
| | | | | | | | | | | | | This CL adds the implementation classes for the various iface HIDL interfaces defined. These classes implement the |getName| & |getType| methods in the Iface HIDL interface. Integration of these objects with WifiChip class is implemented in the next CL. Bug: 31943042 Test: Compiles Change-Id: I219afd6441e15c76cf7c61f7bcd2b3568dba2b98
* wifi: Remove "Wlan" prefix from wifi_legacy_hal public methodsRoshan Pius2016-10-113-20/+43
| | | | | | | | | | | | | | All the legacy HAL API's in the function table uses the "wlan0" interface handle for the various operations. But, this is an internal detail that should be abstracted inside WifiLegacyHal class. So, rename the public methods to remove the "Wlan" prefix from them. Also, add methods to fetch the iface names to use for the various types of HAL. Bug: 31943042 Test: Compiles Change-Id: I35a6cdea0ad7cff295d33c0245953258129fba43
* wifi: Add support for multiple chips in IWifiRoshan Pius2016-10-114-10/+37
| | | | | | | | | | | | | | | | The modified HIDL interface supports multiple chip instances on the device. Modify the |IWifi| interface implementation to support the new methods. NOTE: The legacy HAL implementation will continue to only expose 1 chip. While there, Change the |callbacks_| member to std::vector instead of std::set. We don't really need a set to store the list of callbacks. Bug: 32003988 Test: Compiles Change-Id: I31e704100f716e223095890279bdf93d2a04377e
* wifi(interface): Add RTT Controller objectRoshan Pius2016-10-114-0/+102
| | | | | | | | | | | | | Create a RTT controller object to use for initiating all the RTT related HAL opertations. Since we don't want to fix the iface on which to initiate RTT operations, these methods will be rooted in a new standalone object |RttController|. Framework can decide to intiate an instance of |RttController| on a specified iface or let the implementation pick one. Bug: 31991232 Test: Interface compiles. Change-Id: I65f7a7babd72db26ce6549f572abd9ef73700c82
* wifi(interface): Add Iface objectsRoshan Pius2016-10-1110-12/+596
| | | | | | | | | | | | | | | | | | | Create a child object under IWifiChip to represent each interface within the chip. Each iface object has a |type| & |ifname| which should help us uniquely identify them. This should help us expose methods that are applicable only to a specific interface type. While there, Assign a unique id to every chip on the device. Add IWifi.listChipIds() to retrieve the list of chip Id's avaiable on the device. IWifi.getChip() will now use the provided Id to retrieve the corresponding IWifiChip object(because HIDL language doesn't support vec<HIDL objects>). Bug: 31943042 Bug: 32003988 Test: Interface compiles (not implementation) Change-Id: I723007566ca4220362c02d0f452753fee4e31fce