diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index da3ca52897..80d8546706 100644 --- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -48,9 +48,17 @@ interface ISupplicantP2pIfaceCallback { oneway void onProvisionDiscoveryCompleted(in byte[] p2pDeviceAddress, in boolean isRequest, in android.hardware.wifi.supplicant.P2pProvDiscStatusCode status, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in String generatedPin); oneway void onR2DeviceFound(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo, in byte[] wfdR2DeviceInfo); oneway void onServiceDiscoveryResponse(in byte[] srcAddress, in char updateIndicator, in byte[] tlvs); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onPeerClientJoined() + */ oneway void onStaAuthorized(in byte[] srcAddress, in byte[] p2pDeviceAddress); + /** + * @deprecated This callback is deprecated from AIDL v3, newer HAL should call onPeerClientDisconnected() + */ oneway void onStaDeauthorized(in byte[] srcAddress, in byte[] p2pDeviceAddress); oneway void onGroupFrequencyChanged(in String groupIfname, in int frequency); oneway void onDeviceFoundWithVendorElements(in byte[] srcAddress, in byte[] p2pDeviceAddress, in byte[] primaryDeviceType, in String deviceName, in android.hardware.wifi.supplicant.WpsConfigMethods configMethods, in byte deviceCapabilities, in android.hardware.wifi.supplicant.P2pGroupCapabilityMask groupCapabilities, in byte[] wfdDeviceInfo, in byte[] wfdR2DeviceInfo, in byte[] vendorElemBytes); oneway void onGroupStartedWithParams(in android.hardware.wifi.supplicant.P2pGroupStartedEventParams groupStartedEventParams); + oneway void onPeerClientJoined(in android.hardware.wifi.supplicant.P2pPeerClientJoinedEventParams clientJoinedEventParams); + oneway void onPeerClientDisconnected(in android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams clientDisconnectedEventParams); } diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl new file mode 100644 index 0000000000..90e9f5e3eb --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 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. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pPeerClientDisconnectedEventParams { + String groupInterfaceName; + byte[6] clientInterfaceAddress; + byte[6] clientDeviceAddress; +} diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl new file mode 100644 index 0000000000..800f5b3593 --- /dev/null +++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 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. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.wifi.supplicant; +@VintfStability +parcelable P2pPeerClientJoinedEventParams { + String groupInterfaceName; + byte[6] clientInterfaceAddress; + byte[6] clientDeviceAddress; + int clientIpAddress; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl index 9d6fa678b8..810fe483a2 100644 --- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantP2pIfaceCallback.aidl @@ -18,6 +18,8 @@ package android.hardware.wifi.supplicant; import android.hardware.wifi.supplicant.P2pGroupCapabilityMask; import android.hardware.wifi.supplicant.P2pGroupStartedEventParams; +import android.hardware.wifi.supplicant.P2pPeerClientDisconnectedEventParams; +import android.hardware.wifi.supplicant.P2pPeerClientJoinedEventParams; import android.hardware.wifi.supplicant.P2pProvDiscStatusCode; import android.hardware.wifi.supplicant.P2pStatusCode; import android.hardware.wifi.supplicant.WpsConfigMethods; @@ -192,6 +194,9 @@ oneway interface ISupplicantP2pIfaceCallback { /** * Used to indicate when a STA device is connected to this device. + *

+ * @deprecated This callback is deprecated from AIDL v3, newer HAL should call + * onPeerClientJoined() * * @param srcAddress MAC address of the device that was authorized. * @param p2pDeviceAddress P2P device address. @@ -200,6 +205,9 @@ oneway interface ISupplicantP2pIfaceCallback { /** * Used to indicate when a STA device is disconnected from this device. + *

+ * @deprecated This callback is deprecated from AIDL v3, newer HAL should call + * onPeerClientDisconnected() * * @param srcAddress MAC address of the device that was deauthorized. * @param p2pDeviceAddress P2P device address. @@ -251,4 +259,20 @@ oneway interface ISupplicantP2pIfaceCallback { * @param groupStartedEventParams Parameters describing the P2P group. */ void onGroupStartedWithParams(in P2pGroupStartedEventParams groupStartedEventParams); + + /** + * Used to indicate that a P2P client has joined this device group owner. + * + * @param clientJoinedEventParams Parameters associated with peer client joined event. + */ + void onPeerClientJoined(in P2pPeerClientJoinedEventParams clientJoinedEventParams); + + /** + * Used to indicate that a P2P client has disconnected from this device group owner. + * + * @param clientDisconnectedEventParams Parameters associated with peer client disconnected + * event. + */ + void onPeerClientDisconnected( + in P2pPeerClientDisconnectedEventParams clientDisconnectedEventParams); } diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl new file mode 100644 index 0000000000..936efd1fa6 --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pPeerClientDisconnectedEventParams.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2023 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; + +/** + * Parameters passed as a part of P2P peer client disconnected event. + */ +@VintfStability +parcelable P2pPeerClientDisconnectedEventParams { + /** Interface name of this device group owner. (For ex: p2p-p2p0-1) */ + String groupInterfaceName; + + /** P2P group interface MAC address of the client that disconnected. */ + byte[6] clientInterfaceAddress; + + /** P2P device interface MAC address of the client that disconnected. */ + byte[6] clientDeviceAddress; +} diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl new file mode 100644 index 0000000000..7eae2e5a7f --- /dev/null +++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pPeerClientJoinedEventParams.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 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; + +/** + * Parameters passed as a part of P2P peer client joined event. + */ +@VintfStability +parcelable P2pPeerClientJoinedEventParams { + /** Interface name of this device group owner. (For ex: p2p-p2p0-1) */ + String groupInterfaceName; + + /** P2P group interface MAC address of the client that joined. */ + byte[6] clientInterfaceAddress; + + /** P2P device interface MAC address of the client that joined. */ + byte[6] clientDeviceAddress; + + /** + * The P2P Client IPV4 address allocated via EAPOL exchange. + * The higher-order address bytes are in the lower-order int bytes + * (e.g. 1.2.3.4 is represented as 0x04030201). + * Refer Wi-Fi P2P Technical Specification v1.7 - Section 4.2.8 + * "IP Address Allocation in EAPOL-Key Frames (4-Way Handshake)" for more details. + * The value is set to zero if the IP address is not allocated via EAPOL exchange. + */ + int clientIpAddress; +} diff --git a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp index a260408c8c..d3dd2e026d 100644 --- a/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp +++ b/wifi/supplicant/aidl/vts/functional/supplicant_p2p_iface_aidl_test.cpp @@ -38,6 +38,8 @@ using aidl::android::hardware::wifi::supplicant::MiracastMode; using aidl::android::hardware::wifi::supplicant::P2pFrameTypeMask; using aidl::android::hardware::wifi::supplicant::P2pGroupCapabilityMask; using aidl::android::hardware::wifi::supplicant::P2pGroupStartedEventParams; +using aidl::android::hardware::wifi::supplicant::P2pPeerClientDisconnectedEventParams; +using aidl::android::hardware::wifi::supplicant::P2pPeerClientJoinedEventParams; using aidl::android::hardware::wifi::supplicant::P2pProvDiscStatusCode; using aidl::android::hardware::wifi::supplicant::P2pStatusCode; using aidl::android::hardware::wifi::supplicant::SupplicantStatusCode; @@ -182,6 +184,15 @@ class SupplicantP2pIfaceCallback : public BnSupplicantP2pIfaceCallback { const P2pGroupStartedEventParams& /* groupStartedEventParams */) override { return ndk::ScopedAStatus::ok(); } + ::ndk::ScopedAStatus onPeerClientJoined( + const P2pPeerClientJoinedEventParams& /* clientJoinedEventParams */) override { + return ndk::ScopedAStatus::ok(); + } + ::ndk::ScopedAStatus onPeerClientDisconnected( + const P2pPeerClientDisconnectedEventParams& /* clientDisconnectedEventParams */) + override { + return ndk::ScopedAStatus::ok(); + } }; class SupplicantP2pIfaceAidlTest : public testing::TestWithParam {