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.
237 lines
7.9 KiB
237 lines
7.9 KiB
4 months ago
|
/*
|
||
|
* 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;
|
||
|
|
||
|
/**
|
||
|
* Callback Interface exposed by the supplicant service
|
||
|
* for each P2P mode interface (ISupplicantP2pIface).
|
||
|
*
|
||
|
* Clients need to host an instance of this HIDL interface object and
|
||
|
* pass a reference of the object to the supplicant via the
|
||
|
* corresponding |ISupplicantP2pIface.registerCallback| method.
|
||
|
*/
|
||
|
interface ISupplicantP2pIfaceCallback {
|
||
|
/**
|
||
|
* WPS Device Password ID
|
||
|
*/
|
||
|
enum WpsDevPasswordId : uint16_t {
|
||
|
DEFAULT = 0x0000,
|
||
|
USER_SPECIFIED = 0x0001,
|
||
|
MACHINE_SPECIFIED = 0x0002,
|
||
|
REKEY = 0x0003,
|
||
|
PUSHBUTTON = 0x0004,
|
||
|
REGISTRAR_SPECIFIED = 0x0005,
|
||
|
NFC_CONNECTION_HANDOVER = 0x0007,
|
||
|
P2PS_DEFAULT = 0x0008
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Status codes for P2P operations.
|
||
|
*/
|
||
|
enum P2pStatusCode : uint32_t {
|
||
|
SUCCESS = 0,
|
||
|
FAIL_INFO_CURRENTLY_UNAVAILABLE = 1,
|
||
|
FAIL_INCOMPATIBLE_PARAMS = 2,
|
||
|
FAIL_LIMIT_REACHED = 3,
|
||
|
FAIL_INVALID_PARAMS = 4,
|
||
|
FAIL_UNABLE_TO_ACCOMMODATE = 5,
|
||
|
FAIL_PREV_PROTOCOL_ERROR = 6,
|
||
|
FAIL_NO_COMMON_CHANNELS = 7,
|
||
|
FAIL_UNKNOWN_GROUP = 8,
|
||
|
FAIL_BOTH_GO_INTENT_15 = 9,
|
||
|
FAIL_INCOMPATIBLE_PROV_METHOD = 10,
|
||
|
FAIL_REJECTED_BY_USER = 11,
|
||
|
SUCCESS_DEFERRED = 12,
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Status codes for P2P discovery.
|
||
|
*/
|
||
|
enum P2pProvDiscStatusCode : uint8_t {
|
||
|
SUCCESS = 0,
|
||
|
TIMEOUT = 1,
|
||
|
REJECTED = 2,
|
||
|
TIMEOUT_JOIN = 3,
|
||
|
INFO_UNAVAILABLE = 4
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Used to indicate that a new network has been added.
|
||
|
*
|
||
|
* @param id Network ID allocated to the corresponding network.
|
||
|
*/
|
||
|
oneway onNetworkAdded(SupplicantNetworkId id);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate that a network has been removed.
|
||
|
*
|
||
|
* @param id Network ID allocated to the corresponding network.
|
||
|
*/
|
||
|
oneway onNetworkRemoved(SupplicantNetworkId id);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate that a P2P device has been found.
|
||
|
*
|
||
|
* @param srcAddress MAC address of the device found. This must either
|
||
|
* be the P2P device address or the P2P interface address.
|
||
|
* @param p2pDeviceAddress P2P device address.
|
||
|
* @param primaryDeviceType Type of device. Refer to section B.1 of Wifi P2P
|
||
|
* Technical specification v1.2.
|
||
|
* @param deviceName Name of the device.
|
||
|
* @param configMethods Mask of WPS configuration methods supported by the
|
||
|
* device.
|
||
|
* @param deviceCapabilities Refer to section 4.1.4 of Wifi P2P Technical
|
||
|
* specification v1.2.
|
||
|
* @param groupCapabilites Refer to section 4.1.4 of Wifi P2P Technical
|
||
|
* specification v1.2.
|
||
|
* @param wfdDeviceInfo WFD device info as described in section 5.1.2 of WFD
|
||
|
* technical specification v1.0.0.
|
||
|
*/
|
||
|
oneway onDeviceFound(
|
||
|
MacAddress srcAddress, MacAddress p2pDeviceAddress,
|
||
|
uint8_t[8] primaryDeviceType, string deviceName,
|
||
|
bitfield<WpsConfigMethods> configMethods, uint8_t deviceCapabilities,
|
||
|
bitfield<P2pGroupCapabilityMask> groupCapabilities, uint8_t[6] wfdDeviceInfo);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate that a P2P device has been lost.
|
||
|
*
|
||
|
* @param p2pDeviceAddress P2P device address.
|
||
|
*/
|
||
|
oneway onDeviceLost(MacAddress p2pDeviceAddress);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the termination of P2P find operation.
|
||
|
*/
|
||
|
oneway onFindStopped();
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the reception of a P2P Group Owner negotiation request.
|
||
|
*
|
||
|
* @param srcAddress MAC address of the device that initiated the GO
|
||
|
* negotiation request.
|
||
|
* @param passwordId Type of password.
|
||
|
*/
|
||
|
oneway onGoNegotiationRequest(
|
||
|
MacAddress srcAddress, WpsDevPasswordId passwordId);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the completion of a P2P Group Owner negotiation request.
|
||
|
*
|
||
|
* @param status Status of the GO negotiation.
|
||
|
*/
|
||
|
oneway onGoNegotiationCompleted(P2pStatusCode status);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate a successful formation of a P2P group.
|
||
|
*/
|
||
|
oneway onGroupFormationSuccess();
|
||
|
|
||
|
/**
|
||
|
* Used to indicate a failure to form a P2P group.
|
||
|
*
|
||
|
* @param failureReason Failure reason string for debug purposes.
|
||
|
*/
|
||
|
oneway onGroupFormationFailure(string failureReason);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the start of a P2P group.
|
||
|
*
|
||
|
* @param groupIfName Interface name of the group. (For ex: p2p-p2p0-1)
|
||
|
* @param isGo Whether this device is owner of the group.
|
||
|
* @param ssid SSID of the group.
|
||
|
* @param frequency Frequency on which this group is created.
|
||
|
* @param psk PSK used to secure the group.
|
||
|
* @param passphrase PSK passphrase used to secure the group.
|
||
|
* @param goDeviceAddress MAC Address of the owner of this group.
|
||
|
* @param isPersistent Whether this group is persisted or not.
|
||
|
*/
|
||
|
oneway onGroupStarted(
|
||
|
string groupIfname, bool isGo, Ssid ssid, uint32_t frequency,
|
||
|
uint8_t[32] psk, string passphrase, MacAddress goDeviceAddress,
|
||
|
bool isPersistent);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the removal of a P2P group.
|
||
|
*
|
||
|
* @param groupIfName Interface name of the group. (For ex: p2p-p2p0-1)
|
||
|
* @param isGo Whether this device is owner of the group.
|
||
|
*/
|
||
|
oneway onGroupRemoved(string groupIfname, bool isGo);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the reception of a P2P invitation.
|
||
|
*
|
||
|
* @param srcAddress MAC address of the device that sent the invitation.
|
||
|
* @param goDeviceAddress MAC Address of the owner of this group.
|
||
|
* @param Bssid Bssid of the group.
|
||
|
* @param persistentNetworkId Persistent network Id of the group.
|
||
|
* @param operatingFrequency Frequency on which the invitation was received.
|
||
|
*/
|
||
|
oneway onInvitationReceived(
|
||
|
MacAddress srcAddress, MacAddress goDeviceAddress, Bssid bssid,
|
||
|
SupplicantNetworkId persistentNetworkId, uint32_t operatingFrequency);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the result of the P2P invitation request.
|
||
|
*
|
||
|
* @param Bssid Bssid of the group.
|
||
|
* @param status Status of the invitation.
|
||
|
*/
|
||
|
oneway onInvitationResult(Bssid bssid, P2pStatusCode status);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the completion of a P2P provision discovery request.
|
||
|
*
|
||
|
* @param p2pDeviceAddress P2P device address.
|
||
|
* @param isRequest Whether we received or sent the provision discovery.
|
||
|
* @param status Status of the provision discovery.
|
||
|
* @param configMethods Mask of WPS configuration methods supported.
|
||
|
* @param generatedPin 8 digit pin generated.
|
||
|
*/
|
||
|
oneway onProvisionDiscoveryCompleted(
|
||
|
MacAddress p2pDeviceAddress, bool isRequest, P2pProvDiscStatusCode status,
|
||
|
bitfield<WpsConfigMethods> configMethods, string generatedPin);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate the reception of a P2P service discovery response.
|
||
|
*
|
||
|
* @param srcAddress MAC address of the device that sent the service discovery.
|
||
|
* @param updateIndicator Service update indicator. Refer to section 3.1.3 of
|
||
|
* Wifi P2P Technical specification v1.2.
|
||
|
* @parm tlvs Refer to section 3.1.3.1 of Wifi P2P Technical specification v1.2.
|
||
|
*/
|
||
|
oneway onServiceDiscoveryResponse(
|
||
|
MacAddress srcAddress, uint16_t updateIndicator, vec<uint8_t> tlvs);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate when a STA device is connected to this device.
|
||
|
*
|
||
|
* @param srcAddress MAC address of the device that was authorized.
|
||
|
* @param p2pDeviceAddress P2P device address.
|
||
|
*/
|
||
|
oneway onStaAuthorized(MacAddress srcAddress, MacAddress p2pDeviceAddress);
|
||
|
|
||
|
/**
|
||
|
* Used to indicate when a STA device is disconnected from this device.
|
||
|
*
|
||
|
* @param srcAddress MAC address of the device that was deauthorized.
|
||
|
* @param p2pDeviceAddress P2P device address.
|
||
|
*/
|
||
|
oneway onStaDeauthorized(MacAddress srcAddress, MacAddress p2pDeviceAddress);
|
||
|
};
|