| /* |
| * Copyright 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.hardware.wifi.supplicant@1.0; |
| |
| import ISupplicantCallback; |
| import ISupplicantIface; |
| |
| /** |
| * Interface exposed by the supplicant HIDL service registered |
| * with the hardware service manager. |
| * This is the root level object for any the supplicant interactions. |
| */ |
| interface ISupplicant { |
| /** |
| * Debug levels for the supplicant. |
| * Only log messages with a level greater than the set level |
| * (via |setDebugParams|) will be logged. |
| */ |
| enum DebugLevel : uint32_t { |
| EXCESSIVE = 0, |
| MSGDUMP = 1, |
| DEBUG = 2, |
| INFO = 3, |
| WARNING = 4, |
| ERROR = 5 |
| }; |
| |
| /** |
| * Structure describing the type and name of an iface |
| * controlled by the supplicant. |
| */ |
| struct IfaceInfo { |
| /** |
| * Type of the network interface. |
| */ |
| IfaceType type; |
| /** |
| * Name of the network interface, e.g., wlan0 |
| */ |
| string name; |
| }; |
| |
| /** |
| * Gets a HIDL interface object for the interface corresponding to iface |
| * name which the supplicant already controls. |
| * |
| * @param ifaceInfo Combination of the iface type and name retrieved |
| * using |listInterfaces|. |
| * @return status Status of the operation. |
| * Possible status codes: |
| * |SupplicantStatusCode.SUCCESS|, |
| * |SupplicantStatusCode.FAILURE_UNKNOWN|, |
| * |SupplicantStatusCode.FAILURE_IFACE_UNKOWN| |
| * @return iface HIDL interface object representing the interface if |
| * successful, null otherwise. |
| */ |
| getInterface(IfaceInfo ifaceInfo) |
| generates (SupplicantStatus status, ISupplicantIface iface); |
| |
| /** |
| * Retrieve a list of all the interfaces controlled by the supplicant. |
| * |
| * The corresponding |ISupplicantIface| object for any interface can be |
| * retrieved using |getInterface| method. |
| * |
| * @return status Status of the operation. |
| * Possible status codes: |
| * |SupplicantStatusCode.SUCCESS|, |
| * |SupplicantStatusCode.FAILURE_UNKNOWN| |
| * @return ifaces List of all interfaces controlled by the supplicant. |
| */ |
| listInterfaces() generates (SupplicantStatus status, vec<IfaceInfo> ifaces); |
| |
| /** |
| * Register for callbacks from the supplicant service. |
| * |
| * These callbacks are invoked for global events that are not specific |
| * to any interface or network. Registration of multiple callback |
| * objects is supported. These objects must be deleted when the corresponding |
| * client process is dead. |
| * |
| * @param callback An instance of the |ISupplicantCallback| HIDL interface |
| * object. |
| * @return status Status of the operation. |
| * Possible status codes: |
| * |SupplicantStatusCode.SUCCESS|, |
| * |SupplicantStatusCode.FAILURE_UNKNOWN| |
| */ |
| registerCallback(ISupplicantCallback callback) |
| generates (SupplicantStatus status); |
| |
| /** |
| * Set debug parameters for the supplicant. |
| * |
| * @param level Debug logging level for the supplicant. |
| * (one of |DebugLevel| values). |
| * @param timestamp Determines whether to show timestamps in logs or |
| * not. |
| * @param showKeys Determines whether to show keys in debug logs or |
| * not. |
| * CAUTION: Do not set this param in production code! |
| * @return status Status of the operation. |
| * Possible status codes: |
| * |SupplicantStatusCode.SUCCESS|, |
| * |SupplicantStatusCode.FAILURE_UNKNOWN| |
| */ |
| setDebugParams(DebugLevel level, bool showTimestamp, bool showKeys) |
| generates (SupplicantStatus status); |
| |
| /** |
| * Get the debug level set. |
| * |
| * @return level one of |DebugLevel| values. |
| */ |
| getDebugLevel() generates (DebugLevel level); |
| |
| /** |
| * Get whether the timestamps are shown in the debug logs or not. |
| * |
| * @return enabled true if set, false otherwise. |
| */ |
| isDebugShowTimestampEnabled() generates (bool enabled); |
| |
| /** |
| * Get whether the keys are shown in the debug logs or not. |
| * |
| * @return enabled true if set, false otherwise. |
| */ |
| isDebugShowKeysEnabled() generates (bool enabled); |
| |
| /** |
| * Set concurrency priority. |
| * |
| * When both P2P and STA mode ifaces are active, this must be used |
| * to prioritize either STA or P2P connection to resolve conflicts |
| * arising during single channel concurrency. |
| * |
| * @param type The type of iface to prioritize. |
| * @return status Status of the operation. |
| * Possible status codes: |
| * |SupplicantStatusCode.SUCCESS|, |
| * |SupplicantStatusCode.FAILURE_UNKNOWN| |
| */ |
| setConcurrencyPriority(IfaceType type) generates (SupplicantStatus status); |
| }; |