You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
5.1 KiB
159 lines
5.1 KiB
/* |
|
* 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); |
|
};
|
|
|