From 910d5df56b6699e63332ea3d2faa089ddabe81e0 Mon Sep 17 00:00:00 2001 From: Gabriel Biren Date: Fri, 8 Apr 2022 18:21:22 +0000 Subject: [PATCH] Add WiFi Vendor HAL AIDL interface definitions. Bug: 205044134 Test: mm -j BYPASS_INCLUSIVE_LANGUAGE_REASON=HE refers to high-efficiency. Change-Id: I757f36feca9f30ad5e04204b7b0fd4caee63cabc --- .../compatibility_matrix.current.xml | 8 + wifi/aidl/Android.bp | 44 + .../current/android/hardware/wifi/IWifi.aidl | 43 + .../android/hardware/wifi/IWifiApIface.aidl | 44 + .../android/hardware/wifi/IWifiChip.aidl | 165 +++ .../hardware/wifi/IWifiChipEventCallback.aidl | 55 + .../hardware/wifi/IWifiEventCallback.aidl | 41 + .../android/hardware/wifi/IWifiNanIface.aidl | 55 + .../wifi/IWifiNanIfaceEventCallback.aidl | 63 + .../android/hardware/wifi/IWifiP2pIface.aidl | 38 + .../hardware/wifi/IWifiRttController.aidl | 47 + .../wifi/IWifiRttControllerEventCallback.aidl | 38 + .../android/hardware/wifi/IWifiStaIface.aidl | 82 ++ .../wifi/IWifiStaIfaceEventCallback.aidl | 41 + .../hardware/wifi/IfaceConcurrencyType.aidl | 42 + .../android/hardware/wifi/IfaceType.aidl | 41 + .../android/hardware/wifi/MacAddress.aidl | 38 + .../android/hardware/wifi/NanBandIndex.aidl | 40 + .../hardware/wifi/NanBandSpecificConfig.aidl | 44 + .../hardware/wifi/NanCapabilities.aidl | 52 + .../hardware/wifi/NanCipherSuiteType.aidl | 42 + .../hardware/wifi/NanClusterEventInd.aidl | 39 + .../hardware/wifi/NanClusterEventType.aidl | 40 + .../hardware/wifi/NanConfigRequest.aidl | 48 + .../wifi/NanConfigRequestSupplemental.aidl | 43 + .../hardware/wifi/NanDataPathChannelCfg.aidl | 40 + .../hardware/wifi/NanDataPathChannelInfo.aidl | 40 + .../hardware/wifi/NanDataPathConfirmInd.aidl | 43 + .../hardware/wifi/NanDataPathRequestInd.aidl | 42 + .../wifi/NanDataPathScheduleUpdateInd.aidl | 40 + .../wifi/NanDataPathSecurityConfig.aidl | 42 + .../wifi/NanDataPathSecurityType.aidl | 40 + .../android/hardware/wifi/NanDebugConfig.aidl | 54 + .../wifi/NanDiscoveryCommonConfig.aidl | 57 + .../hardware/wifi/NanEnableRequest.aidl | 41 + .../hardware/wifi/NanFollowupReceivedInd.aidl | 43 + .../wifi/NanInitiateDataPathRequest.aidl | 45 + .../android/hardware/wifi/NanMatchAlg.aidl | 40 + .../android/hardware/wifi/NanMatchInd.aidl | 52 + .../hardware/wifi/NanPublishRequest.aidl | 41 + .../android/hardware/wifi/NanPublishType.aidl | 40 + .../hardware/wifi/NanRangingIndication.aidl | 40 + ...NanRespondToDataPathIndicationRequest.aidl | 43 + .../android/hardware/wifi/NanSrfType.aidl | 39 + .../android/hardware/wifi/NanStatus.aidl | 39 + .../android/hardware/wifi/NanStatusCode.aidl | 50 + .../hardware/wifi/NanSubscribeRequest.aidl | 44 + .../hardware/wifi/NanSubscribeType.aidl | 39 + .../wifi/NanTransmitFollowupRequest.aidl | 45 + .../android/hardware/wifi/NanTxType.aidl | 39 + .../current/android/hardware/wifi/RttBw.aidl | 44 + .../hardware/wifi/RttCapabilities.aidl | 45 + .../android/hardware/wifi/RttConfig.aidl | 51 + .../hardware/wifi/RttLciInformation.aidl | 47 + .../hardware/wifi/RttLcrInformation.aidl | 39 + .../hardware/wifi/RttMotionPattern.aidl | 40 + .../android/hardware/wifi/RttPeerType.aidl | 42 + .../android/hardware/wifi/RttPreamble.aidl | 42 + .../android/hardware/wifi/RttResponder.aidl | 39 + .../android/hardware/wifi/RttResult.aidl | 60 + .../android/hardware/wifi/RttStatus.aidl | 55 + .../android/hardware/wifi/RttType.aidl | 39 + .../current/android/hardware/wifi/Ssid.aidl | 38 + .../wifi/StaApfPacketFilterCapabilities.aidl | 39 + ...groundScanBucketEventReportSchemeMask.aidl | 40 + .../StaBackgroundScanBucketParameters.aidl | 45 + .../wifi/StaBackgroundScanCapabilities.aidl | 41 + .../wifi/StaBackgroundScanLimits.aidl | 40 + .../wifi/StaBackgroundScanParameters.aidl | 42 + .../StaLinkLayerIfaceContentionTimeStats.aidl | 41 + .../wifi/StaLinkLayerIfacePacketStats.aidl | 41 + .../hardware/wifi/StaLinkLayerIfaceStats.aidl | 49 + .../hardware/wifi/StaLinkLayerRadioStats.aidl | 49 + .../hardware/wifi/StaLinkLayerStats.aidl | 40 + .../android/hardware/wifi/StaPeerInfo.aidl | 40 + .../android/hardware/wifi/StaRateStat.aidl | 42 + .../hardware/wifi/StaRoamingCapabilities.aidl | 39 + .../hardware/wifi/StaRoamingConfig.aidl | 39 + .../hardware/wifi/StaRoamingState.aidl | 39 + .../android/hardware/wifi/StaScanData.aidl | 40 + .../hardware/wifi/StaScanDataFlagMask.aidl | 38 + .../android/hardware/wifi/StaScanResult.aidl | 45 + .../hardware/wifi/WifiAntennaMode.aidl | 42 + .../android/hardware/wifi/WifiBand.aidl | 51 + .../hardware/wifi/WifiChannelInfo.aidl | 41 + .../hardware/wifi/WifiChannelStats.aidl | 40 + .../hardware/wifi/WifiChannelWidthInMhz.aidl | 46 + ...ebugHostWakeReasonRxIcmpPacketDetails.aidl | 42 + ...ostWakeReasonRxMulticastPacketDetails.aidl | 40 + ...ifiDebugHostWakeReasonRxPacketDetails.aidl | 40 + .../wifi/WifiDebugHostWakeReasonStats.aidl | 45 + .../wifi/WifiDebugPacketFateFrameInfo.aidl | 42 + .../wifi/WifiDebugPacketFateFrameType.aidl | 40 + .../wifi/WifiDebugRingBufferFlags.aidl | 40 + .../wifi/WifiDebugRingBufferStatus.aidl | 43 + .../wifi/WifiDebugRingBufferVerboseLevel.aidl | 41 + .../hardware/wifi/WifiDebugRxPacketFate.aidl | 48 + .../wifi/WifiDebugRxPacketFateReport.aidl | 39 + .../hardware/wifi/WifiDebugTxPacketFate.aidl | 47 + .../wifi/WifiDebugTxPacketFateReport.aidl | 39 + .../android/hardware/wifi/WifiIfaceMode.aidl | 45 + .../hardware/wifi/WifiInformationElement.aidl | 39 + .../hardware/wifi/WifiRadioCombination.aidl | 38 + .../wifi/WifiRadioCombinationMatrix.aidl | 38 + .../hardware/wifi/WifiRadioConfiguration.aidl | 39 + .../android/hardware/wifi/WifiRateInfo.aidl | 42 + .../android/hardware/wifi/WifiRateNss.aidl | 41 + .../hardware/wifi/WifiRatePreamble.aidl | 44 + .../android/hardware/wifi/WifiStatusCode.aidl | 47 + .../hardware/wifi/WifiUsableChannel.aidl | 40 + wifi/aidl/android/hardware/wifi/IWifi.aidl | 100 ++ .../android/hardware/wifi/IWifiApIface.aidl | 102 ++ .../aidl/android/hardware/wifi/IWifiChip.aidl | 1096 +++++++++++++++++ .../hardware/wifi/IWifiChipEventCallback.aidl | 159 +++ .../hardware/wifi/IWifiEventCallback.aidl | 53 + .../android/hardware/wifi/IWifiNanIface.aidl | 251 ++++ .../wifi/IWifiNanIfaceEventCallback.aidl | 322 +++++ .../android/hardware/wifi/IWifiP2pIface.aidl | 32 + .../hardware/wifi/IWifiRttController.aidl | 158 +++ .../wifi/IWifiRttControllerEventCallback.aidl | 33 + .../android/hardware/wifi/IWifiStaIface.aidl | 555 +++++++++ .../wifi/IWifiStaIfaceEventCallback.aidl | 64 + .../hardware/wifi/IfaceConcurrencyType.aidl | 45 + .../aidl/android/hardware/wifi/IfaceType.aidl | 34 + .../android/hardware/wifi/MacAddress.aidl | 29 + .../android/hardware/wifi/NanBandIndex.aidl | 31 + .../hardware/wifi/NanBandSpecificConfig.aidl | 60 + .../hardware/wifi/NanCapabilities.aidl | 88 ++ .../hardware/wifi/NanCipherSuiteType.aidl | 36 + .../hardware/wifi/NanClusterEventInd.aidl | 35 + .../hardware/wifi/NanClusterEventType.aidl | 38 + .../hardware/wifi/NanConfigRequest.aidl | 82 ++ .../wifi/NanConfigRequestSupplemental.aidl | 63 + .../hardware/wifi/NanDataPathChannelCfg.aidl | 28 + .../hardware/wifi/NanDataPathChannelInfo.aidl | 38 + .../hardware/wifi/NanDataPathConfirmInd.aidl | 58 + .../hardware/wifi/NanDataPathRequestInd.aidl | 54 + .../wifi/NanDataPathScheduleUpdateInd.aidl | 42 + .../wifi/NanDataPathSecurityConfig.aidl | 60 + .../wifi/NanDataPathSecurityType.aidl | 28 + .../android/hardware/wifi/NanDebugConfig.aidl | 80 ++ .../wifi/NanDiscoveryCommonConfig.aidl | 158 +++ .../hardware/wifi/NanEnableRequest.aidl | 44 + .../hardware/wifi/NanFollowupReceivedInd.aidl | 58 + .../wifi/NanInitiateDataPathRequest.aidl | 72 ++ .../android/hardware/wifi/NanMatchAlg.aidl | 30 + .../android/hardware/wifi/NanMatchInd.aidl | 129 ++ .../hardware/wifi/NanPublishRequest.aidl | 49 + .../android/hardware/wifi/NanPublishType.aidl | 28 + .../hardware/wifi/NanRangingIndication.aidl | 29 + ...NanRespondToDataPathIndicationRequest.aidl | 61 + .../android/hardware/wifi/NanSrfType.aidl | 27 + .../aidl/android/hardware/wifi/NanStatus.aidl | 34 + .../android/hardware/wifi/NanStatusCode.aidl | 74 ++ .../hardware/wifi/NanSubscribeRequest.aidl | 70 ++ .../hardware/wifi/NanSubscribeType.aidl | 27 + .../wifi/NanTransmitFollowupRequest.aidl | 69 ++ .../aidl/android/hardware/wifi/NanTxType.aidl | 29 + wifi/aidl/android/hardware/wifi/RttBw.aidl | 32 + .../hardware/wifi/RttCapabilities.aidl | 62 + .../aidl/android/hardware/wifi/RttConfig.aidl | 116 ++ .../hardware/wifi/RttLciInformation.aidl | 69 ++ .../hardware/wifi/RttLcrInformation.aidl | 29 + .../hardware/wifi/RttMotionPattern.aidl | 34 + .../android/hardware/wifi/RttPeerType.aidl | 30 + .../android/hardware/wifi/RttPreamble.aidl | 36 + .../android/hardware/wifi/RttResponder.aidl | 29 + .../aidl/android/hardware/wifi/RttResult.aidl | 135 ++ .../aidl/android/hardware/wifi/RttStatus.aidl | 91 ++ wifi/aidl/android/hardware/wifi/RttType.aidl | 27 + wifi/aidl/android/hardware/wifi/Ssid.aidl | 29 + .../wifi/StaApfPacketFilterCapabilities.aidl | 32 + ...groundScanBucketEventReportSchemeMask.aidl | 43 + .../StaBackgroundScanBucketParameters.aidl | 71 ++ .../wifi/StaBackgroundScanCapabilities.aidl | 41 + .../wifi/StaBackgroundScanLimits.aidl | 28 + .../wifi/StaBackgroundScanParameters.aidl | 51 + .../StaLinkLayerIfaceContentionTimeStats.aidl | 43 + .../wifi/StaLinkLayerIfacePacketStats.aidl | 40 + .../hardware/wifi/StaLinkLayerIfaceStats.aidl | 79 ++ .../hardware/wifi/StaLinkLayerRadioStats.aidl | 75 ++ .../hardware/wifi/StaLinkLayerStats.aidl | 34 + .../android/hardware/wifi/StaPeerInfo.aidl | 41 + .../android/hardware/wifi/StaRateStat.aidl | 47 + .../hardware/wifi/StaRoamingCapabilities.aidl | 32 + .../hardware/wifi/StaRoamingConfig.aidl | 35 + .../hardware/wifi/StaRoamingState.aidl | 35 + .../android/hardware/wifi/StaScanData.aidl | 41 + .../hardware/wifi/StaScanDataFlagMask.aidl | 30 + .../android/hardware/wifi/StaScanResult.aidl | 35 + .../hardware/wifi/WifiAntennaMode.aidl | 30 + wifi/aidl/android/hardware/wifi/WifiBand.aidl | 78 ++ .../hardware/wifi/WifiChannelInfo.aidl | 42 + .../hardware/wifi/WifiChannelStats.aidl | 35 + .../hardware/wifi/WifiChannelWidthInMhz.aidl | 37 + ...ebugHostWakeReasonRxIcmpPacketDetails.aidl | 45 + ...ostWakeReasonRxMulticastPacketDetails.aidl | 37 + ...ifiDebugHostWakeReasonRxPacketDetails.aidl | 37 + .../wifi/WifiDebugHostWakeReasonStats.aidl | 64 + .../wifi/WifiDebugPacketFateFrameInfo.aidl | 70 ++ .../wifi/WifiDebugPacketFateFrameType.aidl | 28 + .../wifi/WifiDebugRingBufferFlags.aidl | 28 + .../wifi/WifiDebugRingBufferStatus.aidl | 49 + .../wifi/WifiDebugRingBufferVerboseLevel.aidl | 47 + .../hardware/wifi/WifiDebugRxPacketFate.aidl | 70 ++ .../wifi/WifiDebugRxPacketFateReport.aidl | 29 + .../hardware/wifi/WifiDebugTxPacketFate.aidl | 68 + .../wifi/WifiDebugTxPacketFateReport.aidl | 29 + .../android/hardware/wifi/WifiIfaceMode.aidl | 57 + .../hardware/wifi/WifiInformationElement.aidl | 27 + .../hardware/wifi/WifiRadioCombination.aidl | 30 + .../wifi/WifiRadioCombinationMatrix.aidl | 31 + .../hardware/wifi/WifiRadioConfiguration.aidl | 38 + .../android/hardware/wifi/WifiRateInfo.aidl | 49 + .../android/hardware/wifi/WifiRateNss.aidl | 29 + .../hardware/wifi/WifiRatePreamble.aidl | 38 + .../android/hardware/wifi/WifiStatusCode.aidl | 47 + .../hardware/wifi/WifiUsableChannel.aidl | 39 + 218 files changed, 12462 insertions(+) create mode 100644 wifi/aidl/Android.bp create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifi.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChipEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiP2pIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttController.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttControllerEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceConcurrencyType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/MacAddress.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandIndex.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandSpecificConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCipherSuiteType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequestSupplemental.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelCfg.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathConfirmInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathRequestInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDebugConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDiscoveryCommonConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanEnableRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanFollowupReceivedInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanInitiateDataPathRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchAlg.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchInd.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRangingIndication.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSrfType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatus.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatusCode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTransmitFollowupRequest.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTxType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttBw.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLciInformation.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLcrInformation.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttMotionPattern.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPeerType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPreamble.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResponder.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttStatus.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/Ssid.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanLimits.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanParameters.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerRadioStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaPeerInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRateStat.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingCapabilities.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingConfig.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingState.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanData.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanDataFlagMask.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanResult.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiAntennaMode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiBand.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelWidthInMhz.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferFlags.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferStatus.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFate.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFate.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiIfaceMode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiInformationElement.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombination.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombinationMatrix.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioConfiguration.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateInfo.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateNss.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRatePreamble.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiStatusCode.aidl create mode 100644 wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiUsableChannel.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifi.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiApIface.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiChip.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiChipEventCallback.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiEventCallback.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiNanIface.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiP2pIface.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiRttController.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiRttControllerEventCallback.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IfaceConcurrencyType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/IfaceType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/MacAddress.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanBandIndex.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanBandSpecificConfig.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanCapabilities.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanCipherSuiteType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanClusterEventInd.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanClusterEventType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanConfigRequest.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanConfigRequestSupplemental.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDataPathChannelCfg.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDataPathChannelInfo.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDataPathConfirmInd.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDataPathRequestInd.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDataPathSecurityConfig.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDataPathSecurityType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDebugConfig.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanDiscoveryCommonConfig.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanEnableRequest.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanFollowupReceivedInd.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanInitiateDataPathRequest.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanMatchAlg.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanMatchInd.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanPublishRequest.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanPublishType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanRangingIndication.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanSrfType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanStatus.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanStatusCode.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanSubscribeRequest.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanSubscribeType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanTransmitFollowupRequest.aidl create mode 100644 wifi/aidl/android/hardware/wifi/NanTxType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttBw.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttCapabilities.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttConfig.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttLciInformation.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttLcrInformation.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttMotionPattern.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttPeerType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttPreamble.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttResponder.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttResult.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttStatus.aidl create mode 100644 wifi/aidl/android/hardware/wifi/RttType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/Ssid.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaBackgroundScanCapabilities.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaBackgroundScanLimits.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaBackgroundScanParameters.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaLinkLayerRadioStats.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaLinkLayerStats.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaPeerInfo.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaRateStat.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaRoamingCapabilities.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaRoamingConfig.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaRoamingState.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaScanData.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaScanDataFlagMask.aidl create mode 100644 wifi/aidl/android/hardware/wifi/StaScanResult.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiAntennaMode.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiBand.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiChannelInfo.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiChannelStats.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiChannelWidthInMhz.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugRingBufferFlags.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugRingBufferStatus.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFate.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFate.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiIfaceMode.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiInformationElement.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiRadioCombination.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiRadioCombinationMatrix.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiRadioConfiguration.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiRateInfo.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiRateNss.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiRatePreamble.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiStatusCode.aidl create mode 100644 wifi/aidl/android/hardware/wifi/WifiUsableChannel.aidl diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml index d1a701b1a1..404f2e0262 100644 --- a/compatibility_matrices/compatibility_matrix.current.xml +++ b/compatibility_matrices/compatibility_matrix.current.xml @@ -693,6 +693,14 @@ default + + android.hardware.wifi + 1 + + IWifi + default + + android.hardware.wifi 1.3-5 diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp new file mode 100644 index 0000000000..c0ca667b41 --- /dev/null +++ b/wifi/aidl/Android.bp @@ -0,0 +1,44 @@ +// Copyright (C) 2022 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 { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "hardware_interfaces_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["hardware_interfaces_license"], +} + +aidl_interface { + name: "android.hardware.wifi", + vendor_available: true, + srcs: [ + "android/hardware/wifi/*.aidl", + ], + stability: "vintf", + backend: { + java: { + sdk_version: "module_current", + apex_available: [ + "//apex_available:platform", + "com.android.wifi", + ], + min_sdk_version: "30", + lint: { + enabled: false, + }, + }, + }, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifi.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifi.aidl new file mode 100644 index 0000000000..cc995fce3f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifi.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifi { + @PropagateAllowBlocking android.hardware.wifi.IWifiChip getChip(int chipId); + int[] getChipIds(); + boolean isStarted(); + void registerEventCallback(in android.hardware.wifi.IWifiEventCallback callback); + void start(); + void stop(); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl new file mode 100644 index 0000000000..a102b9779d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiApIface { + String getName(); + String[] getBridgedInstances(); + byte[6] getFactoryMacAddress(); + void setCountryCode(in byte[2] code); + int[] getValidFrequenciesForBand(in android.hardware.wifi.WifiBand band); + void resetToFactoryMacAddress(); + void setMacAddress(in byte[6] mac); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl new file mode 100644 index 0000000000..647891f7cb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiChip { + void configureChip(in int modeId); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createApIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface createBridgedApIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiNanIface createNanIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiP2pIface createP2pIface(); + @PropagateAllowBlocking android.hardware.wifi.IWifiRttController createRttController(in android.hardware.wifi.IWifiStaIface boundIface); + @PropagateAllowBlocking android.hardware.wifi.IWifiStaIface createStaIface(); + void enableDebugErrorAlerts(in boolean enable); + void flushRingBufferToFile(); + void forceDumpToDebugRingBuffer(in String ringName); + @PropagateAllowBlocking android.hardware.wifi.IWifiApIface getApIface(in String ifname); + String[] getApIfaceNames(); + android.hardware.wifi.IWifiChip.ChipMode[] getAvailableModes(); + android.hardware.wifi.IWifiChip.ChipCapabilityMask getCapabilities(); + android.hardware.wifi.WifiDebugHostWakeReasonStats getDebugHostWakeReasonStats(); + android.hardware.wifi.WifiDebugRingBufferStatus[] getDebugRingBuffersStatus(); + int getId(); + int getMode(); + @PropagateAllowBlocking android.hardware.wifi.IWifiNanIface getNanIface(in String ifname); + String[] getNanIfaceNames(); + @PropagateAllowBlocking android.hardware.wifi.IWifiP2pIface getP2pIface(in String ifname); + String[] getP2pIfaceNames(); + @PropagateAllowBlocking android.hardware.wifi.IWifiStaIface getStaIface(in String ifname); + String[] getStaIfaceNames(); + android.hardware.wifi.WifiRadioCombinationMatrix getSupportedRadioCombinationsMatrix(); + android.hardware.wifi.WifiUsableChannel[] getUsableChannels(in android.hardware.wifi.WifiBand band, in android.hardware.wifi.WifiIfaceMode ifaceModeMask, in android.hardware.wifi.IWifiChip.UsableChannelFilter filterMask); + void registerEventCallback(in android.hardware.wifi.IWifiChipEventCallback callback); + void removeApIface(in String ifname); + void removeIfaceInstanceFromBridgedApIface(in String brIfaceName, in String ifaceInstanceName); + void removeNanIface(in String ifname); + void removeP2pIface(in String ifname); + void removeStaIface(in String ifname); + android.hardware.wifi.IWifiChip.ChipDebugInfo requestChipDebugInfo(); + byte[] requestDriverDebugDump(); + byte[] requestFirmwareDebugDump(); + void resetTxPowerScenario(); + void selectTxPowerScenario(in android.hardware.wifi.IWifiChip.TxPowerScenario scenario); + void setCoexUnsafeChannels(in android.hardware.wifi.IWifiChip.CoexUnsafeChannel[] unsafeChannels, in android.hardware.wifi.IWifiChip.CoexRestriction restrictions); + void setCountryCode(in byte[2] code); + void setLatencyMode(in android.hardware.wifi.IWifiChip.LatencyMode mode); + void setMultiStaPrimaryConnection(in String ifName); + void setMultiStaUseCase(in android.hardware.wifi.IWifiChip.MultiStaUseCase useCase); + void startLoggingToDebugRingBuffer(in String ringName, in android.hardware.wifi.WifiDebugRingBufferVerboseLevel verboseLevel, in int maxIntervalInSec, in int minDataSizeInBytes); + void stopLoggingToDebugRingBuffer(); + void triggerSubsystemRestart(); + const int NO_POWER_CAP_CONSTANT = 2147483647; + @Backing(type="int") @VintfStability + enum ChipCapabilityMask { + DEBUG_MEMORY_FIRMWARE_DUMP = 1, + DEBUG_MEMORY_DRIVER_DUMP = 2, + DEBUG_RING_BUFFER_CONNECT_EVENT = 4, + DEBUG_RING_BUFFER_POWER_EVENT = 8, + DEBUG_RING_BUFFER_WAKELOCK_EVENT = 16, + DEBUG_RING_BUFFER_VENDOR_DATA = 32, + DEBUG_HOST_WAKE_REASON_STATS = 64, + DEBUG_ERROR_ALERTS = 128, + SET_TX_POWER_LIMIT = 256, + D2D_RTT = 512, + D2AP_RTT = 1024, + USE_BODY_HEAD_SAR = 2048, + SET_LATENCY_MODE = 4096, + P2P_RAND_MAC = 8192, + WIGIG = 16384, + } + @VintfStability + parcelable ChipConcurrencyCombinationLimit { + android.hardware.wifi.IfaceConcurrencyType[] types; + int maxIfaces; + } + @VintfStability + parcelable ChipConcurrencyCombination { + android.hardware.wifi.IWifiChip.ChipConcurrencyCombinationLimit[] limits; + } + @VintfStability + parcelable ChipDebugInfo { + String driverDescription; + String firmwareDescription; + } + @VintfStability + parcelable ChipIfaceCombinationLimit { + android.hardware.wifi.IfaceType[] types; + int maxIfaces; + } + @VintfStability + parcelable ChipIfaceCombination { + android.hardware.wifi.IWifiChip.ChipIfaceCombinationLimit[] limits; + } + @VintfStability + parcelable ChipMode { + int id; + android.hardware.wifi.IWifiChip.ChipConcurrencyCombination[] availableCombinations; + } + @Backing(type="int") @VintfStability + enum CoexRestriction { + WIFI_DIRECT = 1, + SOFTAP = 2, + WIFI_AWARE = 4, + } + @VintfStability + parcelable CoexUnsafeChannel { + android.hardware.wifi.WifiBand band; + int channel; + int powerCapDbm; + } + @Backing(type="int") @VintfStability + enum LatencyMode { + NORMAL = 0, + LOW = 1, + } + @Backing(type="byte") @VintfStability + enum MultiStaUseCase { + DUAL_STA_TRANSIENT_PREFER_PRIMARY = 0, + DUAL_STA_NON_TRANSIENT_UNBIASED = 1, + } + @Backing(type="int") @VintfStability + enum TxPowerScenario { + VOICE_CALL = 0, + ON_HEAD_CELL_OFF = 1, + ON_HEAD_CELL_ON = 2, + ON_BODY_CELL_OFF = 3, + ON_BODY_CELL_ON = 4, + } + @Backing(type="int") @VintfStability + enum UsableChannelFilter { + CELLULAR_COEXISTENCE = 1, + CONCURRENCY = 2, + NAN_INSTANT_MODE = 4, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChipEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChipEventCallback.aidl new file mode 100644 index 0000000000..3fd8533c44 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChipEventCallback.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiChipEventCallback { + oneway void onChipReconfigureFailure(in android.hardware.wifi.WifiStatusCode status); + oneway void onChipReconfigured(in int modeId); + oneway void onDebugErrorAlert(in int errorCode, in byte[] debugData); + oneway void onDebugRingBufferDataAvailable(in android.hardware.wifi.WifiDebugRingBufferStatus status, in byte[] data); + oneway void onIfaceAdded(in android.hardware.wifi.IfaceType type, in String name); + oneway void onIfaceRemoved(in android.hardware.wifi.IfaceType type, in String name); + oneway void onRadioModeChange(in android.hardware.wifi.IWifiChipEventCallback.RadioModeInfo[] radioModeInfos); + @VintfStability + parcelable IfaceInfo { + String name; + int channel; + } + @VintfStability + parcelable RadioModeInfo { + int radioId; + android.hardware.wifi.WifiBand bandInfo; + android.hardware.wifi.IWifiChipEventCallback.IfaceInfo[] ifaceInfos; + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiEventCallback.aidl new file mode 100644 index 0000000000..00e5cb6e09 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiEventCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiEventCallback { + oneway void onFailure(in android.hardware.wifi.WifiStatusCode status); + oneway void onStart(); + oneway void onStop(); + oneway void onSubsystemRestart(in android.hardware.wifi.WifiStatusCode status); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIface.aidl new file mode 100644 index 0000000000..070ca240cb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIface.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiNanIface { + String getName(); + void configRequest(in char cmdId, in android.hardware.wifi.NanConfigRequest msg1, in android.hardware.wifi.NanConfigRequestSupplemental msg2); + void createDataInterfaceRequest(in char cmdId, in String ifaceName); + void deleteDataInterfaceRequest(in char cmdId, in String ifaceName); + void disableRequest(in char cmdId); + void enableRequest(in char cmdId, in android.hardware.wifi.NanEnableRequest msg1, in android.hardware.wifi.NanConfigRequestSupplemental msg2); + void getCapabilitiesRequest(in char cmdId); + void initiateDataPathRequest(in char cmdId, in android.hardware.wifi.NanInitiateDataPathRequest msg); + void registerEventCallback(in android.hardware.wifi.IWifiNanIfaceEventCallback callback); + void respondToDataPathIndicationRequest(in char cmdId, in android.hardware.wifi.NanRespondToDataPathIndicationRequest msg); + void startPublishRequest(in char cmdId, in android.hardware.wifi.NanPublishRequest msg); + void startSubscribeRequest(in char cmdId, in android.hardware.wifi.NanSubscribeRequest msg); + void stopPublishRequest(in char cmdId, in byte sessionId); + void stopSubscribeRequest(in char cmdId, in byte sessionId); + void terminateDataPathRequest(in char cmdId, in int ndpInstanceId); + void transmitFollowupRequest(in char cmdId, in android.hardware.wifi.NanTransmitFollowupRequest msg); + const int MIN_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 8; + const int MAX_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 63; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl new file mode 100644 index 0000000000..591cd8c205 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiNanIfaceEventCallback { + oneway void eventClusterEvent(in android.hardware.wifi.NanClusterEventInd event); + oneway void eventDataPathConfirm(in android.hardware.wifi.NanDataPathConfirmInd event); + oneway void eventDataPathRequest(in android.hardware.wifi.NanDataPathRequestInd event); + oneway void eventDataPathScheduleUpdate(in android.hardware.wifi.NanDataPathScheduleUpdateInd event); + oneway void eventDataPathTerminated(in int ndpInstanceId); + oneway void eventDisabled(in android.hardware.wifi.NanStatus status); + oneway void eventFollowupReceived(in android.hardware.wifi.NanFollowupReceivedInd event); + oneway void eventMatch(in android.hardware.wifi.NanMatchInd event); + oneway void eventMatchExpired(in byte discoverySessionId, in int peerId); + oneway void eventPublishTerminated(in byte sessionId, in android.hardware.wifi.NanStatus status); + oneway void eventSubscribeTerminated(in byte sessionId, in android.hardware.wifi.NanStatus status); + oneway void eventTransmitFollowup(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyCapabilitiesResponse(in char id, in android.hardware.wifi.NanStatus status, in android.hardware.wifi.NanCapabilities capabilities); + oneway void notifyConfigResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyCreateDataInterfaceResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyDeleteDataInterfaceResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyDisableResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyEnableResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyInitiateDataPathResponse(in char id, in android.hardware.wifi.NanStatus status, in int ndpInstanceId); + oneway void notifyRespondToDataPathIndicationResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyStartPublishResponse(in char id, in android.hardware.wifi.NanStatus status, in byte sessionId); + oneway void notifyStartSubscribeResponse(in char id, in android.hardware.wifi.NanStatus status, in byte sessionId); + oneway void notifyStopPublishResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyStopSubscribeResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTerminateDataPathResponse(in char id, in android.hardware.wifi.NanStatus status); + oneway void notifyTransmitFollowupResponse(in char id, in android.hardware.wifi.NanStatus status); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiP2pIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiP2pIface.aidl new file mode 100644 index 0000000000..5e9948e0b7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiP2pIface.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiP2pIface { + String getName(); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttController.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttController.aidl new file mode 100644 index 0000000000..730a055eeb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttController.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiRttController { + void disableResponder(in int cmdId); + void enableResponder(in int cmdId, in android.hardware.wifi.WifiChannelInfo channelHint, in int maxDurationInSeconds, in android.hardware.wifi.RttResponder info); + android.hardware.wifi.IWifiStaIface getBoundIface(); + android.hardware.wifi.RttCapabilities getCapabilities(); + android.hardware.wifi.RttResponder getResponderInfo(); + void rangeCancel(in int cmdId, in android.hardware.wifi.MacAddress[] addrs); + void rangeRequest(in int cmdId, in android.hardware.wifi.RttConfig[] rttConfigs); + void registerEventCallback(in android.hardware.wifi.IWifiRttControllerEventCallback callback); + void setLci(in int cmdId, in android.hardware.wifi.RttLciInformation lci); + void setLcr(in int cmdId, in android.hardware.wifi.RttLcrInformation lcr); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttControllerEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttControllerEventCallback.aidl new file mode 100644 index 0000000000..a6a33fc049 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiRttControllerEventCallback.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiRttControllerEventCallback { + oneway void onResults(in int cmdId, in android.hardware.wifi.RttResult[] results); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl new file mode 100644 index 0000000000..2f0dfa18fa --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiStaIface { + String getName(); + void configureRoaming(in android.hardware.wifi.StaRoamingConfig config); + void disableLinkLayerStatsCollection(); + void enableLinkLayerStatsCollection(in boolean debug); + void enableNdOffload(in boolean enable); + android.hardware.wifi.StaApfPacketFilterCapabilities getApfPacketFilterCapabilities(); + android.hardware.wifi.StaBackgroundScanCapabilities getBackgroundScanCapabilities(); + android.hardware.wifi.IWifiStaIface.StaIfaceCapabilityMask getCapabilities(); + android.hardware.wifi.WifiDebugRxPacketFateReport[] getDebugRxPacketFates(); + android.hardware.wifi.WifiDebugTxPacketFateReport[] getDebugTxPacketFates(); + byte[6] getFactoryMacAddress(); + android.hardware.wifi.StaLinkLayerStats getLinkLayerStats(); + android.hardware.wifi.StaRoamingCapabilities getRoamingCapabilities(); + int[] getValidFrequenciesForBand(in android.hardware.wifi.WifiBand band); + void installApfPacketFilter(in byte[] program); + byte[] readApfPacketFilterData(); + void registerEventCallback(in android.hardware.wifi.IWifiStaIfaceEventCallback callback); + void setMacAddress(in byte[6] mac); + void setRoamingState(in android.hardware.wifi.StaRoamingState state); + void setScanMode(in boolean enable); + void startBackgroundScan(in int cmdId, in android.hardware.wifi.StaBackgroundScanParameters params); + void startDebugPacketFateMonitoring(); + void startRssiMonitoring(in int cmdId, in int maxRssi, in int minRssi); + void startSendingKeepAlivePackets(in int cmdId, in byte[] ipPacketData, in char etherType, in byte[6] srcAddress, in byte[6] dstAddress, in int periodInMs); + void stopBackgroundScan(in int cmdId); + void stopRssiMonitoring(in int cmdId); + void stopSendingKeepAlivePackets(in int cmdId); + @Backing(type="int") @VintfStability + enum StaIfaceCapabilityMask { + APF = 1, + BACKGROUND_SCAN = 2, + LINK_LAYER_STATS = 4, + RSSI_MONITOR = 8, + CONTROL_ROAMING = 16, + PROBE_IE_ALLOWLIST = 32, + SCAN_RAND = 64, + STA_5G = 128, + HOTSPOT = 256, + PNO = 512, + TDLS = 1024, + TDLS_OFFCHANNEL = 2048, + ND_OFFLOAD = 4096, + KEEP_ALIVE = 8192, + DEBUG_PACKET_FATE = 16384, + } +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl new file mode 100644 index 0000000000..48b85b0fcf --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +interface IWifiStaIfaceEventCallback { + oneway void onBackgroundFullScanResult(in int cmdId, in int bucketsScanned, in android.hardware.wifi.StaScanResult result); + oneway void onBackgroundScanFailure(in int cmdId); + oneway void onBackgroundScanResults(in int cmdId, in android.hardware.wifi.StaScanData[] scanDatas); + oneway void onRssiThresholdBreached(in int cmdId, in byte[6] currBssid, in int currRssi); +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceConcurrencyType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceConcurrencyType.aidl new file mode 100644 index 0000000000..0a3ad1ac8b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceConcurrencyType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum IfaceConcurrencyType { + STA = 0, + AP = 1, + AP_BRIDGED = 2, + P2P = 3, + NAN_IFACE = 4, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceType.aidl new file mode 100644 index 0000000000..dbdc4390f3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IfaceType.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum IfaceType { + STA = 0, + AP = 1, + P2P = 2, + NAN_IFACE = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/MacAddress.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/MacAddress.aidl new file mode 100644 index 0000000000..c4a06136ec --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/MacAddress.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable MacAddress { + byte[6] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandIndex.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandIndex.aidl new file mode 100644 index 0000000000..ca6c910579 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandIndex.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanBandIndex { + NAN_BAND_24GHZ = 0, + NAN_BAND_5GHZ = 1, + NAN_BAND_6GHZ = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandSpecificConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandSpecificConfig.aidl new file mode 100644 index 0000000000..57540b3835 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanBandSpecificConfig.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanBandSpecificConfig { + byte rssiClose; + byte rssiMiddle; + byte rssiCloseProximity; + char dwellTimeMs; + char scanPeriodSec; + boolean validDiscoveryWindowIntervalVal; + byte discoveryWindowIntervalVal; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCapabilities.aidl new file mode 100644 index 0000000000..c44654e4a3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCapabilities.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanCapabilities { + int maxConcurrentClusters; + int maxPublishes; + int maxSubscribes; + int maxServiceNameLen; + int maxMatchFilterLen; + int maxTotalMatchFilterLen; + int maxServiceSpecificInfoLen; + int maxExtendedServiceSpecificInfoLen; + int maxNdiInterfaces; + int maxNdpSessions; + int maxAppInfoLen; + int maxQueuedTransmitFollowupMsgs; + int maxSubscribeInterfaceAddresses; + android.hardware.wifi.NanCipherSuiteType supportedCipherSuites; + boolean instantCommunicationModeSupportFlag; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCipherSuiteType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCipherSuiteType.aidl new file mode 100644 index 0000000000..44509563b8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanCipherSuiteType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanCipherSuiteType { + NONE = 0, + SHARED_KEY_128_MASK = 1, + SHARED_KEY_256_MASK = 2, + PUBLIC_KEY_128_MASK = 4, + PUBLIC_KEY_256_MASK = 8, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventInd.aidl new file mode 100644 index 0000000000..7a3ff8151a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventInd.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanClusterEventInd { + android.hardware.wifi.NanClusterEventType eventType; + byte[6] addr; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventType.aidl new file mode 100644 index 0000000000..1dfa45f6c8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanClusterEventType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanClusterEventType { + DISCOVERY_MAC_ADDRESS_CHANGED = 0, + STARTED_CLUSTER = 1, + JOINED_CLUSTER = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequest.aidl new file mode 100644 index 0000000000..5ead6515d0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequest.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanConfigRequest { + byte masterPref; + boolean disableDiscoveryAddressChangeIndication; + boolean disableStartedClusterIndication; + boolean disableJoinedClusterIndication; + boolean includePublishServiceIdsInBeacon; + byte numberOfPublishServiceIdsInBeacon; + boolean includeSubscribeServiceIdsInBeacon; + byte numberOfSubscribeServiceIdsInBeacon; + char rssiWindowSize; + int macAddressRandomizationIntervalSec; + android.hardware.wifi.NanBandSpecificConfig[3] bandSpecificConfig; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequestSupplemental.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequestSupplemental.aidl new file mode 100644 index 0000000000..682699e7f4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanConfigRequestSupplemental.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanConfigRequestSupplemental { + int discoveryBeaconIntervalMs; + int numberOfSpatialStreamsInDiscovery; + boolean enableDiscoveryWindowEarlyTermination; + boolean enableRanging; + boolean enableInstantCommunicationMode; + int instantModeChannel; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelCfg.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelCfg.aidl new file mode 100644 index 0000000000..ce752882af --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelCfg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanDataPathChannelCfg { + CHANNEL_NOT_REQUESTED = 0, + REQUEST_CHANNEL_SETUP = 1, + FORCE_CHANNEL_SETUP = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelInfo.aidl new file mode 100644 index 0000000000..d111db784c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathChannelInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanDataPathChannelInfo { + int channelFreq; + android.hardware.wifi.WifiChannelWidthInMhz channelBandwidth; + int numSpatialStreams; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathConfirmInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathConfirmInd.aidl new file mode 100644 index 0000000000..2e1e2caece --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathConfirmInd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanDataPathConfirmInd { + int ndpInstanceId; + boolean dataPathSetupSuccess; + byte[6] peerNdiMacAddr; + byte[] appInfo; + android.hardware.wifi.NanStatus status; + android.hardware.wifi.NanDataPathChannelInfo[] channelInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathRequestInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathRequestInd.aidl new file mode 100644 index 0000000000..74d5b73aba --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathRequestInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanDataPathRequestInd { + byte discoverySessionId; + byte[6] peerDiscMacAddr; + int ndpInstanceId; + boolean securityRequired; + byte[] appInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl new file mode 100644 index 0000000000..5fabf5539c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanDataPathScheduleUpdateInd { + byte[6] peerDiscoveryAddress; + android.hardware.wifi.NanDataPathChannelInfo[] channelInfo; + int[] ndpInstanceIds; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityConfig.aidl new file mode 100644 index 0000000000..635dbce788 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityConfig.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanDataPathSecurityConfig { + android.hardware.wifi.NanDataPathSecurityType securityType; + android.hardware.wifi.NanCipherSuiteType cipherType; + byte[32] pmk; + byte[] passphrase; + byte[16] scid; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityType.aidl new file mode 100644 index 0000000000..64288ca5b3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDataPathSecurityType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanDataPathSecurityType { + OPEN = 0, + PMK = 1, + PASSPHRASE = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDebugConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDebugConfig.aidl new file mode 100644 index 0000000000..b84d891221 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDebugConfig.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanDebugConfig { + boolean validClusterIdVals; + char clusterIdBottomRangeVal; + char clusterIdTopRangeVal; + boolean validIntfAddrVal; + byte[6] intfAddrVal; + boolean validOuiVal; + int ouiVal; + boolean validRandomFactorForceVal; + byte randomFactorForceVal; + boolean validHopCountForceVal; + byte hopCountForceVal; + boolean validDiscoveryChannelVal; + int[3] discoveryChannelMhzVal; + boolean validUseBeaconsInBandVal; + boolean[3] useBeaconsInBandVal; + boolean validUseSdfInBandVal; + boolean[3] useSdfInBandVal; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDiscoveryCommonConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDiscoveryCommonConfig.aidl new file mode 100644 index 0000000000..761cdbb643 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanDiscoveryCommonConfig.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanDiscoveryCommonConfig { + byte sessionId; + char ttlSec; + char discoveryWindowPeriod; + byte discoveryCount; + byte[] serviceName; + android.hardware.wifi.NanMatchAlg discoveryMatchIndicator; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + byte[] rxMatchFilter; + byte[] txMatchFilter; + boolean useRssiThreshold; + boolean disableDiscoveryTerminationIndication; + boolean disableMatchExpirationIndication; + boolean disableFollowupReceivedIndication; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + boolean rangingRequired; + int rangingIntervalMs; + android.hardware.wifi.NanRangingIndication configRangingIndications; + char distanceIngressCm; + char distanceEgressCm; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanEnableRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanEnableRequest.aidl new file mode 100644 index 0000000000..eaa009cfd1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanEnableRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanEnableRequest { + boolean[3] operateInBand; + byte hopCountMax; + android.hardware.wifi.NanConfigRequest configParams; + android.hardware.wifi.NanDebugConfig debugConfigs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanFollowupReceivedInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanFollowupReceivedInd.aidl new file mode 100644 index 0000000000..743ad9d227 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanFollowupReceivedInd.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanFollowupReceivedInd { + byte discoverySessionId; + int peerId; + byte[6] addr; + boolean receivedInFaw; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanInitiateDataPathRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanInitiateDataPathRequest.aidl new file mode 100644 index 0000000000..697e29a7c8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanInitiateDataPathRequest.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanInitiateDataPathRequest { + int peerId; + byte[6] peerDiscMacAddr; + android.hardware.wifi.NanDataPathChannelCfg channelRequestType; + int channel; + String ifaceName; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + byte[] appInfo; + byte[] serviceNameOutOfBand; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchAlg.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchAlg.aidl new file mode 100644 index 0000000000..dab33ad19f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchAlg.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanMatchAlg { + MATCH_ONCE = 0, + MATCH_CONTINUOUS = 1, + MATCH_NEVER = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchInd.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchInd.aidl new file mode 100644 index 0000000000..ae430c4df7 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanMatchInd.aidl @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanMatchInd { + byte discoverySessionId; + int peerId; + byte[6] addr; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + byte[] matchFilter; + boolean matchOccurredInBeaconFlag; + boolean outOfResourceFlag; + byte rssiValue; + android.hardware.wifi.NanCipherSuiteType peerCipherType; + boolean peerRequiresSecurityEnabledInNdp; + boolean peerRequiresRanging; + int rangingMeasurementInMm; + android.hardware.wifi.NanRangingIndication rangingIndicationType; + byte[] scid; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishRequest.aidl new file mode 100644 index 0000000000..d8d6b1bd61 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishRequest.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanPublishRequest { + android.hardware.wifi.NanDiscoveryCommonConfig baseConfigs; + android.hardware.wifi.NanPublishType publishType; + android.hardware.wifi.NanTxType txType; + boolean autoAcceptDataPathRequests; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishType.aidl new file mode 100644 index 0000000000..fc9b7a0512 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanPublishType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanPublishType { + UNSOLICITED = 0, + SOLICITED = 1, + UNSOLICITED_SOLICITED = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRangingIndication.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRangingIndication.aidl new file mode 100644 index 0000000000..d03dffc815 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRangingIndication.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanRangingIndication { + CONTINUOUS_INDICATION_MASK = 1, + INGRESS_MET_MASK = 2, + EGRESS_MET_MASK = 4, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl new file mode 100644 index 0000000000..5542ff62ba --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanRespondToDataPathIndicationRequest { + boolean acceptRequest; + int ndpInstanceId; + String ifaceName; + android.hardware.wifi.NanDataPathSecurityConfig securityConfig; + byte[] appInfo; + byte[] serviceNameOutOfBand; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSrfType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSrfType.aidl new file mode 100644 index 0000000000..3c0583cbee --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSrfType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanSrfType { + BLOOM_FILTER = 0, + PARTIAL_MAC_ADDR = 1, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatus.aidl new file mode 100644 index 0000000000..834558ae72 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatus.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanStatus { + android.hardware.wifi.NanStatusCode status; + String description; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatusCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatusCode.aidl new file mode 100644 index 0000000000..9eaf518a2f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanStatusCode.aidl @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanStatusCode { + SUCCESS = 0, + INTERNAL_FAILURE = 1, + PROTOCOL_FAILURE = 2, + INVALID_SESSION_ID = 3, + NO_RESOURCES_AVAILABLE = 4, + INVALID_ARGS = 5, + INVALID_PEER_ID = 6, + INVALID_NDP_ID = 7, + NAN_NOT_ALLOWED = 8, + NO_OTA_ACK = 9, + ALREADY_ENABLED = 10, + FOLLOWUP_TX_QUEUE_FULL = 11, + UNSUPPORTED_CONCURRENCY_NAN_DISABLED = 12, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeRequest.aidl new file mode 100644 index 0000000000..bf176a5a05 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanSubscribeRequest { + android.hardware.wifi.NanDiscoveryCommonConfig baseConfigs; + android.hardware.wifi.NanSubscribeType subscribeType; + android.hardware.wifi.NanSrfType srfType; + boolean srfRespondIfInAddressSet; + boolean shouldUseSrf; + boolean isSsiRequiredForMatch; + android.hardware.wifi.MacAddress[] intfAddr; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeType.aidl new file mode 100644 index 0000000000..325e40be6f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanSubscribeType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanSubscribeType { + PASSIVE = 0, + ACTIVE = 1, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTransmitFollowupRequest.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTransmitFollowupRequest.aidl new file mode 100644 index 0000000000..20c94d9558 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTransmitFollowupRequest.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable NanTransmitFollowupRequest { + byte discoverySessionId; + int peerId; + byte[6] addr; + boolean isHighPriority; + boolean shouldUseDiscoveryWindow; + byte[] serviceSpecificInfo; + byte[] extendedServiceSpecificInfo; + boolean disableFollowupResultIndication; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTxType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTxType.aidl new file mode 100644 index 0000000000..6f7696f07d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/NanTxType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum NanTxType { + BROADCAST = 0, + UNICAST = 1, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttBw.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttBw.aidl new file mode 100644 index 0000000000..bd7efff345 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttBw.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum RttBw { + BW_5MHZ = 1, + BW_10MHZ = 2, + BW_20MHZ = 4, + BW_40MHZ = 8, + BW_80MHZ = 16, + BW_160MHZ = 32, + BW_320MHZ = 64, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl new file mode 100644 index 0000000000..cf64687c50 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttCapabilities.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable RttCapabilities { + boolean rttOneSidedSupported; + boolean rttFtmSupported; + boolean lciSupported; + boolean lcrSupported; + boolean responderSupported; + android.hardware.wifi.RttPreamble preambleSupport; + android.hardware.wifi.RttBw bwSupport; + byte mcVersion; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl new file mode 100644 index 0000000000..ccdf2cee68 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttConfig.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable RttConfig { + byte[6] addr; + android.hardware.wifi.RttType type; + android.hardware.wifi.RttPeerType peer; + android.hardware.wifi.WifiChannelInfo channel; + int burstPeriod; + int numBurst; + int numFramesPerBurst; + int numRetriesPerRttFrame; + int numRetriesPerFtmr; + boolean mustRequestLci; + boolean mustRequestLcr; + int burstDuration; + android.hardware.wifi.RttPreamble preamble; + android.hardware.wifi.RttBw bw; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLciInformation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLciInformation.aidl new file mode 100644 index 0000000000..0fcf151fd1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLciInformation.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable RttLciInformation { + long latitude; + long longitude; + int altitude; + byte latitudeUnc; + byte longitudeUnc; + byte altitudeUnc; + android.hardware.wifi.RttMotionPattern motionPattern; + int floor; + int heightAboveFloor; + int heightUnc; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLcrInformation.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLcrInformation.aidl new file mode 100644 index 0000000000..c756ddab0d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttLcrInformation.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable RttLcrInformation { + byte[2] countryCode; + String civicInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttMotionPattern.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttMotionPattern.aidl new file mode 100644 index 0000000000..7c8e3692b1 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttMotionPattern.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum RttMotionPattern { + NOT_EXPECTED = 0, + EXPECTED = 1, + UNKNOWN = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPeerType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPeerType.aidl new file mode 100644 index 0000000000..23fa7f67cb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPeerType.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum RttPeerType { + AP = 1, + STA = 2, + P2P_GO = 3, + P2P_CLIENT = 4, + NAN_TYPE = 5, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPreamble.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPreamble.aidl new file mode 100644 index 0000000000..02e6479cdc --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttPreamble.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum RttPreamble { + LEGACY = 1, + HT = 2, + VHT = 4, + HE = 8, + EHT = 16, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResponder.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResponder.aidl new file mode 100644 index 0000000000..41463b5292 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResponder.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable RttResponder { + android.hardware.wifi.WifiChannelInfo channel; + android.hardware.wifi.RttPreamble preamble; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl new file mode 100644 index 0000000000..743e0bd182 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttResult.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable RttResult { + byte[6] addr; + int burstNum; + int measurementNumber; + int successNumber; + byte numberPerBurstPeer; + android.hardware.wifi.RttStatus status; + byte retryAfterDuration; + android.hardware.wifi.RttType type; + int rssi; + int rssiSpread; + android.hardware.wifi.WifiRateInfo txRate; + android.hardware.wifi.WifiRateInfo rxRate; + long rtt; + long rttSd; + long rttSpread; + int distanceInMm; + int distanceSdInMm; + int distanceSpreadInMm; + long timeStampInUs; + int burstDurationInMs; + int negotiatedBurstNum; + android.hardware.wifi.WifiInformationElement lci; + android.hardware.wifi.WifiInformationElement lcr; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttStatus.aidl new file mode 100644 index 0000000000..2817497a7a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttStatus.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum RttStatus { + SUCCESS = 0, + FAILURE = 1, + FAIL_NO_RSP = 2, + FAIL_REJECTED = 3, + FAIL_NOT_SCHEDULED_YET = 4, + FAIL_TM_TIMEOUT = 5, + FAIL_AP_ON_DIFF_CHANNEL = 6, + FAIL_NO_CAPABILITY = 7, + ABORTED = 8, + FAIL_INVALID_TS = 9, + FAIL_PROTOCOL = 10, + FAIL_SCHEDULE = 11, + FAIL_BUSY_TRY_LATER = 12, + INVALID_REQ = 13, + NO_WIFI = 14, + FAIL_FTM_PARAM_OVERRIDE = 15, + NAN_RANGING_PROTOCOL_FAILURE = 16, + NAN_RANGING_CONCURRENCY_NOT_SUPPORTED = 17, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttType.aidl new file mode 100644 index 0000000000..2b6087a6bc --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/RttType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum RttType { + ONE_SIDED = 1, + TWO_SIDED = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/Ssid.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/Ssid.aidl new file mode 100644 index 0000000000..98b523f37e --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/Ssid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable Ssid { + byte[32] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl new file mode 100644 index 0000000000..3b4d785a42 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaApfPacketFilterCapabilities { + int version; + int maxLength; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl new file mode 100644 index 0000000000..1041dd7407 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum StaBackgroundScanBucketEventReportSchemeMask { + EACH_SCAN = 1, + FULL_RESULTS = 2, + NO_BATCH = 4, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl new file mode 100644 index 0000000000..b49d406921 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaBackgroundScanBucketParameters { + int bucketIdx; + android.hardware.wifi.WifiBand band; + int[] frequencies; + int periodInMs; + android.hardware.wifi.StaBackgroundScanBucketEventReportSchemeMask eventReportScheme; + int exponentialMaxPeriodInMs; + int exponentialBase; + int exponentialStepCount; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanCapabilities.aidl new file mode 100644 index 0000000000..758dd97485 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaBackgroundScanCapabilities { + int maxCacheSize; + int maxBuckets; + int maxApCachePerScan; + int maxReportingThreshold; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanLimits.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanLimits.aidl new file mode 100644 index 0000000000..05d0277d1c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanLimits.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum StaBackgroundScanLimits { + MAX_CHANNELS = 16, + MAX_BUCKETS = 16, + MAX_AP_CACHE_PER_SCAN = 32, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanParameters.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanParameters.aidl new file mode 100644 index 0000000000..077356685d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaBackgroundScanParameters.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaBackgroundScanParameters { + int basePeriodInMs; + int maxApPerScan; + int reportThresholdPercent; + int reportThresholdNumScans; + android.hardware.wifi.StaBackgroundScanBucketParameters[] buckets; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl new file mode 100644 index 0000000000..4dee6de3fd --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaLinkLayerIfaceContentionTimeStats { + int contentionTimeMinInUsec; + int contentionTimeMaxInUsec; + int contentionTimeAvgInUsec; + int contentionNumSamples; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl new file mode 100644 index 0000000000..eddf52ee25 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaLinkLayerIfacePacketStats { + long rxMpdu; + long txMpdu; + long lostMpdu; + long retries; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceStats.aidl new file mode 100644 index 0000000000..cf68fc6bf4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerIfaceStats.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaLinkLayerIfaceStats { + int beaconRx; + int avgRssiMgmt; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeBePktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeBkPktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeViPktStats; + android.hardware.wifi.StaLinkLayerIfacePacketStats wmeVoPktStats; + byte timeSliceDutyCycleInPercent; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeBeContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeBkContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeViContentionTimeStats; + android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats wmeVoContentionTimeStats; + android.hardware.wifi.StaPeerInfo[] peers; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerRadioStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerRadioStats.aidl new file mode 100644 index 0000000000..84d24c9974 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerRadioStats.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaLinkLayerRadioStats { + int onTimeInMs; + int txTimeInMs; + int[] txTimeInMsPerLevel; + int rxTimeInMs; + int onTimeInMsForScan; + int onTimeInMsForNanScan; + int onTimeInMsForBgScan; + int onTimeInMsForRoamScan; + int onTimeInMsForPnoScan; + int onTimeInMsForHs20Scan; + android.hardware.wifi.WifiChannelStats[] channelStats; + int radioId; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerStats.aidl new file mode 100644 index 0000000000..9c05346998 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaLinkLayerStats.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaLinkLayerStats { + android.hardware.wifi.StaLinkLayerIfaceStats iface; + android.hardware.wifi.StaLinkLayerRadioStats[] radios; + long timeStampInMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaPeerInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaPeerInfo.aidl new file mode 100644 index 0000000000..93a901fb2a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaPeerInfo.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaPeerInfo { + char staCount; + char chanUtil; + android.hardware.wifi.StaRateStat[] rateStats; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRateStat.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRateStat.aidl new file mode 100644 index 0000000000..43b69fc900 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRateStat.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaRateStat { + android.hardware.wifi.WifiRateInfo rateInfo; + int txMpdu; + int rxMpdu; + int mpduLost; + int retries; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingCapabilities.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingCapabilities.aidl new file mode 100644 index 0000000000..9eed877d6f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingCapabilities.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaRoamingCapabilities { + int maxBlocklistSize; + int maxAllowlistSize; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingConfig.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingConfig.aidl new file mode 100644 index 0000000000..2b37cee12a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingConfig.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaRoamingConfig { + android.hardware.wifi.MacAddress[] bssidBlocklist; + android.hardware.wifi.Ssid[] ssidAllowlist; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingState.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingState.aidl new file mode 100644 index 0000000000..1f3d91f290 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaRoamingState.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="byte") @VintfStability +enum StaRoamingState { + DISABLED = 0, + ENABLED = 1, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanData.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanData.aidl new file mode 100644 index 0000000000..590376098b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanData.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaScanData { + android.hardware.wifi.StaScanDataFlagMask flags; + int bucketsScanned; + android.hardware.wifi.StaScanResult[] results; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanDataFlagMask.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanDataFlagMask.aidl new file mode 100644 index 0000000000..dc8f2f1bd4 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanDataFlagMask.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum StaScanDataFlagMask { + INTERRUPTED = 1, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanResult.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanResult.aidl new file mode 100644 index 0000000000..9a8d29720c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/StaScanResult.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable StaScanResult { + long timeStampInUs; + byte[] ssid; + byte[6] bssid; + int rssi; + int frequency; + char beaconPeriodInMs; + char capability; + android.hardware.wifi.WifiInformationElement[] informationElements; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiAntennaMode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiAntennaMode.aidl new file mode 100644 index 0000000000..b47b7f502a --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiAntennaMode.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiAntennaMode { + WIFI_ANTENNA_MODE_UNSPECIFIED = 0, + WIFI_ANTENNA_MODE_1X1 = 1, + WIFI_ANTENNA_MODE_2X2 = 2, + WIFI_ANTENNA_MODE_3X3 = 3, + WIFI_ANTENNA_MODE_4X4 = 4, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiBand.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiBand.aidl new file mode 100644 index 0000000000..e9a87ee458 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiBand.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiBand { + BAND_UNSPECIFIED = 0, + BAND_24GHZ = 1, + BAND_5GHZ = 2, + BAND_5GHZ_DFS = 4, + BAND_5GHZ_WITH_DFS = 6, + BAND_24GHZ_5GHZ = 3, + BAND_24GHZ_5GHZ_WITH_DFS = 7, + BAND_6GHZ = 8, + BAND_5GHZ_6GHZ = 10, + BAND_24GHZ_5GHZ_6GHZ = 11, + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ = 15, + BAND_60GHZ = 16, + BAND_24GHZ_5GHZ_6GHZ_60GHZ = 27, + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ_60GHZ = 31, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelInfo.aidl new file mode 100644 index 0000000000..297c923dbe --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiChannelInfo { + android.hardware.wifi.WifiChannelWidthInMhz width; + int centerFreq; + int centerFreq0; + int centerFreq1; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelStats.aidl new file mode 100644 index 0000000000..c6e7acc937 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelStats.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiChannelStats { + android.hardware.wifi.WifiChannelInfo channel; + int onTimeInMs; + int ccaBusyTimeInMs; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelWidthInMhz.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelWidthInMhz.aidl new file mode 100644 index 0000000000..8c4504442f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiChannelWidthInMhz.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiChannelWidthInMhz { + WIDTH_INVALID = -1, + WIDTH_20 = 0, + WIDTH_40 = 1, + WIDTH_80 = 2, + WIDTH_160 = 3, + WIDTH_80P80 = 4, + WIDTH_5 = 5, + WIDTH_10 = 6, + WIDTH_320 = 7, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl new file mode 100644 index 0000000000..8415e09ad8 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugHostWakeReasonRxIcmpPacketDetails { + int icmpPkt; + int icmp6Pkt; + int icmp6Ra; + int icmp6Na; + int icmp6Ns; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl new file mode 100644 index 0000000000..30301d3e45 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugHostWakeReasonRxMulticastPacketDetails { + int ipv4RxMulticastAddrCnt; + int ipv6RxMulticastAddrCnt; + int otherRxMulticastAddrCnt; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl new file mode 100644 index 0000000000..81183225dc --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugHostWakeReasonRxPacketDetails { + int rxUnicastCnt; + int rxMulticastCnt; + int rxBroadcastCnt; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl new file mode 100644 index 0000000000..1766476919 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugHostWakeReasonStats { + int totalCmdEventWakeCnt; + int[] cmdEventWakeCntPerType; + int totalDriverFwLocalWakeCnt; + int[] driverFwLocalWakeCntPerType; + int totalRxPacketWakeCnt; + android.hardware.wifi.WifiDebugHostWakeReasonRxPacketDetails rxPktWakeDetails; + android.hardware.wifi.WifiDebugHostWakeReasonRxMulticastPacketDetails rxMulticastPkWakeDetails; + android.hardware.wifi.WifiDebugHostWakeReasonRxIcmpPacketDetails rxIcmpPkWakeDetails; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl new file mode 100644 index 0000000000..2ff6cfcbeb --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugPacketFateFrameInfo { + android.hardware.wifi.WifiDebugPacketFateFrameType frameType; + long frameLen; + long driverTimestampUsec; + long firmwareTimestampUsec; + byte[] frameContent; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl new file mode 100644 index 0000000000..ee26f2ef11 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiDebugPacketFateFrameType { + UNKNOWN = 0, + ETHERNET_II = 1, + MGMT_80211 = 2, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferFlags.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferFlags.aidl new file mode 100644 index 0000000000..f210e826a3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferFlags.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiDebugRingBufferFlags { + HAS_BINARY_ENTRIES = 1, + HAS_ASCII_ENTRIES = 2, + HAS_PER_PACKET_ENTRIES = 4, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferStatus.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferStatus.aidl new file mode 100644 index 0000000000..e4249d9a88 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugRingBufferStatus { + String ringName; + int flags; + int ringId; + int sizeInBytes; + int freeSizeInBytes; + int verboseLevel; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl new file mode 100644 index 0000000000..e614f3fba0 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiDebugRingBufferVerboseLevel { + NONE = 0, + DEFAULT = 1, + VERBOSE = 2, + EXCESSIVE = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFate.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFate.aidl new file mode 100644 index 0000000000..75abb4e538 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFate.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiDebugRxPacketFate { + SUCCESS = 0, + FW_QUEUED = 1, + FW_DROP_FILTER = 2, + FW_DROP_INVALID = 3, + FW_DROP_NOBUFS = 4, + FW_DROP_OTHER = 5, + DRV_QUEUED = 6, + DRV_DROP_FILTER = 7, + DRV_DROP_INVALID = 8, + DRV_DROP_NOBUFS = 9, + DRV_DROP_OTHER = 10, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl new file mode 100644 index 0000000000..bfe0c0aee6 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugRxPacketFateReport { + android.hardware.wifi.WifiDebugRxPacketFate fate; + android.hardware.wifi.WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFate.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFate.aidl new file mode 100644 index 0000000000..e360c2c505 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFate.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiDebugTxPacketFate { + ACKED = 0, + SENT = 1, + FW_QUEUED = 2, + FW_DROP_INVALID = 3, + FW_DROP_NOBUFS = 4, + FW_DROP_OTHER = 5, + DRV_QUEUED = 6, + DRV_DROP_INVALID = 7, + DRV_DROP_NOBUFS = 8, + DRV_DROP_OTHER = 9, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl new file mode 100644 index 0000000000..aee5c31103 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiDebugTxPacketFateReport { + android.hardware.wifi.WifiDebugTxPacketFate fate; + android.hardware.wifi.WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiIfaceMode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiIfaceMode.aidl new file mode 100644 index 0000000000..e2fe57af3f --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiIfaceMode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiIfaceMode { + IFACE_MODE_STA = 1, + IFACE_MODE_SOFTAP = 2, + IFACE_MODE_IBSS = 4, + IFACE_MODE_P2P_CLIENT = 8, + IFACE_MODE_P2P_GO = 16, + IFACE_MODE_NAN = 32, + IFACE_MODE_MESH = 64, + IFACE_MODE_TDLS = 128, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiInformationElement.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiInformationElement.aidl new file mode 100644 index 0000000000..27ba0db19c --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiInformationElement.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiInformationElement { + byte id; + byte[] data; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombination.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombination.aidl new file mode 100644 index 0000000000..f060db87f3 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombination.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiRadioCombination { + android.hardware.wifi.WifiRadioConfiguration[] radioConfigurations; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombinationMatrix.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombinationMatrix.aidl new file mode 100644 index 0000000000..ea86c4fa79 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioCombinationMatrix.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiRadioCombinationMatrix { + android.hardware.wifi.WifiRadioCombination[] radioCombinations; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioConfiguration.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioConfiguration.aidl new file mode 100644 index 0000000000..5169351525 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRadioConfiguration.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiRadioConfiguration { + android.hardware.wifi.WifiBand bandInfo; + android.hardware.wifi.WifiAntennaMode antennaMode; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateInfo.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateInfo.aidl new file mode 100644 index 0000000000..c4aca637bf --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiRateInfo { + android.hardware.wifi.WifiRatePreamble preamble; + android.hardware.wifi.WifiRateNss nss; + android.hardware.wifi.WifiChannelWidthInMhz bw; + byte rateMcsIdx; + int bitRateInKbps; +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateNss.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateNss.aidl new file mode 100644 index 0000000000..0ad6f04847 --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRateNss.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiRateNss { + NSS_1x1 = 0, + NSS_2x2 = 1, + NSS_3x3 = 2, + NSS_4x4 = 3, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRatePreamble.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRatePreamble.aidl new file mode 100644 index 0000000000..04b63583ea --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiRatePreamble.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiRatePreamble { + OFDM = 0, + CCK = 1, + HT = 2, + VHT = 3, + RESERVED = 4, + HE = 5, + EHT = 6, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiStatusCode.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiStatusCode.aidl new file mode 100644 index 0000000000..f27661c93d --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiStatusCode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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; +@Backing(type="int") @VintfStability +enum WifiStatusCode { + SUCCESS = 0, + ERROR_WIFI_CHIP_INVALID = 1, + ERROR_WIFI_IFACE_INVALID = 2, + ERROR_WIFI_RTT_CONTROLLER_INVALID = 3, + ERROR_NOT_SUPPORTED = 4, + ERROR_NOT_AVAILABLE = 5, + ERROR_NOT_STARTED = 6, + ERROR_INVALID_ARGS = 7, + ERROR_BUSY = 8, + ERROR_UNKNOWN = 9, +} diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiUsableChannel.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiUsableChannel.aidl new file mode 100644 index 0000000000..94e3a8ae0b --- /dev/null +++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/WifiUsableChannel.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; +@VintfStability +parcelable WifiUsableChannel { + int channel; + android.hardware.wifi.WifiChannelWidthInMhz channelBandwidth; + android.hardware.wifi.WifiIfaceMode ifaceModeMask; +} diff --git a/wifi/aidl/android/hardware/wifi/IWifi.aidl b/wifi/aidl/android/hardware/wifi/IWifi.aidl new file mode 100644 index 0000000000..1d86421a22 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifi.aidl @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.IWifiChip; +import android.hardware.wifi.IWifiEventCallback; + +/** + * This is the root of the HAL module and is the interface returned when + * loading an implementation of the Wi-Fi HAL. There must be at most one + * module loaded in the system. + */ +@VintfStability +interface IWifi { + /** + * Gets an AIDL interface object for the chip corresponding to the + * provided chipId. + * + * @param chipId ID of the chip. + * @return AIDL interface object representing the chip. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.NOT_STARTED|, + * |WifiStatusCode.UNKNOWN| + */ + @PropagateAllowBlocking IWifiChip getChip(int chipId); + + /** + * Retrieves the list of all chip id's on the device. + * The corresponding |IWifiChip| object for any chip can be + * retrieved using the |getChip| method. + * + * @return List of all chip id's on the device. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.NOT_STARTED|, + * |WifiStatusCode.UNKNOWN| + */ + int[] getChipIds(); + + /** + * Get the current state of the HAL. + * + * @return true if started, false otherwise. + */ + boolean isStarted(); + + /** + * Requests notifications of significant HAL events. Multiple calls to + * this must register multiple callbacks, each of which must receive all + * events. |IWifiEventCallback| object registration must be independent of the + * state of the rest of the HAL and must persist though stops/starts. These + * objects must be deleted when the corresponding client process is dead. + * + * @param callback An instance of the |IWifiEventCallback| AIDL interface + * object. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.UNKNOWN| + */ + void registerEventCallback(in IWifiEventCallback callback); + + /** + * Perform any setup that is required to make use of the module. + * If the module is already started then this must be a noop. + * Must trigger |IWifiEventCallback.onStart| on success. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + void start(); + + /** + * Tear down any state, ongoing commands, etc. If the module is already + * stopped then this must be a noop. After calling this, all |IWifiChip| + * objects will be considered invalid. + * Must trigger |IWifiEventCallback.onStop| on success. + * Must trigger |IWifiEventCallback.onFailure| on failure. + * + * Calling stop() and then start() is a valid way of resetting state in + * the HAL, driver, and firmware. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.NOT_STARTED|, + * |WifiStatusCode.UNKNOWN| + */ + void stop(); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiApIface.aidl b/wifi/aidl/android/hardware/wifi/IWifiApIface.aidl new file mode 100644 index 0000000000..71ea385a3e --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiApIface.aidl @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiBand; + +/** + * Represents a network interface in AP mode. + * + * This can be obtained through |IWifiChip.getApIface|. + */ +@VintfStability +interface IWifiApIface { + /** + * Get the name of this interface. + * + * @return Name of this interface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + String getName(); + + /** + * Get the names of the bridged AP instances. + * + * @return Vector containing the names of the bridged AP + * instances. Note: Returns an empty vector for a non-bridged AP. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + String[] getBridgedInstances(); + + /** + * Gets the factory MAC address of the interface. + * + * @return Factory MAC address of the interface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + byte[6] getFactoryMacAddress(); + + /** + * Set country code for this iface. + * + * @param code 2 byte country code (as defined in ISO 3166) to set. + * @return status Status of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.FAILURE_UNKNOWN|, + * |WifiStatusCode.FAILURE_IFACE_INVALID| + */ + void setCountryCode(in byte[2] code); + + /** + * Used to query the list of valid frequencies (depending on country code set) + * for the provided band. + * + * @param band Band for which the frequency list is being generated. + * @return Vector of valid frequencies for the provided band. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + int[] getValidFrequenciesForBand(in WifiBand band); + + /** + * Reset all of the AP interfaces' MAC address to the factory MAC address. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void resetToFactoryMacAddress(); + + /** + * Changes the MAC address of the interface to the given MAC address. + * + * @param mac MAC address to change to. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void setMacAddress(in byte[6] mac); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiChip.aidl b/wifi/aidl/android/hardware/wifi/IWifiChip.aidl new file mode 100644 index 0000000000..fe9a6f399b --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiChip.aidl @@ -0,0 +1,1096 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.IWifiApIface; +import android.hardware.wifi.IWifiChipEventCallback; +import android.hardware.wifi.IWifiNanIface; +import android.hardware.wifi.IWifiP2pIface; +import android.hardware.wifi.IWifiRttController; +import android.hardware.wifi.IWifiStaIface; +import android.hardware.wifi.IfaceConcurrencyType; +import android.hardware.wifi.IfaceType; +import android.hardware.wifi.WifiBand; +import android.hardware.wifi.WifiDebugHostWakeReasonStats; +import android.hardware.wifi.WifiDebugRingBufferStatus; +import android.hardware.wifi.WifiDebugRingBufferVerboseLevel; +import android.hardware.wifi.WifiIfaceMode; +import android.hardware.wifi.WifiRadioCombinationMatrix; +import android.hardware.wifi.WifiUsableChannel; + +/** + * Interface that represents a chip that must be configured as a single unit. + */ +@VintfStability +interface IWifiChip { + /** + * Capabilities exposed by this chip. + */ + @VintfStability + @Backing(type="int") + enum ChipCapabilityMask { + /** + * Memory dump of Firmware. + */ + DEBUG_MEMORY_FIRMWARE_DUMP = 1 << 0, + /** + * Memory dump of Driver. + */ + DEBUG_MEMORY_DRIVER_DUMP = 1 << 1, + /** + * Connectivity events reported via debug ring buffer. + */ + DEBUG_RING_BUFFER_CONNECT_EVENT = 1 << 2, + /** + * Power events reported via debug ring buffer. + */ + DEBUG_RING_BUFFER_POWER_EVENT = 1 << 3, + /** + * Wakelock events reported via debug ring buffer. + */ + DEBUG_RING_BUFFER_WAKELOCK_EVENT = 1 << 4, + /** + * Vendor data reported via debug ring buffer. + * This mostly contains firmware event logs. + */ + DEBUG_RING_BUFFER_VENDOR_DATA = 1 << 5, + /** + * Host wake reasons stats collection. + */ + DEBUG_HOST_WAKE_REASON_STATS = 1 << 6, + /** + * Error alerts. + */ + DEBUG_ERROR_ALERTS = 1 << 7, + /** + * Set/Reset Tx Power limits. + */ + SET_TX_POWER_LIMIT = 1 << 8, + /** + * Device to Device RTT. + */ + D2D_RTT = 1 << 9, + /** + * Device to AP RTT. + */ + D2AP_RTT = 1 << 10, + /** + * Set/Reset Tx Power limits. + */ + USE_BODY_HEAD_SAR = 1 << 11, + /** + * Set Latency Mode. + */ + SET_LATENCY_MODE = 1 << 12, + /** + * Support P2P MAC randomization. + */ + P2P_RAND_MAC = 1 << 13, + /** + * Chip can operate in the 60GHz band (WiGig chip). + */ + WIGIG = 1 << 14, + } + + /** + * Set of interface concurrency types, along with the maximum number of interfaces that can have + * one of the specified concurrency types for a given ChipConcurrencyCombination. See + * ChipConcurrencyCombination below for examples. + */ + @VintfStability + parcelable ChipConcurrencyCombinationLimit { + IfaceConcurrencyType[] types; + int maxIfaces; + } + + /** + * Set of interfaces that can operate concurrently when in a given mode. See + * ChipMode below. + * + * For example: + * [{STA} <= 2] + * At most two STA interfaces are supported + * [], [STA], [STA+STA] + * + * [{STA} <= 1, {NAN} <= 1, {AP_BRIDGED} <= 1] + * Any combination of STA, NAN, AP_BRIDGED + * [], [STA], [NAN], [AP_BRIDGED], [STA+NAN], [STA+AP_BRIDGED], [NAN+AP_BRIDGED], + * [STA+NAN+AP_BRIDGED] + * + * [{STA} <= 1, {NAN,P2P} <= 1] + * Optionally a STA and either NAN or P2P + * [], [STA], [STA+NAN], [STA+P2P], [NAN], [P2P] + * Not included [NAN+P2P], [STA+NAN+P2P] + * + * [{STA} <= 1, {STA,NAN} <= 1] + * Optionally a STA and either a second STA or a NAN + * [], [STA], [STA+NAN], [STA+STA], [NAN] + * Not included [STA+STA+NAN] + */ + @VintfStability + parcelable ChipConcurrencyCombination { + ChipConcurrencyCombinationLimit[] limits; + } + + /** + * Information about the version of the driver and firmware running this chip. + * + * The information in these ASCII strings are vendor specific and does not + * need to follow any particular format. It may be dumped as part of the bug + * report. + */ + @VintfStability + parcelable ChipDebugInfo { + String driverDescription; + String firmwareDescription; + } + + /** + * Set of interface types, along with the maximum number of interfaces that can have + * one of the specified types for a given ChipIfaceCombination. See + * ChipIfaceCombination for examples. + */ + @VintfStability + parcelable ChipIfaceCombinationLimit { + IfaceType[] types; + int maxIfaces; + } + + /** + * Set of interfaces that can operate concurrently when in a given mode. See + * ChipMode below. + * + * For example: + * [{STA} <= 2] + * At most two STA interfaces are supported + * [], [STA], [STA+STA] + * + * [{STA} <= 1, {NAN} <= 1, {AP} <= 1] + * Any combination of STA, NAN, AP + * [], [STA], [NAN], [AP], [STA+NAN], [STA+AP], [NAN+AP], [STA+NAN+AP] + * + * [{STA} <= 1, {NAN,P2P} <= 1] + * Optionally a STA and either NAN or P2P + * [], [STA], [STA+NAN], [STA+P2P], [NAN], [P2P] + * Not included [NAN+P2P], [STA+NAN+P2P] + * + * [{STA} <= 1, {STA,NAN} <= 1] + * Optionally a STA and either a second STA or a NAN + * [], [STA], [STA+NAN], [STA+STA], [NAN] + * Not included [STA+STA+NAN] + */ + @VintfStability + parcelable ChipIfaceCombination { + ChipIfaceCombinationLimit[] limits; + } + + /** + * A mode that the chip can be put in. A mode defines a set of constraints on + * the interfaces that can exist while in that mode. Modes define a unit of + * configuration where all interfaces must be torn down to switch to a + * different mode. Some HALs may only have a single mode, but an example where + * multiple modes would be required is if a chip has different firmwares with + * different capabilities. + * + * When in a mode, it must be possible to perform any combination of creating + * and removing interfaces as long as at least one of the + * ChipConcurrencyCombinations is satisfied. This means that if a chip has two + * available combinations, [{STA} <= 1] and [{AP_BRIDGED} <= 1] then it is expected + * that exactly one STA type or one AP_BRIDGED type can be created, but it + * is not expected that both a STA and AP_BRIDGED type could be created. If it + * was then there would be a single available combination + * [{STA} <=1, {AP_BRIDGED} <= 1]. + * + * When switching between two available combinations it is expected that + * interfaces only supported by the initial combination must be removed until + * the target combination is also satisfied. At that point new interfaces + * satisfying only the target combination can be added (meaning the initial + * combination limits will no longer satisfied). The addition of these new + * interfaces must not impact the existence of interfaces that satisfy both + * combinations. + * + * For example, a chip with available combinations: + * [{STA} <= 2, {NAN} <=1] and [{STA} <=1, {NAN} <= 1, {AP_BRIDGED} <= 1}] + * If the chip currently has 3 interfaces STA, STA and NAN and wants to add an + * AP_BRIDGED interface in place of one of the STAs, then one of the STA interfaces + * must be removed first, and then the AP interface can be created after + * the STA has been torn down. During this process the remaining STA and NAN + * interfaces must not be removed/recreated. + * + * If a chip does not support this kind of reconfiguration in this mode then + * the combinations must be separated into two separate modes. Before + * switching modes, all interfaces must be torn down, the mode switch must be + * enacted, and when it completes the new interfaces must be brought up. + */ + @VintfStability + parcelable ChipMode { + /** + * Id that can be used to put the chip in this mode. + */ + int id; + /** + * A list of the possible interface concurrency type combinations that the + * chip can have while in this mode. + */ + ChipConcurrencyCombination[] availableCombinations; + } + + /** + * Wi-Fi coex channel avoidance support. + */ + const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF; + + @VintfStability + @Backing(type="int") + enum CoexRestriction { + WIFI_DIRECT = 1 << 0, + SOFTAP = 1 << 1, + WIFI_AWARE = 1 << 2, + } + + /** + * Representation of a Wi-Fi channel for Wi-Fi coex channel avoidance. + */ + @VintfStability + parcelable CoexUnsafeChannel { + /* + * Band of the channel. + */ + WifiBand band; + /* + * Channel number. + */ + int channel; + /** + * The power cap will be a maximum power value in dbm that is allowed to be transmitted by + * the chip on this channel. A value of PowerCapConstant.NO_POWER_CAP means no limitation + * on transmitted power is needed by the chip for this channel. + */ + int powerCapDbm; + } + + /** + * This enum represents the different latency modes that can be set through |setLatencyMode|. + */ + @VintfStability + @Backing(type="int") + enum LatencyMode { + NORMAL = 0, + LOW = 1, + } + + /** + * When there are 2 or more simultaneous STA connections, this use case hint indicates what + * use-case is being enabled by the framework. This use case hint can be used by the firmware + * to modify various firmware configurations like: + * - Allowed BSSIDs the firmware can choose for the initial connection/roaming attempts. + * - Duty cycle to choose for the 2 STA connections if the radio is in MCC mode. + * - Whether roaming, APF and other offloads need to be enabled or not. + * Note: + * - This will be invoked before an active wifi connection is established on the second + * interface. + * - This use-case hint is implicitly void when the second STA interface is brought down. + * - When there is only 1 STA interface, we should still retain the last use case + * set, which must become active the next time multi STA is enabled. + * 1. Initialize with single STA. + * 2. Framework creates second STA. + * 3. Framework sets use case to DUAL_STA_NON_TRANSIENT_UNBIASED. + * 4. Framework destroys second STA. Only 1 STA remains. + * 5. Framework recreates second STA. + * 6. The active use case remains DUAL_STA_NON_TRANSIENT_UNBIASED (i.e. firmware should not + * automatically change it during period of single STA unless requested by framework). + */ + @VintfStability + @Backing(type="byte") + enum MultiStaUseCase { + /** + * Usage: + * - This will be sent down for make before break use-case. + * - Platform is trying to speculatively connect to a second network and evaluate it without + * disrupting the primary connection. + * Requirements for Firmware: + * - Do not reduce the number of tx/rx chains of primary connection. + * - If using MCC, should set the MCC duty cycle of the primary connection to be higher than + * the secondary connection (maybe 70/30 split). + * - Should pick the best BSSID for the secondary STA (disregard the chip mode) independent + * of the primary STA: + * - Don’t optimize for DBS vs MCC/SCC + * - Should not impact the primary connection’s bssid selection: + * - Don’t downgrade chains of the existing primary connection. + * - Don’t optimize for DBS vs MCC/SCC. + */ + DUAL_STA_TRANSIENT_PREFER_PRIMARY = 0, + /** + * Usage: + * - This will be sent down for any app requested peer to peer connections. + * - In this case, both the connections need to be allocated equal resources. + * - For the peer to peer use case, BSSID for the secondary connection will be chosen by the + * framework. + * + * Requirements for Firmware: + * - Can choose MCC or DBS mode depending on the MCC efficiency and HW capability. + * - If using MCC, set the MCC duty cycle of the primary connection to be equal to the + * secondary connection. + * - Prefer BSSID candidates which will help provide the best "overall" performance for both + * the connections. + */ + DUAL_STA_NON_TRANSIENT_UNBIASED = 1, + } + + /** + * List of preset wifi radio TX power levels for different scenarios. + * The actual power values (typically varies based on the channel, + * 802.11 connection type, number of MIMO streams, etc) for each scenario + * is defined by the OEM as a BDF file since it varies for each wifi chip + * vendor and device. + */ + @VintfStability + @Backing(type="int") + enum TxPowerScenario { + VOICE_CALL = 0, + ON_HEAD_CELL_OFF = 1, + ON_HEAD_CELL_ON = 2, + ON_BODY_CELL_OFF = 3, + ON_BODY_CELL_ON = 4, + } + + /** + * Usable Wifi channels filter masks. + */ + @VintfStability + @Backing(type="int") + enum UsableChannelFilter { + /** + * Filter Wifi channels that should be avoided due to extreme + * cellular coexistence restrictions. Some Wifi channels can have + * extreme interference from/to cellular due to short frequency + * seperation with neighboring cellular channels, or when there + * is harmonic and intermodulation interference. Channels which + * only have some performance degradation (e.g. power back off is + * sufficient to deal with coexistence issue) can be included and + * should not be filtered out. + */ + CELLULAR_COEXISTENCE = 1 << 0, + /** + * Filter based on concurrency state. + * Examples: + * - 5GHz SAP operation may be supported in standalone mode, but if + * there is a STA connection on a 5GHz DFS channel, none of the 5GHz + * channels are usable for SAP if device does not support DFS SAP mode. + * - P2P GO may not be supported on indoor channels in the EU during + * standalone mode but if there is a STA connection on indoor channel. + * P2P GO may be supported by some vendors on the same STA channel. + */ + CONCURRENCY = 1 << 1, + /** + * Filter Wifi channels that are supported for NAN 3.1 Instant communication mode. + * This filter should only be applied to a NAN interface. + * - If 5G is supported, then default discovery channel 149/44 is considered. + * - If 5G is not supported, then channel 6 has to be considered. + */ + NAN_INSTANT_MODE = 1 << 2, + } + + /** + * Configure the Chip. + * This may NOT be called to reconfigure a chip due to an internal + * limitation. Calling this when chip is already configured in a different + * mode must trigger an ERROR_NOT_SUPPORTED failure. + * If you want to do reconfiguration, please call |IWifi.stop| and |IWifi.start| + * to restart Wifi HAL before calling this. + * Any existing |IWifiIface| objects must be marked invalid after this call. + * If this fails then the chip is now in an undefined state and + * configureChip must be called again. + * Must trigger |IWifiChipEventCallback.onChipReconfigured| on success. + * Must trigger |IWifiEventCallback.onFailure| on failure. + * + * @param modeId Mode that the chip must switch to, corresponding to the + * id property of the target ChipMode. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void configureChip(in int modeId); + + /** + * Create an AP iface on the chip. + * + * Depending on the mode the chip is configured in, the interface creation + * may fail (code: |WifiStatusCode.ERROR_NOT_AVAILABLE|) if we've already + * reached the maximum allowed (specified in |ChipIfaceCombination|) number + * of ifaces of the AP type. + * + * @return AIDL interface object representing the iface if + * successful, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE| + */ + @PropagateAllowBlocking IWifiApIface createApIface(); + + /** + * Create a bridged AP iface on the chip. + * + * Depending on the mode the chip is configured in, the interface creation + * may fail (code: |WifiStatusCode.ERROR_NOT_AVAILABLE|) if we've already + * reached the maximum allowed (specified in |ChipIfaceCombination|) number + * of ifaces of the AP type. + * + * @return AIDL interface object representing the iface if + * successful, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE| + */ + @PropagateAllowBlocking IWifiApIface createBridgedApIface(); + + /** + * Create a NAN iface on the chip. + * + * Depending on the mode the chip is configured in, the interface creation + * may fail (code: |WifiStatusCode.ERROR_NOT_AVAILABLE|) if we've already + * reached the maximum allowed (specified in |ChipIfaceCombination|) number + * of ifaces of the NAN type. + * + * @return AIDL interface object representing the iface if + * successful, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE| + */ + @PropagateAllowBlocking IWifiNanIface createNanIface(); + + /** + * Create a P2P iface on the chip. + * + * Depending on the mode the chip is configured in, the interface creation + * may fail (code: |WifiStatusCode.ERROR_NOT_AVAILABLE|) if we've already + * reached the maximum allowed (specified in |ChipIfaceCombination|) number + * of ifaces of the P2P type. + * + * @return AIDL interface object representing the iface if + * successful, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE| + */ + @PropagateAllowBlocking IWifiP2pIface createP2pIface(); + + /** + * Create an RTTController instance. + * + * RTT controller can be either: + * a) Bound to a specific STA iface by passing in the corresponding + * |IWifiStaIface| object in the |boundIface| param, OR + * b) Let the implementation decide the iface to use for RTT operations + * by passing null in the |boundIface| param. + * + * @param boundIface AIDL interface object representing the STA iface if + * the responder must be bound to a specific iface, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + @PropagateAllowBlocking IWifiRttController createRttController(in IWifiStaIface boundIface); + + /** + * Create a STA iface on the chip. + * + * Depending on the mode the chip is configured in, the interface creation + * may fail (code: |WifiStatusCode.ERROR_NOT_AVAILABLE|) if we've already + * reached the maximum allowed (specified in |ChipIfaceCombination|) number + * of ifaces of the STA type. + * + * @return AIDL interface object representing the iface if + * successful, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE| + */ + @PropagateAllowBlocking IWifiStaIface createStaIface(); + + /** + * API to enable/disable alert notifications from the chip. + * These alerts must be used to notify the framework of any fatal error events + * that the chip encounters via |IWifiChipEventCallback.onDebugErrorAlert| method. + * Must fail if |ChipCapabilityMask.DEBUG_ERROR_ALERTS| is not set. + * + * @param enable true to enable, false to disable. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + void enableDebugErrorAlerts(in boolean enable); + + /** + * API to flush debug ring buffer data to files. + * + * Force flush debug ring buffer using IBase::debug. + * This API helps to collect firmware/driver/pkt logs. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.UNKNOWN| + */ + void flushRingBufferToFile(); + + /** + * API to force dump data into the corresponding ring buffer. + * This is to be invoked during bugreport collection. + * + * @param ringName Name of the ring for which data collection should + * be forced. This can be retrieved via the corresponding + * |WifiDebugRingBufferStatus|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_STARTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + void forceDumpToDebugRingBuffer(in String ringName); + + /** + * Gets an AIDL interface object for the AP Iface corresponding + * to the provided ifname. + * + * @param ifname Name of the iface. + * @return AIDL interface object representing the iface if + * it exists, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + @PropagateAllowBlocking IWifiApIface getApIface(in String ifname); + + /** + * List all the AP iface names configured on the chip. + * The corresponding |IWifiApIface| object for any iface + * can be retrieved using the |getApIface| method. + * + * @return List of all AP iface names on the chip. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + String[] getApIfaceNames(); + + /** + * Get the set of operation modes that the chip supports. + * + * @return List of modes supported by the device. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + ChipMode[] getAvailableModes(); + + /** + * Get the capabilities supported by this chip. + * + * @return Bitset of |ChipCapabilityMask| values. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + ChipCapabilityMask getCapabilities(); + + /** + * API to retrieve the wifi wake up reason stats for debugging. + * The driver is expected to start maintaining these stats once the chip + * is configured using |configureChip|. These stats must be reset whenever + * the chip is reconfigured or the HAL is stopped. + * + * @return Instance of |WifiDebugHostWakeReasonStats|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + WifiDebugHostWakeReasonStats getDebugHostWakeReasonStats(); + + /** + * The WiFi debug ring buffer life cycle is as follows: + * - At initialization, the framework must call |getDebugRingBuffersStatus|. + * to obtain the names and list of supported ring buffers. + * The driver may expose several different rings, each holding a different + * type of data (connection events, power events, etc). + * - When WiFi operations start, the framework must call + * |startLoggingToDebugRingBuffer| to trigger log collection for a specific + * ring. The vebose level for each ring buffer can be specified in this API. + * - During wifi operations, the driver must periodically report per ring data + * to framework by invoking the + * |IWifiChipEventCallback.onDebugRingBufferDataAvailable| callback. + * - When capturing a bug report, the framework must indicate to driver that + * all the data has to be uploaded urgently by calling |forceDumpToDebugRingBuffer|. + * + * The data uploaded by driver must be stored by the framework in separate files, + * with one stream of file per ring. The framework must store the files in pcapng + * format, allowing for easy merging and parsing with network analyzer tools. + * TODO: Since we're no longer dumping the raw data, storing in separate + * pcapng files for parsing later must not work anymore. + */ + + /* + * API to get the status of all ring buffers supported by driver. + * + * @return Vector of |WifiDebugRingBufferStatus| corresponding to the + * status of each ring buffer on the device. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + WifiDebugRingBufferStatus[] getDebugRingBuffersStatus(); + + /** + * Get the Id assigned to this chip. + * + * @return Assigned chip Id. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + int getId(); + + /** + * Get the current mode that the chip is in. + * + * @return Mode that the chip is currently configured to, + * corresponding to the Id property of the target ChipMode. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + int getMode(); + + /** + * Gets an AIDL interface object for the NAN Iface corresponding + * to the provided ifname. + * + * @param ifname Name of the iface. + * @return AIDL interface object representing the iface if + * it exists, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + @PropagateAllowBlocking IWifiNanIface getNanIface(in String ifname); + + /** + * List all the NAN iface names configured on the chip. + * The corresponding |IWifiNanIface| object for any iface can + * be retrieved using the |getNanIface| method. + * + * @return List of all NAN iface names on the chip. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + String[] getNanIfaceNames(); + + /** + * Gets an AIDL interface object for the P2P Iface corresponding + * to the provided ifname. + * + * @param ifname Name of the iface. + * @return AIDL interface object representing the iface if + * it exists, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + @PropagateAllowBlocking IWifiP2pIface getP2pIface(in String ifname); + + /** + * List all the P2P iface names configured on the chip. + * The corresponding |IWifiP2pIface| object for any iface can + * be retrieved using the |getP2pIface| method. + * + * @return List of all P2P iface names on the chip. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + String[] getP2pIfaceNames(); + + /** + * Gets an AIDL interface object for the STA Iface corresponding + * to the provided ifname. + * + * @param ifname Name of the iface. + * @return AIDL interface object representing the iface if + * it exists, null otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + @PropagateAllowBlocking IWifiStaIface getStaIface(in String ifname); + + /** + * List all the STA iface names configured on the chip. + * The corresponding |IWifiStaIface| object for any iface can + * be retrieved using the |getStaIface| method. + * + * @param List of all STA iface names on the chip. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + String[] getStaIfaceNames(); + + /** + * Retrieve the list of all the possible radio combinations supported by this + * chip. + * + * @return A list of all the possible radio combinations represented by + * |WifiRadioCombinationMatrix|. + * For example, in case of a chip which has two radios, where one radio is + * capable of 2.4GHz 2X2 only and another radio which is capable of either + * 5GHz or 6GHz 2X2, the number of possible radio combinations in this case + * is 5 and the possible combinations are: + * {{{2G 2X2}}, //Standalone 2G + * {{5G 2X2}}, //Standalone 5G + * {{6G 2X2}}, //Standalone 6G + * {{2G 2X2}, {5G 2X2}}, //2G+5G DBS + * {{2G 2X2}, {6G 2X2}}} //2G+6G DBS + * Note: Since this chip doesn’t support 5G+6G simultaneous operation, + * as there is only one radio which can support both bands, it can only + * do MCC 5G+6G. This table should not get populated with possible MCC + * configurations. This is only for simultaneous radio configurations + * (such as standalone, multi band simultaneous or single band simultaneous). + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.FAILURE_UNKNOWN| + * + */ + WifiRadioCombinationMatrix getSupportedRadioCombinationsMatrix(); + + /** + * Retrieve a list of usable Wifi channels for the specified band & + * operational modes. + * + * The list of usable Wifi channels in a given band depends on factors + * like current country code, operational mode (e.g. STA, SAP, WFD-CLI, + * WFD-GO, TDLS, NAN) and other restrictons due to DFS, cellular coexistence + * and concurrency state of the device. + * + * @param band |WifiBand| for which list of usable channels is requested. + * @param ifaceModeMask Bitmask of the modes represented by |WifiIfaceMode|. + * Bitmask respresents all the modes that the caller is interested + * in (e.g. STA, SAP, CLI, GO, TDLS, NAN). E.g. If the caller is + * interested in knowing usable channels for P2P CLI, P2P GO & NAN, + * ifaceModeMask would be set to + * IFACE_MODE_P2P_CLIENT|IFACE_MODE_P2P_GO|IFACE_MODE_NAN. + * @param filterMask Bitmask of filters represented by + * |UsableChannelFilter|. Specifies whether driver should filter + * channels based on additional criteria. If no filter is specified, + * then the driver should return usable channels purely based on + * regulatory constraints. + * @return List of channels represented by |WifiUsableChannel|. + * Each entry represents a channel frequency, bandwidth and + * bitmask of modes (e.g. STA, SAP, CLI, GO, TDLS, NAN) that are + * allowed on that channel. E.g. If only STA mode can be supported + * on an indoor channel, only the IFACE_MODE_STA bit would be set + * for that channel. If 5GHz SAP cannot be supported, then none of + * the 5GHz channels will have IFACE_MODE_SOFTAP bit set. + * Note: Bits do not represent concurrency state. Each bit only + * represents whether a particular mode is allowed on that channel. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.FAILURE_UNKNOWN| + */ + WifiUsableChannel[] getUsableChannels( + in WifiBand band, in WifiIfaceMode ifaceModeMask, in UsableChannelFilter filterMask); + + /** + * Requests notifications of significant events on this chip. Multiple calls + * to this must register multiple callbacks, each of which must receive all + * events. + * + * @param callback An instance of the |IWifiChipEventCallback| AIDL interface + * object. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID| + */ + void registerEventCallback(in IWifiChipEventCallback callback); + + /** + * Removes the AP Iface with the provided ifname. + * Any further calls on the corresponding |IWifiApIface| AIDL interface + * object must fail. + * + * @param ifname Name of the iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + void removeApIface(in String ifname); + + /** + * Removes an instance of AP iface with name |ifaceInstanceName| from the + * bridge AP with name |brIfaceName|. + * + * Use the API |removeApIface| with the brIfaceName to remove the bridge iface. + * + * @param brIfaceName Name of the bridged AP iface. + * @param ifaceInstanceName Name of the AP instance. The empty instance is + * invalid. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE| + */ + void removeIfaceInstanceFromBridgedApIface(in String brIfaceName, in String ifaceInstanceName); + + /** + * Removes the NAN Iface with the provided ifname. + * Any further calls on the corresponding |IWifiNanIface| AIDL interface + * object must fail. + * + * @param ifname Name of the iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + void removeNanIface(in String ifname); + + /** + * Removes the P2P Iface with the provided ifname. + * Any further calls on the corresponding |IWifiP2pIface| AIDL interface + * object must fail. + * + * @param ifname Name of the iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + void removeP2pIface(in String ifname); + + /** + * Removes the STA Iface with the provided ifname. + * Any further calls on the corresponding |IWifiStaIface| AIDL interface + * object must fail. + * + * @param ifname Name of the iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + void removeStaIface(in String ifname); + + /** + * Request information about the chip. + * + * @return Instance of |ChipDebugInfo|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + ChipDebugInfo requestChipDebugInfo(); + + /** + * Request vendor debug info from the driver. + * + * @return Vector of bytes retrieved from the driver. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + byte[] requestDriverDebugDump(); + + /** + * Request vendor debug info from the firmware. + * + * @return Vector of bytes retrieved from the firmware. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + byte[] requestFirmwareDebugDump(); + + /** + * API to reset TX power levels. + * This is used to indicate the end of the previously selected TX power + * scenario and let the wifi chip fall back to the default power values. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + void resetTxPowerScenario(); + + /** + * API to select one of the preset TX power scenarios. + * + * The framework must invoke this method with the appropriate scenario to let + * the wifi chip change its transmitting power levels. + * OEM's should define various power profiles for each of the scenarios + * above (defined in |TxPowerScenario|) in a vendor extension. + * + * @param scenario One of the preselected scenarios defined in + * |TxPowerScenario|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + void selectTxPowerScenario(in TxPowerScenario scenario); + + /** + * Invoked to indicate that the provided |CoexUnsafeChannels| should be avoided with the + * specified restrictions. + * + * Channel avoidance is a suggestion and should be done on a best-effort approach. If a provided + * channel is used, then the specified power cap should be applied. + * + * In addition, hard restrictions on the Wifi modes may be indicated by |CoexRestriction| bits + * (WIFI_DIRECT, SOFTAP, WIFI_AWARE) in the |restrictions| bitfield. If a hard restriction is + * provided, then the channels should be completely avoided for the provided Wifi modes instead + * of by best-effort. + * + * @param unsafeChannels List of |CoexUnsafeChannels| to avoid. + * @param restrictions Bitset of |CoexRestriction| values indicating Wifi interfaces to + * completely avoid. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + */ + void setCoexUnsafeChannels( + in CoexUnsafeChannel[] unsafeChannels, in CoexRestriction restrictions); + + /** + * Set country code for this Wifi chip. + * + * Country code is global setting across the Wifi chip and not Wifi + * interface (STA or AP) specific. + * + * @param code 2 byte country code (as defined in ISO 3166) to set. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.FAILURE_UNKNOWN|, + * |WifiStatusCode.FAILURE_IFACE_INVALID| + */ + void setCountryCode(in byte[2] code); + + /** + * API to set the wifi latency mode + * + * The latency mode is a hint to the HAL to enable or disable Wi-Fi latency + * optimization. The optimization should be enabled if the mode is set to |LOW| + * and should be disabled if the mode is set to |NORMAL|. + * Wi-Fi latency optimization may trade-off latency against other Wi-Fi + * functionality such as scanning, roaming, etc. but it should not result in + * completely halting this functionality. + * + * The low latency mode targets applications such as gaming and virtual reality. + */ + void setLatencyMode(in LatencyMode mode); + + /** + * Invoked to indicate that the provided iface is the primary STA iface when more + * than 1 STA ifaces are concurrently active. + * Notes: + * - If the wifi firmware/chip cannot support multiple instances of any offload + * (like roaming, APF, rssi threshold, etc), the firmware should ensure that these + * offloads are at least enabled for the primary interface. If the new primary interface is + * already connected to a network, the firmware must switch all the offloads on + * this new interface without disconnecting. + * - When there is only 1 STA interface, the firmware must still retain the last primary + * connection, which must become active the next time multi STA is enabled. + * + * @param ifname Name of the STA iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + void setMultiStaPrimaryConnection(in String ifName); + + /** + * Invoked to indicate the STA + STA use-case that is active. + * + * Refer to documentation of |MultiStaUseCase| for details. + * + * @param useCase Use case that is active. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS| + */ + void setMultiStaUseCase(in MultiStaUseCase useCase); + + /** + * API to trigger the debug data collection. + * + * @param ringName Name of the ring for which data collection + * shall start. This can be retrieved via the corresponding + * |WifiDebugRingBufferStatus|. + * @param verboseLevel Verbose level for logging. + * @parm maxIntervalInSec Maximum interval in seconds for driver to invoke + * |onDebugRingBufferData|, ignore if zero. + * @parm minDataSizeInBytes: Minimum data size in buffer for driver to invoke + * |onDebugRingBufferData|, ignore if zero. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + void startLoggingToDebugRingBuffer(in String ringName, + in WifiDebugRingBufferVerboseLevel verboseLevel, in int maxIntervalInSec, + in int minDataSizeInBytes); + + /** + * API to stop the debug data collection for all ring buffers. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.NOT_AVAILABLE|, + * |WifiStatusCode.UNKNOWN| + */ + void stopLoggingToDebugRingBuffer(); + + /** + * Trigger subsystem restart. + * + * If the framework detects a problem (e.g. connection failure), + * it must call this function to attempt recovery. + * + * When the wifi HAL receives |triggerSubsystemRestart|, it must restart + * the wlan subsystem, especially the wlan firmware. + * + * Regarding the callback function for subsystem restart, refer to documentation of + * |IWifiEventCallback.onSubsystemRestart| for details. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void triggerSubsystemRestart(); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiChipEventCallback.aidl b/wifi/aidl/android/hardware/wifi/IWifiChipEventCallback.aidl new file mode 100644 index 0000000000..2bc4c0eb03 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiChipEventCallback.aidl @@ -0,0 +1,159 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.IfaceType; +import android.hardware.wifi.WifiBand; +import android.hardware.wifi.WifiDebugRingBufferStatus; +import android.hardware.wifi.WifiStatusCode; + +/** + * Wifi chip event callbacks. + */ +@VintfStability +oneway interface IWifiChipEventCallback { + /** + * Struct describing the state of each iface operating on the radio chain + * (hardware MAC) on the device. + */ + @VintfStability + parcelable IfaceInfo { + /** + * Name of the interface (ex. wlan0). + */ + String name; + /** + * Wifi channel on which this interface is operating. + */ + int channel; + } + + /** + * Struct describing the state of each hardware radio chain (hardware MAC) + * on the device. + */ + @VintfStability + parcelable RadioModeInfo { + /** + * Identifier for this radio chain. This is vendor dependent and used + * only for debugging purposes. + */ + int radioId; + /** + * List of bands on which this radio chain is operating. + * Can be one of: + * a) |WifiBand.BAND_24GHZ| => 2.4Ghz. + * b) |WifiBand.BAND_5GHZ| => 5Ghz. + * c) |WifiBand.BAND_24GHZ_5GHZ| => 2.4Ghz + 5Ghz (Radio is time sharing + * across the 2 bands). + * d) |WifiBand.BAND_6GHZ| => 6Ghz. + * e) |WifiBand.BAND_5GHZ_6GHZ| => 5Ghz + 6Ghz (Radio is time sharing + * across the 2 bands). + * f) |WifiBand.BAND_24GHZ_5GHZ_6GHZ| => 2.4Ghz + 5Ghz + 6Ghz (Radio is + * time sharing across the 3 bands). + */ + WifiBand bandInfo; + /** + * List of interfaces on this radio chain (hardware MAC). + */ + IfaceInfo[] ifaceInfos; + } + + /** + * Callback indicating that a chip reconfiguration failed. This is a fatal + * error and any iface objects available previously must be considered + * invalid. The client can attempt to recover by trying to reconfigure the + * chip again using |IWifiChip.configureChip|. + * + * @param status Failure reason code. + */ + void onChipReconfigureFailure(in WifiStatusCode status); + + /** + * Callback indicating that the chip has been reconfigured successfully. At + * this point the interfaces available in the mode must be able to be + * configured. When this is called, any previous iface objects must be + * considered invalid. + * + * @param modeId The mode that the chip switched to, corresponding to the id + * property of the target ChipMode. + */ + void onChipReconfigured(in int modeId); + + /** + * Callback indicating that the chip has encountered a fatal error. + * Client must not attempt to parse either the errorCode or debugData. + * Must only be captured in a bugreport. + * + * @param errorCode Vendor defined error code. + * @param debugData Vendor defined data used for debugging. + */ + void onDebugErrorAlert(in int errorCode, in byte[] debugData); + + /** + * Callbacks for reporting debug ring buffer data. + * + * The ring buffer data collection is event based: + * - Driver calls this callback when new records are available, the + * |WifiDebugRingBufferStatus| passed up to framework in the callback + * indicates to framework if more data is available in the ring buffer. + * It is not expected that driver will necessarily always empty the ring + * immediately as data is available. Instead the driver will report data + * every X seconds, or if N bytes are available, based on the parameters + * set via |startLoggingToDebugRingBuffer|. + * - In the case where a bug report has to be captured, the framework will + * require driver to upload all data immediately. This is indicated to + * driver when framework calls |forceDumpToDebugRingBuffer|. The driver + * will start sending all available data in the indicated ring by repeatedly + * invoking this callback. + * + * @param status Status of the corresponding ring buffer. This should + * contain the name of the ring buffer on which the data is + * available. + * @param data Raw bytes of data sent by the driver. Must be dumped + * out to a bugreport and post processed. + */ + void onDebugRingBufferDataAvailable(in WifiDebugRingBufferStatus status, in byte[] data); + + /** + * Callback indicating that a new iface has been added to the chip. + * + * @param type Type of iface added. + * @param name Name of iface added. + */ + void onIfaceAdded(in IfaceType type, in String name); + + /** + * Callback indicating that an existing iface has been removed from the chip. + * + * @param type Type of iface removed. + * @param name Name of iface removed. + */ + void onIfaceRemoved(in IfaceType type, in String name); + + /** + * Indicates a radio mode change. + * Radio mode change could be a result of: + * a) Bringing up concurrent interfaces (ex. STA + AP). + * b) Change in operating band of one of the concurrent interfaces + * ( ex. STA connection moved from 2.4G to 5G) + * + * @param radioModeInfos List of RadioModeInfo structures for each + * radio chain (hardware MAC) on the device. + */ + void onRadioModeChange(in RadioModeInfo[] radioModeInfos); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiEventCallback.aidl b/wifi/aidl/android/hardware/wifi/IWifiEventCallback.aidl new file mode 100644 index 0000000000..761bbf5760 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiEventCallback.aidl @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiStatusCode; + +@VintfStability +oneway interface IWifiEventCallback { + /** + * Called when the Wi-Fi system failed in a way that caused it be disabled. + * Calling start again must restart Wi-Fi as if stop then start was called + * (full state reset). When this event is received all IWifiChip & IWifiIface + * objects retrieved after the last call to start will be considered invalid. + * + * @param status Failure reason code. + */ + void onFailure(in WifiStatusCode status); + + /** + * Called in response to a call to start indicating that the operation + * completed. After this callback the HAL must be fully operational. + */ + void onStart(); + + /** + * Called in response to a call to stop indicating that the operation + * completed. When this event is received all IWifiChip objects retrieved + * after the last call to start will be considered invalid. + */ + void onStop(); + + /** + * Must be called when the Wi-Fi subsystem restart completes. + * Once this event is received, framework must fully reset the Wi-Fi stack state. + * + * @param status Status code. + */ + void onSubsystemRestart(in WifiStatusCode status); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiNanIface.aidl b/wifi/aidl/android/hardware/wifi/IWifiNanIface.aidl new file mode 100644 index 0000000000..45644b402e --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiNanIface.aidl @@ -0,0 +1,251 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.IWifiNanIfaceEventCallback; +import android.hardware.wifi.NanConfigRequest; +import android.hardware.wifi.NanConfigRequestSupplemental; +import android.hardware.wifi.NanEnableRequest; +import android.hardware.wifi.NanInitiateDataPathRequest; +import android.hardware.wifi.NanPublishRequest; +import android.hardware.wifi.NanRespondToDataPathIndicationRequest; +import android.hardware.wifi.NanSubscribeRequest; +import android.hardware.wifi.NanTransmitFollowupRequest; + +/** + * Interface used to represent a single NAN (Neighbour Aware Network) iface. + * + * References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness + * Networking (NAN) Technical Specification". + */ +@VintfStability +interface IWifiNanIface { + /** + * Minimum length of Passphrase argument for a data-path configuration. + */ + const int MIN_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 8; + + /** + * Maximum length of Passphrase argument for a data-path configuration. + */ + const int MAX_DATA_PATH_CONFIG_PASSPHRASE_LENGTH = 63; + + /** + * Get the name of this iface. + * + * @return Name of this iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + String getName(); + + /** + * Configures an existing NAN functionality (i.e. assumes + * |IWifiNanIface.enableRequest| already submitted and succeeded). + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyConfigResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param msg1 Instance of |NanConfigRequest|. + * @param msg2 Instance of |NanConfigRequestSupplemental|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void configRequest( + in char cmdId, in NanConfigRequest msg1, in NanConfigRequestSupplemental msg2); + + /** + * Create a NAN Data Interface. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyCreateDataInterfaceResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void createDataInterfaceRequest(in char cmdId, in String ifaceName); + + /** + * Delete a NAN Data Interface. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyDeleteDataInterfaceResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void deleteDataInterfaceRequest(in char cmdId, in String ifaceName); + + /** + * Disable NAN functionality. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyDisableResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void disableRequest(in char cmdId); + + /** + * Configures and activates NAN clustering (does not start + * a discovery session or set up data-interfaces or data-paths). Use the + * |IWifiNanIface.configureRequest| method to change the configuration of an already enabled + * NAN interface. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyEnableResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param msg1 Instance of |NanEnableRequest|. + * @param msg2 Instance of |NanConfigRequestSupplemental|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void enableRequest( + in char cmdId, in NanEnableRequest msg1, in NanConfigRequestSupplemental msg2); + + /** + * Get NAN capabilities. Asynchronous response is with + * |IWifiNanIfaceEventCallback.notifyCapabilitiesResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void getCapabilitiesRequest(in char cmdId); + + /** + * Initiate a data-path (NDP) setup operation: Initiator. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyInitiateDataPathResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param msg Instance of |NanInitiateDataPathRequest|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void initiateDataPathRequest(in char cmdId, in NanInitiateDataPathRequest msg); + + /** + * Requests notifications of significant events on this iface. Multiple calls + * to this must register multiple callbacks, each of which must receive all + * events. + * + * @param callback An instance of the |IWifiNanIfaceEventCallback| AIDL interface + * object. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + void registerEventCallback(in IWifiNanIfaceEventCallback callback); + + /** + * Respond to a received data indication as part of a data-path (NDP) setup operation. + * An indication is received by the Responder from the Initiator. + * Asynchronous response is with + * |IWifiNanIfaceEventCallback.notifyRespondToDataPathIndicationResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param msg Instance of |NanRespondToDataPathIndicationRequest|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void respondToDataPathIndicationRequest( + in char cmdId, in NanRespondToDataPathIndicationRequest msg); + + /** + * Publish request to start advertising a discovery service. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStartPublishResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param msg Instance of |NanPublishRequest|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void startPublishRequest(in char cmdId, in NanPublishRequest msg); + + /** + * Subscribe request to start searching for a discovery service. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStartSubscribeResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param msg Instance of |NanSubscribeRequest|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void startSubscribeRequest(in char cmdId, in NanSubscribeRequest msg); + + /** + * Stop publishing a discovery service. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStopPublishResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param sessionId ID of the publish discovery session to be stopped. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void stopPublishRequest(in char cmdId, in byte sessionId); + + /** + * Stop subscribing to a discovery service. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStopSubscribeResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param sessionId ID of the subscribe discovery session to be stopped. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void stopSubscribeRequest(in char cmdId, in byte sessionId); + + /** + * Data-path (NDP) termination request. Executed by either Initiator or Responder. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyTerminateDataPathResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param ndpInstanceId Data-path instance ID to be terminated. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void terminateDataPathRequest(in char cmdId, in int ndpInstanceId); + + /** + * NAN transmit follow up message request. + * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyTransmitFollowupResponse|. + * + * @param cmdId Command Id to use for this invocation. + * @param msg Instance of |NanTransmitFollowupRequest|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void transmitFollowupRequest(in char cmdId, in NanTransmitFollowupRequest msg); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl b/wifi/aidl/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl new file mode 100644 index 0000000000..470b7ba013 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiNanIfaceEventCallback.aidl @@ -0,0 +1,322 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanCapabilities; +import android.hardware.wifi.NanClusterEventInd; +import android.hardware.wifi.NanDataPathConfirmInd; +import android.hardware.wifi.NanDataPathRequestInd; +import android.hardware.wifi.NanDataPathScheduleUpdateInd; +import android.hardware.wifi.NanFollowupReceivedInd; +import android.hardware.wifi.NanMatchInd; +import android.hardware.wifi.NanStatus; + +/** + * NAN Response and Asynchronous Event Callbacks. + * + * References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness + * Networking (NAN) Technical Specification". + */ +@VintfStability +oneway interface IWifiNanIfaceEventCallback { + /** + * Callback indicating that a cluster event has been received. + * + * @param event NanClusterEventInd containing event details. + */ + void eventClusterEvent(in NanClusterEventInd event); + + /** + * Callback indicating that a data-path (NDP) setup has been completed. + * Received by both Initiator and Responder. + * + * @param event NanDataPathConfirmInd containing event details. + */ + void eventDataPathConfirm(in NanDataPathConfirmInd event); + + /** + * Callback indicating that a data-path (NDP) setup has been requested by + * an Initiator peer (received by the intended Responder). + * + * @param event NanDataPathRequestInd containing event details. + */ + void eventDataPathRequest(in NanDataPathRequestInd event); + + /** + * Callback indicating that a data-path (NDP) schedule has been updated + * (e.g. channels have been changed). + * + * @param event NanDataPathScheduleUpdateInd containing event details. + */ + void eventDataPathScheduleUpdate(in NanDataPathScheduleUpdateInd event); + + /** + * Callback indicating that a list of data-paths (NDP) have been terminated. + * Received by both Initiator and Responder. + * + * @param ndpInstanceId Data-path ID of the terminated data-path. + */ + void eventDataPathTerminated(in int ndpInstanceId); + + /** + * Callback indicating that a NAN has been disabled. + * + * @param status NanStatus describing the reason for the disable event. + * Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.UNSUPPORTED_CONCURRENCY_NAN_DISABLED| + */ + void eventDisabled(in NanStatus status); + + /** + * Callback indicating that a followup message has been received from a peer. + * + * @param event NanFollowupReceivedInd containing event details. + */ + void eventFollowupReceived(in NanFollowupReceivedInd event); + + /** + * Callback indicating that a match has occurred: i.e. a service has been + * discovered. + * + * @param event NanMatchInd containing event details. + */ + void eventMatch(in NanMatchInd event); + + /** + * Callback indicating that a previously discovered match (service) has expired. + * + * @param discoverySessionId Discovery session ID of the expired match. + * @param peerId Peer ID of the expired match. + */ + void eventMatchExpired(in byte discoverySessionId, in int peerId); + + /** + * Callback indicating that an active publish session has terminated. + * + * @param sessionId Discovery session ID of the terminated session. + * @param status NanStatus describing the reason for the session termination. + * Possible status codes are: + * |NanStatusCode.SUCCESS| + */ + void eventPublishTerminated(in byte sessionId, in NanStatus status); + + /** + * Callback indicating that an active subscribe session has terminated. + * + * @param sessionId Discovery session ID of the terminated session. + * @param status NanStatus describing the reason for the session termination. + * Possible status codes are: + * |NanStatusCode.SUCCESS| + */ + void eventSubscribeTerminated(in byte sessionId, in NanStatus status); + + /** + * Callback providing status on a completed followup message transmit operation. + * + * @param cmdId Command Id corresponding to the original |transmitFollowupRequest| request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.NO_OTA_ACK| + * |NanStatusCode.PROTOCOL_FAILURE| + */ + void eventTransmitFollowup(in char id, in NanStatus status); + + /** + * Callback invoked in response to a capability request + * |IWifiNanIface.getCapabilitiesRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * @param capabilities Capability data. + */ + void notifyCapabilitiesResponse( + in char id, in NanStatus status, in NanCapabilities capabilities); + + /** + * Callback invoked in response to a config request |IWifiNanIface.configRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + * |NanStatusCode.PROTOCOL_FAILURE| + */ + void notifyConfigResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to a create data interface request + * |IWifiNanIface.createDataInterfaceRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + */ + void notifyCreateDataInterfaceResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to a delete data interface request + * |IWifiNanIface.deleteDataInterfaceRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + */ + void notifyDeleteDataInterfaceResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to a disable request |IWifiNanIface.disableRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.PROTOCOL_FAILURE| + */ + void notifyDisableResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to an enable request |IWifiNanIface.enableRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.ALREADY_ENABLED| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + * |NanStatusCode.PROTOCOL_FAILURE| + * |NanStatusCode.NAN_NOT_ALLOWED| + */ + void notifyEnableResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to an initiate data path request + * |IWifiNanIface.initiateDataPathRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + * |NanStatusCode.PROTOCOL_FAILURE| + * |NanStatusCode.INVALID_PEER_ID| + * @param ndpInstanceId ID of the new data path being negotiated (on successful status). + */ + void notifyInitiateDataPathResponse(in char id, in NanStatus status, in int ndpInstanceId); + + /** + * Callback invoked in response to a respond to data path indication request + * |IWifiNanIface.respondToDataPathIndicationRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + * |NanStatusCode.PROTOCOL_FAILURE| + * |NanStatusCode.INVALID_NDP_ID| + */ + void notifyRespondToDataPathIndicationResponse(in char id, in NanStatus status); + + /** + * Callback invoked to notify the status of the start publish request + * |IWifiNanIface.startPublishRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.PROTOCOL_FAILURE| + * |NanStatusCode.NO_RESOURCES_AVAILABLE| + * |NanStatusCode.INVALID_SESSION_ID| + * @param sessionId ID of the new publish session (if successfully created). + */ + void notifyStartPublishResponse(in char id, in NanStatus status, in byte sessionId); + + /** + * Callback invoked to notify the status of the start subscribe request + * |IWifiNanIface.startSubscribeRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.PROTOCOL_FAILURE| + * |NanStatusCode.NO_RESOURCES_AVAILABLE| + * |NanStatusCode.INVALID_SESSION_ID| + * @param sessionId ID of the new subscribe session (if successfully created). + */ + void notifyStartSubscribeResponse(in char id, in NanStatus status, in byte sessionId); + + /** + * Callback invoked in response to a stop publish request + * |IWifiNanIface.stopPublishRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_SESSION_ID| + * |NanStatusCode.INTERNAL_FAILURE| + */ + void notifyStopPublishResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to a stop subscribe request + * |IWifiNanIface.stopSubscribeRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_SESSION_ID| + * |NanStatusCode.INTERNAL_FAILURE| + */ + void notifyStopSubscribeResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to a terminate data path request + * |IWifiNanIface.terminateDataPathRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + * |NanStatusCode.PROTOCOL_FAILURE| + * |NanStatusCode.INVALID_NDP_ID| + */ + void notifyTerminateDataPathResponse(in char id, in NanStatus status); + + /** + * Callback invoked in response to a transmit followup request + * |IWifiNanIface.transmitFollowupRequest|. + * + * @param cmdId Command Id corresponding to the original request. + * @param status NanStatus of the operation. Possible status codes are: + * |NanStatusCode.SUCCESS| + * |NanStatusCode.INVALID_ARGS| + * |NanStatusCode.INTERNAL_FAILURE| + * |NanStatusCode.INVALID_SESSION_ID| + * |NanStatusCode.INVALID_PEER_ID| + * |NanStatusCode.FOLLOWUP_TX_QUEUE_FULL| + */ + void notifyTransmitFollowupResponse(in char id, in NanStatus status); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiP2pIface.aidl b/wifi/aidl/android/hardware/wifi/IWifiP2pIface.aidl new file mode 100644 index 0000000000..287f41d47b --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiP2pIface.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 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; + +/** + * Interface used to represent a single P2P iface. + */ +@VintfStability +interface IWifiP2pIface { + /** + * Get the name of this iface. + * + * @return Name of this iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + String getName(); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiRttController.aidl b/wifi/aidl/android/hardware/wifi/IWifiRttController.aidl new file mode 100644 index 0000000000..99e1a81339 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiRttController.aidl @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.IWifiRttControllerEventCallback; +import android.hardware.wifi.IWifiStaIface; +import android.hardware.wifi.MacAddress; +import android.hardware.wifi.RttCapabilities; +import android.hardware.wifi.RttConfig; +import android.hardware.wifi.RttLciInformation; +import android.hardware.wifi.RttLcrInformation; +import android.hardware.wifi.RttResponder; +import android.hardware.wifi.WifiChannelInfo; + +/** + * Interface used to perform RTT (Round trip time) operations. + */ +@VintfStability +interface IWifiRttController { + /** + * Disable RTT responder mode. + * + * @param cmdId Command Id corresponding to the original request. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void disableResponder(in int cmdId); + + /** + * Enable RTT responder mode. + * + * @param cmdId Command Id to use for this invocation. + * @parm channelHint Hint for the channel information where RTT responder + * must be enabled on. + * @param maxDurationInSeconds Timeout of responder mode. + * @param info Instance of |RttResponderInfo|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void enableResponder(in int cmdId, in WifiChannelInfo channelHint, in int maxDurationInSeconds, + in RttResponder info); + + /** + * Get the iface on which the RTT operations must be performed. + * + * @return AIDL interface object representing the iface if bound + * to a specific iface, null otherwise + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID| + */ + IWifiStaIface getBoundIface(); + + /** + * RTT capabilities of the device. + * + * @return Instance of |RttCapabilities|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + RttCapabilities getCapabilities(); + + /** + * Get RTT responder information (e.g. WiFi channel) to enable responder on. + * + * @return Instance of |RttResponderInfo|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + RttResponder getResponderInfo(); + + /** + * API to cancel RTT measurements. + * + * @param cmdId Command Id corresponding to the original request. + * @param addrs Vector of addresses for which to cancel. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void rangeCancel(in int cmdId, in MacAddress[] addrs); + + /** + * API to request RTT measurement. + * + * @param cmdId Command Id to use for this invocation. + * @param rttConfigs Vector of |RttConfig| parameters. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void rangeRequest(in int cmdId, in RttConfig[] rttConfigs); + + /** + * Requests notifications of significant events on this RTT controller. + * Multiple calls to this must register multiple callbacks, each of which + * must receive all events. + * + * @param callback An instance of the |IWifiRttControllerEventCallback| AIDL + * interface object. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + void registerEventCallback(in IWifiRttControllerEventCallback callback); + + /** + * API to configure the LCI (Location civic information). + * Used in RTT Responder mode only. + * + * @param cmdId Command Id to use for this invocation. + * @param lci Instance of |RttLciInformation|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void setLci(in int cmdId, in RttLciInformation lci); + + /** + * API to configure the LCR (Location civic records). + * Used in RTT Responder mode only. + * + * @param cmdId Command Id to use for this invocation. + * @param lcr Instance of |RttLcrInformation|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void setLcr(in int cmdId, in RttLcrInformation lcr); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiRttControllerEventCallback.aidl b/wifi/aidl/android/hardware/wifi/IWifiRttControllerEventCallback.aidl new file mode 100644 index 0000000000..89f0ed8b44 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiRttControllerEventCallback.aidl @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.RttResult; + +/** + * RTT Response and Event Callbacks. + */ +@VintfStability +oneway interface IWifiRttControllerEventCallback { + /** + * Invoked when an RTT result is available. + * + * @param cmdId Command Id corresponding to the original request. + * @param results Vector of |RttResult| instances. + */ + void onResults(in int cmdId, in RttResult[] results); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl b/wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl new file mode 100644 index 0000000000..2dd57b235c --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl @@ -0,0 +1,555 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.IWifiStaIfaceEventCallback; +import android.hardware.wifi.StaApfPacketFilterCapabilities; +import android.hardware.wifi.StaBackgroundScanCapabilities; +import android.hardware.wifi.StaBackgroundScanParameters; +import android.hardware.wifi.StaLinkLayerStats; +import android.hardware.wifi.StaRoamingCapabilities; +import android.hardware.wifi.StaRoamingConfig; +import android.hardware.wifi.StaRoamingState; +import android.hardware.wifi.WifiBand; +import android.hardware.wifi.WifiDebugRxPacketFateReport; +import android.hardware.wifi.WifiDebugTxPacketFateReport; + +/** + * Interface used to represent a single STA iface. + */ +@VintfStability +interface IWifiStaIface { + /** + * Mask of capabilities supported by this iface. + */ + @VintfStability + @Backing(type="int") + enum StaIfaceCapabilityMask { + /** + * Support for APF APIs. APF (Android Packet Filter) is a + * BPF-like packet filtering bytecode executed by the firmware. + */ + APF = 1 << 0, + /** + * Support for Background Scan APIs. Background scan allows the host + * to send a number of buckets down to the firmware. Each bucket + * contains a set of channels, a period, and some parameters about + * how and when to report results. + */ + BACKGROUND_SCAN = 1 << 1, + /** + * Support for link layer stats APIs. + */ + LINK_LAYER_STATS = 1 << 2, + /** + * Support for RSSI monitor APIs. + */ + RSSI_MONITOR = 1 << 3, + /** + * Support for roaming APIs. + */ + CONTROL_ROAMING = 1 << 4, + /** + * Support for Probe IE allow-listing. + */ + PROBE_IE_ALLOWLIST = 1 << 5, + /** + * Support for MAC & Probe Sequence Number randomization. + */ + SCAN_RAND = 1 << 6, + /** + * Support for 5 GHz Band. + */ + STA_5G = 1 << 7, + /** + * Support for GAS/ANQP queries. + */ + HOTSPOT = 1 << 8, + /** + * Support for Preferred Network Offload. + */ + PNO = 1 << 9, + /** + * Support for Tunneled Direct Link Setup. + */ + TDLS = 1 << 10, + /** + * Support for Tunneled Direct Link Setup off channel. + */ + TDLS_OFFCHANNEL = 1 << 11, + /** + * Support for neighbour discovery offload. + */ + ND_OFFLOAD = 1 << 12, + /** + * Support for keep alive packet offload. + */ + KEEP_ALIVE = 1 << 13, + /** + * Support for tracking connection packets' fate. + */ + DEBUG_PACKET_FATE = 1 << 14, + } + + /** + * Get the name of this iface. + * + * @return Name of this iface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + String getName(); + + /** + * Configure roaming control parameters. + * Must fail if |StaIfaceCapabilityMask.CONTROL_ROAMING| is not set. + * + * @param config Instance of |StaRoamingConfig|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void configureRoaming(in StaRoamingConfig config); + + /** + * Disable link layer stats collection. + * Must fail if |StaIfaceCapabilityMask.LINK_LAYER_STATS| is not set. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_STARTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void disableLinkLayerStatsCollection(); + + /** + * Enable link layer stats collection. + * Must fail if |StaIfaceCapabilityMask.LINK_LAYER_STATS| is not set. + * + * Radio statistics (once started) must not stop until disabled. + * Iface statistics (once started) reset and start afresh after each + * connection until disabled. + * + * @param debug true to enable field debug mode, false to disable. Driver + * must collect all statistics regardless of performance impact. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void enableLinkLayerStatsCollection(in boolean debug); + + /** + * Enable/Disable neighbour discovery offload functionality in the firmware. + * + * @param enable true to enable, false to disable. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void enableNdOffload(in boolean enable); + + /** + * Used to query additional information about the chip's APF capabilities. + * Must fail if |StaIfaceCapabilityMask.APF| is not set. + * + * @return Instance of |StaApfPacketFilterCapabilities|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + StaApfPacketFilterCapabilities getApfPacketFilterCapabilities(); + + /** + * Used to query additional information about the chip's Background Scan capabilities. + * Must fail if |StaIfaceCapabilityMask.BACKGROUND_SCAN| is not set. + * + * @return Instance of |StaBackgroundScanCapabilities| + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + StaBackgroundScanCapabilities getBackgroundScanCapabilities(); + + /** + * Get the capabilities supported by this STA iface. + * + * @return Bitset of |StaIfaceCapabilityMask| values. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + StaIfaceCapabilityMask getCapabilities(); + + /** + * API to retrieve the fates of inbound packets. + * - HAL implementation must return the fates of + * all the frames received for the most recent association. + * The fate reports must follow the same order as their respective + * packets. + * - HAL implementation may choose (but is not required) to include + * reports for management frames. + * - Packets reported by firmware, but not recognized by driver, + * must be included. However, the ordering of the corresponding + * reports is at the discretion of HAL implementation. + * - Framework must be able to call this API multiple times for the same + * association. + * + * @return Vector of |WifiDebugRxPacketFateReport| instances corresponding + * to the packet fates. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_STARTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + WifiDebugRxPacketFateReport[] getDebugRxPacketFates(); + + /** + * API to retrieve fates of outbound packets. + * - HAL implementation must return the fates of + * all the frames transmitted for the most recent association. + * The fate reports must follow the same order as their respective + * packets. + * - HAL implementation may choose (but is not required) to include + * reports for management frames. + * - Packets reported by firmware, but not recognized by driver, + * must be included. However, the ordering of the corresponding + * reports is at the discretion of HAL implementation. + * - Framework must be able to call this API multiple times for the same + * association. + * + * @return Vector of |WifiDebugTxPacketFateReport| instances corresponding + * to the packet fates. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_STARTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + WifiDebugTxPacketFateReport[] getDebugTxPacketFates(); + + /** + * Gets the factory MAC address of the STA interface. + * + * @return Factory MAC address of the STA interface. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + byte[6] getFactoryMacAddress(); + + /** + * Retrieve the latest link layer stats. + * Must fail if |StaIfaceCapabilityMask.LINK_LAYER_STATS| is not set or if + * link layer stats collection hasn't been explicitly enabled. + * + * @return Instance of |LinkLayerStats|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_STARTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + StaLinkLayerStats getLinkLayerStats(); + + /** + * Get roaming control capabilities. + * Must fail if |StaIfaceCapabilityMask.CONTROL_ROAMING| is not set. + * + * @return Instance of |StaRoamingCapabilities|. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + StaRoamingCapabilities getRoamingCapabilities(); + + /** + * Used to query the list of valid frequencies (depending on the country + * code set) for the provided band. These channels may be specified in the + * |BackgroundScanBucketParameters.frequenciesInMhz| for a background scan + * request. + * + * @param band Band for which the frequency list is being generated. + * @return Vector of valid frequencies for the provided band. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + int[] getValidFrequenciesForBand(in WifiBand band); + + /** + * Installs an APF program on this iface, replacing an existing + * program if present. + * Must fail if |StaIfaceCapabilityMask.APF| is not set. + * + * APF docs + * ========================================================================== + * APF functionality, instructions and bytecode/binary format is described in: + * http://android.googlesource.com/platform/hardware/google/apf/ + * +/b75c9f3714cfae3dad3d976958e063150781437e/apf.h + * + * The interpreter API is described here: + * http://android.googlesource.com/platform/hardware/google/apf/+/ + * b75c9f3714cfae3dad3d976958e063150781437e/apf_interpreter.h#32 + * + * The assembler/generator API is described in javadocs here: + * http://android.googlesource.com/platform/frameworks/base/+/ + * 4456f33a958a7f09e608399da83c4d12b2e7d191/services/net/java/android/net/ + * apf/ApfGenerator.java + * + * Disassembler usage is described here: + * http://android.googlesource.com/platform/hardware/google/apf/+/ + * b75c9f3714cfae3dad3d976958e063150781437e/apf_disassembler.c#65 + * + * The BPF to APF translator usage is described here: + * http://android.googlesource.com/platform/frameworks/base/+/ + * 4456f33a958a7f09e608399da83c4d12b2e7d191/tests/net/java/android/net/ + * apf/Bpf2Apf.java + * ========================================================================== + * + * @param program APF Program to be set. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void installApfPacketFilter(in byte[] program); + + /** + * Fetches a consistent snapshot of the entire APF program and working + * memory buffer and returns it to the host. The returned buffer contains + * both code and data. Its length must match the most recently returned + * |StaApfPacketFilterCapabilities.maxLength|. + * + * While the snapshot is being fetched, the APF interpreter must not execute + * and all incoming packets must be passed to the host as if there was no + * APF program installed. + * + * Must fail with |WifiStatusCode.ERROR_NOT_SUPPORTED| if + * |StaIfaceCapabilityMask.APF| is not set. + * + * @return The entire APF working memory buffer when status is + * |WifiStatusCode.SUCCESS|, empty otherwise. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + * @see getApfPacketFilterCapabilities() + * @see installApfPacketFilter() + */ + byte[] readApfPacketFilterData(); + + /** + * Requests notifications of significant events on this iface. Multiple calls + * to this must register multiple callbacks, each of which must receive all + * events. + * + * @param callback An instance of the |IWifiStaIfaceEventCallback| AIDL + * interface object. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + void registerEventCallback(in IWifiStaIfaceEventCallback callback); + + /** + * Changes the MAC address of the STA Interface to the given + * MAC address. + * + * @param mac MAC address to change to. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void setMacAddress(in byte[6] mac); + + /** + * Set the roaming control state with the parameters configured + * using |configureRoaming|. Depending on the roaming state set, the + * driver/firmware would enable/disable control over roaming decisions. + * Must fail if |StaIfaceCapabilityMask.CONTROL_ROAMING| is not set. + * + * @param state State of the roaming control. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_BUSY|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void setRoamingState(in StaRoamingState state); + + /** + * Turn on/off scan only mode for the interface. + * + * @param enable True to enable scan only mode, false to disable. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.FAILURE_UNKNOWN| + */ + void setScanMode(in boolean enable); + + /** + * Start a background scan using the given cmdId as an identifier. Only one + * active background scan need be supported. + * Must fail if |StaIfaceCapabilityMask.BACKGROUND_SCAN| is not set. + * + * When this is called all requested buckets must be scanned, starting the + * beginning of the cycle. + * + * For example: + * If there are two buckets specified + * - Bucket 1: period=10s + * - Bucket 2: period=20s + * - Bucket 3: period=30s + * Then the following scans must occur + * - t=0 buckets 1, 2, and 3 are scanned + * - t=10 bucket 1 is scanned + * - t=20 bucket 1 and 2 are scanned + * - t=30 bucket 1 and 3 are scanned + * - t=40 bucket 1 and 2 are scanned + * - t=50 bucket 1 is scanned + * - t=60 buckets 1, 2, and 3 are scanned + * - and the pattern repeats + * + * If any scan does not occur or is incomplete (error, interrupted, etc), + * then a cached scan result must still be recorded with the + * WIFI_SCAN_FLAG_INTERRUPTED flag set. + * + * @param cmdId Command Id to use for this invocation. + * @param params Background scan parameters. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void startBackgroundScan(in int cmdId, in StaBackgroundScanParameters params); + + /** + * API to start packet fate monitoring. + * - Once started, monitoring must remain active until HAL is stopped or the + * chip is reconfigured. + * - When HAL is unloaded, all packet fate buffers must be cleared. + * - The packet fates are used to monitor the state of packets transmitted/ + * received during association. + * + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void startDebugPacketFateMonitoring(); + + /** + * Start RSSI monitoring on the currently connected access point. + * Once the monitoring is enabled, the + * |IWifiStaIfaceEventCallback.onRssiThresholdBreached| callback must be + * invoked to indicate if the RSSI goes above |maxRssi| or below |minRssi|. + * Must fail if |StaIfaceCapabilityMask.RSSI_MONITOR| is not set. + * + * @param cmdId Command Id to use for this invocation. + * @param maxRssi Maximum RSSI threshold. + * @param minRssi Minimum RSSI threshold. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_ARGS_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void startRssiMonitoring(in int cmdId, in int maxRssi, in int minRssi); + + /** + * Start sending the specified keep alive packets periodically. + * + * @param cmdId Command Id to use for this invocation. + * @param ipPacketData IP packet contents to be transmitted. + * @param etherType 16 bit ether type to be set in the ethernet frame + * transmitted. + * @param srcAddress Source MAC address of the packet. + * @param dstAddress Destination MAC address of the packet. + * @param periodInMs Interval at which this packet must be transmitted. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void startSendingKeepAlivePackets(in int cmdId, in byte[] ipPacketData, in char etherType, + in byte[6] srcAddress, in byte[6] dstAddress, in int periodInMs); + + /** + * Stop the current background scan. + * Must fail if |StaIfaceCapabilityMask.BACKGROUND_SCAN| is not set. + * + * @param cmdId Command Id corresponding to the request. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_STARTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void stopBackgroundScan(in int cmdId); + + /** + * Stop RSSI monitoring. + * Must fail if |StaIfaceCapabilityMask.RSSI_MONITOR| is not set. + * + * @param cmdId Command Id corresponding to the request. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_STARTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void stopRssiMonitoring(in int cmdId); + + /** + * Stop sending the specified keep alive packets. + * + * @param cmdId Command Id corresponding to the request. + * @throws ServiceSpecificException with one of the following values: + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, + * |WifiStatusCode.ERROR_NOT_SUPPORTED|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + void stopSendingKeepAlivePackets(in int cmdId); +} diff --git a/wifi/aidl/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl b/wifi/aidl/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl new file mode 100644 index 0000000000..93a255f9b4 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IWifiStaIfaceEventCallback.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.StaScanData; +import android.hardware.wifi.StaScanResult; + +@VintfStability +oneway interface IWifiStaIfaceEventCallback { + /** + * Called for each received beacon/probe response for a scan with the + * |REPORT_EVENTS_FULL_RESULTS| flag set in + * |StaBackgroundScanBucketParameters.eventReportScheme|. + * + * @param cmdId Command Id corresponding to the request. + * @param bucketsScanned Bitset where each bit indicates if the bucket with + * that index (starting at 0) was scanned. + * @param result Full scan result for an AP. + */ + void onBackgroundFullScanResult(in int cmdId, in int bucketsScanned, in StaScanResult result); + + /** + * Callback indicating that an ongoing background scan request has failed. + * The background scan needs to be restarted to continue scanning. + * + * @param cmdId Command Id corresponding to the request. + */ + void onBackgroundScanFailure(in int cmdId); + + /** + * Called when the |StaBackgroundScanBucketParameters.eventReportScheme| flags + * for at least one bucket that was just scanned was + * |REPORT_EVENTS_EACH_SCAN|, or one of the configured thresholds was + * breached. + * + * @param cmdId Command Id corresponding to the request. + * @param scanDatas List of scan result for all AP's seen since last callback. + */ + void onBackgroundScanResults(in int cmdId, in StaScanData[] scanDatas); + + /** + * Called when the RSSI of the currently connected access point goes beyond the + * thresholds set via |IWifiStaIface.startRssiMonitoring|. + * + * @param cmdId Command Id corresponding to the request. + * @param currBssid BSSID of the currently connected access point. + * @param currRssi RSSI of the currently connected access point. + */ + void onRssiThresholdBreached(in int cmdId, in byte[6] currBssid, in int currRssi); +} diff --git a/wifi/aidl/android/hardware/wifi/IfaceConcurrencyType.aidl b/wifi/aidl/android/hardware/wifi/IfaceConcurrencyType.aidl new file mode 100644 index 0000000000..26c183c8ec --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IfaceConcurrencyType.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; + +/** + * List of interface concurrency types, used in reporting device concurrency capabilities. + */ +@VintfStability +@Backing(type="int") +enum IfaceConcurrencyType { + /** + * Concurrency type for station mode. + */ + STA, + /** + * Concurrency type of single-port AP mode. + */ + AP, + /** + * Concurrency type of two-port bridged AP mode. + */ + AP_BRIDGED, + /** + * Concurrency type of peer-to-peer mode. + */ + P2P, + /** + * Concurrency type of neighborhood area network mode. + */ + NAN_IFACE, +} diff --git a/wifi/aidl/android/hardware/wifi/IfaceType.aidl b/wifi/aidl/android/hardware/wifi/IfaceType.aidl new file mode 100644 index 0000000000..c89d94b0e1 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/IfaceType.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2022 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; + +/** + * List of supported interface types. + */ +@VintfStability +@Backing(type="int") +enum IfaceType { + STA, + AP, + P2P, + /** + * NAN control interface. Datapath support must be queried and created + * through this interface. Declared as 'NAN_IFACE' instead of 'NAN' + * because the compiler complains that NAN is already defined by math.h + */ + NAN_IFACE, +} diff --git a/wifi/aidl/android/hardware/wifi/MacAddress.aidl b/wifi/aidl/android/hardware/wifi/MacAddress.aidl new file mode 100644 index 0000000000..d59dfe3c0f --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/MacAddress.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +/** + * Byte array representing a Mac Address. Use when we need to + * pass an array of Mac Addresses to a method, as variable-sized + * 2D arrays are not supported in AIDL. + * + * TODO (b/210705533): Replace this type with a 2D byte array. + */ +@VintfStability +parcelable MacAddress { + byte[6] data; +} diff --git a/wifi/aidl/android/hardware/wifi/NanBandIndex.aidl b/wifi/aidl/android/hardware/wifi/NanBandIndex.aidl new file mode 100644 index 0000000000..5da5869d54 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanBandIndex.aidl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2022 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; + +/** + * The discovery bands supported by NAN. + */ +@VintfStability +@Backing(type="int") +enum NanBandIndex { + NAN_BAND_24GHZ = 0, + NAN_BAND_5GHZ, + /** + * Index for 6 GHz band. + */ + NAN_BAND_6GHZ = 2, +} diff --git a/wifi/aidl/android/hardware/wifi/NanBandSpecificConfig.aidl b/wifi/aidl/android/hardware/wifi/NanBandSpecificConfig.aidl new file mode 100644 index 0000000000..2e13486ea3 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanBandSpecificConfig.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN band-specific configuration. + */ +@VintfStability +parcelable NanBandSpecificConfig { + /** + * RSSI values controlling clustering behavior per spec. RSSI values are specified without a + * sign, e.g. a value of -65dBm would be specified as 65. + */ + byte rssiClose; + byte rssiMiddle; + /** + * RSSI value determining whether discovery is near (used if enabled in discovery by + * |NanDiscoveryCommonConfig.useRssiThreshold|). + * RSSI values are specified without a sign, e.g. a value of -65dBm would be specified as 65. + * NAN Spec: RSSI_close_proximity + */ + byte rssiCloseProximity; + /** + * Dwell time of each discovery channel in milliseconds. If set to 0, then the firmware + * determines the dwell time to use. + */ + char dwellTimeMs; + /** + * Scan period of each discovery channel in seconds. If set to 0, then the firmware determines + * the scan period to use. + */ + char scanPeriodSec; + /** + * Specifies the discovery window interval for Sync beacons and SDF's. + * Valid values of DW Interval are: 1, 2, 3, 4 and 5 corresponding to 1, 2, 4, 8, and 16 DWs. + * Value of 0: + * - reserved in 2.4GHz band + * - no wakeup at all in 5GHz band + * The publish/subscribe period values don't override the device level configurations if + * they are specified. + * Configuration is only used only if |validDiscoveryWindowIntervalVal| is set to true. + * NAN Spec: Device Capability Attribute / 2.4 GHz DW, Device Capability Attribute / 5 GHz DW + */ + boolean validDiscoveryWindowIntervalVal; + byte discoveryWindowIntervalVal; +} diff --git a/wifi/aidl/android/hardware/wifi/NanCapabilities.aidl b/wifi/aidl/android/hardware/wifi/NanCapabilities.aidl new file mode 100644 index 0000000000..6042a05da8 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanCapabilities.aidl @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanCipherSuiteType; + +/** + * NDP Capabilities response. + */ +@VintfStability +parcelable NanCapabilities { + /** + * Maximum number of clusters which the device can join concurrently. + */ + int maxConcurrentClusters; + /** + * Maximum number of concurrent publish discovery sessions. + */ + int maxPublishes; + /** + * Maximum number of concurrent subscribe discovery sessions. + */ + int maxSubscribes; + /** + * Maximum length (in bytes) of service name. + */ + int maxServiceNameLen; + /** + * Maximum length (in bytes) of individual match filters. + */ + int maxMatchFilterLen; + /** + * Maximum length (in bytes) of aggregate match filters across all active sessions. + */ + int maxTotalMatchFilterLen; + /** + * Maximum length (in bytes) of the service specific info field. + */ + int maxServiceSpecificInfoLen; + /** + * Maximum length (in bytes) of the extended service specific info field. + */ + int maxExtendedServiceSpecificInfoLen; + /** + * Maximum number of data interfaces (NDI) which can be created concurrently on the device. + */ + int maxNdiInterfaces; + /** + * Maximum number of data paths (NDP) which can be created concurrently on the device, across + * all data interfaces (NDI). + */ + int maxNdpSessions; + /** + * Maximum length (in bytes) of application info field (used in data-path negotiations). + */ + int maxAppInfoLen; + /** + * Maximum number of transmitted followup messages which can be queued by the firmware. + */ + int maxQueuedTransmitFollowupMsgs; + /** + * Maximum number MAC interface addresses which can be specified to a subscribe discovery + * session. + */ + int maxSubscribeInterfaceAddresses; + /** + * The set of supported Cipher suites. The |NanCipherSuiteType| bit fields are used. + */ + NanCipherSuiteType supportedCipherSuites; + /** + * Flag to indicate id instant communication mode is supported. + */ + boolean instantCommunicationModeSupportFlag; +} diff --git a/wifi/aidl/android/hardware/wifi/NanCipherSuiteType.aidl b/wifi/aidl/android/hardware/wifi/NanCipherSuiteType.aidl new file mode 100644 index 0000000000..9e3d684a9d --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanCipherSuiteType.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2022 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; + +/** + * Cipher suite flags. + */ +@VintfStability +@Backing(type="int") +enum NanCipherSuiteType { + NONE = 0, + SHARED_KEY_128_MASK = 1 << 0, + SHARED_KEY_256_MASK = 1 << 1, + /** + * NCS-PK-128 + */ + PUBLIC_KEY_128_MASK = 1 << 2, + /** + * NCS-PK-256 + */ + PUBLIC_KEY_256_MASK = 1 << 3, +} diff --git a/wifi/aidl/android/hardware/wifi/NanClusterEventInd.aidl b/wifi/aidl/android/hardware/wifi/NanClusterEventInd.aidl new file mode 100644 index 0000000000..76a3034044 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanClusterEventInd.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanClusterEventType; + +/** + * Cluster event indication structure. Triggered on events impacting how this device is + * visible to peers - cluster forming, joining a new cluster, or changing of the MAC address. + */ +@VintfStability +parcelable NanClusterEventInd { + /** + * Event type causing the cluster event indication to be triggered. + */ + NanClusterEventType eventType; + /** + * MAC Address associated with the corresponding event. + */ + byte[6] addr; +} diff --git a/wifi/aidl/android/hardware/wifi/NanClusterEventType.aidl b/wifi/aidl/android/hardware/wifi/NanClusterEventType.aidl new file mode 100644 index 0000000000..c07bf17364 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanClusterEventType.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; + +/** + * Event types for a cluster event indication. + */ +@VintfStability +@Backing(type="int") +enum NanClusterEventType { + /** + * Management/discovery interface MAC address has changed + * (e.g. due to randomization or at startup). + */ + DISCOVERY_MAC_ADDRESS_CHANGED = 0, + /** + * A new cluster has been formed by this device. + */ + STARTED_CLUSTER, + /** + * This device has joined an existing cluster. + */ + JOINED_CLUSTER, +} diff --git a/wifi/aidl/android/hardware/wifi/NanConfigRequest.aidl b/wifi/aidl/android/hardware/wifi/NanConfigRequest.aidl new file mode 100644 index 0000000000..82a7b6e754 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanConfigRequest.aidl @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanBandSpecificConfig; + +/** + * Configuration parameters of NAN. Used when enabling and re-configuring a NAN cluster. + */ +@VintfStability +parcelable NanConfigRequest { + /** + * Master preference of this device. + * NAN Spec: Master Indication Attribute / Master Preference + */ + byte masterPref; + /** + * Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered + * for |NanClusterEventType.DISCOVERY_MAC_ADDRESS_CHANGED|. + */ + boolean disableDiscoveryAddressChangeIndication; + /** + * Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered + * for |NanClusterEventType.STARTED_CLUSTER|. + */ + boolean disableStartedClusterIndication; + /** + * Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered + * for |NanClusterEventType.JOINED_CLUSTER|. + */ + boolean disableJoinedClusterIndication; + /** + * Control whether publish service IDs are included in Sync/Discovery beacons. + * NAN Spec: Service ID List Attribute + */ + boolean includePublishServiceIdsInBeacon; + /** + * If |includePublishServiceIdsInBeacon| is true, then specifies the number of publish service + * IDs to include in the Sync/Discovery beacons. Value = 0: include as many service IDs as will + * fit into the maximum allowed beacon frame size. Value must fit within 7 bits - i.e. <= 127. + */ + byte numberOfPublishServiceIdsInBeacon; + /** + * Control whether subscribe service IDs are included in Sync/Discovery beacons. + * Spec: Subscribe Service ID List Attribute + */ + boolean includeSubscribeServiceIdsInBeacon; + /** + * If |includeSubscribeServiceIdsInBeacon| is true, then specifies the number of subscribe + * service IDs to include in the Sync/Discovery beacons. Value = 0: include as many service IDs + * as will fit into the maximum allowed beacon frame size. Value must fit within 7 bits - i.e. + * <= 127. + */ + byte numberOfSubscribeServiceIdsInBeacon; + /** + * Number of samples used to calculate RSSI. + */ + char rssiWindowSize; + /** + * Specifies the interval in seconds that the NAN management interface MAC address is + * randomized. A value of 0 is used to disable the MAC address randomization. + */ + int macAddressRandomizationIntervalSec; + /** + * Additional configuration provided per band. Indexed by |NanBandIndex|. + */ + NanBandSpecificConfig[3] bandSpecificConfig; +} diff --git a/wifi/aidl/android/hardware/wifi/NanConfigRequestSupplemental.aidl b/wifi/aidl/android/hardware/wifi/NanConfigRequestSupplemental.aidl new file mode 100644 index 0000000000..eb01a9f731 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanConfigRequestSupplemental.aidl @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2022 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; + +/** + * Additional NAN configuration request parameters. + */ +@VintfStability +parcelable NanConfigRequestSupplemental { + /** + * Specify the Discovery Beacon interval in ms. Specification only applicable if the device + * transmits Discovery Beacons (based on the Wi-Fi Aware protocol selection criteria). The value + * can be increased to reduce power consumption (on devices which would transmit Discovery + * Beacons). However, cluster synchronization time will likely increase. + * Values are: + * - A value of 0 indicates that the HAL sets the interval to a default (implementation + * specific). + * - A positive value. + */ + int discoveryBeaconIntervalMs; + /** + * The number of spatial streams to be used for transmitting NAN management frames (does NOT + * apply to data-path packets). A small value may reduce power consumption for small discovery + * packets. Values are: + * - A value of 0 indicates that the HAL sets the number to a default (implementation + * specific). + * - A positive value. + */ + int numberOfSpatialStreamsInDiscovery; + /** + * Controls whether the device may terminate listening on a Discovery Window (DW) earlier than + * the DW termination (16ms) if no information is received. Enabling the feature will result in + * lower power consumption, but may result in some missed messages and hence increased latency. + */ + boolean enableDiscoveryWindowEarlyTermination; + /** + * Controls whether NAN RTT (ranging) is permitted. Global flag on any NAN RTT operations are + * allowed. Controls ranging in the context of discovery as well as direct RTT. + */ + boolean enableRanging; + /** + * Controls whether NAN instant communication mode is enabled. + */ + boolean enableInstantCommunicationMode; + /** + * Controls which channel NAN instant communication mode operates on. + */ + int instantModeChannel; +} diff --git a/wifi/aidl/android/hardware/wifi/NanDataPathChannelCfg.aidl b/wifi/aidl/android/hardware/wifi/NanDataPathChannelCfg.aidl new file mode 100644 index 0000000000..3aaea40949 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDataPathChannelCfg.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN DP (data-path) channel config options. + */ +@VintfStability +@Backing(type="int") +enum NanDataPathChannelCfg { + CHANNEL_NOT_REQUESTED = 0, + REQUEST_CHANNEL_SETUP, + FORCE_CHANNEL_SETUP, +} diff --git a/wifi/aidl/android/hardware/wifi/NanDataPathChannelInfo.aidl b/wifi/aidl/android/hardware/wifi/NanDataPathChannelInfo.aidl new file mode 100644 index 0000000000..e5c35385dd --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDataPathChannelInfo.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiChannelWidthInMhz; + +/** + * NAN data path channel information provided to the framework. + */ +@VintfStability +parcelable NanDataPathChannelInfo { + /** + * Channel frequency in MHz. + */ + int channelFreq; + /** + * Channel bandwidth in MHz. + */ + WifiChannelWidthInMhz channelBandwidth; + /** + * Number of spatial streams used in the channel. + */ + int numSpatialStreams; +} diff --git a/wifi/aidl/android/hardware/wifi/NanDataPathConfirmInd.aidl b/wifi/aidl/android/hardware/wifi/NanDataPathConfirmInd.aidl new file mode 100644 index 0000000000..621f036404 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDataPathConfirmInd.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanDataPathChannelInfo; +import android.hardware.wifi.NanStatus; + +/** + * NAN Data path confirmation indication structure. Event indication is + * received on both initiator and responder side when negotiation for a + * data-path finishes on success or failure. + */ +@VintfStability +parcelable NanDataPathConfirmInd { + /** + * ID of the data-path. + */ + int ndpInstanceId; + /** + * Indicates whether the data-path setup succeeded (true) or failed (false). + */ + boolean dataPathSetupSuccess; + /** + * MAC address of the peer's data-interface (not its management/discovery interface). + */ + byte[6] peerNdiMacAddr; + /** + * Arbitrary information communicated from the peer as part of the data-path setup process - + * there is no semantic meaning to these bytes. They are passed-through from sender to receiver + * as-is with no parsing. Max length: |NanCapabilities.maxAppInfoLen|. NAN Spec: Data Path + * Attributes / NDP Attribute / NDP Specific Info + */ + byte[] appInfo; + /** + * Failure reason if |dataPathSetupSuccess| is false. + */ + NanStatus status; + /** + * The channel(s) on which the NDP is scheduled to operate. + * Updates to the operational channels are provided using the |eventDataPathScheduleUpdate| + * event. + */ + NanDataPathChannelInfo[] channelInfo; +} diff --git a/wifi/aidl/android/hardware/wifi/NanDataPathRequestInd.aidl b/wifi/aidl/android/hardware/wifi/NanDataPathRequestInd.aidl new file mode 100644 index 0000000000..de9ee32115 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDataPathRequestInd.aidl @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN Data path request indication message structure. + * Event indication received by an intended Responder when a NAN + * data request initiated by an Initiator. + */ +@VintfStability +parcelable NanDataPathRequestInd { + /** + * ID of an active publish or subscribe discovery session. The data-path + * request is in the context of this discovery session. + * NAN Spec: Data Path Attributes / NDP Attribute / Publish ID + */ + byte discoverySessionId; + /** + * MAC address of the Initiator peer. This is the MAC address of the peer's + * management/discovery NAN interface. + */ + byte[6] peerDiscMacAddr; + /** + * ID of the data-path. Used to identify the data-path in further negotiation/APIs. + */ + int ndpInstanceId; + /** + * Specifies whether or not security is required by the peer for the data-path being created. + * NAN Spec: Data Path Attributes / NDP Attribute / NDP Control / Security Present + */ + boolean securityRequired; + /** + * Arbitrary information communicated from the peer as part of the data-path setup process. + * Therer is no semantic meaning to these bytes. They are passed-through from sender to + * receiver as-is with no parsing. + * Max length: |NanCapabilities.maxAppInfoLen|. + * NAN Spec: Data Path Attributes / NDP Attribute / NDP Specific Info + */ + byte[] appInfo; +} diff --git a/wifi/aidl/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl b/wifi/aidl/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl new file mode 100644 index 0000000000..0f41d8fba2 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDataPathScheduleUpdateInd.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanDataPathChannelInfo; + +/** + * NAN data path channel information update indication structure. + * Event indication is received by all NDP owners whenever the channels on + * which the NDP operates are updated. + * Note: Multiple NDPs may share the same schedule. The indication specifies + * all NDPs to which it applies. + */ +@VintfStability +parcelable NanDataPathScheduleUpdateInd { + /** + * The discovery address (NMI) of the peer to which the NDP is connected. + */ + byte[6] peerDiscoveryAddress; + /** + * The updated channel(s) information. + */ + NanDataPathChannelInfo[] channelInfo; + /** + * The list of NDPs to which this update applies. + */ + int[] ndpInstanceIds; +} diff --git a/wifi/aidl/android/hardware/wifi/NanDataPathSecurityConfig.aidl b/wifi/aidl/android/hardware/wifi/NanDataPathSecurityConfig.aidl new file mode 100644 index 0000000000..42a5616949 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDataPathSecurityConfig.aidl @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanCipherSuiteType; +import android.hardware.wifi.NanDataPathSecurityType; + +/** + * Configuration of NAN data-path security. + */ +@VintfStability +parcelable NanDataPathSecurityConfig { + /** + * Security configuration of the data-path (NDP). Security is enabled if not equal to + * |NanDataPathSecurityType.OPEN|. + * NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / Security Required + */ + NanDataPathSecurityType securityType; + /** + * Cipher type for data-paths. If |securityType| is |NanDataPathSecurityType.OPEN| then must + * be set to |NanCipherSuiteType.NONE|. Otherwise a non-|NanCipherSuiteType.NONE| cipher suite + * must be specified. + */ + NanCipherSuiteType cipherType; + /** + * Optional Pairwise Master Key (PMK). Must be specified (and is only used) if |securityType| is + * set to |NanDataPathSecurityType.PMK|. + * Ref: IEEE 802.11i + */ + byte[32] pmk; + /** + * Optional Passphrase. Must be specified (and is only used) if |securityType| is set to + * |NanDataPathSecurityType.PASSPHRASE|. + * Min length: |IWifiNanIface.MIN_DATA_PATH_CONFIG_PASSPHRASE_LENGTH| + * Max length: |IWifiNanIface.MAX_DATA_PATH_CONFIG_PASSPHRASE_LENGTH| + * NAN Spec: Appendix: Mapping passphrase to PMK for NCS-SK Cipher Suites + */ + byte[] passphrase; + /** + * Security Context Identifier attribute contains PMKID. Shall be included in NDP setup and + * response messages. Security Context Identifier identifies the Security Context. When + * security is enabled this field contains the 16 octet PMKID identifying the PMK used for + * setting up the Secure Data Path. + */ + byte[16] scid; +} diff --git a/wifi/aidl/android/hardware/wifi/NanDataPathSecurityType.aidl b/wifi/aidl/android/hardware/wifi/NanDataPathSecurityType.aidl new file mode 100644 index 0000000000..da23ffa65d --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDataPathSecurityType.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN DP (data-path) security configuration options. + */ +@VintfStability +@Backing(type="int") +enum NanDataPathSecurityType { + OPEN, + PMK, + PASSPHRASE, +} diff --git a/wifi/aidl/android/hardware/wifi/NanDebugConfig.aidl b/wifi/aidl/android/hardware/wifi/NanDebugConfig.aidl new file mode 100644 index 0000000000..d8fab0d9cf --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDebugConfig.aidl @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2022 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; + +/** + * Debug configuration parameters. Many of these allow non-standard-compliant operation and are + * not intended for normal operational mode. + */ +@VintfStability +parcelable NanDebugConfig { + /** + * Specification of the lower 2 bytes of the cluster ID. The cluster ID is 50-60-9a-01-00-00 to + * 50-60-9a-01-FF-FF. Configuration is of the bottom and top values of the range (which default + * to 0x0000 and 0xFFFF respectively). + * Configuration is only used if |validClusterIdVals| is set to true. + */ + boolean validClusterIdVals; + char clusterIdBottomRangeVal; + char clusterIdTopRangeVal; + /** + * NAN management interface address. If specified (|validIntfAddrVal| is true), then overrides + * any other configuration (specifically the default randomization configured by + * |NanConfigRequest.macAddressRandomizationIntervalSec|). + */ + boolean validIntfAddrVal; + byte[6] intfAddrVal; + /** + * Combination of the 24 bit Organizationally Unique ID (OUI) and the 8 bit OUI type. + * Used if |validOuiVal| is set to true. + */ + boolean validOuiVal; + int ouiVal; + /** + * Force the Random Factor to the specified value for all transmitted Sync/Discovery beacons. + * Used if |validRandomFactorForceVal| is set to true. + * NAN Spec: Master Indication Attribute / Random Factor + */ + boolean validRandomFactorForceVal; + byte randomFactorForceVal; + /** + * Forces the hop-count for all transmitted Sync and Discovery Beacons NO matter the real + * hop-count being received over the air. Used if the |validHopCountForceVal| flag is set to + * true. + * NAN Spec: Cluster Attribute / Anchor Master Information / Hop Count to Anchor Master + */ + boolean validHopCountForceVal; + byte hopCountForceVal; + /** + * Frequency in MHz to of the discovery channel in the specified band. Indexed by + * |NanBandIndex|. Used if the |validDiscoveryChannelVal| is set to true. + */ + boolean validDiscoveryChannelVal; + int[3] discoveryChannelMhzVal; + /** + * Specifies whether sync/discovery beacons are transmitted in the specified band. Indexed by + * |NanBandIndex|. Used if the |validUseBeaconsInBandVal| is set to true. + */ + boolean validUseBeaconsInBandVal; + boolean[3] useBeaconsInBandVal; + /** + * Specifies whether SDF (service discovery frames) are transmitted in the specified band. + * Indexed by |NanBandIndex|. Used if the |validUseSdfInBandVal| is set to true. + */ + boolean validUseSdfInBandVal; + boolean[3] useSdfInBandVal; +} diff --git a/wifi/aidl/android/hardware/wifi/NanDiscoveryCommonConfig.aidl b/wifi/aidl/android/hardware/wifi/NanDiscoveryCommonConfig.aidl new file mode 100644 index 0000000000..ca1e01693e --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanDiscoveryCommonConfig.aidl @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanDataPathSecurityConfig; +import android.hardware.wifi.NanMatchAlg; +import android.hardware.wifi.NanRangingIndication; + +/** + * Configurations of NAN discovery sessions. Common to publish and subscribe discovery. + */ +@VintfStability +parcelable NanDiscoveryCommonConfig { + /** + * The ID of the discovery session being configured. A value of 0 specifies a request to create + * a new discovery session. The new discovery session ID is returned with + * |IWifiNanIfaceEventCallback.notifyStartPublishResponse| or + * |IWifiNanIfaceEventCallback.notifyStartSubscribeResponse|. + * NAN Spec: Service Descriptor Attribute (SDA) / Instance ID + */ + byte sessionId; + /** + * The lifetime of the discovery session in seconds. A value of 0 means run forever or until + * canceled using |IWifiIface.stopPublishRequest| or |IWifiIface.stopSubscribeRequest|. + */ + char ttlSec; + /** + * Indicates the interval between two Discovery Windows in which the device supporting the + * service is awake to transmit or receive the Service Discovery frames. Valid values of Awake + * DW Interval are: 1, 2, 4, 8 and 16. A value of 0 will default to 1. Does not override + * |NanBandSpecificConfig.discoveryWindowIntervalVal| configurations if those are specified. + */ + char discoveryWindowPeriod; + /** + * The lifetime of the discovery session in number of transmitted SDF discovery packets. A value + * of 0 means forever or until canceled using |IWifiIface.stopPublishRequest| or + * |IWifiIface.stopSubscribeRequest|. + */ + byte discoveryCount; + /** + * UTF-8 encoded string identifying the service. + * Max length: |NanCapabilities.maxServiceNameLen|. + * NAN Spec: The only acceptable single-byte UTF-8 symbols for a Service Name are alphanumeric + * values (A-Z, a-z, 0-9), the hyphen ('-'), and the period ('.'). All valid multi-byte UTF-8 + * characters are acceptable in a Service Name. + */ + byte[] serviceName; + /** + * Specifies how often to trigger |IWifiNanIfaceEventCallback.eventMatch| when continuously + * discovering the same discovery session (with no changes). + */ + NanMatchAlg discoveryMatchIndicator; + /** + * Arbitrary information communicated in discovery packets - there is no semantic meaning to + * these bytes. They are passed-through from publisher to subscriber as-is with no parsing. Max + * length: |NanCapabilities.maxServiceSpecificInfoLen|. NAN Spec: Service Descriptor Attribute + * (SDA) / Service Info + */ + byte[] serviceSpecificInfo; + /** + * Arbitrary information communicated in discovery packets - there is no semantic meaning to + * these bytes. They are passed-through from publisher to subscriber as-is with no parsing. Max + * length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|. Spec: Service Descriptor + * Extension Attribute (SDEA) / Service Info + */ + byte[] extendedServiceSpecificInfo; + /** + * Ordered sequence of pairs (|length| uses 1 byte and contains the number of + * bytes in the |value| field) which specify further match criteria (beyond the service name). + * The match behavior is specified in details in the NAN spec. + * Publisher: used in SOLICITED or SOLICITED_UNSOLICITED sessions. + * Subscriber: used in ACTIVE or PASSIVE sessions. + * Max length: |NanCapabilities.maxMatchFilterLen|. + * NAN Spec: matching_filter_rx + */ + byte[] rxMatchFilter; + /** + * Ordered sequence of pairs (|length| uses 1 byte and contains the number of + * bytes in the |value| field) which specify further match criteria (beyond the service name). + * The match behavior is specified in details in the NAN spec. + * Publisher: used if provided. + * Subscriber: used (if provided) only in ACTIVE sessions. + * Max length: |NanCapabilities.maxMatchFilterLen|. + * NAN Spec: matching_filter_tx and Service Descriptor Attribute (SDA) / Matching Filter + */ + byte[] txMatchFilter; + /** + * Specifies whether or not the discovery session uses the + * |NanBandSpecificConfig.rssiCloseProximity| value (configured in enable/configure requests) to + * filter out matched discovered peers. + * NAN Spec: Service Descriptor Attribute / Service Control / Discovery Range Limited. + */ + boolean useRssiThreshold; + /** + * Controls whether or not the |IWifiNanIfaceEventCallback.eventPublishTerminated| (for publish + * discovery sessions) or |IWifiNanIfaceEventCallback.eventSubscribeTerminated| (for subscribe + * discovery sessions) will be delivered. + */ + boolean disableDiscoveryTerminationIndication; + /** + * Controls whether or not |IWifiNanIfaceEventCallback.eventMatchExpired| will be delivered. + */ + boolean disableMatchExpirationIndication; + /** + * Controls whether or not |IWifiNanIfaceEventCallback.eventFollowupReceived| will be delivered. + */ + boolean disableFollowupReceivedIndication; + /** + * Security configuration of data-paths created in the context of this discovery session. + * Security parameters can be overridden during the actual construction of the data-path - + * allowing individual data-paths to have unique PMKs or passphrases. + */ + NanDataPathSecurityConfig securityConfig; + /** + * Specifies whether or not there is a ranging requirement in this discovery session. + * Ranging is only performed if all other match criteria with the peer are met. Ranging must + * be performed if both peers in the discovery session (publisher and subscriber) set this + * flag to true. Otherwise, if either peer sets this flag to false, ranging must not be + * performed and must not impact discovery decisions. Note: Specifying that ranging is required + * also implies that this device must automatically accept ranging requests from peers. NAN + * Spec: Service Discovery Extension Attribute (SDEA) / Control / Ranging Require. + */ + boolean rangingRequired; + /** + * Interval in ms between two ranging measurements. Only relevant if |rangingRequired| is true. + * If the Awake DW interval specified either in |discoveryWindowPeriod| or in + * |NanBandSpecificConfig.discoveryWindowIntervalVal| is larger than the ranging interval then + * priority is given to Awake DW interval. + */ + int rangingIntervalMs; + /** + * The type of ranging feedback to be provided by discovery session matches + * |IWifiNanIfaceEventCallback.eventMatch|. Only relevant if |rangingRequired| is true. + */ + NanRangingIndication configRangingIndications; + /** + * The ingress and egress distance in cm. If ranging is enabled (|rangingEnabled| is true) then + * |configRangingIndications| is used to determine whether ingress and/or egress (or neither) + * are used to determine whether a match has occurred. + * NAN Spec: Service Discovery Extension Attribute (SDEA) / Ingress & Egress Range Limit + */ + char distanceIngressCm; + char distanceEgressCm; +} diff --git a/wifi/aidl/android/hardware/wifi/NanEnableRequest.aidl b/wifi/aidl/android/hardware/wifi/NanEnableRequest.aidl new file mode 100644 index 0000000000..8c28fe177f --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanEnableRequest.aidl @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanConfigRequest; +import android.hardware.wifi.NanDebugConfig; + +/** + * Enable requests for NAN. Start-up configuration for |IWifiNanIface.enableRequest|. + */ +@VintfStability +parcelable NanEnableRequest { + /** + * Enable operation in a specific band. Indexed by |NanBandIndex|. + */ + boolean[3] operateInBand; + /** + * Specify extent of cluster by specifying the max hop count. + */ + byte hopCountMax; + /** + * Configurations of NAN cluster operation. Can also be modified at run-time using + * |IWifiNanIface.configRequest|. + */ + NanConfigRequest configParams; + /** + * Non-standard configurations of NAN cluster operation. Useful for debugging operations. + */ + NanDebugConfig debugConfigs; +} diff --git a/wifi/aidl/android/hardware/wifi/NanFollowupReceivedInd.aidl b/wifi/aidl/android/hardware/wifi/NanFollowupReceivedInd.aidl new file mode 100644 index 0000000000..20bc9b1664 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanFollowupReceivedInd.aidl @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 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; + +/** + * Follow up message received from peer indication structure. + */ +@VintfStability +parcelable NanFollowupReceivedInd { + /** + * Discovery session (publish or subscribe) ID of a previously created discovery session. The + * message is received in the context of this discovery session. + * NAN Spec: Service Descriptor Attribute (SDA) / Instance ID + */ + byte discoverySessionId; + /** + * A unique ID of the peer. Can be subsequently used in |IWifiNanIface.transmitFollowupRequest| + * or to set up a data-path. + */ + int peerId; + /** + * The NAN Discovery (management) MAC address of the peer. + */ + byte[6] addr; + /** + * Indicates whether received in a further availability window (FAW) if true, or in a discovery + * window (DW) if false. + */ + boolean receivedInFaw; + /** + * Received message from the peer. There is no semantic meaning to these bytes. They are + * passed-through from sender to receiver as-is with no parsing. + * Max length: |NanCapabilities.maxServiceSpecificInfoLen|. + * NAN Spec: Service Descriptor Attribute (SDA) / Service Info + */ + byte[] serviceSpecificInfo; + /** + * Arbitrary information communicated in discovery packets. There is no semantic meaning to + * these bytes. They are passed-through from publisher to subscriber as-is with no parsing. Max + * length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|. Spec: Service Descriptor + * Extension Attribute (SDEA) / Service Info + */ + byte[] extendedServiceSpecificInfo; +} diff --git a/wifi/aidl/android/hardware/wifi/NanInitiateDataPathRequest.aidl b/wifi/aidl/android/hardware/wifi/NanInitiateDataPathRequest.aidl new file mode 100644 index 0000000000..264a873a3e --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanInitiateDataPathRequest.aidl @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanDataPathChannelCfg; +import android.hardware.wifi.NanDataPathSecurityConfig; + +/** + * Data Path Initiator requesting a data-path. + */ +@VintfStability +parcelable NanInitiateDataPathRequest { + /** + * ID of the peer. Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or + * |IWifiNanIfaceEventCallback.eventFollowupReceived|. + */ + int peerId; + /** + * NAN management interface MAC address of the peer. Obtained as part of an earlier + * |IWifiNanIfaceEventCallback.eventMatch| or + * |IWifiNanIfaceEventCallback.eventFollowupReceived|. + */ + byte[6] peerDiscMacAddr; + /** + * Config flag for channel request. + */ + NanDataPathChannelCfg channelRequestType; + /** + * Channel frequency in MHz to start data-path. Not relevant if |channelRequestType| is + * |NanDataPathChannelCfg.CHANNEL_NOT_REQUESTED|. + */ + int channel; + /** + * NAN data interface name on which this data-path session is to be initiated. + * This must be an interface created using |IWifiNanIface.createDataInterfaceRequest|. + */ + String ifaceName; + /** + * Security configuration of the requested data-path. + */ + NanDataPathSecurityConfig securityConfig; + /** + * Arbitrary information communicated to the peer as part of the data-path setup process. There + * is no semantic meaning to these bytes. They are passed-through from sender to receiver as-is + * with no parsing. + * Max length: |NanCapabilities.maxAppInfoLen|. + * NAN Spec: Data Path Attributes / NDP Attribute / NDP Specific Info + */ + byte[] appInfo; + /** + * A service name to be used with |passphrase| to construct a Pairwise Master Key (PMK) for the + * data-path. Only relevant when a data-path is requested which is not associated with a NAN + * discovery session - e.g. using out-of-band discovery. + * Constraints: same as |NanDiscoveryCommonConfig.serviceName| + * NAN Spec: Appendix: Mapping pass-phrase to PMK for NCS-SK Cipher Suites + */ + byte[] serviceNameOutOfBand; +} diff --git a/wifi/aidl/android/hardware/wifi/NanMatchAlg.aidl b/wifi/aidl/android/hardware/wifi/NanMatchAlg.aidl new file mode 100644 index 0000000000..dc96a4743c --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanMatchAlg.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN Match indication type. Controls how often to trigger |IWifiNanIfaceEventCallback.eventMatch| + * for a single discovery session - i.e. continuously discovering the same publisher with no new + * data. + */ +@VintfStability +@Backing(type="int") +enum NanMatchAlg { + MATCH_ONCE = 0, + MATCH_CONTINUOUS, + MATCH_NEVER, +} diff --git a/wifi/aidl/android/hardware/wifi/NanMatchInd.aidl b/wifi/aidl/android/hardware/wifi/NanMatchInd.aidl new file mode 100644 index 0000000000..896cde0c82 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanMatchInd.aidl @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanCipherSuiteType; +import android.hardware.wifi.NanRangingIndication; + +/** + * Match indication structure. + */ +@VintfStability +parcelable NanMatchInd { + /** + * Publish or subscribe discovery session ID of an existing discovery session. + * NAN Spec: Service Descriptor Attribute (SDA) / Instance ID + */ + byte discoverySessionId; + /** + * A unique ID of the peer. Can be subsequently used in |IWifiNanIface.transmitFollowupRequest| + * or to set up a data-path. + */ + int peerId; + /** + * The NAN Discovery (management) MAC address of the peer. + */ + byte[6] addr; + /** + * The arbitrary information contained in the |NanDiscoveryCommonConfig.serviceSpecificInfo| of + * the peer's discovery session configuration. + * Max length: |NanCapabilities.maxServiceSpecificInfoLen|. + * NAN Spec: Service Descriptor Attribute (SDA) / Service Info + */ + byte[] serviceSpecificInfo; + /** + * Arbitrary information communicated in discovery packets. There is no semantic meaning to + * these bytes. They are passed-through from publisher to subscriber as-is with no parsing. Max + * length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|. Spec: Service Descriptor + * Extension Attribute (SDEA) / Service Info + */ + byte[] extendedServiceSpecificInfo; + /** + * The match filter from the discovery packet (publish or subscribe) which caused service + * discovery. Matches the |NanDiscoveryCommonConfig.txMatchFilter| of the peer's Unsolicited + * publish message or of the local device's Active subscribe message. + * Max length: |NanCapabilities.maxMatchFilterLen|. + * NAN Spec: Service Descriptor Attribute (SDA) / Matching Filter + */ + byte[] matchFilter; + /** + * Indicates the type of discovery: true if match occurred on a Beacon frame, false if the match + * occurred on a Service Discovery Frame (SDF). + */ + boolean matchOccurredInBeaconFlag; + /** + * Flag to indicate firmware is out of resources and that it can no longer track this Service + * Name. Indicates that while |IWifiNanIfaceEventCallback.eventMatch| will be received, the + * |NanDiscoveryCommonConfig.discoveryMatchIndicator| configuration will not be honored. + */ + boolean outOfResourceFlag; + /** + * If RSSI filtering was enabled using |NanDiscoveryCommonConfig.useRssiThreshold| in discovery + * session setup, then this field contains the received RSSI value. It will contain 0 if RSSI + * filtering was not enabled. + * RSSI values are returned without sign, e.g. -70dBm will be returned as 70. + */ + byte rssiValue; + /** + * Cipher type for data-paths constructed in the context of this discovery session. Valid if + * |peerRequiresSecurityEnabledInNdp| is true. + */ + NanCipherSuiteType peerCipherType; + /** + * Indicates whether or not the peer requires security enabled in any data-path (NDP) + * constructed in the context of this discovery session. The |cipherType| specifies the cipher + * type for such data-paths. NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / + * Security Required + */ + boolean peerRequiresSecurityEnabledInNdp; + /** + * Indicates whether or not the peer requires (and hence allows) ranging in the context of this + * discovery session. + * Note that ranging is only performed if all other match criteria with the peer are met. + * NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / Ranging Require. + */ + boolean peerRequiresRanging; + /** + * Ranging indication supersedes the NanMatchAlg specification. + * Ex: If NanMatchAlg is MATCH_ONCE, but ranging indication is continuous, then continuous + * match notifications will be received (with ranging information). + * Ranging indication data is provided if Ranging required is enabled in the discovery + * specification and: + * 1) continuous ranging is specified. + * 2) ingress/egress is specified and: + * - notify once for ingress >= ingress_distance and egress <= egress_distance, + * - same for ingress_egress_both + * If the Awake DW intervals are larger than the ranging intervals, then priority is given + * to the device DW intervals. + * + * If ranging was required and executed, this contains the distance to the peer in mm. The + * |rangingIndicationType| field specifies the event which triggered ranging. + */ + int rangingMeasurementInMm; + /** + * The ranging event(s) which triggered the ranging. e.g. can indicate that continuous ranging + * was requested, or else that an ingress event occurred. + */ + NanRangingIndication rangingIndicationType; + /** + * Security Context Identifier attribute contains PMKID. Shall be included in NDP setup and + * response messages. Security Context Identifie identifies the Security Context. For NAN + * Shared Key Cipher Suite, this field contains the 16 octet PMKID identifying the PMK used for + * setting up the Secure Data Path. + */ + byte[] scid; +} diff --git a/wifi/aidl/android/hardware/wifi/NanPublishRequest.aidl b/wifi/aidl/android/hardware/wifi/NanPublishRequest.aidl new file mode 100644 index 0000000000..6dd079cea3 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanPublishRequest.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanDiscoveryCommonConfig; +import android.hardware.wifi.NanPublishType; +import android.hardware.wifi.NanTxType; + +/** + * Publish request. Specifies a publish discovery operation. + */ +@VintfStability +parcelable NanPublishRequest { + /** + * Common configuration of discovery sessions. + */ + NanDiscoveryCommonConfig baseConfigs; + /** + * Type of the publish discovery session. + */ + NanPublishType publishType; + /** + * For publishType of |NanPublishType.SOLICITED| or |NanPublishType.UNSOLICITED_SOLICITED|, + * this specifies the type of transmission used for responding to the probing subscribe + * discovery peer. + */ + NanTxType txType; + /** + * Specifies whether data-path requests |IWifiNanIfaceEventCallback.eventDataPathRequest| (in + * the context of this discovery session) are automatically accepted (if true) - in which case + * the Responder must not call the |IWifiNanIface.respondToDataPathIndicationRequest| method and + * the device must automatically accept the data-path request and complete the negotiation. + */ + boolean autoAcceptDataPathRequests; +} diff --git a/wifi/aidl/android/hardware/wifi/NanPublishType.aidl b/wifi/aidl/android/hardware/wifi/NanPublishType.aidl new file mode 100644 index 0000000000..a7a1c48b57 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanPublishType.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN publish discovery session types. + */ +@VintfStability +@Backing(type="int") +enum NanPublishType { + UNSOLICITED = 0, + SOLICITED, + UNSOLICITED_SOLICITED, +} diff --git a/wifi/aidl/android/hardware/wifi/NanRangingIndication.aidl b/wifi/aidl/android/hardware/wifi/NanRangingIndication.aidl new file mode 100644 index 0000000000..731cbfca65 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanRangingIndication.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +/** + * Ranging in the context of discovery session indication controls. Controls + * the frequency of ranging-driven |IWifiNanIfaceEventCallback.eventMatch|. + */ +@VintfStability +@Backing(type="int") +enum NanRangingIndication { + CONTINUOUS_INDICATION_MASK = 1 << 0, + INGRESS_MET_MASK = 1 << 1, + EGRESS_MET_MASK = 1 << 2, +} diff --git a/wifi/aidl/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl b/wifi/aidl/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl new file mode 100644 index 0000000000..6960e71fba --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanRespondToDataPathIndicationRequest.aidl @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanDataPathSecurityConfig; + +/** + * Response to a data-path request from a peer. + */ +@VintfStability +parcelable NanRespondToDataPathIndicationRequest { + /** + * Accept (true) or reject (false) the request. + * NAN Spec: Data Path Attributes / NDP Attribute / Type and Status + */ + boolean acceptRequest; + /** + * ID of the data-path (NDP) for which we're responding. Obtained as part of the request in + * |IWifiNanIfaceEventCallback.eventDataPathRequest|. + */ + int ndpInstanceId; + /** + * NAN data interface name on which this data-path session is to be started. + * This must be an interface created using |IWifiNanIface.createDataInterfaceRequest|. + */ + String ifaceName; + /** + * Security configuration of the requested data-path. + */ + NanDataPathSecurityConfig securityConfig; + /** + * Arbitrary information communicated to the peer as part of the data-path setup process. There + * is no semantic meaning to these bytes. They are passed-through from sender to receiver as-is + * with no parsing. + * Max length: |NanCapabilities.maxAppInfoLen|. + * NAN Spec: Data Path Attributes / NDP Attribute / NDP Specific Info + */ + byte[] appInfo; + /** + * A service name to be used with |passphrase| to construct a Pairwise Master Key (PMK) for the + * data-path. Only relevant when a data-path is requested which is not associated with a NAN + * discovery session - e.g. using out-of-band discovery. + * Constraints: same as |NanDiscoveryCommonConfig.serviceName| + * NAN Spec: Appendix: Mapping pass-phrase to PMK for NCS-SK Cipher Suites + */ + byte[] serviceNameOutOfBand; +} diff --git a/wifi/aidl/android/hardware/wifi/NanSrfType.aidl b/wifi/aidl/android/hardware/wifi/NanSrfType.aidl new file mode 100644 index 0000000000..4063b17fde --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanSrfType.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN Service Response Filter Attribute Bit. + */ +@VintfStability +@Backing(type="int") +enum NanSrfType { + BLOOM_FILTER = 0, + PARTIAL_MAC_ADDR, +} diff --git a/wifi/aidl/android/hardware/wifi/NanStatus.aidl b/wifi/aidl/android/hardware/wifi/NanStatus.aidl new file mode 100644 index 0000000000..ad29e5b63c --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanStatus.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.NanStatusCode; + +/** + * Status information returned in NAN notifications. + */ +@VintfStability +parcelable NanStatus { + /** + * Status of the command request. + */ + NanStatusCode status; + /** + * Further description of the issue causing a failure. + */ + String description; +} diff --git a/wifi/aidl/android/hardware/wifi/NanStatusCode.aidl b/wifi/aidl/android/hardware/wifi/NanStatusCode.aidl new file mode 100644 index 0000000000..d63a50e45a --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanStatusCode.aidl @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN API response codes used in request notifications and events. + */ +@VintfStability +@Backing(type="int") +enum NanStatusCode { + SUCCESS = 0, + /** + * NAN Discovery Engine/Host driver failures. + */ + INTERNAL_FAILURE = 1, + /** + * NAN OTA failures. + */ + PROTOCOL_FAILURE = 2, + /** + * The publish/subscribe discovery session id is invalid. + */ + INVALID_SESSION_ID = 3, + /** + * Out of resources to fufill request. + */ + NO_RESOURCES_AVAILABLE = 4, + /** + * Invalid arguments passed. + */ + INVALID_ARGS = 5, + /** + * Invalid peer id. + */ + INVALID_PEER_ID = 6, + /** + * Invalid NAN data-path (ndp) id. + */ + INVALID_NDP_ID = 7, + /** + * Attempting to enable NAN when not available, e.g. wifi is disabled. + */ + NAN_NOT_ALLOWED = 8, + /** + * Over the air ACK not received. + */ + NO_OTA_ACK = 9, + /** + * Attempting to enable NAN when already enabled. + */ + ALREADY_ENABLED = 10, + /** + * Can't queue tx followup message for transmission. + */ + FOLLOWUP_TX_QUEUE_FULL = 11, + /** + * Unsupported concurrency of NAN and another feature - NAN disabled. + */ + UNSUPPORTED_CONCURRENCY_NAN_DISABLED = 12, +} diff --git a/wifi/aidl/android/hardware/wifi/NanSubscribeRequest.aidl b/wifi/aidl/android/hardware/wifi/NanSubscribeRequest.aidl new file mode 100644 index 0000000000..12c11702b8 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanSubscribeRequest.aidl @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.MacAddress; +import android.hardware.wifi.NanDiscoveryCommonConfig; +import android.hardware.wifi.NanSrfType; +import android.hardware.wifi.NanSubscribeType; + +/** + * Subscribe request. Specifies a subscribe discovery operation. + */ +@VintfStability +parcelable NanSubscribeRequest { + /** + * Common configuration of discovery sessions. + */ + NanDiscoveryCommonConfig baseConfigs; + /** + * The type of the subscribe discovery session. + */ + NanSubscribeType subscribeType; + /** + * For |NanSubscribeType.ACTIVE| subscribe discovery sessions, specifies how the Service + * Response Filter (SRF) attribute is populated. Relevant only if |shouldUseSrf| is set to true. + * NAN Spec: Service Descriptor Attribute (SDA) / Service Response Filter / SRF Control / SRF + * Type + */ + NanSrfType srfType; + /** + * Configure whether inclusion of an address in |intfAddr| indicates that those devices should + * respond or the reverse. Relevant only if |shouldUseSrf| is set to true and |srfType| is set + * to |NanSrfType.PARTIAL_MAC_ADDR|. NAN Spec: Service Descriptor Attribute (SDA) / Service + * Response Filter / SRF Control / Include + */ + boolean srfRespondIfInAddressSet; + /** + * Control whether the Service Response Filter (SRF) is used. + * NAN Spec: Service Descriptor Attribute (SDA) / Service Control / + * Service Response Filter Present + */ + boolean shouldUseSrf; + /** + * Control whether the presence of |NanDiscoveryCommonConfig.serviceSpecificInfo| data is needed + * in the publisher in order to trigger service discovery, i.e. a + * |IWifiNanIfaceEventCallback.eventMatch|. The test is for presence of data - not for the + * specific contents of the data. + */ + boolean isSsiRequiredForMatch; + /** + * NAN Interface Addresses constituting the Service Response Filter (SRF). + * Max length (number of addresses): |NanCapabilities.maxSubscribeInterfaceAddresses|. + * NAN Spec: Service Descriptor Attribute (SDA) / Service Response Filter / Address Set + */ + MacAddress[] intfAddr; +} diff --git a/wifi/aidl/android/hardware/wifi/NanSubscribeType.aidl b/wifi/aidl/android/hardware/wifi/NanSubscribeType.aidl new file mode 100644 index 0000000000..a5e8182b01 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanSubscribeType.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN subscribe discovery session types. + */ +@VintfStability +@Backing(type="int") +enum NanSubscribeType { + PASSIVE = 0, + ACTIVE, +} diff --git a/wifi/aidl/android/hardware/wifi/NanTransmitFollowupRequest.aidl b/wifi/aidl/android/hardware/wifi/NanTransmitFollowupRequest.aidl new file mode 100644 index 0000000000..c88b4ff04d --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanTransmitFollowupRequest.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2022 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; + +/** + * Transmit follow up message request. + */ +@VintfStability +parcelable NanTransmitFollowupRequest { + /** + * ID of an active publish or subscribe discovery session. Follow-up message is transmitted in + * the context of the discovery session. NAN Spec: Service Descriptor Attribute (SDA) / Instance + * ID + */ + byte discoverySessionId; + /** + * ID of the peer. Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or + * |IWifiNanIfaceEventCallback.eventFollowupReceived|. + */ + int peerId; + /** + * MAC address of the peer. Obtained as part of an earlier + * |IWifiNanIfaceEventCallback.eventMatch| or + * |IWifiNanIfaceEventCallback.eventFollowupReceived|. + */ + byte[6] addr; + /** + * Whether the follow-up message should be transmitted with a high priority. + */ + boolean isHighPriority; + /** + * Whether the follow-up message should be transmitted in a discovery window (true) or a further + * availability window (false). + */ + boolean shouldUseDiscoveryWindow; + /** + * Arbitrary information communicated to the peer. There is no semantic meaning to these + * bytes. They are passed-through from sender to receiver as-is with no parsing. + * Max length: |NanCapabilities.maxServiceSpecificInfoLen|. + * NAN Spec: Service Descriptor Attribute (SDA) / Service Info + */ + byte[] serviceSpecificInfo; + /** + * Arbitrary information communicated in discovery packets. There is no semantic meaning to + * these bytes. They are passed-through from publisher to subscriber as-is with no parsing. Max + * length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|. Spec: Service Descriptor + * Extension Attribute (SDEA) / Service Info + */ + byte[] extendedServiceSpecificInfo; + /** + * Disable |IWifiNanIfaceEventCallback.eventTransmitFollowup| - i.e. do not get indication on + * whether the follow-up was transmitted and received successfully. + */ + boolean disableFollowupResultIndication; +} diff --git a/wifi/aidl/android/hardware/wifi/NanTxType.aidl b/wifi/aidl/android/hardware/wifi/NanTxType.aidl new file mode 100644 index 0000000000..904a7f4da3 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/NanTxType.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +/** + * NAN transmit type used in |NanPublishType.SOLICITED| or |NanPublishType.UNSOLICITED_SOLICITED| + * publish discovery sessions. Describes the addressing of the packet responding to an ACTIVE + * subscribe query. + */ +@VintfStability +@Backing(type="int") +enum NanTxType { + BROADCAST = 0, + UNICAST, +} diff --git a/wifi/aidl/android/hardware/wifi/RttBw.aidl b/wifi/aidl/android/hardware/wifi/RttBw.aidl new file mode 100644 index 0000000000..9d42dc04e1 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttBw.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 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; + +/** + * RTT Measurement Bandwidth. + */ +@VintfStability +@Backing(type="int") +enum RttBw { + BW_5MHZ = 0x01, + BW_10MHZ = 0x02, + BW_20MHZ = 0x04, + BW_40MHZ = 0x08, + BW_80MHZ = 0x10, + BW_160MHZ = 0x20, + BW_320MHZ = 0x40, +} diff --git a/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl new file mode 100644 index 0000000000..7c47ed5f9c --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttCapabilities.aidl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.RttBw; +import android.hardware.wifi.RttPreamble; + +/** + * RTT Capabilities. + */ +@VintfStability +parcelable RttCapabilities { + /** + * Whether 1-sided rtt data collection is supported. + */ + boolean rttOneSidedSupported; + /** + * Whether ftm rtt data collection is supported. + */ + boolean rttFtmSupported; + /** + * Whether initiator supports LCI request. Applies to 2-sided RTT. + */ + boolean lciSupported; + /** + * Whether initiator supports LCR request. Applies to 2-sided RTT. + */ + boolean lcrSupported; + /** + * Whether 11mc responder mode is supported. + */ + boolean responderSupported; + /** + * Bit mask indicating what preamble is supported by initiator. + * Combination of |RttPreamble| values. + */ + RttPreamble preambleSupport; + /** + * Bit mask indicating what BW is supported by initiator. + * Combination of |RttBw| values. + */ + RttBw bwSupport; + /** + * Draft 11mc spec version supported by chip. + * For instance, version 4.0 must be 40 and version 4.3 must be 43 etc. + */ + byte mcVersion; +} diff --git a/wifi/aidl/android/hardware/wifi/RttConfig.aidl b/wifi/aidl/android/hardware/wifi/RttConfig.aidl new file mode 100644 index 0000000000..fc2c2e0e7e --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttConfig.aidl @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.RttBw; +import android.hardware.wifi.RttPeerType; +import android.hardware.wifi.RttPreamble; +import android.hardware.wifi.RttType; +import android.hardware.wifi.WifiChannelInfo; + +/** + * RTT configuration. + */ +@VintfStability +parcelable RttConfig { + /** + * Peer device mac address. + */ + byte[6] addr; + /** + * 1-sided or 2-sided RTT. + */ + RttType type; + /** + * Optional peer device hint (STA, P2P, AP). + */ + RttPeerType peer; + /** + * Required for STA-AP mode, optional for P2P, NBD etc. + */ + WifiChannelInfo channel; + /** + * Time interval between bursts (units: 100 ms). + * Applies to 1-sided and 2-sided RTT multi-burst requests. + * Range: 0-31, 0: no preference by initiator (2-sided RTT). + */ + int burstPeriod; + /** + * Total number of RTT bursts to be executed. Will be + * specified in the same way as the parameter "Number of + * Burst Exponent" found in the FTM frame format. This + * applies to both 1-sided RTT and 2-sided RTT. Valid + * values are 0 to 15 as defined in 802.11mc std. + * 0 means single shot. + * The implication of this parameter on the maximum + * number of RTT results is the following: + * for 1-sided RTT: max num of RTT results = (2^num_burst)*(num_frames_per_burst) + * for 2-sided RTT: max num of RTT results = (2^num_burst)*(num_frames_per_burst - 1) + */ + int numBurst; + /** + * Number of frames per burst. + * Minimum value = 1, Maximum value = 31 + * For 2-sided, this equals the number of FTM frames + * to be attempted in a single burst. This also + * equals the number of FTM frames that the + * initiator will request that the responder sends + * in a single frame. + */ + int numFramesPerBurst; + /** + * Number of retries for a failed RTT frame. + * Applies to 1-sided RTT only. Minimum value = 0, Maximum value = 3 + */ + int numRetriesPerRttFrame; + /** + * The following fields are only valid for 2-side RTT. + * + * + * Maximum number of retries that the initiator can + * retry an FTMR frame. + * Minimum value = 0, Maximum value = 3 + */ + int numRetriesPerFtmr; + /** + * Whether to request location civic info or not. + */ + boolean mustRequestLci; + /** + * Whether to request location civic records or not. + */ + boolean mustRequestLcr; + /** + * Applies to 1-sided and 2-sided RTT. Valid values will + * be 2-11 and 15 as specified by the 802.11mc std for + * the FTM parameter burst duration. In a multi-burst + * request, if responder overrides with larger value, + * the initiator will return failure. In a single-burst + * request, if responder overrides with larger value, + * the initiator will send TMR_STOP to terminate RTT + * at the end of the burst_duration it requested. + */ + int burstDuration; + /** + * RTT preamble to be used in the RTT frames. + */ + RttPreamble preamble; + /** + * RTT BW to be used in the RTT frames. + */ + RttBw bw; +} diff --git a/wifi/aidl/android/hardware/wifi/RttLciInformation.aidl b/wifi/aidl/android/hardware/wifi/RttLciInformation.aidl new file mode 100644 index 0000000000..5a49de5b0c --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttLciInformation.aidl @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.RttMotionPattern; + +/** + * Movement pattern unknown. + */ +@VintfStability +parcelable RttLciInformation { + /** + * Latitude in degrees * 2^25 , 2's complement. + */ + long latitude; + /** + * Longitude in degrees * 2^25 , 2's complement. + */ + long longitude; + /** + * Altitude in units of 1/256 m. + */ + int altitude; + /** + * As defined in Section 2.3.2 of IETF RFC 6225. + */ + byte latitudeUnc; + /** + * As defined in Section 2.3.2 of IETF RFC 6225. + */ + byte longitudeUnc; + /** + * As defined in Section 2.4.5 from IETF RFC 6225. + */ + byte altitudeUnc; + /** + * The following elements are for configuring the Z subelement. + * + * + * Motion pattern type. + */ + RttMotionPattern motionPattern; + /** + * Floor in units of 1/16th of floor. 0x80000000 if unknown. + */ + int floor; + /** + * In units of 1/64 m. + */ + int heightAboveFloor; + /** + * In units of 1/64 m. 0 if unknown. + */ + int heightUnc; +} diff --git a/wifi/aidl/android/hardware/wifi/RttLcrInformation.aidl b/wifi/aidl/android/hardware/wifi/RttLcrInformation.aidl new file mode 100644 index 0000000000..b3bb13a600 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttLcrInformation.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +@VintfStability +parcelable RttLcrInformation { + /** + * Country code symbol. + */ + byte[2] countryCode; + /** + * Civic info to be copied in FTM frame. + */ + String civicInfo; +} diff --git a/wifi/aidl/android/hardware/wifi/RttMotionPattern.aidl b/wifi/aidl/android/hardware/wifi/RttMotionPattern.aidl new file mode 100644 index 0000000000..00517acad4 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttMotionPattern.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2022 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; + +@VintfStability +@Backing(type="int") +enum RttMotionPattern { + /** + * Not expected to change location. + */ + NOT_EXPECTED = 0, + /** + * Expected to change location. + */ + EXPECTED = 1, + /** + * Movement pattern unknown. + */ + UNKNOWN = 2, +} diff --git a/wifi/aidl/android/hardware/wifi/RttPeerType.aidl b/wifi/aidl/android/hardware/wifi/RttPeerType.aidl new file mode 100644 index 0000000000..148a8cc7fe --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttPeerType.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 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; + +/** + * RTT peer types. + */ +@VintfStability +@Backing(type="int") +enum RttPeerType { + AP = 1, + STA = 2, + P2P_GO = 3, + P2P_CLIENT = 4, + NAN_TYPE = 5, +} diff --git a/wifi/aidl/android/hardware/wifi/RttPreamble.aidl b/wifi/aidl/android/hardware/wifi/RttPreamble.aidl new file mode 100644 index 0000000000..e460a94978 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttPreamble.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2022 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; + +/** + * RTT Measurement Preamble. + */ +@VintfStability +@Backing(type="int") +enum RttPreamble { + LEGACY = 0x1, + HT = 0x2, + VHT = 0x4, + /** + * Preamble type for 11ax + */ + HE = 0x8, + /** + * Preamble type for 11be + */ + EHT = 0x10, +} diff --git a/wifi/aidl/android/hardware/wifi/RttResponder.aidl b/wifi/aidl/android/hardware/wifi/RttResponder.aidl new file mode 100644 index 0000000000..a16f274ef3 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttResponder.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.RttPreamble; +import android.hardware.wifi.WifiChannelInfo; + +/** + * RTT Responder information. + */ +@VintfStability +parcelable RttResponder { + WifiChannelInfo channel; + RttPreamble preamble; +} diff --git a/wifi/aidl/android/hardware/wifi/RttResult.aidl b/wifi/aidl/android/hardware/wifi/RttResult.aidl new file mode 100644 index 0000000000..565cce7b94 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttResult.aidl @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.RttStatus; +import android.hardware.wifi.RttType; +import android.hardware.wifi.WifiInformationElement; +import android.hardware.wifi.WifiRateInfo; + +/** + * RTT results. + */ +@VintfStability +parcelable RttResult { + /** + * Peer device mac address. + */ + byte[6] addr; + /** + * Burst number in a multi-burst request. + */ + int burstNum; + /** + * Total RTT measurement frames attempted. + */ + int measurementNumber; + /** + * Total successful RTT measurement frames. + */ + int successNumber; + /** + * Maximum number of "FTM frames per burst" supported by + * the responder STA. Applies to 2-sided RTT only. + * If reponder overrides with larger value: + * - for single-burst request, initiator will truncate the + * larger value and send a TMR_STOP after receiving as + * many frames as originally requested. + * - for multi-burst request, initiator will return + * failure right away. + */ + byte numberPerBurstPeer; + /** + * Ranging status. + */ + RttStatus status; + /** + * If status is RTT_STATUS_FAIL_BUSY_TRY_LATER, + * this will be the time provided by the responder as to + * when the request can be tried again. Applies to 2-sided + * RTT only. In sec, 1-31 sec. + */ + byte retryAfterDuration; + /** + * RTT type. + */ + RttType type; + /** + * Average rssi in 0.5 dB steps (e.g. 143 implies -71.5 dB). + */ + int rssi; + /** + * Rssi spread in 0.5 dB steps (e.g. 5 implies 2.5 dB spread) - optional. + */ + int rssiSpread; + /** + * 1-sided RTT: TX rate of RTT frame. + * 2-sided RTT: TX rate of initiator's Ack in response to FTM frame. + */ + WifiRateInfo txRate; + /** + * 1-sided RTT: TX rate of Ack from other side. + * 2-sided RTT: TX rate of FTM frame coming from responder. + */ + WifiRateInfo rxRate; + /** + * Round trip time in picoseconds. + */ + long rtt; + /** + * Rtt standard deviation in picoseconds. + */ + long rttSd; + /** + * Difference between max and min rtt times recorded in picoseconds. + */ + long rttSpread; + /** + * Distance in mm (optional). + */ + int distanceInMm; + /** + * Standard deviation in mm (optional). + */ + int distanceSdInMm; + /** + * Difference between max and min distance recorded in mm (optional). + */ + int distanceSpreadInMm; + /** + * Time of the measurement (in microseconds since boot). + */ + long timeStampInUs; + /** + * Actual time taken by the FW to finish one burst + * measurement (in ms). Applies to 1-sided and 2-sided RTT. + */ + int burstDurationInMs; + /** + * Number of bursts allowed by the responder. Applies + * to 2-sided RTT only. + */ + int negotiatedBurstNum; + /** + * For 11mc only. + */ + WifiInformationElement lci; + /** + * For 11mc only. + */ + WifiInformationElement lcr; +} diff --git a/wifi/aidl/android/hardware/wifi/RttStatus.aidl b/wifi/aidl/android/hardware/wifi/RttStatus.aidl new file mode 100644 index 0000000000..600165c5e4 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttStatus.aidl @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2022 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; + +/** + * Ranging status. + */ +@VintfStability +@Backing(type="int") +enum RttStatus { + SUCCESS = 0, + /** + * General failure status. + */ + FAILURE = 1, + /** + * Target STA does not respond to request. + */ + FAIL_NO_RSP = 2, + /** + * Request rejected. Applies to 2-sided RTT only. + */ + FAIL_REJECTED = 3, + FAIL_NOT_SCHEDULED_YET = 4, + /** + * Timing measurement times out. + */ + FAIL_TM_TIMEOUT = 5, + /** + * Target on different channel, cannot range. + */ + FAIL_AP_ON_DIFF_CHANNEL = 6, + /** + * Ranging not supported. + */ + FAIL_NO_CAPABILITY = 7, + /** + * Request aborted for an unknown reason. + */ + ABORTED = 8, + /** + * Invalid T1-T4 timestamp. + */ + FAIL_INVALID_TS = 9, + /** + * 11mc protocol failed. + */ + FAIL_PROTOCOL = 10, + /** + * Request could not be scheduled. + */ + FAIL_SCHEDULE = 11, + /** + * Responder cannot collaborate at time of request. + */ + FAIL_BUSY_TRY_LATER = 12, + /** + * Bad request args. + */ + INVALID_REQ = 13, + /** + * WiFi not enabled. + */ + NO_WIFI = 14, + /** + * Responder overrides param info, cannot range with new params. + */ + FAIL_FTM_PARAM_OVERRIDE = 15, + /** + * NAN ranging negotiation failure. + */ + NAN_RANGING_PROTOCOL_FAILURE = 16, + /** + * NAN concurrency not supported (NDP + RTT). + */ + NAN_RANGING_CONCURRENCY_NOT_SUPPORTED = 17, +} diff --git a/wifi/aidl/android/hardware/wifi/RttType.aidl b/wifi/aidl/android/hardware/wifi/RttType.aidl new file mode 100644 index 0000000000..e95a92875a --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/RttType.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2022 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; + +/** + * RTT Types. + */ +@VintfStability +@Backing(type="int") +enum RttType { + ONE_SIDED = 1, + TWO_SIDED = 2, +} diff --git a/wifi/aidl/android/hardware/wifi/Ssid.aidl b/wifi/aidl/android/hardware/wifi/Ssid.aidl new file mode 100644 index 0000000000..fd985a3f10 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/Ssid.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +/** + * Byte array representing an Ssid. Use when we need to + * pass an array of Ssid's to a method, as variable-sized + * 2D arrays are not supported in AIDL. + * + * TODO (b/210705533): Replace this type with a 2D byte array. + */ +@VintfStability +parcelable Ssid { + byte[32] data; +} diff --git a/wifi/aidl/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl b/wifi/aidl/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl new file mode 100644 index 0000000000..5063b49919 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaApfPacketFilterCapabilities.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 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; + +/** + * Parameters to specify the APF capabilities of this iface. + */ +@VintfStability +parcelable StaApfPacketFilterCapabilities { + /** + * Version of the packet filter interpreter supported. + */ + int version; + /** + * Maximum size of the filter bytecode in bytes for an iface. + */ + int maxLength; +} diff --git a/wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl b/wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl new file mode 100644 index 0000000000..92e2928816 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketEventReportSchemeMask.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; + +/** + * Mask of event reporting schemes that can be specified in background scan + * requests. + */ +@VintfStability +@Backing(type="int") +enum StaBackgroundScanBucketEventReportSchemeMask { + /** + * Report a scan completion event after scan. If this is not set, then scan + * completion events must be reported if report_threshold_percent or + * report_threshold_num_scans is reached. + */ + EACH_SCAN = 1 << 0, + /** + * Forward scan results (beacons/probe responses + IEs) in real time to HAL, + * in addition to completion events. + * Note: To keep backward compatibility, fire completion events regardless + * of REPORT_EVENTS_EACH_SCAN. + */ + FULL_RESULTS = 1 << 1, + /** + * Controls if scans for this bucket must be placed in the results buffer. + */ + NO_BATCH = 1 << 2, +} diff --git a/wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl b/wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl new file mode 100644 index 0000000000..7bd87b2917 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaBackgroundScanBucketParameters.aidl @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.StaBackgroundScanBucketEventReportSchemeMask; +import android.hardware.wifi.WifiBand; + +/** + * Background Scan parameters per bucket that can be specified in background + * scan requests. + */ +@VintfStability +parcelable StaBackgroundScanBucketParameters { + /** + * Bucket index. This index is used to report results in + * |StaScanData.bucketsScanned|. + */ + int bucketIdx; + /** + * Bands to scan or |BAND_UNSPECIFIED| if frequencies list must be used + * instead. + */ + WifiBand band; + /** + * Channel frequencies (in Mhz) to scan if |band| is set to + * |BAND_UNSPECIFIED|. + * Max length: |StaBackgroundScanLimits.MAX_CHANNELS|. + */ + int[] frequencies; + /** + * Period at which this bucket must be scanned (in milliseconds). Must be an integer + * multiple of the |basePeriodInMs| specified in the BackgroundScanParameters. + */ + int periodInMs; + /** + * Bitset of |StaBackgroundScanBucketEventReportSchemeMask| values controlling + * when events for this bucket must be reported. + */ + StaBackgroundScanBucketEventReportSchemeMask eventReportScheme; + /** + * For exponential back off. If |exponentialMaxPeriodInMs| is non-zero or + * different than period, then this bucket is an exponential backoff bucket + * and the scan period must grow exponentially as per formula: + * actual_period(N) = period * (base ^ (N/step_count)) + * to this maximum period (in milliseconds). + */ + int exponentialMaxPeriodInMs; + /** + * For exponential back off. Multiplier: new_period=old_period * base + */ + int exponentialBase; + /** + * For exponential back off. Number of scans to perform for a given + * period. + */ + int exponentialStepCount; +} diff --git a/wifi/aidl/android/hardware/wifi/StaBackgroundScanCapabilities.aidl b/wifi/aidl/android/hardware/wifi/StaBackgroundScanCapabilities.aidl new file mode 100644 index 0000000000..8dd9141e26 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaBackgroundScanCapabilities.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; + +/** + * Parameters to specify the Background Scan capabilities of this iface. + */ +@VintfStability +parcelable StaBackgroundScanCapabilities { + /** + * Maximum number of bytes available for cached scan results. + */ + int maxCacheSize; + /** + * Maximum number of buckets that can be supplied for a scan. + */ + int maxBuckets; + /** + * Maximum number of APs that must be stored for each scan. + */ + int maxApCachePerScan; + /** + * Max reporting number of scans threshold that can be specified in the scan + * parameters. + */ + int maxReportingThreshold; +} diff --git a/wifi/aidl/android/hardware/wifi/StaBackgroundScanLimits.aidl b/wifi/aidl/android/hardware/wifi/StaBackgroundScanLimits.aidl new file mode 100644 index 0000000000..b6fc44cf02 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaBackgroundScanLimits.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 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; + +/** + * Max limits for background scan. + */ +@VintfStability +@Backing(type="int") +enum StaBackgroundScanLimits { + MAX_CHANNELS = 16, + MAX_BUCKETS = 16, + MAX_AP_CACHE_PER_SCAN = 32, +} diff --git a/wifi/aidl/android/hardware/wifi/StaBackgroundScanParameters.aidl b/wifi/aidl/android/hardware/wifi/StaBackgroundScanParameters.aidl new file mode 100644 index 0000000000..0b56069b8d --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaBackgroundScanParameters.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.StaBackgroundScanBucketParameters; + +/** + * Background Scan parameters that can be specified in background scan + * requests. + */ +@VintfStability +parcelable StaBackgroundScanParameters { + /** + * GCD of all bucket periods (in milliseconds). + */ + int basePeriodInMs; + /** + * Maximum number of APs that must be stored for each scan. If the maximum + * is reached, then the highest RSSI results must be returned. + * Max length: |StaBackgroundScanLimits.MAX_AP_CACHE_PER_SCAN|. + */ + int maxApPerScan; + /** + * % cache buffer filled threshold at which the host must be notified of + * batched scan results. + */ + int reportThresholdPercent; + /** + * Threshold at which the AP must be woken up, in number of scans. + */ + int reportThresholdNumScans; + /** + * List of buckets to be scheduled. + * Max length: |StaBackgroundScanLimits.MAX_BUCKETS|. + */ + StaBackgroundScanBucketParameters[] buckets; +} diff --git a/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl b/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl new file mode 100644 index 0000000000..51f6916c0c --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceContentionTimeStats.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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; + +/** + * Contention time statistics for different traffic categories. + */ +@VintfStability +parcelable StaLinkLayerIfaceContentionTimeStats { + /** + * Data packet min contention time (usec). This includes both the internal contention time + * among different access categories within the chipset and the contention time for the medium. + */ + int contentionTimeMinInUsec; + /** + * Data packet max contention time (usec). This includes both the internal contention time + * among different access categories within the chipset and the contention time for the medium. + */ + int contentionTimeMaxInUsec; + /** + * Data packet average contention time (usec). This includes both the internal contention time + * among different access categories within the chipset and the contention time for the medium. + */ + int contentionTimeAvgInUsec; + /** + * Number of data packets used for contention statistics. + */ + int contentionNumSamples; +} diff --git a/wifi/aidl/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl b/wifi/aidl/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl new file mode 100644 index 0000000000..c0e2c7b555 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaLinkLayerIfacePacketStats.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 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; + +/** + * Packet stats for different traffic categories. + */ +@VintfStability +parcelable StaLinkLayerIfacePacketStats { + /** + * Number of received unicast data packets. + */ + long rxMpdu; + /** + * Number of successfully transmitted unicast data pkts (ACK rcvd). + */ + long txMpdu; + /** + * Number of transmitted unicast data pkt losses (no ACK). + */ + long lostMpdu; + /** + * Number of transmitted unicast data retry pkts. + */ + long retries; +} diff --git a/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl b/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl new file mode 100644 index 0000000000..78f8caa6a7 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.StaLinkLayerIfaceContentionTimeStats; +import android.hardware.wifi.StaLinkLayerIfacePacketStats; +import android.hardware.wifi.StaPeerInfo; + +/** + * Iface statistics for the current connection. + */ +@VintfStability +parcelable StaLinkLayerIfaceStats { + /** + * Number beacons received from the connected AP. + */ + int beaconRx; + /** + * Access Point Beacon and Management frames RSSI (averaged). + */ + int avgRssiMgmt; + /** + * WME Best Effort Access Category packet counters. + */ + StaLinkLayerIfacePacketStats wmeBePktStats; + /** + * WME Background Access Category packet counters. + */ + StaLinkLayerIfacePacketStats wmeBkPktStats; + /** + * WME Video Access Category packet counters. + */ + StaLinkLayerIfacePacketStats wmeViPktStats; + /** + * WME Voice Access Category packet counters. + */ + StaLinkLayerIfacePacketStats wmeVoPktStats; + /** + * Duty cycle for the iface. + * If this iface is being served using time slicing on a radio with one or more ifaces + * (i.e MCC), then the duty cycle assigned to this iface in %. + * If not using time slicing (i.e SCC or DBS), set to 100. + */ + byte timeSliceDutyCycleInPercent; + /** + * WME Best Effort (BE) Access Category (AC) contention time statistics. + */ + StaLinkLayerIfaceContentionTimeStats wmeBeContentionTimeStats; + /** + * WME Background (BK) Access Category (AC) contention time statistics. + */ + StaLinkLayerIfaceContentionTimeStats wmeBkContentionTimeStats; + /** + * WME Video (VI) Access Category (AC) contention time statistics. + */ + StaLinkLayerIfaceContentionTimeStats wmeViContentionTimeStats; + /** + * WME Voice (VO) Access Category (AC) contention time statistics. + */ + StaLinkLayerIfaceContentionTimeStats wmeVoContentionTimeStats; + /** + * Per peer statistics. + */ + StaPeerInfo[] peers; +} diff --git a/wifi/aidl/android/hardware/wifi/StaLinkLayerRadioStats.aidl b/wifi/aidl/android/hardware/wifi/StaLinkLayerRadioStats.aidl new file mode 100644 index 0000000000..6105172410 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaLinkLayerRadioStats.aidl @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiChannelStats; + +@VintfStability +parcelable StaLinkLayerRadioStats { + /** + * Time for which the radio is awake. + */ + int onTimeInMs; + /** + * Total time for which the radio is in active transmission. + */ + int txTimeInMs; + /** + * Time for which the radio is in active tranmission per tx level. + */ + int[] txTimeInMsPerLevel; + /** + * Time for which the radio is in active receive. + */ + int rxTimeInMs; + /** + * Total time for which the radio is awake due to scan. + */ + int onTimeInMsForScan; + /** + * Total time for which the radio is awake due to NAN scan since boot or crash. + */ + int onTimeInMsForNanScan; + /** + * Total time for which the radio is awake due to background scan since boot or crash. + */ + int onTimeInMsForBgScan; + /** + * Total time for which the radio is awake due to roam scan since boot or crash. + */ + int onTimeInMsForRoamScan; + /** + * Total time for which the radio is awake due to PNO scan since boot or crash. + */ + int onTimeInMsForPnoScan; + /** + * Total time for which the radio is awake due to Hotspot 2.0 scans and GAS exchange since boot + * or crash. + */ + int onTimeInMsForHs20Scan; + /** + * List of channel stats associated with this radio. + */ + WifiChannelStats[] channelStats; + /** + * Radio ID: An implementation specific value identifying the radio interface for which the + * stats are produced. Framework must not interpret this value. It must use this value for + * persistently identifying the statistics between calls, + * e.g. if the HAL provides them in different order. + */ + int radioId; +} diff --git a/wifi/aidl/android/hardware/wifi/StaLinkLayerStats.aidl b/wifi/aidl/android/hardware/wifi/StaLinkLayerStats.aidl new file mode 100644 index 0000000000..32be121ea7 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaLinkLayerStats.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.StaLinkLayerIfaceStats; +import android.hardware.wifi.StaLinkLayerRadioStats; + +/** + * Link layer stats retrieved via |IWifiStaIface.getLinkLayerStats|. + */ +@VintfStability +parcelable StaLinkLayerStats { + StaLinkLayerIfaceStats iface; + StaLinkLayerRadioStats[] radios; + /** + * Timestamp for each stats sample. This is the absolute milliseconds + * from boot when these stats were sampled. + */ + long timeStampInMs; +} diff --git a/wifi/aidl/android/hardware/wifi/StaPeerInfo.aidl b/wifi/aidl/android/hardware/wifi/StaPeerInfo.aidl new file mode 100644 index 0000000000..2032802527 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaPeerInfo.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.StaRateStat; + +/** + * Per peer statistics. Types of peers include the Access Point (AP), Tunneled Direct Link + * Setup (TDLS), Group Owner (GO), Neighbor Awareness Networking (NAN), etc. + */ +@VintfStability +parcelable StaPeerInfo { + /** + * Station count: The total number of stations currently associated with the peer. + */ + char staCount; + /** + * Channel utilization: The percentage of time (normalized to 255, i.e., x% corresponds to + * (int) x * 255 / 100) that the medium is sensed as busy measured by either physical or + * virtual carrier sense (CS) mechanism. + */ + char chanUtil; + /** + * Per rate statistics. + */ + StaRateStat[] rateStats; +} diff --git a/wifi/aidl/android/hardware/wifi/StaRateStat.aidl b/wifi/aidl/android/hardware/wifi/StaRateStat.aidl new file mode 100644 index 0000000000..8326884841 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaRateStat.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiRateInfo; + +/** + * Per rate statistics. The rate is characterized by the combination of preamble, number + * of spatial streams, transmission bandwidth, and modulation and coding scheme (MCS). + */ +@VintfStability +parcelable StaRateStat { + /** + * Wifi rate information: preamble, number of spatial streams, bandwidth, MCS, etc. + */ + WifiRateInfo rateInfo; + /** + * Number of successfully transmitted data packets (ACK received). + */ + int txMpdu; + /** + * Number of received data packets. + */ + int rxMpdu; + /** + * Number of data packet losses (no ACK). + */ + int mpduLost; + /** + * Number of data packet retries. + */ + int retries; +} diff --git a/wifi/aidl/android/hardware/wifi/StaRoamingCapabilities.aidl b/wifi/aidl/android/hardware/wifi/StaRoamingCapabilities.aidl new file mode 100644 index 0000000000..7642612521 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaRoamingCapabilities.aidl @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 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; + +/** + * Structure describing the roaming control capabilities supported. + */ +@VintfStability +parcelable StaRoamingCapabilities { + /** + * Maximum number of BSSIDs that may be blocklisted. + */ + int maxBlocklistSize; + /** + * Maximum number of SSIDs that may be allowlisted. + */ + int maxAllowlistSize; +} diff --git a/wifi/aidl/android/hardware/wifi/StaRoamingConfig.aidl b/wifi/aidl/android/hardware/wifi/StaRoamingConfig.aidl new file mode 100644 index 0000000000..c59c53137d --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaRoamingConfig.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.MacAddress; +import android.hardware.wifi.Ssid; + +/** + * Structure describing the roaming control configuration. + */ +@VintfStability +parcelable StaRoamingConfig { + /** + * List of BSSIDs that are blocklisted for roaming. + */ + MacAddress[] bssidBlocklist; + /** + * List of SSIDs that are allowlisted for roaming. + */ + Ssid[] ssidAllowlist; +} diff --git a/wifi/aidl/android/hardware/wifi/StaRoamingState.aidl b/wifi/aidl/android/hardware/wifi/StaRoamingState.aidl new file mode 100644 index 0000000000..d75d3236f1 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaRoamingState.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 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; + +/** + * Enum describing the various states to set the roaming + * control to. + */ +@VintfStability +@Backing(type="byte") +enum StaRoamingState { + /** + * Driver/Firmware must not perform any roaming. + */ + DISABLED = 0, + /** + * Driver/Firmware is allowed to perform roaming while respecting + * the |StaRoamingConfig| parameters set using |configureRoaming|. + */ + ENABLED = 1, +} diff --git a/wifi/aidl/android/hardware/wifi/StaScanData.aidl b/wifi/aidl/android/hardware/wifi/StaScanData.aidl new file mode 100644 index 0000000000..9d6bd5378d --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaScanData.aidl @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.StaScanDataFlagMask; +import android.hardware.wifi.StaScanResult; + +/** + * Structure describing all of the access points seen during + * the scan. + */ +@VintfStability +parcelable StaScanData { + /** + * Bitset containing |ScanDataFlagMask| values. + */ + StaScanDataFlagMask flags; + /** + * Bitset where each bit indicates if the bucket with that index (starting at + * 0) was scanned. + */ + int bucketsScanned; + /** + * List of scan results. + */ + StaScanResult[] results; +} diff --git a/wifi/aidl/android/hardware/wifi/StaScanDataFlagMask.aidl b/wifi/aidl/android/hardware/wifi/StaScanDataFlagMask.aidl new file mode 100644 index 0000000000..ea87df5f96 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaScanDataFlagMask.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 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; + +/** + * Mask of flags set in the |ScanData| instance. + */ +@VintfStability +@Backing(type="int") +enum StaScanDataFlagMask { + /** + * Indicates that a scan was interrupted/did not occur, so results may be + * incomplete. + */ + INTERRUPTED = 1 << 0, +} diff --git a/wifi/aidl/android/hardware/wifi/StaScanResult.aidl b/wifi/aidl/android/hardware/wifi/StaScanResult.aidl new file mode 100644 index 0000000000..9f6f415973 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/StaScanResult.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiInformationElement; + +/** + * Structure describing all the information about a single access point seen + * during the scan. + */ +@VintfStability +parcelable StaScanResult { + long timeStampInUs; + byte[] ssid; + byte[6] bssid; + int rssi; + int frequency; + char beaconPeriodInMs; + char capability; + WifiInformationElement[] informationElements; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiAntennaMode.aidl b/wifi/aidl/android/hardware/wifi/WifiAntennaMode.aidl new file mode 100644 index 0000000000..e21dd87972 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiAntennaMode.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 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; + +/** + * Antenna configuration. + */ +@VintfStability +@Backing(type="int") +enum WifiAntennaMode { + WIFI_ANTENNA_MODE_UNSPECIFIED = 0, + WIFI_ANTENNA_MODE_1X1 = 1, + WIFI_ANTENNA_MODE_2X2 = 2, + WIFI_ANTENNA_MODE_3X3 = 3, + WIFI_ANTENNA_MODE_4X4 = 4, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiBand.aidl b/wifi/aidl/android/hardware/wifi/WifiBand.aidl new file mode 100644 index 0000000000..cfdf94436b --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiBand.aidl @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2022 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; + +/** + * Wifi bands defined in the 80211 spec. + */ +@VintfStability +@Backing(type="int") +enum WifiBand { + BAND_UNSPECIFIED = 0, + /** + * 2.4 GHz. + */ + BAND_24GHZ = 1, + /** + * 5 GHz without DFS. + */ + BAND_5GHZ = 2, + /** + * 5 GHz DFS only. + */ + BAND_5GHZ_DFS = 4, + /** + * 5 GHz with DFS. + */ + BAND_5GHZ_WITH_DFS = 6, + /** + * 2.4 GHz + 5 GHz; no DFS. + */ + BAND_24GHZ_5GHZ = 3, + /** + * 2.4 GHz + 5 GHz with DFS. + */ + BAND_24GHZ_5GHZ_WITH_DFS = 7, + /** + * 6 GHz. + */ + BAND_6GHZ = 8, + /** + * 5 GHz no DFS + 6 GHz. + */ + BAND_5GHZ_6GHZ = 10, + /** + * 2.4 GHz + 5 GHz no DFS + 6 GHz. + */ + BAND_24GHZ_5GHZ_6GHZ = 11, + /** + * 2.4 GHz + 5 GHz with DFS + 6 GHz. + */ + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ = 15, + /** + * 60 GHz. + */ + BAND_60GHZ = 16, + /** + * 2.4 GHz + 5 GHz no DFS + 6 GHz + 60 GHz. + */ + BAND_24GHZ_5GHZ_6GHZ_60GHZ = 27, + /** + * 2.4 GHz + 5 GHz with DFS + 6 GHz + 60 GHz. + */ + BAND_24GHZ_5GHZ_WITH_DFS_6GHZ_60GHZ = 31, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiChannelInfo.aidl b/wifi/aidl/android/hardware/wifi/WifiChannelInfo.aidl new file mode 100644 index 0000000000..8fee7ebe71 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiChannelInfo.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiChannelWidthInMhz; + +/** + * Channel information. + */ +@VintfStability +parcelable WifiChannelInfo { + /** + * Channel width (20, 40, 80, 80+80, 160, 320). + */ + WifiChannelWidthInMhz width; + /** + * Primary 20 MHz channel. + */ + int centerFreq; + /** + * Center frequency (MHz) first segment. + */ + int centerFreq0; + /** + * Center frequency (MHz) second segment. + */ + int centerFreq1; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiChannelStats.aidl b/wifi/aidl/android/hardware/wifi/WifiChannelStats.aidl new file mode 100644 index 0000000000..f77821bb5e --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiChannelStats.aidl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiChannelInfo; + +@VintfStability +parcelable WifiChannelStats { + /** + * Channel information. + */ + WifiChannelInfo channel; + /** + * Total time for which the radio is awake on this channel. + */ + int onTimeInMs; + /** + * Total time for which CCA is held busy on this channel. + */ + int ccaBusyTimeInMs; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiChannelWidthInMhz.aidl b/wifi/aidl/android/hardware/wifi/WifiChannelWidthInMhz.aidl new file mode 100644 index 0000000000..e456530d87 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiChannelWidthInMhz.aidl @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 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; + +/** + * Channel operating width in Mhz. + */ +@VintfStability +@Backing(type="int") +enum WifiChannelWidthInMhz { + WIDTH_INVALID = -1, + WIDTH_20 = 0, + WIDTH_40 = 1, + WIDTH_80 = 2, + WIDTH_160 = 3, + WIDTH_80P80 = 4, + WIDTH_5 = 5, + WIDTH_10 = 6, + /** + * 320 MHz + */ + WIDTH_320 = 7, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl new file mode 100644 index 0000000000..8cf48191f4 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxIcmpPacketDetails.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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; + +/** + * Struct capturing the count of all rx ICMP packets that caused + * host wakeup. + */ +@VintfStability +parcelable WifiDebugHostWakeReasonRxIcmpPacketDetails { + /** + * Wake icmp packet count. + */ + int icmpPkt; + /** + * Wake icmp6 packet count. + */ + int icmp6Pkt; + /** + * Wake icmp6 RA packet count. + */ + int icmp6Ra; + /** + * Wake icmp6 NA packet count. + */ + int icmp6Na; + /** + * Wake icmp6 NS packet count. + */ + int icmp6Ns; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl new file mode 100644 index 0000000000..51faf665d0 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxMulticastPacketDetails.aidl @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 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; + +/** + * Struct capturing the count of all rx multicast packets that caused + * host wakeup. + */ +@VintfStability +parcelable WifiDebugHostWakeReasonRxMulticastPacketDetails { + /** + * Rx wake packet was ipv4 multicast. + */ + int ipv4RxMulticastAddrCnt; + /** + * Rx wake packet was ipv6 multicast. + */ + int ipv6RxMulticastAddrCnt; + /** + * Rx wake packet was non-ipv4 and non-ipv6. + */ + int otherRxMulticastAddrCnt; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl new file mode 100644 index 0000000000..b5c6a5ea64 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonRxPacketDetails.aidl @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 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; + +/** + * Struct capturing the count of all rx packets that caused + * host wakeup. + */ +@VintfStability +parcelable WifiDebugHostWakeReasonRxPacketDetails { + /** + * Total rx unicast packet which woke up host. + */ + int rxUnicastCnt; + /** + * Total rx multicast packet which woke up host. + */ + int rxMulticastCnt; + /** + * Total rx broadcast packet which woke up host. + */ + int rxBroadcastCnt; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl new file mode 100644 index 0000000000..82d5d3eabc --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugHostWakeReasonStats.aidl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiDebugHostWakeReasonRxIcmpPacketDetails; +import android.hardware.wifi.WifiDebugHostWakeReasonRxMulticastPacketDetails; +import android.hardware.wifi.WifiDebugHostWakeReasonRxPacketDetails; + +/** + * Structure capturing the count of all the wireless related host wakeup. + * This is used to capture all the reasons why the host processor + * (WLAN driver) was woken up by the WLAN firmware. + * These stats may be used to debug any power issues caused due to frequent + * wakeup of the host processor by the WLAN firmware. + */ +@VintfStability +parcelable WifiDebugHostWakeReasonStats { + /** + * Total count of cmd/event wakes. + * These must account for all wakeups due to WLAN management + * commands/events received over the air. + */ + int totalCmdEventWakeCnt; + /** + * Vector of wake counts per cmd/event type. + * The number of command types and their meaning is only understood by the + * vendor. + */ + int[] cmdEventWakeCntPerType; + /** + * Total count of driver/firmware wakes. + * These must account for all wakeups due to local driver/firmware + * interactions. These include all vendor implementation specific + * interactions like any heart-beat monitoring, bus management, etc. + */ + int totalDriverFwLocalWakeCnt; + /** + * Vector of wake counts per driver/firmware interaction type. + * The number of command types and their meaning is only understood by the + * vendor. + */ + int[] driverFwLocalWakeCntPerType; + /** + * Total data rx packets that woke up host. + */ + int totalRxPacketWakeCnt; + WifiDebugHostWakeReasonRxPacketDetails rxPktWakeDetails; + WifiDebugHostWakeReasonRxMulticastPacketDetails rxMulticastPkWakeDetails; + WifiDebugHostWakeReasonRxIcmpPacketDetails rxIcmpPkWakeDetails; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl new file mode 100644 index 0000000000..7601bf2d08 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameInfo.aidl @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiDebugPacketFateFrameType; + +/** + * Information regarding the frame transmitted/received. + */ +@VintfStability +parcelable WifiDebugPacketFateFrameInfo { + /** + * The type of MAC-layer frame that this frame_info holds. + * - For data frames, use FRAME_TYPE_ETHERNET_II. + * - For management frames, use FRAME_TYPE_80211_MGMT. + * - If the type of the frame is unknown, use FRAME_TYPE_UNKNOWN. + */ + WifiDebugPacketFateFrameType frameType; + /** + * The number of bytes included in |frameContent|. + * If the frame contents are missing (e.g. RX frame dropped in firmware), + * |frameLen| must be set to 0. + */ + long frameLen; + /** + * Host clock when this frame was received by the driver (either outbound + * from the host network stack, or inbound from the firmware). + * - The timestamp must be taken from a clock which includes time the host + * spent suspended (e.g. ktime_get_boottime()). + * - If no host timestamp is available (e.g. RX frame was dropped in firmware), + * this field must be set to 0. + */ + long driverTimestampUsec; + /** + * Firmware clock when this frame was received by the firmware + * (either outbound from the host, or inbound from a remote station). + * - The timestamp must be taken from a clock which includes time firmware + * spent suspended (if applicable). + * - If no firmware timestamp is available (e.g. TX frame was dropped by the + * driver), then this field must be set to 0. + * - Consumers of |frameInfo| must not assume any synchronization between + * the driver and firmware clocks. + */ + long firmwareTimestampUsec; + /** + * Actual frame content. This is the raw bytes of the corresponding packet. + * - Should be provided for TX frames originated by the host. + * - Should be provided for RX frames received by the driver. + * - Optionally provided for TX frames originated by firmware. + * (At discretion of HAL implementation.) + * - Optionally provided for RX frames dropped in firmware. + * (At discretion of HAL implementation.) + * - If frame content is not provided, |frameLen| must be set to 0. + */ + byte[] frameContent; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl new file mode 100644 index 0000000000..5c0d171a15 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugPacketFateFrameType.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 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; + +/** + * Type of frame transmitted/received. + */ +@VintfStability +@Backing(type="int") +enum WifiDebugPacketFateFrameType { + UNKNOWN, + ETHERNET_II, + MGMT_80211, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferFlags.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferFlags.aidl new file mode 100644 index 0000000000..0d1806efc2 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferFlags.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 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; + +/** + * Flags describing each debug ring buffer. + */ +@VintfStability +@Backing(type="int") +enum WifiDebugRingBufferFlags { + HAS_BINARY_ENTRIES = 1 << 0, + HAS_ASCII_ENTRIES = 1 << 1, + HAS_PER_PACKET_ENTRIES = 1 << 2, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferStatus.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferStatus.aidl new file mode 100644 index 0000000000..2b0faa2e54 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferStatus.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 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; + +/** + * Struct describing each debug ring buffer supported by + * the device. + */ +@VintfStability +parcelable WifiDebugRingBufferStatus { + /** + * Name of this debug ring buffer. + */ + String ringName; + /** + * Combination of |WifiDebugRingBufferFlags| values. + */ + int flags; + /** + * Unique integer representing the ring. + */ + int ringId; + /** + * Total memory size allocated for the buffer. + */ + int sizeInBytes; + /** + * Amount of free space in the buffer. + */ + int freeSizeInBytes; + /** + * Verbose level for ring buffer. + */ + int verboseLevel; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl new file mode 100644 index 0000000000..30778eb4d9 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugRingBufferVerboseLevel.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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; + +/** + * Verbose logging level to set for each debug ring buffer supported + * by the device. + */ +@VintfStability +@Backing(type="int") +enum WifiDebugRingBufferVerboseLevel { + /** + * Level 0 corresponds to no collection, and it makes log handler + * stop by no more events from driver. + */ + NONE = 0, + /** + * Level 1 corresponds to normal log level, with minimal user impact. + * This is the default value. + */ + DEFAULT = 1, + /** + * Level 2 is enabled when user is lazily trying to reproduce a problem. + * Wifi performance and power can be impacted, but device should not + * otherwise be significantly impacted. + */ + VERBOSE = 2, + /** + * Level 3 is used when trying to actively debug a problem. + * This will cause severe performance degradation. + */ + EXCESSIVE = 3, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFate.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFate.aidl new file mode 100644 index 0000000000..2983f81842 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFate.aidl @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2022 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; + +/** + * Enum describing the fate of the RX packets. + */ +@VintfStability +@Backing(type="int") +enum WifiDebugRxPacketFate { + /** + * Valid and delivered to network stack (e.g., netif_rx()). + */ + SUCCESS, + /** + * Queued within firmware, but not yet sent to driver. + */ + FW_QUEUED, + /** + * Dropped by firmware due to host-programmable filters. + */ + FW_DROP_FILTER, + /** + * Dropped by firmware as invalid (e.g. bad checksum, decrypt failed, + * or invalid for current state). + */ + FW_DROP_INVALID, + /** + * Dropped by firmware due to lack of buffer space. + */ + FW_DROP_NOBUFS, + /** + * Dropped by firmware for any other reason. + */ + FW_DROP_OTHER, + /** + * Queued within driver, not yet delivered to network stack. + */ + DRV_QUEUED, + /** + * Dropped by driver due to filter rules. + */ + DRV_DROP_FILTER, + /** + * Dropped by driver as invalid (e.g. not permitted in current state). + */ + DRV_DROP_INVALID, + /** + * Dropped by driver due to lack of buffer space. + */ + DRV_DROP_NOBUFS, + /** + * Dropped by driver for any other reason. + */ + DRV_DROP_OTHER, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl new file mode 100644 index 0000000000..f4d709cecb --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugRxPacketFateReport.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiDebugPacketFateFrameInfo; +import android.hardware.wifi.WifiDebugRxPacketFate; + +/** + * Struct describing packet fate report for each Rx frame. + */ +@VintfStability +parcelable WifiDebugRxPacketFateReport { + WifiDebugRxPacketFate fate; + WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFate.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFate.aidl new file mode 100644 index 0000000000..717d62afcb --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFate.aidl @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2022 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; + +/** + * Enum describing the fate of the TX packets. + */ +@VintfStability +@Backing(type="int") +enum WifiDebugTxPacketFate { + /** + * Sent over air and ACKed. + */ + ACKED, + /** + * Sent over air but not ACKed (normal for broadcast/multicast). + */ + SENT, + /** + * Queued within firmware, but not yet sent over air. + */ + FW_QUEUED, + /** + * Dropped by firmware as invalid (e.g. bad source address, bad checksum, + * or invalid for current state). + */ + FW_DROP_INVALID, + /** + * Dropped by firmware due to lack of buffer space. + */ + FW_DROP_NOBUFS, + /** + * Dropped by firmware for any other reason. Includes frames that were sent + * by driver to the firmware, but unaccounted for by firmware. + */ + FW_DROP_OTHER, + /** + * Queued within driver, not yet sent to firmware. + */ + DRV_QUEUED, + /** + * Dropped by driver as invalid (e.g. bad source address, or invalid for + * current state). + */ + DRV_DROP_INVALID, + /** + * Dropped by driver due to lack of buffer space. + */ + DRV_DROP_NOBUFS, + /** + * Dropped by driver for any other reason. + */ + DRV_DROP_OTHER, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl b/wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl new file mode 100644 index 0000000000..b59b0a5d04 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiDebugTxPacketFateReport.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiDebugPacketFateFrameInfo; +import android.hardware.wifi.WifiDebugTxPacketFate; + +/** + * Struct describing packet fate report for each Tx frame. + */ +@VintfStability +parcelable WifiDebugTxPacketFateReport { + WifiDebugTxPacketFate fate; + WifiDebugPacketFateFrameInfo frameInfo; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiIfaceMode.aidl b/wifi/aidl/android/hardware/wifi/WifiIfaceMode.aidl new file mode 100644 index 0000000000..f70c744a94 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiIfaceMode.aidl @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2022 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; + +/** + * Interface operating modes. + */ +@VintfStability +@Backing(type="int") +enum WifiIfaceMode { + /** + * Interface operation mode is client. + */ + IFACE_MODE_STA = 1 << 0, + /** + * Interface operation mode is Hotspot. + */ + IFACE_MODE_SOFTAP = 1 << 1, + /** + * Interface operation mode is Ad-Hoc network. + */ + IFACE_MODE_IBSS = 1 << 2, + /** + * Interface operation mode is Wifi Direct Client. + */ + IFACE_MODE_P2P_CLIENT = 1 << 3, + /** + * Interface operation mode is Wifi Direct Group Owner. + */ + IFACE_MODE_P2P_GO = 1 << 4, + /** + * Interface operation mode is Aware. + */ + IFACE_MODE_NAN = 1 << 5, + /** + * Interface operation mode is Mesh network. + */ + IFACE_MODE_MESH = 1 << 6, + /** + * Interface operation mode is Tunneled Direct Link Setup. + */ + IFACE_MODE_TDLS = 1 << 7, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiInformationElement.aidl b/wifi/aidl/android/hardware/wifi/WifiInformationElement.aidl new file mode 100644 index 0000000000..f5f6de95f2 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiInformationElement.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2022 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; + +/** + * Information elements contained within the |ScanResult| structure. + * These elements correspond to the IEEE_802.11 standard. + */ +@VintfStability +parcelable WifiInformationElement { + byte id; + byte[] data; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiRadioCombination.aidl b/wifi/aidl/android/hardware/wifi/WifiRadioCombination.aidl new file mode 100644 index 0000000000..28b15ed0b1 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiRadioCombination.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiRadioConfiguration; + +/** + * Wifi radio combination. + */ +@VintfStability +parcelable WifiRadioCombination { + /** + * List of radio configurations in this combination. + */ + WifiRadioConfiguration[] radioConfigurations; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiRadioCombinationMatrix.aidl b/wifi/aidl/android/hardware/wifi/WifiRadioCombinationMatrix.aidl new file mode 100644 index 0000000000..b79a8189d7 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiRadioCombinationMatrix.aidl @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiRadioCombination; + +/** + * Wifi radio combinations matrix retrieved via + * |IWifiChip.getSupportedRadioCombinationsMatrix|. + */ +@VintfStability +parcelable WifiRadioCombinationMatrix { + /** + * List of all the possible radio combinations that the chip can operate. + */ + WifiRadioCombination[] radioCombinations; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiRadioConfiguration.aidl b/wifi/aidl/android/hardware/wifi/WifiRadioConfiguration.aidl new file mode 100644 index 0000000000..ae8eff3f23 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiRadioConfiguration.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiAntennaMode; +import android.hardware.wifi.WifiBand; + +/** + * Wifi radio configuration. + */ +@VintfStability +parcelable WifiRadioConfiguration { + /** + * Band on which this radio chain is operating. + * Valid values of bandInfo are: BAND_24GHZ, BAND_5GHZ, BAND_6GHZ and + * BAND_60GHZ. + * + */ + WifiBand bandInfo; + /** + * Wifi Antenna configuration. + */ + WifiAntennaMode antennaMode; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiRateInfo.aidl b/wifi/aidl/android/hardware/wifi/WifiRateInfo.aidl new file mode 100644 index 0000000000..c4e285ec26 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiRateInfo.aidl @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiChannelWidthInMhz; +import android.hardware.wifi.WifiRateNss; +import android.hardware.wifi.WifiRatePreamble; + +/** + * Wifi rate info. + */ +@VintfStability +parcelable WifiRateInfo { + /** + * Preamble used for RTT measurements. + */ + WifiRatePreamble preamble; + /** + * Number of spatial streams. + */ + WifiRateNss nss; + /** + * Bandwidth of channel. + */ + WifiChannelWidthInMhz bw; + /** + * OFDM/CCK rate code as per IEEE std in units of 0.5mbps. + * HT/VHT/HE/EHT would be mcs index. + */ + byte rateMcsIdx; + /** + * Bitrate in units of 100 Kbps. + */ + int bitRateInKbps; +} diff --git a/wifi/aidl/android/hardware/wifi/WifiRateNss.aidl b/wifi/aidl/android/hardware/wifi/WifiRateNss.aidl new file mode 100644 index 0000000000..0c263a5760 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiRateNss.aidl @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2022 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; + +/** + * Number of spatial streams in VHT/HT. + */ +@VintfStability +@Backing(type="int") +enum WifiRateNss { + NSS_1x1 = 0, + NSS_2x2 = 1, + NSS_3x3 = 2, + NSS_4x4 = 3, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiRatePreamble.aidl b/wifi/aidl/android/hardware/wifi/WifiRatePreamble.aidl new file mode 100644 index 0000000000..116e46a49b --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiRatePreamble.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 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; + +/** + * Wifi Rate Preamble. + */ +@VintfStability +@Backing(type="int") +enum WifiRatePreamble { + OFDM = 0, + CCK = 1, + HT = 2, + VHT = 3, + RESERVED = 4, + /** + * Preamble type for 11ax. + */ + HE = 5, + /** + * Preamble type for 11be. + */ + EHT = 6, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiStatusCode.aidl b/wifi/aidl/android/hardware/wifi/WifiStatusCode.aidl new file mode 100644 index 0000000000..30817f30b5 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiStatusCode.aidl @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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; + +/** + * Enum values indicating the status of the WiFi operation. + */ +@VintfStability +@Backing(type="int") +enum WifiStatusCode { + /** + * No errors. + */ + SUCCESS, + /** + * Method invoked on an invalid |IWifiChip| object. + */ + ERROR_WIFI_CHIP_INVALID, + /** + * Method invoked on an invalid |IWifiIface| object. + */ + ERROR_WIFI_IFACE_INVALID, + /** + * Method invoked on an invalid |IWifiRttController| object. + */ + ERROR_WIFI_RTT_CONTROLLER_INVALID, + ERROR_NOT_SUPPORTED, + ERROR_NOT_AVAILABLE, + ERROR_NOT_STARTED, + ERROR_INVALID_ARGS, + ERROR_BUSY, + ERROR_UNKNOWN, +} diff --git a/wifi/aidl/android/hardware/wifi/WifiUsableChannel.aidl b/wifi/aidl/android/hardware/wifi/WifiUsableChannel.aidl new file mode 100644 index 0000000000..d92e4cce94 --- /dev/null +++ b/wifi/aidl/android/hardware/wifi/WifiUsableChannel.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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; + +import android.hardware.wifi.WifiChannelWidthInMhz; +import android.hardware.wifi.WifiIfaceMode; + +/** + * Wifi usable channel information. + */ +@VintfStability +parcelable WifiUsableChannel { + /** + * Wifi channel freqeuncy in MHz. + */ + int channel; + /** + * Wifi channel bandwidth in MHz. + */ + WifiChannelWidthInMhz channelBandwidth; + /** + * Iface modes feasible on this channel. + */ + WifiIfaceMode ifaceModeMask; +}