Merge "Add tv input and cec profiling test"
diff --git a/audio/2.0/IDevicesFactory.hal b/audio/2.0/IDevicesFactory.hal
index f1dc7d3..0ef6bc5 100644
--- a/audio/2.0/IDevicesFactory.hal
+++ b/audio/2.0/IDevicesFactory.hal
@@ -26,7 +26,8 @@
PRIMARY,
A2DP,
USB,
- R_SUBMIX
+ R_SUBMIX,
+ STUB
};
/*
diff --git a/audio/2.0/default/DevicesFactory.cpp b/audio/2.0/default/DevicesFactory.cpp
index 12ef2c8..8825107 100644
--- a/audio/2.0/default/DevicesFactory.cpp
+++ b/audio/2.0/default/DevicesFactory.cpp
@@ -37,6 +37,7 @@
case IDevicesFactory::Device::A2DP: return AUDIO_HARDWARE_MODULE_ID_A2DP;
case IDevicesFactory::Device::USB: return AUDIO_HARDWARE_MODULE_ID_USB;
case IDevicesFactory::Device::R_SUBMIX: return AUDIO_HARDWARE_MODULE_ID_REMOTE_SUBMIX;
+ case IDevicesFactory::Device::STUB: return AUDIO_HARDWARE_MODULE_ID_STUB;
}
}
diff --git a/audio/effect/2.0/IEffect.hal b/audio/effect/2.0/IEffect.hal
index 9027c68..9e10117 100644
--- a/audio/effect/2.0/IEffect.hal
+++ b/audio/effect/2.0/IEffect.hal
@@ -83,20 +83,17 @@
/*
* Set and get volume. Used by audio framework to delegate volume control to
- * effect engine. The effect implementation must set EFFECT_FLAG_VOLUME_IND
- * or EFFECT_FLAG_VOLUME_CTRL flag in its descriptor to receive this command
- * before every call to 'process' function If EFFECT_FLAG_VOLUME_CTRL flag
- * is set in the effect descriptor, the effect engine must return the volume
- * that should be applied before the effect is processed. The overall volume
- * (the volume actually applied by the effect engine multiplied by the
- * returned value) should match the value indicated in the command.
+ * effect engine. The effect implementation must set EFFECT_FLAG_VOLUME_CTRL
+ * flag in its descriptor to receive this command. The effect engine must
+ * return the volume that should be applied before the effect is
+ * processed. The overall volume (the volume actually applied by the effect
+ * engine multiplied by the returned value) should match the value indicated
+ * in the command.
*
* @param volumes vector containing volume for each channel defined in
* EffectConfig for output buffer expressed in 8.24 fixed
* point format.
- * @return result updated volume values. It is OK to receive an empty vector
- * as a result in which case the effect framework has
- * delegated volume control to another effect.
+ * @return result updated volume values.
* @return retval operation completion status.
*/
@callflow(next={"*"})
@@ -104,6 +101,19 @@
generates (Result retval, vec<uint32_t> result);
/*
+ * Notify the effect of the volume change. The effect implementation must
+ * set EFFECT_FLAG_VOLUME_IND flag in its descriptor to receive this
+ * command.
+ *
+ * @param volumes vector containing volume for each channel defined in
+ * EffectConfig for output buffer expressed in 8.24 fixed
+ * point format.
+ * @return retval operation completion status.
+ */
+ volumeChangeNotification(vec<uint32_t> volumes)
+ generates (Result retval);
+
+ /*
* Set the audio mode. The effect implementation must set
* EFFECT_FLAG_AUDIO_MODE_IND flag in its descriptor to receive this command
* when the audio mode changes.
diff --git a/audio/effect/2.0/default/AcousticEchoCancelerEffect.cpp b/audio/effect/2.0/default/AcousticEchoCancelerEffect.cpp
index f6e72bf..7b9ca30 100644
--- a/audio/effect/2.0/default/AcousticEchoCancelerEffect.cpp
+++ b/audio/effect/2.0/default/AcousticEchoCancelerEffect.cpp
@@ -66,6 +66,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> AcousticEchoCancelerEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> AcousticEchoCancelerEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/AcousticEchoCancelerEffect.h b/audio/effect/2.0/default/AcousticEchoCancelerEffect.h
index c777b02..1ac925d 100644
--- a/audio/effect/2.0/default/AcousticEchoCancelerEffect.h
+++ b/audio/effect/2.0/default/AcousticEchoCancelerEffect.h
@@ -54,6 +54,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/AutomaticGainControlEffect.cpp b/audio/effect/2.0/default/AutomaticGainControlEffect.cpp
index 2c386d3..62fe5f7 100644
--- a/audio/effect/2.0/default/AutomaticGainControlEffect.cpp
+++ b/audio/effect/2.0/default/AutomaticGainControlEffect.cpp
@@ -81,6 +81,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> AutomaticGainControlEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> AutomaticGainControlEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/AutomaticGainControlEffect.h b/audio/effect/2.0/default/AutomaticGainControlEffect.h
index 73d94a5..5e1f279 100644
--- a/audio/effect/2.0/default/AutomaticGainControlEffect.h
+++ b/audio/effect/2.0/default/AutomaticGainControlEffect.h
@@ -56,6 +56,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/BassBoostEffect.cpp b/audio/effect/2.0/default/BassBoostEffect.cpp
index 4120e6e..8f35e5f 100644
--- a/audio/effect/2.0/default/BassBoostEffect.cpp
+++ b/audio/effect/2.0/default/BassBoostEffect.cpp
@@ -66,6 +66,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> BassBoostEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> BassBoostEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/BassBoostEffect.h b/audio/effect/2.0/default/BassBoostEffect.h
index 1861937..1e5053b 100644
--- a/audio/effect/2.0/default/BassBoostEffect.h
+++ b/audio/effect/2.0/default/BassBoostEffect.h
@@ -54,6 +54,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/DownmixEffect.cpp b/audio/effect/2.0/default/DownmixEffect.cpp
index 41497d0..92f15bd 100644
--- a/audio/effect/2.0/default/DownmixEffect.cpp
+++ b/audio/effect/2.0/default/DownmixEffect.cpp
@@ -66,6 +66,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> DownmixEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> DownmixEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/DownmixEffect.h b/audio/effect/2.0/default/DownmixEffect.h
index 1d4c3a9..125f34d 100644
--- a/audio/effect/2.0/default/DownmixEffect.h
+++ b/audio/effect/2.0/default/DownmixEffect.h
@@ -54,6 +54,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/Effect.cpp b/audio/effect/2.0/default/Effect.cpp
index 9ca5834..3c97fc4 100644
--- a/audio/effect/2.0/default/Effect.cpp
+++ b/audio/effect/2.0/default/Effect.cpp
@@ -533,6 +533,14 @@
return Void();
}
+Return<Result> Effect::volumeChangeNotification(const hidl_vec<uint32_t>& volumes) {
+ uint32_t halDataSize;
+ std::unique_ptr<uint8_t[]> halData = hidlVecToHal(volumes, &halDataSize);
+ return sendCommand(
+ EFFECT_CMD_SET_VOLUME, "SET_VOLUME",
+ halDataSize, &halData[0]);
+}
+
Return<Result> Effect::setAudioMode(AudioMode mode) {
uint32_t halMode = static_cast<uint32_t>(mode);
return sendCommand(
@@ -641,10 +649,13 @@
uint32_t halResultSize = resultMaxSize;
std::unique_ptr<uint8_t[]> halResult(new uint8_t[halResultSize]);
memset(&halResult[0], 0, halResultSize);
+
+ void* dataPtr = halDataSize > 0 ? &halData[0] : NULL;
+ void* resultPtr = halResultSize > 0 ? &halResult[0] : NULL;
status_t status = (*mHandle)->command(
- mHandle, commandId, halDataSize, &halData[0], &halResultSize, &halResult[0]);
+ mHandle, commandId, halDataSize, dataPtr, &halResultSize, resultPtr);
hidl_vec<uint8_t> result;
- if (status == OK) {
+ if (status == OK && resultPtr != NULL) {
result.setToExternal(&halResult[0], halResultSize);
}
_hidl_cb(status, result);
diff --git a/audio/effect/2.0/default/Effect.h b/audio/effect/2.0/default/Effect.h
index 8daffb8..13faec4 100644
--- a/audio/effect/2.0/default/Effect.h
+++ b/audio/effect/2.0/default/Effect.h
@@ -75,6 +75,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/EnvironmentalReverbEffect.cpp b/audio/effect/2.0/default/EnvironmentalReverbEffect.cpp
index 2c1fd68..86ff368 100644
--- a/audio/effect/2.0/default/EnvironmentalReverbEffect.cpp
+++ b/audio/effect/2.0/default/EnvironmentalReverbEffect.cpp
@@ -95,6 +95,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> EnvironmentalReverbEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> EnvironmentalReverbEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/EnvironmentalReverbEffect.h b/audio/effect/2.0/default/EnvironmentalReverbEffect.h
index d0c8962..794caac 100644
--- a/audio/effect/2.0/default/EnvironmentalReverbEffect.h
+++ b/audio/effect/2.0/default/EnvironmentalReverbEffect.h
@@ -66,6 +66,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/EqualizerEffect.cpp b/audio/effect/2.0/default/EqualizerEffect.cpp
index 833ea5b..223716c 100644
--- a/audio/effect/2.0/default/EqualizerEffect.cpp
+++ b/audio/effect/2.0/default/EqualizerEffect.cpp
@@ -86,6 +86,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> EqualizerEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> EqualizerEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/EqualizerEffect.h b/audio/effect/2.0/default/EqualizerEffect.h
index 200ca1a..c9bed4f 100644
--- a/audio/effect/2.0/default/EqualizerEffect.h
+++ b/audio/effect/2.0/default/EqualizerEffect.h
@@ -68,6 +68,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/LoudnessEnhancerEffect.cpp b/audio/effect/2.0/default/LoudnessEnhancerEffect.cpp
index 1f7124b..e58b42c 100644
--- a/audio/effect/2.0/default/LoudnessEnhancerEffect.cpp
+++ b/audio/effect/2.0/default/LoudnessEnhancerEffect.cpp
@@ -68,6 +68,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> LoudnessEnhancerEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> LoudnessEnhancerEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/LoudnessEnhancerEffect.h b/audio/effect/2.0/default/LoudnessEnhancerEffect.h
index 308c47f..039b8d6 100644
--- a/audio/effect/2.0/default/LoudnessEnhancerEffect.h
+++ b/audio/effect/2.0/default/LoudnessEnhancerEffect.h
@@ -64,6 +64,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/NoiseSuppressionEffect.cpp b/audio/effect/2.0/default/NoiseSuppressionEffect.cpp
index b0b929f..7c4e06d 100644
--- a/audio/effect/2.0/default/NoiseSuppressionEffect.cpp
+++ b/audio/effect/2.0/default/NoiseSuppressionEffect.cpp
@@ -79,6 +79,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> NoiseSuppressionEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> NoiseSuppressionEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/NoiseSuppressionEffect.h b/audio/effect/2.0/default/NoiseSuppressionEffect.h
index 5e3a5c1..5491201 100644
--- a/audio/effect/2.0/default/NoiseSuppressionEffect.h
+++ b/audio/effect/2.0/default/NoiseSuppressionEffect.h
@@ -66,6 +66,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/PresetReverbEffect.cpp b/audio/effect/2.0/default/PresetReverbEffect.cpp
index 803c9be..5f17791 100644
--- a/audio/effect/2.0/default/PresetReverbEffect.cpp
+++ b/audio/effect/2.0/default/PresetReverbEffect.cpp
@@ -66,6 +66,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> PresetReverbEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> PresetReverbEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/PresetReverbEffect.h b/audio/effect/2.0/default/PresetReverbEffect.h
index f6a900c..4eb074a 100644
--- a/audio/effect/2.0/default/PresetReverbEffect.h
+++ b/audio/effect/2.0/default/PresetReverbEffect.h
@@ -64,6 +64,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/VirtualizerEffect.cpp b/audio/effect/2.0/default/VirtualizerEffect.cpp
index 4f193e7..c1fe52f 100644
--- a/audio/effect/2.0/default/VirtualizerEffect.cpp
+++ b/audio/effect/2.0/default/VirtualizerEffect.cpp
@@ -78,6 +78,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> VirtualizerEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> VirtualizerEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/VirtualizerEffect.h b/audio/effect/2.0/default/VirtualizerEffect.h
index 5b0773d..536775f 100644
--- a/audio/effect/2.0/default/VirtualizerEffect.h
+++ b/audio/effect/2.0/default/VirtualizerEffect.h
@@ -65,6 +65,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/audio/effect/2.0/default/VisualizerEffect.cpp b/audio/effect/2.0/default/VisualizerEffect.cpp
index 141817b..2cd3240 100644
--- a/audio/effect/2.0/default/VisualizerEffect.cpp
+++ b/audio/effect/2.0/default/VisualizerEffect.cpp
@@ -66,6 +66,11 @@
return mEffect->setAndGetVolume(volumes, _hidl_cb);
}
+Return<Result> VisualizerEffect::volumeChangeNotification(
+ const hidl_vec<uint32_t>& volumes) {
+ return mEffect->volumeChangeNotification(volumes);
+}
+
Return<Result> VisualizerEffect::setAudioMode(AudioMode mode) {
return mEffect->setAudioMode(mode);
}
diff --git a/audio/effect/2.0/default/VisualizerEffect.h b/audio/effect/2.0/default/VisualizerEffect.h
index b6dc768..fd40ca8 100644
--- a/audio/effect/2.0/default/VisualizerEffect.h
+++ b/audio/effect/2.0/default/VisualizerEffect.h
@@ -64,6 +64,7 @@
Return<Result> setDevice(AudioDevice device) override;
Return<void> setAndGetVolume(
const hidl_vec<uint32_t>& volumes, setAndGetVolume_cb _hidl_cb) override;
+ Return<Result> volumeChangeNotification(const hidl_vec<uint32_t>& volumes) override;
Return<Result> setAudioMode(AudioMode mode) override;
Return<Result> setConfigReverse(
const EffectConfig& config,
diff --git a/biometrics/fingerprint/2.1/default/Android.mk b/biometrics/fingerprint/2.1/default/Android.mk
index cd29b30..e5c79fe 100644
--- a/biometrics/fingerprint/2.1/default/Android.mk
+++ b/biometrics/fingerprint/2.1/default/Android.mk
@@ -9,11 +9,13 @@
service.cpp \
LOCAL_SHARED_LIBRARIES := \
+ libbinder \
liblog \
libhidlbase \
libhidltransport \
libhardware \
libhwbinder \
+ libkeystore_binder \
libutils \
android.hardware.biometrics.fingerprint@2.1 \
diff --git a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp
index 9167e70..eb28e46 100644
--- a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp
+++ b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp
@@ -15,6 +15,12 @@
*/
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service"
+// For communication with Keystore binder interface
+#include <binder/IServiceManager.h>
+#include <keystore/IKeystoreService.h>
+#include <keystore/keystore.h> // for error codes
+#include <hardware/hw_auth_token.h>
+
#include <hardware/hardware.h>
#include <hardware/fingerprint.h>
#include "BiometricsFingerprint.h"
@@ -235,6 +241,23 @@
return new BiometricsFingerprint(fp_device);
}
+void BiometricsFingerprint::notifyKeystore(const uint8_t *auth_token, const size_t auth_token_length) {
+ if (auth_token != nullptr && auth_token_length > 0) {
+ // TODO: cache service?
+ sp<IServiceManager> sm = android::defaultServiceManager();
+ sp<IBinder> binder = sm->getService(String16("android.security.keystore"));
+ sp<IKeystoreService> service = interface_cast<IKeystoreService>(binder);
+ if (service != nullptr) {
+ status_t ret = service->addAuthToken(auth_token, auth_token_length);
+ if (ret != ResponseCode::NO_ERROR) {
+ ALOGE("Falure sending auth token to KeyStore: %d", ret);
+ }
+ } else {
+ ALOGE("Unable to communicate with KeyStore");
+ }
+ }
+}
+
} // namespace implementation
} // namespace V2_1
} // namespace fingerprint
diff --git a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
index bc85c1c..1f44a1c 100644
--- a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
+++ b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
@@ -95,6 +95,11 @@
msg->data.removed.remaining_templates);
break;
case FINGERPRINT_AUTHENTICATED:
+ if (msg->data.authenticated.finger.fid != 0) {
+ const uint8_t* hat =
+ reinterpret_cast<const uint8_t *>(&msg->data.authenticated.hat);
+ notifyKeystore(hat, sizeof(msg->data.authenticated.hat));
+ }
mClientCallback->onAuthenticated(devId,
msg->data.authenticated.finger.fid,
msg->data.authenticated.finger.gid);
@@ -109,6 +114,7 @@
}
private:
Return<RequestStatus> ErrorFilter(int32_t error);
+ static void notifyKeystore(const uint8_t *auth_token, const size_t auth_token_length);
static FingerprintError VendorErrorFilter(int32_t error,
int32_t* vendorCode);
static FingerprintAcquiredInfo VendorAcquiredFilter(int32_t error,
diff --git a/boot/Android.mk b/boot/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/boot/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/broadcastradio/Android.mk b/broadcastradio/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/broadcastradio/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/graphics/Android.mk b/graphics/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/graphics/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/health/Android.mk b/health/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/health/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/keymaster/3.0/types.hal b/keymaster/3.0/types.hal
index e99e9c8..7123e57 100644
--- a/keymaster/3.0/types.hal
+++ b/keymaster/3.0/types.hal
@@ -241,6 +241,7 @@
SIGN = 2, /* Usable with RSA, EC and HMAC keys. */
VERIFY = 3, /* Usable with RSA, EC and HMAC keys. */
DERIVE_KEY = 4, /* Usable with EC keys. */
+ WRAP_KEY = 5, /* Usable with wrapping keys. */
};
/**
diff --git a/light/Android.mk b/light/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/light/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/memtrack/Android.mk b/memtrack/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/memtrack/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/nfc/1.0/vts/functional/nfc_hidl_hal_test.cpp b/nfc/1.0/vts/functional/nfc_hidl_hal_test.cpp
index 521f17f..a50d88f 100644
--- a/nfc/1.0/vts/functional/nfc_hidl_hal_test.cpp
+++ b/nfc/1.0/vts/functional/nfc_hidl_hal_test.cpp
@@ -53,13 +53,11 @@
#define VERSION 0x11
#define TIMEOUT_PERIOD 5
-static bool passthrough = true;
-
// The main test class for NFC HIDL HAL.
class NfcHidlTest : public ::testing::Test {
public:
virtual void SetUp() override {
- nfc_ = INfc::getService(passthrough);
+ nfc_ = INfc::getService();
ASSERT_NE(nfc_, nullptr);
nfc_cb_ = new NfcClientCallback(*this);
@@ -336,12 +334,6 @@
::testing::AddGlobalTestEnvironment(new NfcHidlEnvironment);
::testing::InitGoogleTest(&argc, argv);
- for (int i = 0; i < argc; i++) {
- if (strstr(argv[i], "passthrough=false") != nullptr) {
- passthrough = false;
- break;
- }
- }
std::system("svc nfc disable"); /* Turn off NFC */
sleep(5);
diff --git a/nfc/Android.mk b/nfc/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/nfc/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/power/Android.mk b/power/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/power/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/radio/1.0/vts/Android.mk b/radio/1.0/vts/Android.mk
index df5dac8..4e1fb84 100644
--- a/radio/1.0/vts/Android.mk
+++ b/radio/1.0/vts/Android.mk
@@ -16,4 +16,4 @@
LOCAL_PATH := $(call my-dir)
-include $(call all-subdir-makefiles)
\ No newline at end of file
+include $(LOCAL_PATH)/functional/vts/testcases/hal/radio/hidl/Android.mk
\ No newline at end of file
diff --git a/radio/1.0/vts/functional/vts/testcases/hal/radio/__init__.py b/radio/1.0/vts/functional/vts/testcases/hal/radio/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/radio/1.0/vts/functional/vts/testcases/hal/radio/__init__.py
diff --git a/radio/Android.mk b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/Android.mk
similarity index 100%
rename from radio/Android.mk
rename to radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/Android.mk
diff --git a/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/__init__.py b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/__init__.py
diff --git a/audio/Android.mk b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/Android.mk
similarity index 79%
rename from audio/Android.mk
rename to radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/Android.mk
index f9e3276..59f7c85 100644
--- a/audio/Android.mk
+++ b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/Android.mk
@@ -16,4 +16,8 @@
LOCAL_PATH := $(call my-dir)
-include $(call all-subdir-makefiles)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := RadioHidlTest
+VTS_CONFIG_SRC_DIR := testcases/hal/radio/hidl/host
+include test/vts/tools/build/Android.host_config.mk
\ No newline at end of file
diff --git a/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/AndroidTest.xml b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/AndroidTest.xml
new file mode 100644
index 0000000..a826d20
--- /dev/null
+++ b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/AndroidTest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+<configuration description="Config for VTS HAL Radio test cases">
+ <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+ <option name="push-group" value="HidlHalTest.push" />
+ <option name="cleanup" value="true" />
+ <option name="push" value="spec/hardware/interfaces/radio/1.0/vts/Radio.vts->/data/local/tmp/spec/Radio.vts" />
+ <option name="push" value="spec/hardware/interfaces/radio/1.0/vts/RadioIndication.vts->/data/local/tmp/spec/RadioIndication.vts" />
+ <option name="push" value="spec/hardware/interfaces/radio/1.0/vts/RadioResponse.vts->/data/local/tmp/spec/RadioResponse.vts" />
+ <option name="push" value="spec/hardware/interfaces/radio/1.0/vts/Sap.vts->/data/local/tmp/spec/Sap.vts" />
+ <option name="push" value="spec/hardware/interfaces/radio/1.0/vts/SapCallback.vts->/data/local/tmp/spec/SapCallback.vts" />
+ <option name="push" value="spec/hardware/interfaces/radio/1.0/vts/types.vts->/data/local/tmp/spec/types.vts" />
+ </target_preparer>
+ <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
+ <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+ <option name="test-module-name" value="RadioHidlTest" />
+ <option name="test-case-path" value="vts/testcases/hal/radio/hidl/host/RadioHidlTest" />
+ </test>
+</configuration>
diff --git a/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/RadioHidlTest.py b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/RadioHidlTest.py
new file mode 100644
index 0000000..33dac35
--- /dev/null
+++ b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/RadioHidlTest.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3.4
+#
+# Copyright (C) 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.
+#
+
+import logging
+import time
+
+from vts.runners.host import asserts
+from vts.runners.host import base_test_with_webdb
+from vts.runners.host import test_runner
+from vts.utils.python.controllers import android_device
+from vts.utils.python.profiling import profiling_utils
+
+
+class VehicleHidlTest(base_test_with_webdb.BaseTestWithWebDbClass):
+ """A simple testcase for the VEHICLE HIDL HAL."""
+
+ def setUpClass(self):
+ """Creates a mirror and init vehicle hal."""
+ self.dut = self.registerController(android_device)[0]
+
+ self.dut.shell.InvokeTerminal("one")
+ self.dut.shell.one.Execute("setenforce 0") # SELinux permissive mode
+
+ if self.enable_profiling:
+ profiling_utils.EnableVTSProfiling(self.dut.shell.one)
+
+ self.dut.hal.InitHidlHal(
+ target_type="radio",
+ target_basepaths=self.dut.libPaths,
+ target_version=1.0,
+ target_package="android.hardware.radio",
+ target_component_name="IRadio",
+ hw_binder_service_name="Radio",
+ bits=64 if self.dut.is64Bit else 32)
+
+ self.radio = self.dut.hal.radio # shortcut
+ self.radio_types = self.dut.hal.radio.GetHidlTypeInterface("types")
+ logging.info("Radio types: %s", self.radio_types)
+
+ def tearDownClass(self):
+ """Disables the profiling.
+
+ If profiling is enabled for the test, collect the profiling data
+ and disable profiling after the test is done.
+ """
+ if self.enable_profiling:
+ profiling_trace_path = getattr(
+ self, self.VTS_PROFILING_TRACING_PATH, "")
+ self.ProcessAndUploadTraceData(self.dut, profiling_trace_path)
+ profiling_utils.DisableVTSProfiling(self.dut.shell.one)
+
+ def testHelloWorld(self):
+ logging.info('hello world')
+
+
+if __name__ == "__main__":
+ test_runner.main()
diff --git a/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/__init__.py b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/radio/1.0/vts/functional/vts/testcases/hal/radio/hidl/host/__init__.py
diff --git a/radio/1.0/vts/types.vts b/radio/1.0/vts/types.vts
index cec9b6d..c11db63 100644
--- a/radio/1.0/vts/types.vts
+++ b/radio/1.0/vts/types.vts
@@ -2730,23 +2730,23 @@
enumerator: "GSM"
scalar_value: {
- int32_t: 0
+ int32_t: 1
}
enumerator: "CDMA"
scalar_value: {
- int32_t: 1
+ int32_t: 2
}
enumerator: "LTE"
scalar_value: {
- int32_t: 2
+ int32_t: 3
}
enumerator: "WCDMA"
scalar_value: {
- int32_t: 3
+ int32_t: 4
}
enumerator: "TD_SCDMA"
scalar_value: {
- int32_t: 4
+ int32_t: 5
}
}
}
diff --git a/sensors/Android.mk b/sensors/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/sensors/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/soundtrigger/Android.mk b/soundtrigger/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/soundtrigger/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/tests/Android.mk b/tests/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/tests/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/thermal/Android.mk b/thermal/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/thermal/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/tv/Android.mk b/tv/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/tv/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/vehicle/Android.mk b/vehicle/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/vehicle/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/vibrator/Android.mk b/vibrator/Android.mk
deleted file mode 100644
index f9e3276..0000000
--- a/vibrator/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
diff --git a/wifi/1.0/IWifiChip.hal b/wifi/1.0/IWifiChip.hal
index d790404..b0598a4 100644
--- a/wifi/1.0/IWifiChip.hal
+++ b/wifi/1.0/IWifiChip.hal
@@ -205,7 +205,8 @@
* |WifiStatusCode.ERROR_UNKNOWN|
* @return capabilities Bitset of |ChipCapabilityMask| values.
*/
- getCapabilities() generates (WifiStatus status, uint32_t capabilities);
+ getCapabilities()
+ generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities);
/**
* Get the set of operation modes that the chip supports.
diff --git a/wifi/1.0/IWifiStaIface.hal b/wifi/1.0/IWifiStaIface.hal
index 7dad8af..6a738a9 100644
--- a/wifi/1.0/IWifiStaIface.hal
+++ b/wifi/1.0/IWifiStaIface.hal
@@ -120,7 +120,9 @@
* |WifiStatusCode.ERROR_UNKNOWN|
* @return capabilities Bitset of |StaIfaceCapabilityMask| values.
*/
- getCapabilities() generates (WifiStatus status, uint32_t capabilities);
+ getCapabilities()
+ generates (WifiStatus status,
+ bitfield<StaIfaceCapabilityMask> capabilities);
/**
* Used to query additional information about the chip's APF capabilities.
diff --git a/wifi/1.0/types.hal b/wifi/1.0/types.hal
index 1e86be4..edf306d 100644
--- a/wifi/1.0/types.hal
+++ b/wifi/1.0/types.hal
@@ -254,7 +254,7 @@
* Bands that can be specified in Background scan requests.
*/
enum StaBackgroundScanBand : uint32_t {
- BAND_UNSPECIFIED,
+ BAND_UNSPECIFIED = 0,
/**
* 2.4 GHz.
*/
@@ -325,10 +325,10 @@
*/
uint32_t periodInMs;
/**
- * Bitset of |BackgroundScanBucketEventReportSchemeMask| values controlling
+ * Bitset of |StaBackgroundScanBucketEventReportSchemeMask| values controlling
* when events for this bucket must be reported.
*/
- uint32_t eventReportScheme;
+ bitfield<StaBackgroundScanBucketEventReportSchemeMask> eventReportScheme;
/**
* For exponential back off. If |exponentialMaxPeriodInMs| is non zero or
* different than period, then this bucket is an exponential backoff bucket
@@ -503,7 +503,7 @@
/**
* Bitset containing |ScanDataFlagMask| values.
*/
- uint32_t flags;
+ bitfield<StaScanDataFlagMask> flags;
/**
* Bitset where each bit indicates if the bucket with that index was
* scanned.
@@ -843,6 +843,23 @@
};
/**
+ * Cipher suite flags - to be used as a bitmask.
+ */
+enum NanCipherSuiteType : uint32_t {
+ SHARED_KEY_128_MASK = 1 << 0,
+ SHARED_KEY_256_MASK = 1 << 1
+};
+
+/**
+ * Ranging in the context of discovery sessions indication controls - to be used as a bitmask.
+ */
+enum NanRangingIndication : uint32_t {
+ CONTINUOUS_INDICATION_MASK = 1 << 0,
+ INGRESS_MET_MASK = 1 << 1,
+ EGRESS_MET_MASK = 1 << 2
+};
+
+/**
* Configurations of NAN discovery sessions: common to publish and subscribe discovery.
*/
struct NanDiscoveryCommonConfig {
@@ -921,7 +938,7 @@
* Cipher types supported in data-paths constructed in the context of this discovery session. The
* |NanCipherSuiteType| bit fields are used to set this value.
*/
- uint32_t supportedCipherTypes;
+ bitfield<NanCipherSuiteType> supportedCipherTypes;
/**
* Optional PMK for data-paths constructed in the context of this discovery session. A PMK could
* also be provided during the actual construction of the data-path (which allows unique PMKs for
@@ -949,7 +966,7 @@
* The type of ranging indication feedback to be provided by discovery session matches. Use
* bit-fields from |NanRangingIndication|.
*/
- uint32_t configRangingIndications;
+ bitfield<NanRangingIndication> configRangingIndications;
/**
* The ingress and egress distance in cm. If ranging is eanbled (|rangingEnabled| is true) then
* \configRangingIndications\ is used to determine whether ingress and/or egress (or neither)
@@ -960,23 +977,6 @@
};
/**
- * Cipher suite flags - to be used as a bitmask.
- */
-enum NanCipherSuiteType : uint32_t {
- SHARED_KEY_128_MASK = 1 << 0,
- SHARED_KEY_256_MASK = 1 << 1
-};
-
-/**
- * Ranging in the context of discovery sessions indication controls - to be used as a bitmask.
- */
-enum NanRangingIndication : uint32_t {
- CONTINUOUS_INDICATION_MASK = 1 << 0,
- INGRESS_MET_MASK = 1 << 1,
- EGRESS_MET_MASK = 1 << 2
-};
-
-/**
* Publish request: specifies a publish discovery operation.
*/
struct NanPublishRequest {
@@ -1111,7 +1111,7 @@
* Cipher types supported in data-paths constructed in the context of this discovery session. The
* |NanCipherSuiteType| bit fields are used to set this value.
*/
- uint32_t supportedCipherTypes;
+ bitfield<NanCipherSuiteType> supportedCipherTypes;
/**
* PMK of the data-path being requested (if |securityRequired| is true).
* Max length: 32
@@ -1150,7 +1150,7 @@
* Cipher types supported in data-paths constructed in the context of this discovery session. The
* |NanCipherSuiteType| bit fields are used to set this value.
*/
- uint32_t supportedCipherTypes;
+ bitfield<NanCipherSuiteType> supportedCipherTypes;
/**
* PMK of the data-path being requested (if |securityRequired| is true).
* Max length: 32
@@ -1243,7 +1243,7 @@
/**
* The set of supported Cipher suites. The |NanCipherSuiteType| bit fields are used.
*/
- uint32_t supportedCipherSuites;
+ bitfield<NanCipherSuiteType> supportedCipherSuites;
};
/**
@@ -1294,7 +1294,7 @@
* Cipher types supported by the peer for data-paths constructed in the context of this discovery
* session. The |NanCipherSuiteType| bit fields are used to set this value.
*/
- uint32_t peerSupportedCipherTypes;
+ bitfield<NanCipherSuiteType> peerSupportedCipherTypes;
/**
* Indicates whether or not the peer requires security enabled in any data-path (NDP) constructed
* in the context of this discovery session.
@@ -1327,7 +1327,7 @@
* The ranging event(s) which triggered the ranging. Uses bit-fields from |NanRangingIndication|.
* E.g. can indicate that continuous ranging is required, or else that an ingress event occurred.
*/
- uint32_t rangingIndicationType;
+ bitfield<NanRangingIndication> rangingIndicationType;
};
/**
@@ -1421,7 +1421,7 @@
* Frames on which this vendor specific attribute was received.
* Mask |NanVsaRxFrameMask| defined above.
*/
- uint8_t vsaReceivedOnFrames;
+ bitfield<NanVsaRxFrameMask> vsaReceivedOnFrames;
/**
* Organizationally Unique Identifier (OUI) of the vendor-specific attribute.
*/
@@ -1811,12 +1811,12 @@
* Bit mask indicates what preamble is supported by initiator.
* Combination of |RttPreamble| values.
*/
- uint8_t preambleSupport;
+ bitfield<RttPreamble> preambleSupport;
/**
* Bit mask indicates what BW is supported by initiator.
* Combination of |RttBw| values.
*/
- uint8_t bwSupport;
+ bitfield<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.
diff --git a/wifi/1.0/vts/Wifi.vts b/wifi/1.0/vts/Wifi.vts
new file mode 100644
index 0000000..608e012
--- /dev/null
+++ b/wifi/1.0/vts/Wifi.vts
@@ -0,0 +1,110 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifi"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::IWifiChip"
+import: "android.hardware.wifi@1.0::IWifiEventCallback"
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "registerEventCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IWifiEventCallback"
+ is_callback: true
+ }
+ callflow: {
+ entry: true
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "isStarted"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "start"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ callflow: {
+ entry: true
+ }
+ callflow: {
+ next: "registerEventCallback"
+ next: "start"
+ next: "stop"
+ next: "getChip"
+ }
+ }
+
+ api: {
+ name: "stop"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ callflow: {
+ exit: true
+ }
+ callflow: {
+ next: "registerEventCallback"
+ next: "start"
+ next: "stop"
+ }
+ }
+
+ api: {
+ name: "getChipIds"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "getChip"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiChip"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiApIface.vts b/wifi/1.0/vts/WifiApIface.vts
new file mode 100644
index 0000000..c4f3640
--- /dev/null
+++ b/wifi/1.0/vts/WifiApIface.vts
@@ -0,0 +1,33 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiApIface"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::IWifiIface"
+
+interface: {
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiChip.vts b/wifi/1.0/vts/WifiChip.vts
new file mode 100644
index 0000000..4b278c1
--- /dev/null
+++ b/wifi/1.0/vts/WifiChip.vts
@@ -0,0 +1,545 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiChip"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::IWifiApIface"
+import: "android.hardware.wifi@1.0::IWifiChipEventCallback"
+import: "android.hardware.wifi@1.0::IWifiIface"
+import: "android.hardware.wifi@1.0::IWifiNanIface"
+import: "android.hardware.wifi@1.0::IWifiP2pIface"
+import: "android.hardware.wifi@1.0::IWifiRttController"
+import: "android.hardware.wifi@1.0::IWifiStaIface"
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombinationLimit"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "types"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ }
+ struct_value: {
+ name: "maxIfaces"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombination"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "limits"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombinationLimit"
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::V1_0::IWifiChip::ChipMode"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "id"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "availableCombinations"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombination"
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::V1_0::IWifiChip::ChipDebugInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "driverDescription"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "firmwareDescription"
+ type: TYPE_STRING
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::V1_0::IWifiChip::ChipCapabilityMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "DEBUG_MEMORY_FIRMWARE_DUMP"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "DEBUG_MEMORY_DRIVER_DUMP"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "DEBUG_RING_BUFFER_CONNECT_EVENT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "DEBUG_RING_BUFFER_POWER_EVENT"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "DEBUG_RING_BUFFER_WAKELOCK_EVENT"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "DEBUG_RING_BUFFER_VENDOR_DATA"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "DEBUG_HOST_WAKE_REASON_STATS"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "DEBUG_ERROR_ALERTS"
+ scalar_value: {
+ uint32_t: 128
+ }
+ }
+ }
+
+ api: {
+ name: "getId"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "registerEventCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IWifiChipEventCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "getCapabilities"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipCapabilityMask"
+ }
+ }
+
+ api: {
+ name: "getAvailableModes"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipMode"
+ }
+ }
+ }
+
+ api: {
+ name: "configureChip"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getMode"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "requestChipDebugInfo"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipDebugInfo"
+ }
+ }
+
+ api: {
+ name: "requestDriverDebugDump"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "requestFirmwareDebugDump"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "createApIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiApIface"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "getApIfaceNames"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRING
+ }
+ }
+ }
+
+ api: {
+ name: "getApIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiApIface"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "removeApIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "createNanIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiNanIface"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "getNanIfaceNames"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRING
+ }
+ }
+ }
+
+ api: {
+ name: "getNanIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiNanIface"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "removeNanIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "createP2pIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiP2pIface"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "getP2pIfaceNames"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRING
+ }
+ }
+ }
+
+ api: {
+ name: "getP2pIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiP2pIface"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "removeP2pIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "createStaIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiStaIface"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "getStaIfaceNames"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRING
+ }
+ }
+ }
+
+ api: {
+ name: "getStaIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiStaIface"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "removeStaIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "createRttController"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiRttController"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiIface"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "getDebugRingBuffersStatus"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRingBufferStatus"
+ }
+ }
+ }
+
+ api: {
+ name: "startLoggingToDebugRingBuffer"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRingBufferVerboseLevel"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "forceDumpToDebugRingBuffer"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getDebugHostWakeReasonStats"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonStats"
+ }
+ }
+
+ api: {
+ name: "enableDebugErrorAlerts"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiChipEventCallback.vts b/wifi/1.0/vts/WifiChipEventCallback.vts
new file mode 100644
index 0000000..c755162
--- /dev/null
+++ b/wifi/1.0/vts/WifiChipEventCallback.vts
@@ -0,0 +1,78 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiChipEventCallback"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "onChipReconfigured"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onChipReconfigureFailure"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ }
+
+ api: {
+ name: "onIfaceAdded"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onIfaceRemoved"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onDebugRingBufferDataAvailable"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRingBufferStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onDebugErrorAlert"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiEventCallback.vts b/wifi/1.0/vts/WifiEventCallback.vts
new file mode 100644
index 0000000..a0cf667
--- /dev/null
+++ b/wifi/1.0/vts/WifiEventCallback.vts
@@ -0,0 +1,26 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiEventCallback"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "onStart"
+ }
+
+ api: {
+ name: "onStop"
+ }
+
+ api: {
+ name: "onFailure"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiIface.vts b/wifi/1.0/vts/WifiIface.vts
new file mode 100644
index 0000000..1434a3e
--- /dev/null
+++ b/wifi/1.0/vts/WifiIface.vts
@@ -0,0 +1,33 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiIface"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiNanIface.vts b/wifi/1.0/vts/WifiNanIface.vts
new file mode 100644
index 0000000..663b526
--- /dev/null
+++ b/wifi/1.0/vts/WifiNanIface.vts
@@ -0,0 +1,278 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiNanIface"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::IWifiIface"
+import: "android.hardware.wifi@1.0::IWifiNanIfaceEventCallback"
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "registerEventCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IWifiNanIfaceEventCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "getCapabilitiesRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ }
+
+ api: {
+ name: "enableRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanEnableRequest"
+ }
+ }
+
+ api: {
+ name: "configRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanConfigRequest"
+ }
+ }
+
+ api: {
+ name: "disableRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ }
+
+ api: {
+ name: "startPublishRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanPublishRequest"
+ }
+ }
+
+ api: {
+ name: "stopPublishRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ }
+
+ api: {
+ name: "startSubscribeRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanSubscribeRequest"
+ }
+ }
+
+ api: {
+ name: "stopSubscribeRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ }
+
+ api: {
+ name: "transmitFollowupRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanTransmitFollowupRequest"
+ }
+ }
+
+ api: {
+ name: "createDataInterfaceRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "deleteDataInterfaceRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "initiateDataPathRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanInitiateDataPathRequest"
+ }
+ }
+
+ api: {
+ name: "respondToDataPathIndicationRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanRespondToDataPathIndicationRequest"
+ }
+ }
+
+ api: {
+ name: "terminateDataPathRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "beaconSdfPayloadRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanBeaconSdfPayloadRequest"
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiNanIfaceEventCallback.vts b/wifi/1.0/vts/WifiNanIfaceEventCallback.vts
new file mode 100644
index 0000000..30ca88a
--- /dev/null
+++ b/wifi/1.0/vts/WifiNanIfaceEventCallback.vts
@@ -0,0 +1,318 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiNanIfaceEventCallback"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "notifyCapabilitiesResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanCapabilities"
+ }
+ }
+
+ api: {
+ name: "notifyEnableResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyConfigResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyDisableResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyStartPublishResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ }
+
+ api: {
+ name: "notifyStopPublishResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyStartSubscribeResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ }
+
+ api: {
+ name: "notifyStopSubscribeResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyTransmitFollowupResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyCreateDataInterfaceResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyDeleteDataInterfaceResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyInitiateDataPathResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyRespondToDataPathIndicationResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "notifyTerminateDataPathResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "notifyBeaconSdfPayloadResponse"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "eventClusterEvent"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanClusterEventInd"
+ }
+ }
+
+ api: {
+ name: "eventDisabled"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "eventPublishTerminated"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "eventSubscribeTerminated"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "eventMatch"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanMatchInd"
+ }
+ }
+
+ api: {
+ name: "eventMatchExpired"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "eventFollowupReceived"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanFollowupReceivedInd"
+ }
+ }
+
+ api: {
+ name: "eventTransmitFollowup"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+ }
+
+ api: {
+ name: "eventDataPathRequest"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanDataPathRequestInd"
+ }
+ }
+
+ api: {
+ name: "eventDataPathConfirm"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanDataPathConfirmInd"
+ }
+ }
+
+ api: {
+ name: "eventDataPathTerminated"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "eventBeaconSdfPayload"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanBeaconSdfPayloadInd"
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiP2pIface.vts b/wifi/1.0/vts/WifiP2pIface.vts
new file mode 100644
index 0000000..b40c81e
--- /dev/null
+++ b/wifi/1.0/vts/WifiP2pIface.vts
@@ -0,0 +1,33 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiP2pIface"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::IWifiIface"
+
+interface: {
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiRttController.vts b/wifi/1.0/vts/WifiRttController.vts
new file mode 100644
index 0000000..0fd3626
--- /dev/null
+++ b/wifi/1.0/vts/WifiRttController.vts
@@ -0,0 +1,172 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiRttController"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::IWifiIface"
+import: "android.hardware.wifi@1.0::IWifiRttControllerEventCallback"
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "getBoundIface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "IWifiIface"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "registerEventCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IWifiRttControllerEventCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "rangeRequest"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::RttConfig"
+ }
+ }
+ }
+
+ api: {
+ name: "rangeCancel"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+ }
+
+ api: {
+ name: "getCapabilities"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::RttCapabilities"
+ }
+ }
+
+ api: {
+ name: "setLci"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::RttLciInformation"
+ }
+ }
+
+ api: {
+ name: "setLcr"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::RttLcrInformation"
+ }
+ }
+
+ api: {
+ name: "getResponderInfo"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::RttResponder"
+ }
+ }
+
+ api: {
+ name: "enableResponder"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiChannelInfo"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::RttResponder"
+ }
+ }
+
+ api: {
+ name: "disableResponder"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiRttControllerEventCallback.vts b/wifi/1.0/vts/WifiRttControllerEventCallback.vts
new file mode 100644
index 0000000..028fd03
--- /dev/null
+++ b/wifi/1.0/vts/WifiRttControllerEventCallback.vts
@@ -0,0 +1,25 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiRttControllerEventCallback"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "onResults"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::RttResult"
+ }
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiStaIface.vts b/wifi/1.0/vts/WifiStaIface.vts
new file mode 100644
index 0000000..0cff792
--- /dev/null
+++ b/wifi/1.0/vts/WifiStaIface.vts
@@ -0,0 +1,432 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiStaIface"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::IWifiIface"
+import: "android.hardware.wifi@1.0::IWifiStaIfaceEventCallback"
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::V1_0::IWifiStaIface::StaIfaceCapabilityMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "APF"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "BACKGROUND_SCAN"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "LINK_LAYER_STATS"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "RSSI_MONITOR"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "CONTROL_ROAMING"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "PROBE_IE_WHITELIST"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "SCAN_RAND"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "STA_5G"
+ scalar_value: {
+ uint32_t: 128
+ }
+ enumerator: "HOTSPOT"
+ scalar_value: {
+ uint32_t: 256
+ }
+ enumerator: "PNO"
+ scalar_value: {
+ uint32_t: 512
+ }
+ enumerator: "TDLS"
+ scalar_value: {
+ uint32_t: 1024
+ }
+ enumerator: "TDLS_OFFCHANNEL"
+ scalar_value: {
+ uint32_t: 2048
+ }
+ enumerator: "ND_OFFLOAD"
+ scalar_value: {
+ uint32_t: 4096
+ }
+ enumerator: "KEEP_ALIVE"
+ scalar_value: {
+ uint32_t: 8192
+ }
+ enumerator: "DEBUG_PACKET_FATE"
+ scalar_value: {
+ uint32_t: 16384
+ }
+ }
+ }
+
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "registerEventCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IWifiStaIfaceEventCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "getCapabilities"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIface::StaIfaceCapabilityMask"
+ }
+ }
+
+ api: {
+ name: "getApfPacketFilterCapabilities"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaApfPacketFilterCapabilities"
+ }
+ }
+
+ api: {
+ name: "installApfPacketFilter"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getBackgroundScanCapabilities"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanCapabilities"
+ }
+ }
+
+ api: {
+ name: "getValidFrequenciesForBackgroundScan"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBand"
+ }
+ }
+
+ api: {
+ name: "startBackgroundScan"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanParameters"
+ }
+ }
+
+ api: {
+ name: "stopBackgroundScan"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "enableLinkLayerStatsCollection"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "disableLinkLayerStatsCollection"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ }
+
+ api: {
+ name: "getLinkLayerStats"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerStats"
+ }
+ }
+
+ api: {
+ name: "startRssiMonitoring"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+
+ api: {
+ name: "stopRssiMonitoring"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getRoamingCapabilities"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaRoamingCapabilities"
+ }
+ }
+
+ api: {
+ name: "configureRoaming"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaRoamingConfig"
+ }
+ }
+
+ api: {
+ name: "setRoamingState"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::StaRoamingState"
+ }
+ }
+
+ api: {
+ name: "enableNdOffload"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "startSendingKeepAlivePackets"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "stopSendingKeepAlivePackets"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "startDebugPacketFateMonitoring"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ }
+
+ api: {
+ name: "stopDebugPacketFateMonitoring"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ }
+
+ api: {
+ name: "getDebugTxPacketFates"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFateReport"
+ }
+ }
+ }
+
+ api: {
+ name: "getDebugRxPacketFates"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFateReport"
+ }
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/WifiStaIfaceEventCallback.vts b/wifi/1.0/vts/WifiStaIfaceEventCallback.vts
new file mode 100644
index 0000000..b04ad26
--- /dev/null
+++ b/wifi/1.0/vts/WifiStaIfaceEventCallback.vts
@@ -0,0 +1,65 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IWifiStaIfaceEventCallback"
+
+package: "android.hardware.wifi"
+
+import: "android.hardware.wifi@1.0::types"
+
+interface: {
+ api: {
+ name: "onBackgroundScanFailure"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onBackgroundFullScanResult"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaScanResult"
+ }
+ }
+
+ api: {
+ name: "onBackgroundScanResults"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaScanData"
+ }
+ }
+ }
+
+ api: {
+ name: "onRssiThresholdBreached"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+
+}
diff --git a/wifi/1.0/vts/types.vts b/wifi/1.0/vts/types.vts
new file mode 100644
index 0000000..fd60d4e
--- /dev/null
+++ b/wifi/1.0/vts/types.vts
@@ -0,0 +1,2846 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.wifi"
+
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiStatusCode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "ERROR_WIFI_CHIP_INVALID"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "ERROR_WIFI_IFACE_INVALID"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "ERROR_WIFI_RTT_CONTROLLER_INVALID"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "ERROR_NOT_SUPPORTED"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "ERROR_NOT_AVAILABLE"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "ERROR_NOT_STARTED"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "ERROR_INVALID_ARGS"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "ERROR_BUSY"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "ERROR_UNKNOWN"
+ scalar_value: {
+ uint32_t: 9
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiStatus"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "code"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiStatusCode"
+ }
+ struct_value: {
+ name: "description"
+ type: TYPE_STRING
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::IfaceType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "STA"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "AP"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "P2P"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "NAN"
+ scalar_value: {
+ uint32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiChannelWidthInMhz"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "WIDTH_20"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "WIDTH_40"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "WIDTH_80"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "WIDTH_160"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "WIDTH_80P80"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "WIDTH_5"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "WIDTH_10"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "WIDTH_INVALID"
+ scalar_value: {
+ uint32_t: 4294967295
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiChannelInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "width"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiChannelWidthInMhz"
+ }
+ struct_value: {
+ name: "centerFreq"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "centerFreq0"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "centerFreq1"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiInformationElement"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "id"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "data"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiRatePreamble"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "OFDM"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "CCK"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "HT"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "VHT"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "RESERVED"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiRateNss"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "NSS_1x1"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "NSS_2x2"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "NSS_3x3"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "NSS_4x4"
+ scalar_value: {
+ uint32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiRateInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "preamble"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiRatePreamble"
+ }
+ struct_value: {
+ name: "nss"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiRateNss"
+ }
+ struct_value: {
+ name: "bw"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiChannelWidthInMhz"
+ }
+ struct_value: {
+ name: "rateMcsIdx"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "bitRateInKbps"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaApfPacketFilterCapabilities"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "version"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxLength"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaBackgroundScanCapabilities"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "maxCacheSize"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxBuckets"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxApCachePerScan"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxReportingThreshold"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaBackgroundScanBand"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "BAND_UNSPECIFIED"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "BAND_24GHZ"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "BAND_5GHZ"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "BAND_5GHZ_DFS"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "BAND_5GHZ_WITH_DFS"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "BAND_24GHZ_5GHZ"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "BAND_24GHZ_5GHZ_WITH_DFS"
+ scalar_value: {
+ uint32_t: 7
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketEventReportSchemeMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "EACH_SCAN"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "FULL_RESULTS"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "NO_BATCH"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketParameters"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "band"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBand"
+ }
+ struct_value: {
+ name: "frequencies"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ struct_value: {
+ name: "periodInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "eventReportScheme"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketEventReportSchemeMask"
+ }
+ struct_value: {
+ name: "exponentialMaxPeriodInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "exponentialBase"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "exponentialStepCount"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaBackgroundScanParameters"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "basePeriodInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxApPerScan"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "reportThresholdPercent"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "reportThresholdNumScans"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "buckets"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketParameters"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "rxMpdu"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "txMpdu"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "lostMpdu"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "retries"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaLinkLayerIfaceStats"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "beaconRx"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "avgRssiMgmt"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "wmeBePktStats"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
+ }
+ struct_value: {
+ name: "wmeBkPktStats"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
+ }
+ struct_value: {
+ name: "wmeViPktStats"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
+ }
+ struct_value: {
+ name: "wmeVoPktStats"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfacePacketStats"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaLinkLayerRadioStats"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "onTimeInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "txTimeInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "txTimeInMsPerLevel"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ struct_value: {
+ name: "rxTimeInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "onTimeInMsForScan"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaLinkLayerStats"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "iface"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerIfaceStats"
+ }
+ struct_value: {
+ name: "radio"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaLinkLayerRadioStats"
+ }
+ struct_value: {
+ name: "timeStampInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaScanResult"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "timeStampInUs"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "ssid"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "bssid"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "rssi"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "frequency"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "beaconPeriodInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "capability"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "informationElements"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiInformationElement"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaScanDataFlagMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "INTERRUPTED"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaScanData"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "flags"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::StaScanDataFlagMask"
+ }
+ struct_value: {
+ name: "bucketsScanned"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "results"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::StaScanResult"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaRoamingCapabilities"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "maxBlacklistSize"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxWhitelistSize"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaRoamingConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "bssidBlacklist"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+ struct_value: {
+ name: "ssidWhitelist"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 32
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::StaRoamingState"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint8_t"
+
+ enumerator: "ENABLED"
+ scalar_value: {
+ uint8_t: 0
+ }
+ enumerator: "DISABLED"
+ scalar_value: {
+ uint8_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanStatusType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "INTERNAL_FAILURE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "PROTOCOL_FAILURE"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "INVALID_SESSION_ID"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "NO_RESOURCES_AVAILABLE"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "INVALID_ARGS"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "INVALID_PEER_ID"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "INVALID_NDP_ID"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "NAN_NOT_ALLOWED"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "NO_OTA_ACK"
+ scalar_value: {
+ uint32_t: 9
+ }
+ enumerator: "ALREADY_ENABLED"
+ scalar_value: {
+ uint32_t: 10
+ }
+ enumerator: "FOLLOWUP_TX_QUEUE_FULL"
+ scalar_value: {
+ uint32_t: 11
+ }
+ enumerator: "UNSUPPORTED_CONCURRENCY_NAN_DISABLED"
+ scalar_value: {
+ uint32_t: 12
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanBandIndex"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "NAN_BAND_24GHZ"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "NAN_BAND_5GHZ"
+ scalar_value: {
+ uint32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "status"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanStatusType"
+ }
+ struct_value: {
+ name: "description"
+ type: TYPE_STRING
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanMatchAlg"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "MATCH_ONCE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "MATCH_CONTINUOUS"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "MATCH_NEVER"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanPublishType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "UNSOLICITED"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "SOLICITED"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "UNSOLICITED_SOLICITED"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanTxType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "BROADCAST"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "UNICAST"
+ scalar_value: {
+ uint32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanSubscribeType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "PASSIVE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "ACTIVE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanSrfType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "BLOOM_FILTER"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "PARTIAL_MAC_ADDR"
+ scalar_value: {
+ uint32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanDataPathChannelCfg"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "CHANNEL_NOT_REQUESTED"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "REQUEST_CHANNEL_SETUP"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "FORCE_CHANNEL_SETUP"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanBandSpecificConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "rssiClose"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "rssiMiddle"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "rssiProximity"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "dwellTimeMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "scanPeriodSec"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "validDiscoveryWindowIntervalVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "discoveryWindowIntervalVal"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanDebugConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "validClusterIdVals"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "clusterIdLowVal"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "clusterIdHighVal"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "validIntfAddrVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "intfAddrVal"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "validOuiVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "ouiVal"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "validRandomFactorForceVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "randomFactorForceVal"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "validHopCountForceVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "hopCountForceVal"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "validDiscoveryChannelVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "discoveryChannelMhzVal"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ struct_value: {
+ name: "validUseBeaconsInBandVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "useBeaconsInBandVal"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+ struct_value: {
+ name: "validUseSdfInBandVal"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "useSdfInBandVal"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanConfigRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "masterPref"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "disableDiscoveryAddressChangeIndication"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "disableStartedClusterIndication"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "disableJoinedClusterIndication"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "includeServiceIdsInBeacon"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "numberOfServiceIdsInBeacon"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "rssiWindowSize"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "macAddressRandomizationIntervalSec"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "acceptRangingRequests"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "bandSpecificConfig"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanBandSpecificConfig"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanEnableRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "operateInBand"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+ struct_value: {
+ name: "hopCountMax"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "configParams"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanConfigRequest"
+ }
+ struct_value: {
+ name: "debugConfigs"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanDebugConfig"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SHARED_KEY_128_MASK"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "SHARED_KEY_256_MASK"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanRangingIndication"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "CONTINUOUS_INDICATION_MASK"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "INGRESS_MET_MASK"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "EGRESS_MET_MASK"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanDiscoveryCommonConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "sessionId"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "ttlSec"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "discoveryWindowPeriod"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "discoveryCount"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "serviceName"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "discoveryMatchIndicator"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanMatchAlg"
+ }
+ struct_value: {
+ name: "serviceSpecificInfo"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "rxMatchFilter"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "txMatchFilter"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "useRssiThreshold"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "disableDiscoveryTerminationIndication"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "disableMatchExpirationIndication"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "disableFollowupReceivedIndication"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "supportedCipherTypes"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
+ }
+ struct_value: {
+ name: "pmk"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "securityEnabledInNdp"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "rangingRequired"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "rangingIntervalMsec"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "configRangingIndications"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+ }
+ struct_value: {
+ name: "distanceIngressCm"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "distanceEgressCm"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanPublishRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "baseConfigs"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanDiscoveryCommonConfig"
+ }
+ struct_value: {
+ name: "publishType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanPublishType"
+ }
+ struct_value: {
+ name: "txType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanTxType"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanSubscribeRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "baseConfigs"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::NanDiscoveryCommonConfig"
+ }
+ struct_value: {
+ name: "subscribeType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanSubscribeType"
+ }
+ struct_value: {
+ name: "srfType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanSrfType"
+ }
+ struct_value: {
+ name: "srfRespondIfInAddressSet"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "shouldUseSrf"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "isSsiRequiredForMatch"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "intfAddr"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanTransmitFollowupRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "discoverySessionId"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "peerId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "addr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "isHighPriority"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "shouldUseDiscoveryWindow"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "message"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "disableFollowupResultIndication"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanInitiateDataPathRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "peerId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "peerDiscMacAddr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "channelRequestType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanDataPathChannelCfg"
+ }
+ struct_value: {
+ name: "channel"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "ifaceName"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "securityRequired"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "appInfo"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "supportedCipherTypes"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
+ }
+ struct_value: {
+ name: "pmk"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanRespondToDataPathIndicationRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "acceptRequest"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "ndpInstanceId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "ifaceName"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "securityRequired"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "appInfo"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "supportedCipherTypes"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
+ }
+ struct_value: {
+ name: "pmk"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanBeaconSdfPayloadRequest"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "transmitInNext16dws"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "transmitInDiscoveryBeacon"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "transmitInSyncBeacon"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "transmitInServiceDiscoveryFrame"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "vendorOui"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "vsa"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanCapabilities"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "maxConcurrentClusters"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxPublishes"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxSubscribes"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxServiceNameLen"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxMatchFilterLen"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxTotalMatchFilterLen"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxServiceSpecificInfoLen"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxVsaDataLen"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxNdiInterfaces"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxNdpSessions"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxAppInfoLen"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxQueuedTransmitFollowupMsgs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxSubscribeInterfaceAddresses"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "supportedCipherSuites"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanMatchInd"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "discoverySessionId"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "peerId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "addr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "serviceSpecificInfo"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "matchFilter"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "matchOccuredInBeaconFlag"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "outOfResourceFlag"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "rssiValue"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "peerSupportedCipherTypes"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
+ }
+ struct_value: {
+ name: "peerRequiresSecurityEnabledInNdp"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "peerRequiresRanging"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "rangingMeasurementInCm"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "rangingIndicationType"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanFollowupReceivedInd"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "discoverySessionId"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "peerId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "addr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "receivedInFaw"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "message"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanClusterEventType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "DISCOVERY_MAC_ADDRESS_CHANGED"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "STARTED_CLUSTER"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "JOINED_CLUSTER"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanClusterEventInd"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "eventType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::NanClusterEventType"
+ }
+ struct_value: {
+ name: "addr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanVsaRxFrameMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "DISCOVERY_BEACON_MASK"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "SYNC_BEACON_MASK"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "SERVICE_DISCOVERY_MASK"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanBeaconSdfPayloadInd"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "addr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "isVsaReceived"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "vsaReceivedOnFrames"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::NanVsaRxFrameMask"
+ }
+ struct_value: {
+ name: "vsaVendorOui"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "vsa"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "isBeaconSdfPayloadReceived"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "beaconSdfPayloadData"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanDataPathRequestInd"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "discoverySessionId"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "peerDiscMacAddr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "ndpInstanceId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "securityRequired"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "appInfo"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::NanDataPathConfirmInd"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "ndpInstanceId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "dataPathSetupSuccess"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "peerNdiMacAddr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "appInfo"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "status"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttStatus"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "FAILURE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "FAIL_NO_RSP"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "FAIL_REJECTED"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "FAIL_NOT_SCHEDULED_YET"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "FAIL_TM_TIMEOUT"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "FAIL_AP_ON_DIFF_CHANNEL"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "FAIL_NO_CAPABILITY"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "ABORTED"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "FAIL_INVALID_TS"
+ scalar_value: {
+ uint32_t: 9
+ }
+ enumerator: "FAIL_PROTOCOL"
+ scalar_value: {
+ uint32_t: 10
+ }
+ enumerator: "FAIL_SCHEDULE"
+ scalar_value: {
+ uint32_t: 11
+ }
+ enumerator: "FAIL_BUSY_TRY_LATER"
+ scalar_value: {
+ uint32_t: 12
+ }
+ enumerator: "INVALID_REQ"
+ scalar_value: {
+ uint32_t: 13
+ }
+ enumerator: "NO_WIFI"
+ scalar_value: {
+ uint32_t: 14
+ }
+ enumerator: "FAIL_FTM_PARAM_OVERRIDE"
+ scalar_value: {
+ uint32_t: 15
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttPeerType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "AP"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "STA"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "P2P_GO"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "P2P_CLIENT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "NAN"
+ scalar_value: {
+ uint32_t: 5
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttBw"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "BW_5MHZ"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "BW_10MHZ"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "BW_20MHZ"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "BW_40MHZ"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "BW_80MHZ"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "BW_160MHZ"
+ scalar_value: {
+ uint32_t: 32
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttPreamble"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "LEGACY"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "HT"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "VHT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "ONE_SIDED"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "TWO_SIDED"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "addr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttType"
+ }
+ struct_value: {
+ name: "peer"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttPeerType"
+ }
+ struct_value: {
+ name: "channel"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiChannelInfo"
+ }
+ struct_value: {
+ name: "burstPeriod"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "numBurst"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "numFramesPerBurst"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "numRetriesPerRttFrame"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "numRetriesPerFtmr"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "mustRequestLci"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "mustRequestLcr"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "burstDuration"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "preamble"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+ }
+ struct_value: {
+ name: "bw"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttBw"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttResult"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "addr"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "burstNum"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "measurementNumber"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "successNumber"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "numberPerBurstPeer"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "status"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttStatus"
+ }
+ struct_value: {
+ name: "retryAfterDuration"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttType"
+ }
+ struct_value: {
+ name: "rssi"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "rssiSpread"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "txRate"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiRateInfo"
+ }
+ struct_value: {
+ name: "rxRate"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiRateInfo"
+ }
+ struct_value: {
+ name: "rtt"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "rttSd"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "rttSpread"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "distanceInMm"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "distanceSdInMm"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "distanceSpreadInMm"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "timeStampInUs"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "burstDurationInMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "negotiatedBurstNum"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "lci"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiInformationElement"
+ }
+ struct_value: {
+ name: "lcr"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiInformationElement"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttCapabilities"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "rttOneSidedSupported"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "rttFtmSupported"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "lciSupported"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "lcrSupported"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "responderSupported"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "preambleSupport"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+ }
+ struct_value: {
+ name: "bwSupport"
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::V1_0::RttBw"
+ }
+ struct_value: {
+ name: "mcVersion"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttMotionPattern"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "NOT_EXPECTED"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "EXPECTED"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "UNKNOWN"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttLciInformation"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "latitude"
+ type: TYPE_SCALAR
+ scalar_type: "int64_t"
+ }
+ struct_value: {
+ name: "longitude"
+ type: TYPE_SCALAR
+ scalar_type: "int64_t"
+ }
+ struct_value: {
+ name: "altitude"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "latitudeUnc"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "longitudeUnc"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "altitudeUnc"
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ struct_value: {
+ name: "motionPattern"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttMotionPattern"
+ }
+ struct_value: {
+ name: "floor"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "heightAboveFloor"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "heightUnc"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttLcrInformation"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "countryCode"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 2
+ type: TYPE_SCALAR
+ scalar_type: "int8_t"
+ }
+ }
+ struct_value: {
+ name: "civicInfo"
+ type: TYPE_STRING
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::RttResponder"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "channel"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiChannelInfo"
+ }
+ struct_value: {
+ name: "preamble"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugRingBufferFlags"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "HAS_BINARY_ENTRIES"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "HAS_ASCII_ENTRIES"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "HAS_PER_PACKET_ENTRIES"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugRingBufferStatus"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "ringName"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "flags"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "ringId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "sizeInBytes"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "freeSizeInBytes"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "verboseLevel"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugRingBufferVerboseLevel"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "DEFAULT"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "VERBOSE"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "EXCESSIVE"
+ scalar_value: {
+ uint32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFate"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "ACKED"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "SENT"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "FW_QUEUED"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "FW_DROP_INVALID"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "FW_DROP_NOBUFS"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "FW_DROP_OTHER"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "DRV_QUEUED"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "DRV_DROP_INVALID"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "DRV_DROP_NOBUFS"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "DRV_DROP_OTHER"
+ scalar_value: {
+ uint32_t: 9
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFate"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "FW_QUEUED"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "FW_DROP_FILTER"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "FW_DROP_INVALID"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "FW_DROP_NOBUFS"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "FW_DROP_OTHER"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "DRV_QUEUED"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "DRV_DROP_FILTER"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "DRV_DROP_INVALID"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "DRV_DROP_NOBUFS"
+ scalar_value: {
+ uint32_t: 9
+ }
+ enumerator: "DRV_DROP_OTHER"
+ scalar_value: {
+ uint32_t: 10
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "UNKNOWN"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "ETHERNET_II"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "MGMT_80211"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "frameType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameType"
+ }
+ struct_value: {
+ name: "frameLen"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "driverTimestampUsec"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "firmwareTimestampUsec"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "frameContent"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFateReport"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "fate"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugTxPacketFate"
+ }
+ struct_value: {
+ name: "frameInfo"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameInfo"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFateReport"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "fate"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugRxPacketFate"
+ }
+ struct_value: {
+ name: "frameInfo"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugPacketFateFrameInfo"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxPacketDetails"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "rxUnicastCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "rxMulticastCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "rxBroadcastCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxMulticastPacketDetails"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "ipv4RxMulticastAddrCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "ipv6RxMulticastAddrCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "otherRxMulticastAddrCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxIcmpPacketDetails"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "icmpPkt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "icmp6Pkt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "icmp6Ra"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "icmp6Na"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "icmp6Ns"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonStats"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "totalCmdEventWakeCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "cmdEventWakeCntPerType"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ struct_value: {
+ name: "totalDriverFwLocalWakeCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "driverFwLocalWakeCntPerType"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ struct_value: {
+ name: "totalRxPacketWakeCnt"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "rxPktWakeDetails"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxPacketDetails"
+ }
+ struct_value: {
+ name: "rxMulticastPkWakeDetails"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxMulticastPacketDetails"
+ }
+ struct_value: {
+ name: "rxIcmpPkWakeDetails"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::V1_0::WifiDebugHostWakeReasonRxIcmpPacketDetails"
+ }
+}
+
diff --git a/wifi/supplicant/1.0/Android.mk b/wifi/supplicant/1.0/Android.mk
index 02a62b6..ad49b0a 100644
--- a/wifi/supplicant/1.0/Android.mk
+++ b/wifi/supplicant/1.0/Android.mk
@@ -36,6 +36,25 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (P2pGroupCapabilityMask)
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/P2pGroupCapabilityMask.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 \
+ -randroid.hidl:system/libhidl/transport \
+ android.hardware.wifi.supplicant@1.0::types.P2pGroupCapabilityMask
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SupplicantStatus)
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/SupplicantStatus.java
@@ -74,6 +93,25 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (WpsConfigMethods)
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/WpsConfigMethods.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 \
+ -randroid.hidl:system/libhidl/transport \
+ android.hardware.wifi.supplicant@1.0::types.WpsConfigMethods
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build ISupplicant.hal
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/ISupplicant.java
@@ -377,6 +415,25 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (P2pGroupCapabilityMask)
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/P2pGroupCapabilityMask.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 \
+ -randroid.hidl:system/libhidl/transport \
+ android.hardware.wifi.supplicant@1.0::types.P2pGroupCapabilityMask
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SupplicantStatus)
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/SupplicantStatus.java
@@ -415,6 +472,25 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (WpsConfigMethods)
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/WpsConfigMethods.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 \
+ -randroid.hidl:system/libhidl/transport \
+ android.hardware.wifi.supplicant@1.0::types.WpsConfigMethods
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build ISupplicant.hal
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/V1_0/ISupplicant.java
diff --git a/wifi/supplicant/1.0/ISupplicantCallback.hal b/wifi/supplicant/1.0/ISupplicantCallback.hal
index a5a0da5..3674cfb 100644
--- a/wifi/supplicant/1.0/ISupplicantCallback.hal
+++ b/wifi/supplicant/1.0/ISupplicantCallback.hal
@@ -37,4 +37,9 @@
* @param ifName Name of the network interface, e.g., wlan0
*/
oneway onInterfaceRemoved(string ifName);
+
+ /**
+ * Used to indicate that the supplicant daemon is terminating.
+ */
+ oneway onTerminating();
};
diff --git a/wifi/supplicant/1.0/ISupplicantIface.hal b/wifi/supplicant/1.0/ISupplicantIface.hal
index 600df30..c0058a0 100644
--- a/wifi/supplicant/1.0/ISupplicantIface.hal
+++ b/wifi/supplicant/1.0/ISupplicantIface.hal
@@ -24,6 +24,17 @@
*/
interface ISupplicantIface {
/**
+ * Size limits for some of the params used in this interface.
+ */
+ enum ParamSizeLimits : uint32_t {
+ WPS_DEVICE_NAME_MAX_LEN = 32,
+ WPS_MANUFACTURER_MAX_LEN = 64,
+ WPS_MODEL_NAME_MAX_LEN = 32,
+ WPS_MODEL_NUMBER_MAX_LEN = 32,
+ WPS_SERIAL_NUMBER_MAX_LEN = 32
+ };
+
+ /**
* Retrieves the name of the network interface.
*
* @return status Status of the operation.
@@ -105,9 +116,92 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|
* @return networkIds List of all network Id's controlled by the supplicant.
*/
listNetworks()
generates (SupplicantStatus status, vec<SupplicantNetworkId> networkIds);
+
+ /**
+ * Set the device name for WPS operations.
+ * User-friendly description of device (up to |WPS_DEVICE_NAME_MAX_LEN|
+ * octets encoded in UTF-8).
+ *
+ * @parm name Name to be set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ */
+ setWpsDeviceName(string name) generates (SupplicantStatus status);
+
+ /**
+ * Set the manufacturer for WPS operations.
+ * The manufacturer of the device (up to |WPS_MANUFACTURER_MAX_LEN| ASCII
+ * characters).
+ *
+ * @parm manufacturer Manufacture to be set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ */
+ setWpsManufacturer(string manufacturer) generates (SupplicantStatus status);
+
+ /**
+ * Set the model name for WPS operations.
+ * Model of the device (up to |WPS_MODEL_NAME_MAX_LEN| ASCII characters).
+ *
+ * @parm modelName Model name to be set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ */
+ setWpsModelName(string modelName) generates (SupplicantStatus status);
+
+ /**
+ * Set the model number for WPS operations.
+ * Additional device description (up to |WPS_MODEL_NUMBER_MAX_LEN| ASCII
+ * characters).
+ *
+ * @parm modelNumber Model number to be set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ */
+ setWpsModelNumber(string modelNumber) generates (SupplicantStatus status);
+
+ /**
+ * Set the serial number for WPS operations.
+ * Serial number of the device (up to |WPS_SERIAL_NUMBER_MAX_LEN| characters)
+ *
+ * @parm serialNumber Serial number to be set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ */
+ setWpsSerialNumber(string serialNumber) generates (SupplicantStatus status);
+
+ /**
+ * Set the list of supported config methods for WPS operations.
+ *
+ * @param configMethods Mask of WPS configuration methods supported by the
+ * device.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ */
+ setWpsConfigMethods(bitfield<WpsConfigMethods> configMethods)
+ generates (SupplicantStatus status);
};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pIface.hal b/wifi/supplicant/1.0/ISupplicantP2pIface.hal
index ddf05cc..45e90f3 100644
--- a/wifi/supplicant/1.0/ISupplicantP2pIface.hal
+++ b/wifi/supplicant/1.0/ISupplicantP2pIface.hal
@@ -40,16 +40,6 @@
KEYPAD
};
- enum GroupCapabilityMask : uint32_t {
- GROUP_OWNER = 1 << 0,
- PERSISTENT_GROUP = 1 << 1,
- GROUP_LIMIT = 1 << 2,
- INTRA_BSS_DIST = 1 << 3,
- CROSS_CONN = 1 << 4,
- PERSISTENT_RECONN = 1 << 5,
- GROUP_FORMATION = 1 << 6
- };
-
/**
* Use to specify a range of frequencies.
* For example: 2412-2432,2462,5000-6000, etc.
@@ -420,10 +410,11 @@
* |SupplicantStatusCode.SUCCESS|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_IFACE_INVALID|
- * @return capabilityMask Combination of |GroupCapabilityMask| values.
+ * @return capabilityMask Combination of |P2pGroupCapabilityMask| values.
*/
getGroupCapability(MacAddress peerAddress)
- generates (SupplicantStatus status, uint32_t capabilities);
+ generates (SupplicantStatus status,
+ bitfield<P2pGroupCapabilityMask> capabilities);
/**
* This command can be used to add a bonjour service.
@@ -533,7 +524,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
setMiracastMode(MiracastMode mode)
generates (SupplicantStatus status);
@@ -548,7 +540,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
startWpsPbc(string groupIfName, Bssid bssid)
generates (SupplicantStatus status);
@@ -561,7 +554,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
startWpsPinKeypad(string groupIfName, string pin)
generates (SupplicantStatus status);
@@ -574,7 +568,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
* @return generatedPin 8 digit pin generated.
*/
startWpsPinDisplay(string groupIfName, Bssid bssid)
@@ -587,7 +582,34 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+
*/
cancelWps(string groupIfName) generates (SupplicantStatus status);
+
+ /**
+ * Enable/Disable Wifi Display.
+ *
+ * @param enable true to enable, false to disable.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ enableWfd(bool enable) generates (SupplicantStatus status);
+
+ /**
+ * Set Wifi Display device info.
+ *
+ * @param info WFD device info as described in section 5.1.2 of WFD technical
+ * specification v1.0.0.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ setWfdDeviceInfo(uint8_t[8] info) generates (SupplicantStatus status);
};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal b/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
index 9ac8b36..ad4290b 100644
--- a/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
+++ b/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
@@ -26,6 +26,50 @@
*/
interface ISupplicantP2pIfaceCallback {
/**
+ * WPS Device Password ID
+ */
+ enum WpsDevPasswordId : uint16_t {
+ DEFAULT = 0x0000,
+ USER_SPECIFIED = 0x0001,
+ MACHINE_SPECIFIED = 0x0002,
+ REKEY = 0x0003,
+ PUSHBUTTON = 0x0004,
+ REGISTRAR_SPECIFIED = 0x0005,
+ NFC_CONNECTION_HANDOVER = 0x0007,
+ P2PS_DEFAULT = 0x0008
+ };
+
+ /**
+ * Status codes for P2P operations.
+ */
+ enum P2pStatusCode : uint32_t {
+ SUCCESS = 0,
+ FAIL_INFO_CURRENTLY_UNAVAILABLE = 1,
+ FAIL_INCOMPATIBLE_PARAMS = 2,
+ FAIL_LIMIT_REACHED = 3,
+ FAIL_INVALID_PARAMS = 4,
+ FAIL_UNABLE_TO_ACCOMMODATE = 5,
+ FAIL_PREV_PROTOCOL_ERROR = 6,
+ FAIL_NO_COMMON_CHANNELS = 7,
+ FAIL_UNKNOWN_GROUP = 8,
+ FAIL_BOTH_GO_INTENT_15 = 9,
+ FAIL_INCOMPATIBLE_PROV_METHOD = 10,
+ FAIL_REJECTED_BY_USER = 11,
+ SUCCESS_DEFERRED = 12,
+ };
+
+ /**
+ * Status codes for P2P discovery.
+ */
+ enum P2pProvDiscStatusCode : uint8_t {
+ SUCCESS = 0,
+ TIMEOUT = 1,
+ REJECTED = 2,
+ TIMEOUT_JOIN = 3,
+ INFO_UNAVAILABLE = 4
+ };
+
+ /**
* Used to indicate that a new network has been added.
*
* @param id Network ID allocated to the corresponding network.
@@ -38,4 +82,192 @@
* @param id Network ID allocated to the corresponding network.
*/
oneway onNetworkRemoved(SupplicantNetworkId id);
+
+ /**
+ * Used to indicate that a P2P device has been found.
+ *
+ * @param srcAddress MAC address of the device found. This must either
+ * be the P2P device address or the P2P interface address.
+ * @param p2pDeviceAddress P2P device address.
+ * @param primaryDeviceType Type of device. Refer to section B.1 of Wifi P2P
+ * Technical specification v1.2.
+ * @param deviceName Name of the device.
+ * @param configMethods Mask of WPS configuration methods supported by the
+ * device.
+ * @param deviceCapabilities Refer to section 4.1.4 of Wifi P2P Technical
+ * specification v1.2.
+ * @param groupCapabilites Refer to section 4.1.4 of Wifi P2P Technical
+ * specification v1.2.
+ * @param wfdDeviceInfo WFD device info as described in section 5.1.2 of WFD
+ * technical specification v1.0.0.
+ */
+ oneway onDeviceFound(
+ MacAddress srcAddress, MacAddress p2pDeviceAddress,
+ uint8_t[8] primaryDeviceType, string deviceName,
+ bitfield<WpsConfigMethods> configMethods, uint8_t deviceCapabilities,
+ bitfield<P2pGroupCapabilityMask> groupCapabilities, uint8_t[8] wfdDeviceInfo);
+
+ /**
+ * Used to indicate that a P2P device has been lost.
+ *
+ * @param p2pDeviceAddress P2P device address.
+ */
+ oneway onDeviceLost(MacAddress p2pDeviceAddress);
+
+ /**
+ * Used to indicate the termination of P2P find operation.
+ */
+ oneway onFindStopped();
+
+ /**
+ * Used to indicate the reception of a P2P Group Owner negotiation request.
+ *
+ * @param srcAddress MAC address of the device that initiated the GO
+ * negotiation request.
+ * @param passwordId Type of password.
+ */
+ oneway onGoNegotiationRequest(
+ MacAddress srcAddress, WpsDevPasswordId passwordId);
+
+ /**
+ * Used to indicate the completion of a P2P Group Owner negotiation request.
+ *
+ * @param status Status of the GO negotiation.
+ */
+ oneway onGoNegotiationCompleted(P2pStatusCode status);
+
+ /**
+ * Used to indicate a successful formation of a P2P group.
+ */
+ oneway onGroupFormationSuccess();
+
+ /**
+ * Used to indicate a failure to form a P2P group.
+ *
+ * @param failureReason Failure reason string for debug purposes.
+ */
+ oneway onGroupFormationFailure(string failureReason);
+
+ /**
+ * Used to indicate the start of a P2P group.
+ *
+ * @param groupIfName Interface name of the group. (For ex: p2p-p2p0-1)
+ * @param isGo Whether this device is owner of the group.
+ * @param ssid SSID of the group.
+ * @param frequency Frequency on which this group is created.
+ * @param psk PSK used to secure the group.
+ * @param passphrase PSK passphrase used to secure the group.
+ * @param goDeviceAddress MAC Address of the owner of this group.
+ * @param isPersistent Whether this group is persisted or not.
+ */
+ oneway onGroupStarted(
+ string groupIfname, bool isGo, Ssid ssid, uint32_t frequency,
+ uint8_t[32] psk, string passphrase, MacAddress goDeviceAddress,
+ bool isPersistent);
+
+ /**
+ * Used to indicate the removal of a P2P group.
+ *
+ * @param groupIfName Interface name of the group. (For ex: p2p-p2p0-1)
+ * @param isGo Whether this device is owner of the group.
+ */
+ oneway onGroupRemoved(string groupIfname, bool isGo);
+
+ /**
+ * Used to indicate the reception of a P2P invitation.
+ *
+ * @param srcAddress MAC address of the device that sent the invitation.
+ * @param goDeviceAddress MAC Address of the owner of this group.
+ * @param Bssid Bssid of the group.
+ * @param persistentNetworkId Persistent network Id of the group.
+ * @param operatingFrequency Frequency on which the invitation was received.
+ */
+ oneway onInvitationReceived(
+ MacAddress srcAddress, MacAddress goDeviceAddress, Bssid bssid,
+ SupplicantNetworkId persistentNetworkId, uint32_t operatingFrequency);
+
+ /**
+ * Used to indicate the result of the P2P invitation request.
+ *
+ * @param Bssid Bssid of the group.
+ * @param status Status of the invitation.
+ */
+ oneway onInvitationResult(Bssid bssid, P2pStatusCode status);
+
+ /**
+ * Used to indicate a push-button request generated during provision discovery.
+ *
+ * @param p2pDeviceAddress P2P device address.
+ */
+ oneway onProvisionDiscoveryPbcRequest(MacAddress p2pDeviceAddress);
+
+ /**
+ * Used to indicate a push-button response generated during provision discovery.
+ *
+ * @param p2pDeviceAddress P2P device address.
+ */
+ oneway onProvisionDiscoveryPbcResponse(MacAddress p2pDeviceAddress);
+
+ /**
+ * Used to indicate the pin generated during provision discovery.
+ *
+ * @param p2pDeviceAddress P2P device address.
+ * @param generatedPin 8 digit pin generated.
+ */
+ oneway onProvisionDiscoveryShowPin(
+ MacAddress p2pDeviceAddress, string generatedPin);
+
+ /**
+ * Used to indicate that a pin needs to be entered during provision discovery.
+ *
+ * @param p2pDeviceAddress P2P device address.
+ */
+ oneway onProvisionDiscoveryEnterPin(MacAddress p2pDeviceAddress);
+
+ /**
+ * Used to indicate a provision discovery failure.
+ *
+ * @param p2pDeviceAddress P2P device address.
+ */
+ oneway onProvisionDiscoveryFailure(MacAddress p2pDeviceAddress);
+
+ /**
+ * Used to indicate the completion of a P2P provision discovery request.
+ *
+ * @param p2pDeviceAddress P2P device address.
+ * @param isRequest Whether we received or sent the provision discovery.
+ * @param status Status of the provision discovery.
+ * @param configMethods Mask of WPS configuration methods supported.
+ * @param generatedPin 8 digit pin generated.
+ */
+ oneway onProvisionDiscoveryCompleted(
+ MacAddress p2pDeviceAddress, bool isRequest, P2pProvDiscStatusCode status,
+ bitfield<WpsConfigMethods> configMethods, string generatedPin);
+
+ /**
+ * Used to indicate the reception of a P2P service discovery response.
+ *
+ * @param srcAddress MAC address of the device that sent the service discovery.
+ * @param updateIndicator Service update indicator. Refer to section 3.1.3 of
+ * Wifi P2P Technical specification v1.2.
+ * @parm tlvs Refer to section 3.1.3.1 of Wifi P2P Technical specification v1.2.
+ */
+ oneway onServiceDiscoveryResponse(
+ MacAddress srcAddress, uint16_t updateIndicator, vec<uint8_t> tlvs);
+
+ /**
+ * Used to indicate when a STA device is connected to this device.
+ *
+ * @param srcAddress MAC address of the device that was authorized.
+ * @param p2pDeviceAddress P2P device address.
+ */
+ oneway onStaAuthorized(MacAddress srcAddress, MacAddress p2pDeviceAddress);
+
+ /**
+ * Used to indicate when a STA device is disconnected from this device.
+ *
+ * @param srcAddress MAC address of the device that was deauthorized.
+ * @param p2pDeviceAddress P2P device address.
+ */
+ oneway onStaDeauthorized(MacAddress srcAddress, MacAddress p2pDeviceAddress);
};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pNetwork.hal b/wifi/supplicant/1.0/ISupplicantP2pNetwork.hal
index 34727c4..d32b47e 100644
--- a/wifi/supplicant/1.0/ISupplicantP2pNetwork.hal
+++ b/wifi/supplicant/1.0/ISupplicantP2pNetwork.hal
@@ -42,4 +42,62 @@
*/
registerCallback(ISupplicantP2pNetworkCallback callback)
generates (SupplicantStatus status);
+
+ /**
+ * Getters for the various network params.
+ */
+ /**
+ * Get SSID for this network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return ssid value set.
+ */
+ getSsid() generates (SupplicantStatus status, Ssid ssid);
+
+ /**
+ * Get the BSSID set for this network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return bssid value set.
+ */
+ getBssid() generates (SupplicantStatus status, Bssid bssid);
+
+ /**
+ * Check if the network is currently active one.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return isCurrent true if current, false otherwise.
+ */
+ isCurrent() generates (SupplicantStatus status, bool isCurrent);
+
+ /**
+ * Check if the network is marked persistent.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return isPersistent true if persistent, false otherwise.
+ */
+ isPersistent() generates (SupplicantStatus status, bool isPersistent);
+
+ /**
+ * Check if the device is the group owner of the network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return isGo true if group owner, false otherwise.
+ */
+ isGo() generates (SupplicantStatus status, bool isGo);
};
diff --git a/wifi/supplicant/1.0/ISupplicantStaIface.hal b/wifi/supplicant/1.0/ISupplicantStaIface.hal
index 0f0d41b..c9d9ee6 100644
--- a/wifi/supplicant/1.0/ISupplicantStaIface.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaIface.hal
@@ -219,7 +219,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
* @return macAddr MAC address of the device.
*/
getMacAddress()
@@ -231,7 +232,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
startRxFilter() generates (SupplicantStatus status);
@@ -241,7 +243,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
stopRxFilter() generates (SupplicantStatus status);
@@ -252,7 +255,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
addRxFilter(RxFilterType type)
generates (SupplicantStatus status);
@@ -264,7 +268,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
removeRxFilter(RxFilterType type)
generates (SupplicantStatus status);
@@ -276,7 +281,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
setBtCoexistenceMode(BtCoexistenceMode mode)
generates (SupplicantStatus status);
@@ -291,7 +297,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
setBtCoexistenceScanModeEnabled(bool enable)
generates (SupplicantStatus status);
@@ -303,7 +310,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
setSuspendModeEnabled(bool enable)
generates (SupplicantStatus status);
@@ -315,7 +323,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
setCountryCode(int8_t[2] code)
generates (SupplicantStatus status);
@@ -328,7 +337,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
startWpsRegistrar(Bssid bssid, string pin)
generates (SupplicantStatus status);
@@ -342,7 +352,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
startWpsPbc(Bssid bssid) generates (SupplicantStatus status);
@@ -353,7 +364,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
startWpsPinKeypad(string pin) generates (SupplicantStatus status);
@@ -364,7 +376,8 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
* @return generatedPin 8 digit pin generated.
*/
startWpsPinDisplay(Bssid bssid)
@@ -376,7 +389,20 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
*/
cancelWps() generates (SupplicantStatus status);
+
+ /**
+ * Use external processing for SIM/USIM operations
+ *
+ * @param useExternalSim true to use external, false otherwise.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ setExternalSim(bool useExternalSim) generates (SupplicantStatus status);
};
diff --git a/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal b/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
index 55ff9a8..4b201d4 100644
--- a/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
@@ -257,8 +257,15 @@
string url);
/**
- * Used to indicate a disconnect from the currently connected
- * network on this iface,.
+ * Used to indicate the connection to a new network on this iface.
+ *
+ * @param bssid BSSID of the AP to which we connected.
+ */
+ oneway onConnected(Bssid bssid);
+
+ /**
+ * Used to indicate the disconnection from the currently connected
+ * network on this iface.
*
* @param bssid BSSID of the AP from which we disconnected.
* @param locallyGenerated If the disconnect was triggered by
@@ -270,6 +277,13 @@
Bssid bssid, bool locallyGenerated, uint32_t reasonCode);
/**
+ * Used to indicate the completion of association to an AP.
+ *
+ * @param bssid BSSID of the corresponding AP.
+ */
+ oneway onAssociationCompleted(Bssid bssid);
+
+ /**
* Used to indicate an association rejection recieved from the AP
* to which the connection is being attempted.
*
@@ -281,6 +295,18 @@
oneway onAssociationRejected(Bssid bssid, uint32_t statusCode);
/**
+ * Used to indicate the timeout of authentication to an AP.
+ *
+ * @param bssid BSSID of the corresponding AP.
+ */
+ oneway onAuthenticationTimeout(Bssid bssid);
+
+ /**
+ * Used to indicate an EAP authentication failure.
+ */
+ oneway onEapFailure();
+
+ /**
* Used to indicate the success of a WPS connection attempt.
*/
oneway onWpsEventSuccess();
diff --git a/wifi/supplicant/1.0/ISupplicantStaNetwork.hal b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
index 479ba94..b347c1d 100644
--- a/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
@@ -51,7 +51,10 @@
WPA_EAP = 1 << 0,
WPA_PSK = 1 << 1,
NONE = 1 << 2,
- IEEE8021X = 1 << 3
+ IEEE8021X = 1 << 3,
+ FT_EAP = 1 << 5,
+ FT_PSK = 1 << 6,
+ OSEN = 1 << 15
};
/** Possble mask of values for Proto param. */
@@ -74,7 +77,8 @@
WEP40 = 1 << 1,
WEP104 = 1 << 2,
TKIP = 1 << 3,
- CCMP = 1 << 4
+ CCMP = 1 << 4,
+ GTK_NOT_USED = 1 << 14
};
/** Possble mask of values for PairwiseCipher param. */
@@ -193,7 +197,7 @@
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
- setKeyMgmt(uint32_t keyMgmtMask) generates (SupplicantStatus status);
+ setKeyMgmt(bitfield<KeyMgmtMask> keyMgmtMask) generates (SupplicantStatus status);
/**
* Set proto mask for the network.
@@ -207,7 +211,7 @@
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
- setProto(uint32_t protoMask) generates (SupplicantStatus status);
+ setProto(bitfield<ProtoMask> protoMask) generates (SupplicantStatus status);
/**
* Set auth alg mask for the network.
@@ -221,7 +225,7 @@
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
- setAuthAlg(uint32_t authAlgMask) generates (SupplicantStatus status);
+ setAuthAlg(bitfield<AuthAlgMask> authAlgMask) generates (SupplicantStatus status);
/**
* Set group cipher mask for the network.
@@ -235,7 +239,7 @@
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
- setGroupCipher(uint32_t groupCipherMask)
+ setGroupCipher(bitfield<GroupCipherMask> groupCipherMask)
generates (SupplicantStatus status);
/**
@@ -250,7 +254,7 @@
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
- setPairwiseCipher(uint32_t pairwiseCipherMask)
+ setPairwiseCipher(bitfield<PairwiseCipherMask> pairwiseCipherMask)
generates (SupplicantStatus status);
/**
@@ -504,6 +508,19 @@
*/
setEapDomainSuffixMatch(string match)
generates (SupplicantStatus status);
+ /**
+ * Get ID string set for this network.
+ * Network identifier string for external scripts.
+ *
+ * @return idStr ID string value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setIdStr(string idStr) generates (SupplicantStatus status);
/**
* Getters for the various network params.
@@ -551,7 +568,7 @@
* @return keyMgmtMask Combination of |KeyMgmtMask| values.
*/
getKeyMgmt()
- generates (SupplicantStatus status, uint32_t keyMgmtMask);
+ generates (SupplicantStatus status, bitfield<KeyMgmtMask> keyMgmtMask);
/**
* Get the proto mask set for the network.
@@ -562,7 +579,7 @@
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
* @return protoMask Combination of |ProtoMask| values.
*/
- getProto() generates (SupplicantStatus status, uint32_t protoMask);
+ getProto() generates (SupplicantStatus status, bitfield<ProtoMask> protoMask);
/**
* Get the auth alg mask set for the network.
@@ -574,7 +591,7 @@
* @return authAlgMask Combination of |AuthAlgMask| values.
*/
getAuthAlg()
- generates (SupplicantStatus status, uint32_t authAlgMask);
+ generates (SupplicantStatus status, bitfield<AuthAlgMask> authAlgMask);
/**
* Get the group cipher mask set for the network.
@@ -586,7 +603,8 @@
* @return groupCipherMask Combination of |GroupCipherMask| values.
*/
getGroupCipher()
- generates (SupplicantStatus status, uint32_t groupCipherMask);
+ generates (SupplicantStatus status,
+ bitfield<GroupCipherMask> groupCipherMask);
/**
* Get the pairwise cipher mask set for the network.
@@ -598,7 +616,8 @@
* @return pairwiseCipherMask Combination of |PairwiseCipherMask| values.
*/
getPairwiseCipher()
- generates (SupplicantStatus status, uint32_t pairwiseCipherMask);
+ generates (SupplicantStatus status,
+ bitfield<PairwiseCipherMask> pairwiseCipherMask);
/**
* Get passphrase for WPA_PSK network.
@@ -827,6 +846,20 @@
generates (SupplicantStatus status, string match);
/**
+ * Get ID string set for this network.
+ * Network identifier string for external scripts.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return idStr ID string set.
+ */
+ getIdStr() generates (SupplicantStatus status, string idStr);
+
+ /**
* Enable the network for connection purposes.
*
* This must trigger a connection to the network if:
diff --git a/wifi/supplicant/1.0/types.hal b/wifi/supplicant/1.0/types.hal
index 16a8d15..10cf483 100644
--- a/wifi/supplicant/1.0/types.hal
+++ b/wifi/supplicant/1.0/types.hal
@@ -73,3 +73,38 @@
STA,
P2P
};
+
+/**
+ * P2P group capability.
+ */
+enum P2pGroupCapabilityMask : uint32_t {
+ GROUP_OWNER = 1 << 0,
+ PERSISTENT_GROUP = 1 << 1,
+ GROUP_LIMIT = 1 << 2,
+ INTRA_BSS_DIST = 1 << 3,
+ CROSS_CONN = 1 << 4,
+ PERSISTENT_RECONN = 1 << 5,
+ GROUP_FORMATION = 1 << 6
+};
+
+/**
+ * WPS config methods.
+ * Refer to section 3 of IBSS with Wi-Fi Protected Setup
+ * Technical Specification Version 1.0.0.
+ */
+enum WpsConfigMethods : uint16_t {
+ USBA = 0x0001,
+ ETHERNET = 0x0002,
+ LABEL = 0x0004,
+ DISPLAY = 0x0008,
+ EXT_NFC_TOKEN = 0x0010,
+ INT_NFC_TOKEN = 0x0020,
+ NFC_INTERFACE = 0x0040,
+ PUSHBUTTON = 0x0080,
+ KEYPAD = 0x0100,
+ VIRT_PUSHBUTTON = 0x0280,
+ PHY_PUSHBUTTON = 0x0480,
+ P2PS = 0x1000,
+ VIRT_DISPLAY = 0x2008,
+ PHY_DISPLAY = 0x4008
+};
diff --git a/wifi/supplicant/1.0/vts/Supplicant.vts b/wifi/supplicant/1.0/vts/Supplicant.vts
new file mode 100644
index 0000000..69fe209
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/Supplicant.vts
@@ -0,0 +1,160 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicant"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantCallback"
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantIface"
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::DebugLevel"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "EXCESSIVE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "MSGDUMP"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "DEBUG"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "INFO"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "WARNING"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "ERROR"
+ scalar_value: {
+ uint32_t: 5
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::IfaceInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ struct_value: {
+ name: "name"
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getInterface"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "ISupplicantIface"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::IfaceInfo"
+ }
+ }
+
+ api: {
+ name: "listInterfaces"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::IfaceInfo"
+ }
+ }
+ }
+
+ api: {
+ name: "registerCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "ISupplicantCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "setDebugParams"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::DebugLevel"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "getDebugLevel"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicant::DebugLevel"
+ }
+ }
+
+ api: {
+ name: "isDebugShowTimestampEnabled"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "isDebugShowKeysEnabled"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "setConcurrencyPriority"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantCallback.vts b/wifi/supplicant/1.0/vts/SupplicantCallback.vts
new file mode 100644
index 0000000..e439bd6
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantCallback.vts
@@ -0,0 +1,27 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantCallback"
+
+package: "android.hardware.wifi.supplicant"
+
+
+interface: {
+ api: {
+ name: "onInterfaceCreated"
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onInterfaceRemoved"
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onTerminating"
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantIface.vts b/wifi/supplicant/1.0/vts/SupplicantIface.vts
new file mode 100644
index 0000000..41c77f8
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantIface.vts
@@ -0,0 +1,187 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantIface"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantIface::ParamSizeLimits"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "WPS_DEVICE_NAME_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_MANUFACTURER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "WPS_MODEL_NAME_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_MODEL_NUMBER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_SERIAL_NUMBER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "addNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "ISupplicantNetwork"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "removeNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "ISupplicantNetwork"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "listNetworks"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setWpsDeviceName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsManufacturer"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsModelName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsModelNumber"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsSerialNumber"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsConfigMethods"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantNetwork.vts b/wifi/supplicant/1.0/vts/SupplicantNetwork.vts
new file mode 100644
index 0000000..edcabce
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantNetwork.vts
@@ -0,0 +1,45 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantNetwork"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ api: {
+ name: "getId"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getInterfaceName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pIface.vts b/wifi/supplicant/1.0/vts/SupplicantP2pIface.vts
new file mode 100644
index 0000000..afa9a8c
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantP2pIface.vts
@@ -0,0 +1,813 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantP2pIface"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantIface"
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantP2pIfaceCallback"
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantIface::ParamSizeLimits"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "WPS_DEVICE_NAME_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_MANUFACTURER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "WPS_MODEL_NAME_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_MODEL_NUMBER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_SERIAL_NUMBER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::WpsProvisionMethod"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "PBC"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "DISPLAY"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "KEYPAD"
+ scalar_value: {
+ uint32_t: 2
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::FreqRange"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "min"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "max"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::MiracastMode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint8_t"
+
+ enumerator: "DISABLED"
+ scalar_value: {
+ uint8_t: 0
+ }
+ enumerator: "SOURCE"
+ scalar_value: {
+ uint8_t: 1
+ }
+ enumerator: "SINK"
+ scalar_value: {
+ uint8_t: 2
+ }
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "addNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "ISupplicantNetwork"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "removeNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "ISupplicantNetwork"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "listNetworks"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setWpsDeviceName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsManufacturer"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsModelName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsModelNumber"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsSerialNumber"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsConfigMethods"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
+ }
+ }
+
+ api: {
+ name: "registerCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "ISupplicantP2pIfaceCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "getDeviceAddress"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setSsidPostfix"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setGroupIdle"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "setPowerSave"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "find"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "stopFind"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "flush"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "connect"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::WpsProvisionMethod"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "cancelConnect"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "provisionDiscovery"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::WpsProvisionMethod"
+ }
+ }
+
+ api: {
+ name: "addGroup"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "removeGroup"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "reject"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "invite"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "reinvoke"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "configureExtListen"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "setListenChannel"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "setDisallowedFrequencies"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::FreqRange"
+ }
+ }
+ }
+
+ api: {
+ name: "getSsid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getGroupCapability"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::P2pGroupCapabilityMask"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "addBonjourService"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "removeBonjourService"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "addUpnpService"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "removeUpnpService"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "flushServices"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "requestServiceDiscovery"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "cancelServiceDiscovery"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ }
+
+ api: {
+ name: "setMiracastMode"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIface::MiracastMode"
+ }
+ }
+
+ api: {
+ name: "startWpsPbc"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "startWpsPinKeypad"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "startWpsPinDisplay"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "cancelWps"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "enableWfd"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "setWfdDeviceInfo"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 8
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pIfaceCallback.vts b/wifi/supplicant/1.0/vts/SupplicantP2pIfaceCallback.vts
new file mode 100644
index 0000000..09fd779
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantP2pIfaceCallback.vts
@@ -0,0 +1,520 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantP2pIfaceCallback"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::WpsDevPasswordId"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint16_t"
+
+ enumerator: "DEFAULT"
+ scalar_value: {
+ uint16_t: 0
+ }
+ enumerator: "USER_SPECIFIED"
+ scalar_value: {
+ uint16_t: 1
+ }
+ enumerator: "MACHINE_SPECIFIED"
+ scalar_value: {
+ uint16_t: 2
+ }
+ enumerator: "REKEY"
+ scalar_value: {
+ uint16_t: 3
+ }
+ enumerator: "PUSHBUTTON"
+ scalar_value: {
+ uint16_t: 4
+ }
+ enumerator: "REGISTRAR_SPECIFIED"
+ scalar_value: {
+ uint16_t: 5
+ }
+ enumerator: "NFC_CONNECTION_HANDOVER"
+ scalar_value: {
+ uint16_t: 7
+ }
+ enumerator: "P2PS_DEFAULT"
+ scalar_value: {
+ uint16_t: 8
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pStatusCode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "FAIL_INFO_CURRENTLY_UNAVAILABLE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "FAIL_INCOMPATIBLE_PARAMS"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "FAIL_LIMIT_REACHED"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "FAIL_INVALID_PARAMS"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "FAIL_UNABLE_TO_ACCOMMODATE"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "FAIL_PREV_PROTOCOL_ERROR"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "FAIL_NO_COMMON_CHANNELS"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "FAIL_UNKNOWN_GROUP"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "FAIL_BOTH_GO_INTENT_15"
+ scalar_value: {
+ uint32_t: 9
+ }
+ enumerator: "FAIL_INCOMPATIBLE_PROV_METHOD"
+ scalar_value: {
+ uint32_t: 10
+ }
+ enumerator: "FAIL_REJECTED_BY_USER"
+ scalar_value: {
+ uint32_t: 11
+ }
+ enumerator: "SUCCESS_DEFERRED"
+ scalar_value: {
+ uint32_t: 12
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pProvDiscStatusCode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint8_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint8_t: 0
+ }
+ enumerator: "TIMEOUT"
+ scalar_value: {
+ uint8_t: 1
+ }
+ enumerator: "REJECTED"
+ scalar_value: {
+ uint8_t: 2
+ }
+ enumerator: "TIMEOUT_JOIN"
+ scalar_value: {
+ uint8_t: 3
+ }
+ enumerator: "INFO_UNAVAILABLE"
+ scalar_value: {
+ uint8_t: 4
+ }
+ }
+ }
+
+ api: {
+ name: "onNetworkAdded"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onNetworkRemoved"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onDeviceFound"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 8
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::P2pGroupCapabilityMask"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 8
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onDeviceLost"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onFindStopped"
+ }
+
+ api: {
+ name: "onGoNegotiationRequest"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::WpsDevPasswordId"
+ }
+ }
+
+ api: {
+ name: "onGoNegotiationCompleted"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pStatusCode"
+ }
+ }
+
+ api: {
+ name: "onGroupFormationSuccess"
+ }
+
+ api: {
+ name: "onGroupFormationFailure"
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onGroupStarted"
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 32
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "onGroupRemoved"
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "onInvitationReceived"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onInvitationResult"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pStatusCode"
+ }
+ }
+
+ api: {
+ name: "onProvisionDiscoveryPbcRequest"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onProvisionDiscoveryPbcResponse"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onProvisionDiscoveryShowPin"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onProvisionDiscoveryEnterPin"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onProvisionDiscoveryFailure"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onProvisionDiscoveryCompleted"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantP2pIfaceCallback::P2pProvDiscStatusCode"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onServiceDiscoveryResponse"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onStaAuthorized"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onStaDeauthorized"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pNetwork.vts b/wifi/supplicant/1.0/vts/SupplicantP2pNetwork.vts
new file mode 100644
index 0000000..fddcca3
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantP2pNetwork.vts
@@ -0,0 +1,127 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantP2pNetwork"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantP2pNetworkCallback"
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ api: {
+ name: "getId"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getInterfaceName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "registerCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "ISupplicantP2pNetworkCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "getSsid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getBssid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "isCurrent"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "isPersistent"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "isGo"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantP2pNetworkCallback.vts b/wifi/supplicant/1.0/vts/SupplicantP2pNetworkCallback.vts
new file mode 100644
index 0000000..0e9ccde
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantP2pNetworkCallback.vts
@@ -0,0 +1,9 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantP2pNetworkCallback"
+
+package: "android.hardware.wifi.supplicant"
+
+
+interface: {
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaIface.vts b/wifi/supplicant/1.0/vts/SupplicantStaIface.vts
new file mode 100644
index 0000000..ceadb6c
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantStaIface.vts
@@ -0,0 +1,623 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantStaIface"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantIface"
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantStaIfaceCallback"
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantIface::ParamSizeLimits"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "WPS_DEVICE_NAME_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_MANUFACTURER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "WPS_MODEL_NAME_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_MODEL_NUMBER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "WPS_SERIAL_NUMBER_MAX_LEN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::AnqpInfoId"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint16_t"
+
+ enumerator: "VENUE_NAME"
+ scalar_value: {
+ uint16_t: 258
+ }
+ enumerator: "ROAMING_CONSORTIUM"
+ scalar_value: {
+ uint16_t: 261
+ }
+ enumerator: "IP_ADDR_TYPE_AVAILABILITY"
+ scalar_value: {
+ uint16_t: 262
+ }
+ enumerator: "NAI_REALM"
+ scalar_value: {
+ uint16_t: 263
+ }
+ enumerator: "ANQP_3GPP_CELLULAR_NETWORK"
+ scalar_value: {
+ uint16_t: 264
+ }
+ enumerator: "DOMAIN_NAME"
+ scalar_value: {
+ uint16_t: 268
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::Hs20AnqpSubtypes"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "OPERATOR_FRIENDLY_NAME"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "WAN_METRICS"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "CONNECTION_CAPABILITY"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "OSU_PROVIDERS_LIST"
+ scalar_value: {
+ uint32_t: 8
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::RxFilterType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint8_t"
+
+ enumerator: "V4_MULTICAST"
+ scalar_value: {
+ uint8_t: 0
+ }
+ enumerator: "V6_MULTICAST"
+ scalar_value: {
+ uint8_t: 1
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::BtCoexistenceMode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint8_t"
+
+ enumerator: "ENABLED"
+ scalar_value: {
+ uint8_t: 0
+ }
+ enumerator: "DISABLED"
+ scalar_value: {
+ uint8_t: 1
+ }
+ enumerator: "SENSE"
+ scalar_value: {
+ uint8_t: 2
+ }
+ }
+ }
+
+ api: {
+ name: "getName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "addNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "ISupplicantNetwork"
+ is_callback: false
+ }
+ }
+
+ api: {
+ name: "removeNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getNetwork"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_HIDL_INTERFACE
+ predefined_type: "ISupplicantNetwork"
+ is_callback: false
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "listNetworks"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setWpsDeviceName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsManufacturer"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsModelName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsModelNumber"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsSerialNumber"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWpsConfigMethods"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
+ }
+ }
+
+ api: {
+ name: "registerCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "ISupplicantStaIfaceCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "reassociate"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "reconnect"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "disconnect"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "setPowerSave"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "initiateTdlsDiscover"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "initiateTdlsSetup"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "initiateTdlsTeardown"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "initiateAnqpQuery"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::AnqpInfoId"
+ }
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::Hs20AnqpSubtypes"
+ }
+ }
+ }
+
+ api: {
+ name: "initiateHs20IconQuery"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getMacAddress"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "startRxFilter"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "stopRxFilter"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "addRxFilter"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::RxFilterType"
+ }
+ }
+
+ api: {
+ name: "removeRxFilter"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::RxFilterType"
+ }
+ }
+
+ api: {
+ name: "setBtCoexistenceMode"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface::BtCoexistenceMode"
+ }
+ }
+
+ api: {
+ name: "setBtCoexistenceScanModeEnabled"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "setSuspendModeEnabled"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "setCountryCode"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 2
+ type: TYPE_SCALAR
+ scalar_type: "int8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "startWpsRegistrar"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "startWpsPbc"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "startWpsPinKeypad"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "startWpsPinDisplay"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "cancelWps"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "setExternalSim"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaIfaceCallback.vts b/wifi/supplicant/1.0/vts/SupplicantStaIfaceCallback.vts
new file mode 100644
index 0000000..88b1c3b
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantStaIfaceCallback.vts
@@ -0,0 +1,499 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantStaIfaceCallback"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::State"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "DISCONNECTED"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "IFACE_DISABLED"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "INACTIVE"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "SCANNING"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "AUTHENTICATING"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "ASSOCIATING"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "ASSOCIATED"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "FOURWAY_HANDSHAKE"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "GROUP_HANDSHAKE"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "COMPLETED"
+ scalar_value: {
+ uint32_t: 9
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::OsuMethod"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint8_t"
+
+ enumerator: "OMA_DM"
+ scalar_value: {
+ uint8_t: 0
+ }
+ enumerator: "SOAP_XML_SPP"
+ scalar_value: {
+ uint8_t: 1
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::AnqpData"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "venueName"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "roamingConsortium"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "ipAddrTypeAvailability"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "naiRealm"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "anqp3gppCellularNetwork"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "domainName"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::Hs20AnqpData"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "operatorFriendlyName"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "wanMetrics"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "connectionCapability"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "osuProvidersList"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsConfigError"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint16_t"
+
+ enumerator: "NO_ERROR"
+ scalar_value: {
+ uint16_t: 0
+ }
+ enumerator: "OOB_IFACE_READ_ERROR"
+ scalar_value: {
+ uint16_t: 1
+ }
+ enumerator: "DECRYPTION_CRC_FAILURE"
+ scalar_value: {
+ uint16_t: 2
+ }
+ enumerator: "CHAN_24_NOT_SUPPORTED"
+ scalar_value: {
+ uint16_t: 3
+ }
+ enumerator: "CHAN_50_NOT_SUPPORTED"
+ scalar_value: {
+ uint16_t: 4
+ }
+ enumerator: "SIGNAL_TOO_WEAK"
+ scalar_value: {
+ uint16_t: 5
+ }
+ enumerator: "NETWORK_AUTH_FAILURE"
+ scalar_value: {
+ uint16_t: 6
+ }
+ enumerator: "NETWORK_ASSOC_FAILURE"
+ scalar_value: {
+ uint16_t: 7
+ }
+ enumerator: "NO_DHCP_RESPONSE"
+ scalar_value: {
+ uint16_t: 8
+ }
+ enumerator: "FAILED_DHCP_CONFIG"
+ scalar_value: {
+ uint16_t: 9
+ }
+ enumerator: "IP_ADDR_CONFLICT"
+ scalar_value: {
+ uint16_t: 10
+ }
+ enumerator: "NO_CONN_TO_REGISTRAR"
+ scalar_value: {
+ uint16_t: 11
+ }
+ enumerator: "MULTIPLE_PBC_DETECTED"
+ scalar_value: {
+ uint16_t: 12
+ }
+ enumerator: "ROGUE_SUSPECTED"
+ scalar_value: {
+ uint16_t: 13
+ }
+ enumerator: "DEVICE_BUSY"
+ scalar_value: {
+ uint16_t: 14
+ }
+ enumerator: "SETUP_LOCKED"
+ scalar_value: {
+ uint16_t: 15
+ }
+ enumerator: "MSG_TIMEOUT"
+ scalar_value: {
+ uint16_t: 16
+ }
+ enumerator: "REG_SESS_TIMEOUT"
+ scalar_value: {
+ uint16_t: 17
+ }
+ enumerator: "DEV_PASSWORD_AUTH_FAILURE"
+ scalar_value: {
+ uint16_t: 18
+ }
+ enumerator: "CHAN_60G_NOT_SUPPORTED"
+ scalar_value: {
+ uint16_t: 19
+ }
+ enumerator: "PUBLIC_KEY_HASH_MISMATCH"
+ scalar_value: {
+ uint16_t: 20
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsErrorIndication"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint16_t"
+
+ enumerator: "NO_ERROR"
+ scalar_value: {
+ uint16_t: 0
+ }
+ enumerator: "SECURITY_TKIP_ONLY_PROHIBITED"
+ scalar_value: {
+ uint16_t: 1
+ }
+ enumerator: "SECURITY_WEP_PROHIBITED"
+ scalar_value: {
+ uint16_t: 2
+ }
+ enumerator: "AUTH_FAILURE"
+ scalar_value: {
+ uint16_t: 3
+ }
+ }
+ }
+
+ api: {
+ name: "onNetworkAdded"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onNetworkRemoved"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onStateChanged"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::State"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onAnqpQueryDone"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::AnqpData"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::Hs20AnqpData"
+ }
+ }
+
+ api: {
+ name: "onHs20IconQueryDone"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onHs20SubscriptionRemediation"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::OsuMethod"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onHs20DeauthImminentNotice"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "onConnected"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onDisconnected"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onAssociationCompleted"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onAssociationRejected"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "onAuthenticationTimeout"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onEapFailure"
+ }
+
+ api: {
+ name: "onWpsEventSuccess"
+ }
+
+ api: {
+ name: "onWpsEventFail"
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsConfigError"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIfaceCallback::WpsErrorIndication"
+ }
+ }
+
+ api: {
+ name: "onWpsEventPbcOverlap"
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaNetwork.vts b/wifi/supplicant/1.0/vts/SupplicantStaNetwork.vts
new file mode 100644
index 0000000..f493b3e
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantStaNetwork.vts
@@ -0,0 +1,1087 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantStaNetwork"
+
+package: "android.hardware.wifi.supplicant"
+
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantNetwork"
+import: "android.hardware.wifi.supplicant@1.0::ISupplicantStaNetworkCallback"
+import: "android.hardware.wifi.supplicant@1.0::types"
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ParamSizeLimits"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SSID_MAX_LEN_IN_BYTES"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "PSK_PASSPHRASE_MIN_LEN_IN_BYTES"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "PSK_PASSPHRASE_MAX_LEN_IN_BYTES"
+ scalar_value: {
+ uint32_t: 63
+ }
+ enumerator: "WEP_KEYS_MAX_NUM"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "WEP40_KEY_LEN_IN_BYTES"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "WEP104_KEY_LEN_IN_BYTES"
+ scalar_value: {
+ uint32_t: 13
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::KeyMgmtMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "WPA_EAP"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "WPA_PSK"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "NONE"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "IEEE8021X"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "FT_EAP"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "FT_PSK"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "OSEN"
+ scalar_value: {
+ uint32_t: 32768
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ProtoMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "WPA"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "RSN"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "OSEN"
+ scalar_value: {
+ uint32_t: 8
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::AuthAlgMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "OPEN"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "SHARED"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "LEAP"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::GroupCipherMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "WEP40"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "WEP104"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "TKIP"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "CCMP"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "GTK_NOT_USED"
+ scalar_value: {
+ uint32_t: 16384
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::PairwiseCipherMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "TKIP"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "CCMP"
+ scalar_value: {
+ uint32_t: 16
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapMethod"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "PEAP"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "TLS"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "TTLS"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "PWD"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "SIM"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "AKA"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "AKA_PRIME"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "WFA_UNAUTH_TLS"
+ scalar_value: {
+ uint32_t: 7
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapPhase2Method"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "PAP"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "MSPAP"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "MSPAPV2"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "GTC"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "kc"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 8
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "sres"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 4
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimUmtsAuthParams"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "res"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "ik"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 16
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "ck"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 16
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getId"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getInterfaceName"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getType"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ }
+ }
+
+ api: {
+ name: "registerCallback"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "ISupplicantStaNetworkCallback"
+ is_callback: true
+ }
+ }
+
+ api: {
+ name: "setSsid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setBssid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setScanSsid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "setKeyMgmt"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::KeyMgmtMask"
+ }
+ }
+
+ api: {
+ name: "setProto"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ProtoMask"
+ }
+ }
+
+ api: {
+ name: "setAuthAlg"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::AuthAlgMask"
+ }
+ }
+
+ api: {
+ name: "setGroupCipher"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::GroupCipherMask"
+ }
+ }
+
+ api: {
+ name: "setPairwiseCipher"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::PairwiseCipherMask"
+ }
+ }
+
+ api: {
+ name: "setPskPassphrase"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setWepKey"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setWepTxKeyIdx"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "setRequirePmf"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "setEapMethod"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapMethod"
+ }
+ }
+
+ api: {
+ name: "setEapPhase2Method"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapPhase2Method"
+ }
+ }
+
+ api: {
+ name: "setEapIdentity"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setEapAnonymousIdentity"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setEapPassword"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "setEapCACert"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setEapCAPath"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setEapClientCert"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setEapPrivateKey"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setEapSubjectMatch"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setEapAltSubjectMatch"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setEapEngine"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "setEapEngineID"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setEapDomainSuffixMatch"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "setIdStr"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getSsid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getBssid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getScanSsid"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "getKeyMgmt"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::KeyMgmtMask"
+ }
+ }
+
+ api: {
+ name: "getProto"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::ProtoMask"
+ }
+ }
+
+ api: {
+ name: "getAuthAlg"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::AuthAlgMask"
+ }
+ }
+
+ api: {
+ name: "getGroupCipher"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::GroupCipherMask"
+ }
+ }
+
+ api: {
+ name: "getPairwiseCipher"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_MASK
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::PairwiseCipherMask"
+ }
+ }
+
+ api: {
+ name: "getPskPassphrase"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getWepKey"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getWepTxKeyIdx"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getRequirePmf"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "getEapMethod"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapMethod"
+ }
+ }
+
+ api: {
+ name: "getEapPhase2Method"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::EapPhase2Method"
+ }
+ }
+
+ api: {
+ name: "getEapIdentity"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getEapAnonymousIdentity"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getEapPassword"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "getEapCACert"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getEapCAPath"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getEapClientCert"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getEapPrivateKey"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getEapSubjectMatch"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getEapAltSubjectMatch"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getEapEngine"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "getEapEngineID"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getEapDomainSuffixMatch"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "getIdStr"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+ api: {
+ name: "enable"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "disable"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "select"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ }
+
+ api: {
+ name: "sendNetworkEapSimGsmAuthResponse"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams"
+ }
+ }
+
+ api: {
+ name: "sendNetworkEapSimUmtsAuthResponse"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork::NetworkResponseEapSimUmtsAuthParams"
+ }
+ }
+
+ api: {
+ name: "sendNetworkEapIdentityResponse"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/SupplicantStaNetworkCallback.vts b/wifi/supplicant/1.0/vts/SupplicantStaNetworkCallback.vts
new file mode 100644
index 0000000..3fe2da7
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/SupplicantStaNetworkCallback.vts
@@ -0,0 +1,69 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ISupplicantStaNetworkCallback"
+
+package: "android.hardware.wifi.supplicant"
+
+
+interface: {
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimGsmAuthParams"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "rands"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 16
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+ }
+
+ attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimUmtsAuthParams"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "rand"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 16
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "autn"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 16
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ }
+
+ api: {
+ name: "onNetworkEapSimGsmAuthRequest"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimGsmAuthParams"
+ }
+ }
+
+ api: {
+ name: "onNetworkEapSimUmtsAuthRequest"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetworkCallback::NetworkRequestEapSimUmtsAuthParams"
+ }
+ }
+
+ api: {
+ name: "onNetworkEapIdentityRequest"
+ }
+
+}
diff --git a/wifi/supplicant/1.0/vts/types.vts b/wifi/supplicant/1.0/vts/types.vts
new file mode 100644
index 0000000..b8b29b3
--- /dev/null
+++ b/wifi/supplicant/1.0/vts/types.vts
@@ -0,0 +1,189 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.wifi.supplicant"
+
+
+attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "FAILURE_UNKNOWN"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "FAILURE_ARGS_INVALID"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "FAILURE_IFACE_INVALID"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "FAILURE_IFACE_UNKNOWN"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "FAILURE_IFACE_EXISTS"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "FAILURE_IFACE_DISABLED"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "FAILURE_IFACE_NOT_DISCONNECTED"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "FAILURE_NETWORK_INVALID"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "FAILURE_NETWORK_UNKNOWN"
+ scalar_value: {
+ uint32_t: 9
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatus"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "code"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode"
+ }
+ struct_value: {
+ name: "debugMessage"
+ type: TYPE_STRING
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::IfaceType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "STA"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "P2P"
+ scalar_value: {
+ uint32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::P2pGroupCapabilityMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "GROUP_OWNER"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "PERSISTENT_GROUP"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "GROUP_LIMIT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "INTRA_BSS_DIST"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "CROSS_CONN"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "PERSISTENT_RECONN"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "GROUP_FORMATION"
+ scalar_value: {
+ uint32_t: 64
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::wifi::supplicant::V1_0::WpsConfigMethods"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint16_t"
+
+ enumerator: "USBA"
+ scalar_value: {
+ uint16_t: 1
+ }
+ enumerator: "ETHERNET"
+ scalar_value: {
+ uint16_t: 2
+ }
+ enumerator: "LABEL"
+ scalar_value: {
+ uint16_t: 4
+ }
+ enumerator: "DISPLAY"
+ scalar_value: {
+ uint16_t: 8
+ }
+ enumerator: "EXT_NFC_TOKEN"
+ scalar_value: {
+ uint16_t: 16
+ }
+ enumerator: "INT_NFC_TOKEN"
+ scalar_value: {
+ uint16_t: 32
+ }
+ enumerator: "NFC_INTERFACE"
+ scalar_value: {
+ uint16_t: 64
+ }
+ enumerator: "PUSHBUTTON"
+ scalar_value: {
+ uint16_t: 128
+ }
+ enumerator: "KEYPAD"
+ scalar_value: {
+ uint16_t: 256
+ }
+ enumerator: "VIRT_PUSHBUTTON"
+ scalar_value: {
+ uint16_t: 640
+ }
+ enumerator: "PHY_PUSHBUTTON"
+ scalar_value: {
+ uint16_t: 1152
+ }
+ enumerator: "P2PS"
+ scalar_value: {
+ uint16_t: 4096
+ }
+ enumerator: "VIRT_DISPLAY"
+ scalar_value: {
+ uint16_t: 8200
+ }
+ enumerator: "PHY_DISPLAY"
+ scalar_value: {
+ uint16_t: 16392
+ }
+ }
+}
+