From 18eec81adc49e363a97e6cd9b95c004d7b62ec6d Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Fri, 14 Oct 2016 11:29:30 -0700 Subject: [PATCH] wifi(interface): Rtt controller HIDL interface Bug: 31991232 Test: ./hardware/interfaces/update-makefiles.sh Change-Id: I53b95e85ee8a71bcb0494420913c9511f87908c0 --- wifi/1.0/Android.bp | 8 + wifi/1.0/Android.mk | 756 +++++++++++++++++++ wifi/1.0/IWifiRttController.hal | 209 ++++- wifi/1.0/IWifiRttControllerEventCallback.hal | 30 + wifi/1.0/IWifiStaIface.hal | 4 +- wifi/1.0/IWifiStaIfaceEventCallback.hal | 15 +- wifi/1.0/types.hal | 575 ++++++++++++++ 7 files changed, 1581 insertions(+), 16 deletions(-) create mode 100644 wifi/1.0/IWifiRttControllerEventCallback.hal diff --git a/wifi/1.0/Android.bp b/wifi/1.0/Android.bp index 40521f20c0..da9210c380 100644 --- a/wifi/1.0/Android.bp +++ b/wifi/1.0/Android.bp @@ -16,6 +16,7 @@ genrule { "IWifiNanIfaceEventCallback.hal", "IWifiP2pIface.hal", "IWifiRttController.hal", + "IWifiRttControllerEventCallback.hal", "IWifiStaIface.hal", "IWifiStaIfaceEventCallback.hal", ], @@ -31,6 +32,7 @@ genrule { "android/hardware/wifi/1.0/WifiNanIfaceEventCallbackAll.cpp", "android/hardware/wifi/1.0/WifiP2pIfaceAll.cpp", "android/hardware/wifi/1.0/WifiRttControllerAll.cpp", + "android/hardware/wifi/1.0/WifiRttControllerEventCallbackAll.cpp", "android/hardware/wifi/1.0/WifiStaIfaceAll.cpp", "android/hardware/wifi/1.0/WifiStaIfaceEventCallbackAll.cpp", ], @@ -52,6 +54,7 @@ genrule { "IWifiNanIfaceEventCallback.hal", "IWifiP2pIface.hal", "IWifiRttController.hal", + "IWifiRttControllerEventCallback.hal", "IWifiStaIface.hal", "IWifiStaIfaceEventCallback.hal", ], @@ -107,6 +110,11 @@ genrule { "android/hardware/wifi/1.0/BnWifiRttController.h", "android/hardware/wifi/1.0/BpWifiRttController.h", "android/hardware/wifi/1.0/BsWifiRttController.h", + "android/hardware/wifi/1.0/IWifiRttControllerEventCallback.h", + "android/hardware/wifi/1.0/IHwWifiRttControllerEventCallback.h", + "android/hardware/wifi/1.0/BnWifiRttControllerEventCallback.h", + "android/hardware/wifi/1.0/BpWifiRttControllerEventCallback.h", + "android/hardware/wifi/1.0/BsWifiRttControllerEventCallback.h", "android/hardware/wifi/1.0/IWifiStaIface.h", "android/hardware/wifi/1.0/IHwWifiStaIface.h", "android/hardware/wifi/1.0/BnWifiStaIface.h", diff --git a/wifi/1.0/Android.mk b/wifi/1.0/Android.mk index 3ae6affa70..9c731546ac 100644 --- a/wifi/1.0/Android.mk +++ b/wifi/1.0/Android.mk @@ -12,6 +12,40 @@ intermediates := $(local-generated-sources-dir) HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX) +# +# Build types.hal (ChannelInfo) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/ChannelInfo.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.ChannelInfo + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (ChannelWidth) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/ChannelWidth.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.ChannelWidth + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build types.hal (IfaceType) # @@ -29,6 +63,23 @@ $(GEN): $(LOCAL_PATH)/types.hal $(transform-generated-source) LOCAL_GENERATED_SOURCES += $(GEN) +# +# Build types.hal (InformationElement) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/InformationElement.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.InformationElement + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build types.hal (NanAvailDuration) # @@ -1134,6 +1185,312 @@ $(GEN): $(LOCAL_PATH)/types.hal $(transform-generated-source) LOCAL_GENERATED_SOURCES += $(GEN) +# +# Build types.hal (RateInfo) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RateInfo.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RateInfo + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttBw) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttBw.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttBw + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttCapabilities) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttCapabilities.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttCapabilities + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttChannelMap) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttChannelMap.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttChannelMap + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttConfig) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttConfig.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttConfig + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttConstants) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttConstants.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttConstants + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttDebugFormat) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttDebugFormat.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttDebugFormat + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttDebugInfo) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttDebugInfo.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttDebugInfo + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttDebugType) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttDebugType.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttDebugType + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttLciInformation) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttLciInformation.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttLciInformation + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttLcrInformation) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttLcrInformation.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttLcrInformation + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttMotionPattern) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttMotionPattern.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttMotionPattern + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttPeerType) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttPeerType.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttPeerType + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttPreamble) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttPreamble.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttPreamble + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttResponder) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttResponder.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttResponder + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttResult) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttResult.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttResult + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttStatus) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttStatus.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttStatus + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttType) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttType.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttType + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build types.hal (WifiStatus) # @@ -1370,6 +1727,8 @@ $(GEN): PRIVATE_HIDL := $(HIDL) $(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IWifiRttController.hal $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IWifiIface.hal $(GEN): $(LOCAL_PATH)/IWifiIface.hal +$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal +$(GEN): $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal $(GEN): $(LOCAL_PATH)/types.hal $(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) @@ -1382,6 +1741,25 @@ $(GEN): $(LOCAL_PATH)/IWifiRttController.hal $(transform-generated-source) LOCAL_GENERATED_SOURCES += $(GEN) +# +# Build IWifiRttControllerEventCallback.hal +# +GEN := $(intermediates)/android/hardware/wifi/1.0/IWifiRttControllerEventCallback.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal +$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal +$(GEN): $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::IWifiRttControllerEventCallback + +$(GEN): $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build IWifiStaIface.hal # @@ -1436,6 +1814,40 @@ intermediates := $(local-generated-sources-dir) HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX) +# +# Build types.hal (ChannelInfo) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/ChannelInfo.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.ChannelInfo + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (ChannelWidth) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/ChannelWidth.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.ChannelWidth + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build types.hal (IfaceType) # @@ -1453,6 +1865,23 @@ $(GEN): $(LOCAL_PATH)/types.hal $(transform-generated-source) LOCAL_GENERATED_SOURCES += $(GEN) +# +# Build types.hal (InformationElement) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/InformationElement.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.InformationElement + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build types.hal (NanAvailDuration) # @@ -2558,6 +2987,312 @@ $(GEN): $(LOCAL_PATH)/types.hal $(transform-generated-source) LOCAL_GENERATED_SOURCES += $(GEN) +# +# Build types.hal (RateInfo) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RateInfo.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RateInfo + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttBw) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttBw.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttBw + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttCapabilities) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttCapabilities.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttCapabilities + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttChannelMap) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttChannelMap.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttChannelMap + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttConfig) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttConfig.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttConfig + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttConstants) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttConstants.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttConstants + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttDebugFormat) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttDebugFormat.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttDebugFormat + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttDebugInfo) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttDebugInfo.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttDebugInfo + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttDebugType) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttDebugType.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttDebugType + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttLciInformation) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttLciInformation.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttLciInformation + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttLcrInformation) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttLcrInformation.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttLcrInformation + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttMotionPattern) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttMotionPattern.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttMotionPattern + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttPeerType) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttPeerType.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttPeerType + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttPreamble) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttPreamble.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttPreamble + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttResponder) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttResponder.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttResponder + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttResult) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttResult.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttResult + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttStatus) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttStatus.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttStatus + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + +# +# Build types.hal (RttType) +# +GEN := $(intermediates)/android/hardware/wifi/1.0/RttType.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::types.RttType + +$(GEN): $(LOCAL_PATH)/types.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build types.hal (WifiStatus) # @@ -2794,6 +3529,8 @@ $(GEN): PRIVATE_HIDL := $(HIDL) $(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IWifiRttController.hal $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IWifiIface.hal $(GEN): $(LOCAL_PATH)/IWifiIface.hal +$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal +$(GEN): $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal $(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal $(GEN): $(LOCAL_PATH)/types.hal $(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) @@ -2806,6 +3543,25 @@ $(GEN): $(LOCAL_PATH)/IWifiRttController.hal $(transform-generated-source) LOCAL_GENERATED_SOURCES += $(GEN) +# +# Build IWifiRttControllerEventCallback.hal +# +GEN := $(intermediates)/android/hardware/wifi/1.0/IWifiRttControllerEventCallback.java +$(GEN): $(HIDL) +$(GEN): PRIVATE_HIDL := $(HIDL) +$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal +$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal +$(GEN): $(LOCAL_PATH)/types.hal +$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates) +$(GEN): PRIVATE_CUSTOM_TOOL = \ + $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \ + -Ljava -randroid.hardware:hardware/interfaces \ + android.hardware.wifi@1.0::IWifiRttControllerEventCallback + +$(GEN): $(LOCAL_PATH)/IWifiRttControllerEventCallback.hal + $(transform-generated-source) +LOCAL_GENERATED_SOURCES += $(GEN) + # # Build IWifiStaIface.hal # diff --git a/wifi/1.0/IWifiRttController.hal b/wifi/1.0/IWifiRttController.hal index a0e8b12219..93b3d92561 100644 --- a/wifi/1.0/IWifiRttController.hal +++ b/wifi/1.0/IWifiRttController.hal @@ -17,13 +17,14 @@ package android.hardware.wifi@1.0; import IWifiIface; +import IWifiRttControllerEventCallback; /** - * Interface used to perform RTT operations. + * Interface used to perform RTT(Round trip time) operations. */ interface IWifiRttController { /** - * Get the iface on which the RTT operations will be performed. + * Get the iface on which the RTT operations must be performed. * * @return status WifiStatus of the operation. * Possible status codes: @@ -33,4 +34,208 @@ interface IWifiRttController { * to a specific iface, null otherwise */ getBoundIface() generates (WifiStatus status, IWifiIface boundIface); + + /** + * 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| HIDL + * interface object. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID| + */ + registerEventCallback(IWifiRttControllerEventCallback callback) + generates (WifiStatus status); + + /** + * API to request RTT measurement. + * + * @param cmdId command Id to use for this invocation. + * @param rttConfigs Vector of |RttConfig| parameters. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + rangeRequest(CommandId cmdId, vec rttConfigs) + generates (WifiStatus status); + + /** + * API to cancel RTT measurements. + * + * @param cmdId command Id corresponding to the original request. + * @param addrs Vector of addresses for which to cancel. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + rangeCancel(CommandId cmdId, vec addrs) + generates (WifiStatus status); + + /** + * API to start publishing the channel map on responder device in an NBD + * cluster. + * Responder device must take this request and schedule broadcasting the + * channel map in a NBD ranging attribute in a Service Discovery Frame. + * DE must automatically remove the ranging attribute from the OTA queue + * after number of Discovery Window specified by numDw where each + * Discovery Window is 512 TUs apart. + * + * @param cmdId command Id to use for this invocation. + * @param params Instance of |RttChannelMap|. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + setChannelMap(CommandId cmdId, RttChannelMap params, uint32_t numDw) + generates (WifiStatus status); + + /** + * API to clear the channel map on the responder device in an NBD cluster. + * Responder device must cancel future ranging channel request, starting from + * next Discovery Window interval and must also stop broadcasting NBD + * ranging attribute in Service Discovery Frame. + * + * @param cmdId command Id corresponding to the original request. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + clearChannelMap(CommandId cmdId) generates (WifiStatus status); + + /** + * RTT capabilities of the device. + * + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_UNKNOWN| + * @return capabilities Instance of |RttCapabilities|. + */ + getCapabilities() generates (WifiStatus status, RttCapabilities capabilities); + + /** + * Set configuration for debug. + * + * @param type debug level to be set. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + setDebugCfg(RttDebugType Type) generates (WifiStatus status); + + /** + * Get the debug information. + * + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + * @return info Instance of |RttDebugInfo|. + */ + getDebugInfo() generates (WifiStatus status, RttDebugInfo info); + + /** + * 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|. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + setLci(CommandId cmdId, RttLciInformation lci) generates (WifiStatus status); + + /** + * 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|. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + setLcr(CommandId cmdId, RttLcrInformation lcr) generates (WifiStatus status); + + /** + * Get RTT responder information e.g. WiFi channel to enable responder on. + * + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + * @return info Instance of |RttResponderInfo|. + */ + getResponderInfo() generates (WifiStatus status, RttResponder info); + + /** + * Enable RTT responder mode. + * + * @param cmdId command Id to use for this invocation. + * @parm channelHint Hint of the channel information where RTT responder must + * be enabled on. + * @param maxDurationInSeconds Timeout of responder mode. + * @param info Instance of |RttResponderInfo|. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_INVALID_ARGS|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + enableResponder(CommandId cmdId, + WifiChannelInfo channelHint, + uint32_t maxDurationSeconds, + RttResponder info) + generates (WifiStatus status); + + /** + * Disable RTT responder mode. + * + * @param cmdId command Id corresponding to the original request. + * @return status WifiStatus of the operation. + * Possible status codes: + * |WifiStatusCode.SUCCESS|, + * |WifiStatusCode.ERROR_WIFI_RTT_CONTROLLER_INVALID|, + * |WifiStatusCode.ERROR_NOT_AVAILABLE|, + * |WifiStatusCode.ERROR_UNKNOWN| + */ + disableResponder(CommandId cmdId) generates (WifiStatus status); }; diff --git a/wifi/1.0/IWifiRttControllerEventCallback.hal b/wifi/1.0/IWifiRttControllerEventCallback.hal new file mode 100644 index 0000000000..e23e395f30 --- /dev/null +++ b/wifi/1.0/IWifiRttControllerEventCallback.hal @@ -0,0 +1,30 @@ +/* + * Copyright 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.wifi@1.0; + +/** + * RTT Response and Event Callbacks. + */ +interface IWifiRttControllerEventCallback { + /** + * Invoked when an RTT result is available. + * + * @param cmdId command Id corresponding to the original request. + * @param results Vector of |RttResult| instances. + */ + oneway onResults(CommandId cmdId, vec results); +}; diff --git a/wifi/1.0/IWifiStaIface.hal b/wifi/1.0/IWifiStaIface.hal index 8f45777fd1..5cf1413f94 100644 --- a/wifi/1.0/IWifiStaIface.hal +++ b/wifi/1.0/IWifiStaIface.hal @@ -295,11 +295,11 @@ interface IWifiStaIface extends IWifiIface { LinkLayerIfaceStats iface; LinkLayerRadioStats radio; /** - * Timestamp for each stats sample. + * TimeStamp for each stats sample. * This is the absolute milliseconds from boot when these stats were * sampled. */ - uint32_t timeStampInMs; + TimeStampInMs timeStampInMs; }; /** diff --git a/wifi/1.0/IWifiStaIfaceEventCallback.hal b/wifi/1.0/IWifiStaIfaceEventCallback.hal index 129c258104..6bffc7d7d5 100644 --- a/wifi/1.0/IWifiStaIfaceEventCallback.hal +++ b/wifi/1.0/IWifiStaIfaceEventCallback.hal @@ -17,28 +17,19 @@ package android.hardware.wifi@1.0; interface IWifiStaIfaceEventCallback { - /** - * Information elements contained within the |ScanResult| structure. - * These elements correspond to the IEEE_802.11 standard. - */ - struct InformationElement { - uint8_t id; - vec data; - }; - /** * Structure describing all the information about a single access point seen * during the scan. */ struct ScanResult { - int64_t timeStampInUs; + TimeStampInUs timeStampInUs; vec ssid; Bssid bssid; - int8_t rssi; + Rssi rssi; WifiChannelInMhz frequency; uint16_t beaconPeriodInMs; uint16_t capability; - vec informationElements; + vec informationElements; }; /** diff --git a/wifi/1.0/types.hal b/wifi/1.0/types.hal index a7ecf7eea3..65c39f734e 100644 --- a/wifi/1.0/types.hal +++ b/wifi/1.0/types.hal @@ -82,6 +82,47 @@ typedef uint32_t CommandId; */ typedef uint32_t WifiChannelInMhz; +/** + * Channel operating width in Mhz. + */ +enum WifiChannelWidthInMhz : uint32_t { + WIDTH_20 = 0, + WIDTH_40 = 1, + WIDTH_80 = 2, + WIDTH_160 = 3, + WIDTH_80P80 = 4, + WIDTH_5 = 5, + WIDTH_10 = 6, + WIDTH_INVALID = -1 +}; + +/** + * Channel information. + */ +struct WifiChannelInfo { + /** + * Channel width (20, 40, 80, 80+80, 160). + */ + WifiChannelWidthInMhz width; + /** + * Primary 20 MHz channel. + */ + WifiChannelInMhz centerFreq; + /** + * Center frequency (MHz) first segment. + */ + WifiChannelInMhz centerFreq0; + /** + * Center frequency (MHz) second segment. + */ + WifiChannelInMhz centerFreq1; +}; + +/** + * RSSI information. + */ +typedef int32_t Rssi; + /** * Mac Address type. 6 octets representing physical address of a device. */ @@ -92,6 +133,75 @@ typedef uint8_t[6] MacAddress; */ typedef MacAddress Bssid; +/** + * TimeStamp in milliseconds (ms). + */ +typedef uint32_t TimeStampInMs; + +/** + * TimeStamp in microseconds (us). + */ +typedef uint64_t TimeStampInUs; + +/** + * TimeStamp in picoseconds (ps). + */ +typedef uint64_t TimeSpanInPs; + +/** + * Information elements contained within the |ScanResult| structure. + * These elements correspond to the IEEE_802.11 standard. + */ +struct WifiInformationElement { + uint8_t id; + vec data; +}; + +enum WifiRatePreamble : uint32_t { + OFDM = 0, + CCK = 1, + HT = 2, + VHT = 3, + RESERVED = 4 +}; + +/** + * Number of spatial streams in VHT/HT. + */ +enum WifiRateNss : uint32_t { + NSS_1x1 = 0, + NSS_2x2 = 1, + NSS_3x3 = 2, + NSS_4x4 = 3 +}; + +/** + * Wifi rate info. + */ +struct WifiRateInfo { + /** + * Preamble used for RTT measurements. + */ + WifiRatePreamble preamble; + /** + * Number of spatial streams. + */ + WifiRateNss nss; + /** + * Bandwidth of channel. + */ + WifiChannelWidthInMhz bw; + /** + * OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps. + * HT/VHT it would be mcs index. + */ + uint8_t rateMcsIdx; + /** + * Bitrate in units of 100 Kbps. + */ + uint32_t bitRateInKbps; +}; + /** * NAN specific types. * TODO(b/32159498): Move to a separate nan_types.hal. @@ -1457,3 +1567,468 @@ struct NanTransmitFollowupInd { NanStatusType reason; }; +/** + * RTT specific types. + * TODO(b/32159498): Move to a separate rtt_types.hal. + */ +/** + * Constants used in the RTT interface. + */ +enum RttConstants : uint32_t { + PREAMBLE_LEGACY = 0x1, + PREAMBLE_HT = 0x2, + PREAMBLE_VHT = 0x4, + BW_5_SUPPORT = 0x1, + BW_10_SUPPORT = 0x2, + BW_20_SUPPORT = 0x4, + BW_40_SUPPORT = 0x8, + BW_80_SUPPORT = 0x10, + BW_160_SUPPORT = 0x20, +}; + +/** + * Ranging status. + */ +enum RttStatus : uint32_t { + 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 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, +}; + +/** + * RTT peer types. + */ +enum RttPeerType : uint32_t { + AP = 0x1, + STA = 0x2, + P2P_GO = 0x3, + P2P_CLIENT = 0x4, + NAN = 0x5, +}; + +/** + * RTT Measurement Bandwidth. + */ +enum RttBw : uint32_t { + BW_5MHZ = 0x01, + BW_10MHZ = 0x02, + BW_20MHZ = 0x04, + BW_40MHZ = 0x08, + BW_80MHZ = 0x10, + BW_160MHZ = 0x20, +}; + +/** + * RTT Measurement Preamble. + */ +enum RttPreamble : uint32_t { + LEGACY = 0x1, + HT = 0x2, + VHT = 0x4, +}; + +/** + * RTT Types. + */ +enum RttType : uint32_t { + ONE_SIDED = 0x1, + TWO_SIDED = 0x2, +}; + +/** + * RTT configuration. + */ +struct RttConfig { + /** + * Peer device mac address. + */ + MacAddress 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). + */ + uint32_t burstPeriod; + /** + * Total number of RTT bursts to be executed. It will be + * specified in the same way as the parameter "Number of + * Burst Exponent" found in the FTM frame format. It + * 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) + */ + uint32_t numBurst; + /** + * Num 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 send + * in a single frame. + */ + uint32_t numFramesPerBurst; + /** + * Number of retries for a failed RTT frame. + * Applies to 1-sided RTT only. Minimum value = 0, Maximum value = 3 + */ + uint32_t numRetriesPerRttFrame; + /** 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 + */ + uint32_t numRetriesPerFtmr; + /** + * Whether to request location civic info or not. + */ + bool mustRequestLci; + /** + * Whether to request location civic records or not. + */ + bool 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 sent TMR_STOP to terminate RTT + * at the end of the burst_duration it requested. + */ + uint32_t burstDuration; + /** + * RTT preamble to be used in the RTT frames. + */ + RttPreamble preamble; + /** + * RTT BW to be used in the RTT frames. + */ + RttBw bw; +}; + +/** + * RTT results. + */ +struct RttResult { + /** + * Peer device mac address. + */ + MacAddress addr; + /** + * Burst number in a multi-burst request. + */ + uint32_t burstNum; + /** + * Total RTT measurement frames attempted. + */ + uint32_t measurementNumber; + /** + * Total successful RTT measurement frames. + */ + uint32_t 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. + */ + uint8_t numberPerBurstPeer; + /** + * Ranging status. + */ + RttStatus status; + /** + * When status == 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-31sec. + */ + uint8_t retryAfterDuration; + /** + * RTT type. + */ + RttType type; + /** + * Average rssi in 0.5 dB steps e.g. 143 implies -71.5 dB. + */ + Rssi rssi; + /** + * Rssi spread in 0.5 dB steps e.g. 5 implies 2.5 dB spread (optional). + */ + Rssi 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 + */ + TimeSpanInPs rtt; + /** + * Rtt standard deviation in picoseconds. + */ + TimeSpanInPs rttSd; + /** + * Difference between max and min rtt times recorded in picoseconds. + */ + TimeSpanInPs rttSpread; + /** + * Distance in mm (optional). + */ + int32_t distanceInMm; + /** + * Standard deviation in mm (optional). + */ + int32_t distanceSdInMm; + /** + * Difference between max and min distance recorded in mm (optional). + */ + int32_t distanceSpreadInMm; + /** + * Time of the measurement (in microseconds since boot). + */ + TimeStampInUs timeStampInUs; + /** + * in ms, actual time taken by the FW to finish one burst + * measurement. Applies to 1-sided and 2-sided RTT. + */ + uint32_t burstDurationInMs; + /** + * Number of bursts allowed by the responder. Applies + * to 2-sided RTT only. + */ + uint32_t negotiatedBurstNum; + /** + * for 11mc only. + */ + WifiInformationElement lci; + /** + * for 11mc only. + */ + WifiInformationElement lcr; +}; + +/** + * NBD ranging channel map. + */ +struct RttChannelMap { + WifiChannelInMhz[32] availablity; +}; + +/** + * RTT Capabilities. + */ +struct RttCapabilities { + /** + * if 1-sided rtt data collection is supported. + */ + bool rttOneSidedSupported; + /** + * if ftm rtt data collection is supported. + */ + bool rttFtmSupported; + /** + * if initiator supports LCI request. Applies to 2-sided RTT. + */ + bool lciSupported; + /** + * if initiator supports LCR request. Applies to 2-sided RTT. + */ + bool lcrSupported; + /** + * if 11mc responder mode is supported. + */ + bool responderSupported; + /** + * bit mask indicates what preamble is supported by initiator. + */ + uint8_t preambleSupport; + /** + * bit mask indicates what BW is supported by initiator. + */ + uint8_t bwSupport; + /** + * Draft 11mc spec version supported by chip. + * For instance, version 4.0 must be 40 and version 4.3 must be 43 etc. + */ + uint8_t mcVersion; +}; + +/** + * Debugging definitions. + */ +enum RttDebugType : uint32_t { + DISABLE, + LOG, + PROTO, + BURST, + ACCURACY, + LOGDETAIL, +}; + +enum RttDebugFormat : uint32_t { + TXT, + BINARY, +}; + +/** + * Debug info. + */ +struct RttDebugInfo { + /** + * Version info. + */ + uint32_t version; + /** + * Debug data type. + */ + RttDebugType type; + /** + * Debug data format. + */ + RttDebugFormat format; + /** + * Debug data content. + */ + vec data; +}; + +/** + * Structs for setting LCI/LCR information to be provided to a requestor. + */ +enum RttMotionPattern : uint32_t { + /** + * Not expected to change location. + */ + NOT_EXPECTED = 0, + /** + * Expected to change location. + */ + EXPECTED = 1, + /** + * Movement pattern unknown. + */ + UNKNOWN = 2, +}; + +/** + * Movement pattern unknown. + */ +struct RttLciInformation { + /** + * latitude in degrees * 2^25 , 2's complement. + */ + int64_t latitude; + /** + * longitude in degrees * 2^25 , 2's complement. + */ + int64_t longitude; + /** + * Altitude in units of 1/256 m. + */ + int32_t altitude; + /** + * As defined in Section 2.3.2 of IETF RFC 6225. + */ + uint8_t latitudeUnc; + /** + * As defined in Section 2.3.2 of IETF RFC 6225. + */ + uint8_t longitudeUnc; + /** + * As defined in Section 2.4.5 from IETF RFC 6225. + */ + uint8_t altitudeUnc; + /** Following element for configuring the Z subelement. */ + /** + * Motion pattern type. + */ + RttMotionPattern motionPattern; + /** + * Floor in units of 1/16th of floor. 0x80000000 if unknown. + */ + int32_t floor; + /** + * in units of 1/64 m. + */ + int32_t heightAboveFloor; + /** + * in units of 1/64 m. 0 if unknown + */ + int32_t heightUnc; +}; + +struct RttLcrInformation { + /** + * Country code symbol. + */ + int8_t[2] countryCode; + /** + * Civic info to be copied in FTM frame. + */ + string civicInfo; +}; + +/*** + * RTT Responder information + */ +struct RttResponder { + WifiChannelInfo channel; + RttPreamble preamble; +};