Merge "Camera: Delete streams after successful configuration"
diff --git a/audio/2.0/Android.bp b/audio/2.0/Android.bp
index 007dc8a..69ff791 100644
--- a/audio/2.0/Android.bp
+++ b/audio/2.0/Android.bp
@@ -19,14 +19,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio@2.0",
     srcs: [
-        "types.hal",
-        "IDevice.hal",
-        "IDevicesFactory.hal",
-        "IPrimaryDevice.hal",
-        "IStream.hal",
-        "IStreamIn.hal",
-        "IStreamOut.hal",
-        "IStreamOutCallback.hal",
+        ":android.hardware.audio@2.0_hal",
     ],
     out: [
         "android/hardware/audio/2.0/types.cpp",
@@ -45,14 +38,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio@2.0",
     srcs: [
-        "types.hal",
-        "IDevice.hal",
-        "IDevicesFactory.hal",
-        "IPrimaryDevice.hal",
-        "IStream.hal",
-        "IStreamIn.hal",
-        "IStreamOut.hal",
-        "IStreamOutCallback.hal",
+        ":android.hardware.audio@2.0_hal",
     ],
     out: [
         "android/hardware/audio/2.0/types.h",
diff --git a/audio/2.0/Android.mk b/audio/2.0/Android.mk
index f8767ec..e989364 100644
--- a/audio/2.0/Android.mk
+++ b/audio/2.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.audio@2.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/audio/2.0/IStreamIn.hal b/audio/2.0/IStreamIn.hal
index e34c95f..6f1f9df 100644
--- a/audio/2.0/IStreamIn.hal
+++ b/audio/2.0/IStreamIn.hal
@@ -91,7 +91,11 @@
      *     to the client;
      *  -- status queue is used for reporting operation status
      *     (e.g. amount of bytes actually read or error code).
-     * The driver operates on a dedicated thread.
+     *
+     * The driver operates on a dedicated thread. The client must ensure that
+     * the thread is given an appropriate priority and assigned to correct
+     * scheduler and cgroup. For this purpose, the method returns identifiers
+     * of the driver thread.
      *
      * @param frameSize the size of a single frame, in bytes.
      * @param framesCount the number of frames in a buffer.
@@ -105,15 +109,15 @@
      *                specified at the stream opening.
      * @return statusMQ a message queue used for passing status from the driver
      *                  using ReadStatus structures.
+     * @return threadInfo identifiers of the driver's dedicated thread.
      */
-    prepareForReading(
-            uint32_t frameSize, uint32_t framesCount,
-            ThreadPriority threadPriority)
+    prepareForReading(uint32_t frameSize, uint32_t framesCount)
     generates (
             Result retval,
             fmq_sync<ReadParameters> commandMQ,
             fmq_sync<uint8_t> dataMQ,
-            fmq_sync<ReadStatus> statusMQ);
+            fmq_sync<ReadStatus> statusMQ,
+            ThreadInfo threadInfo);
 
     /*
      * Return the amount of input frames lost in the audio driver since the last
diff --git a/audio/2.0/IStreamOut.hal b/audio/2.0/IStreamOut.hal
index 2ec080d..9ee32c5 100644
--- a/audio/2.0/IStreamOut.hal
+++ b/audio/2.0/IStreamOut.hal
@@ -85,11 +85,14 @@
      *     to the driver;
      *  -- status queue is used for reporting operation status
      *     (e.g. amount of bytes actually written or error code).
-     * The driver operates on a dedicated thread.
+     *
+     * The driver operates on a dedicated thread. The client must ensure that
+     * the thread is given an appropriate priority and assigned to correct
+     * scheduler and cgroup. For this purpose, the method returns identifiers
+     * of the driver thread.
      *
      * @param frameSize the size of a single frame, in bytes.
      * @param framesCount the number of frames in a buffer.
-     * @param threadPriority priority of the driver thread.
      * @return retval OK if both message queues were created successfully.
      *                INVALID_STATE if the method was already called.
      *                INVALID_ARGUMENTS if there was a problem setting up
@@ -99,15 +102,15 @@
      *                specified at the stream opening.
      * @return statusMQ a message queue used for passing status from the driver
      *                  using WriteStatus structures.
+     * @return threadInfo identifiers of the driver's dedicated thread.
      */
-    prepareForWriting(
-            uint32_t frameSize, uint32_t framesCount,
-            ThreadPriority threadPriority)
+    prepareForWriting(uint32_t frameSize, uint32_t framesCount)
     generates (
             Result retval,
             fmq_sync<WriteCommand> commandMQ,
             fmq_sync<uint8_t> dataMQ,
-            fmq_sync<WriteStatus> statusMQ);
+            fmq_sync<WriteStatus> statusMQ,
+            ThreadInfo threadInfo);
 
     /*
      * Return the number of audio frames written by the audio DSP to DAC since
diff --git a/audio/2.0/default/Android.mk b/audio/2.0/default/Android.mk
index eeea92c..cbeda35 100644
--- a/audio/2.0/default/Android.mk
+++ b/audio/2.0/default/Android.mk
@@ -38,7 +38,6 @@
     libhidltransport \
     libhwbinder \
     liblog \
-    libmediautils \
     libutils \
     android.hardware.audio@2.0 \
     android.hardware.audio.common@2.0 \
diff --git a/audio/2.0/default/StreamIn.cpp b/audio/2.0/default/StreamIn.cpp
index 9c49170..a8229d3 100644
--- a/audio/2.0/default/StreamIn.cpp
+++ b/audio/2.0/default/StreamIn.cpp
@@ -20,7 +20,6 @@
 
 #include <android/log.h>
 #include <hardware/audio.h>
-#include <mediautils/SchedulingPolicyService.h>
 #include <utils/Trace.h>
 
 #include "StreamIn.h"
@@ -33,6 +32,8 @@
 namespace V2_0 {
 namespace implementation {
 
+using ::android::hardware::audio::common::V2_0::ThreadInfo;
+
 namespace {
 
 class ReadThread : public Thread {
@@ -43,8 +44,7 @@
             StreamIn::CommandMQ* commandMQ,
             StreamIn::DataMQ* dataMQ,
             StreamIn::StatusMQ* statusMQ,
-            EventFlag* efGroup,
-            ThreadPriority threadPriority)
+            EventFlag* efGroup)
             : Thread(false /*canCallJava*/),
               mStop(stop),
               mStream(stream),
@@ -52,13 +52,10 @@
               mDataMQ(dataMQ),
               mStatusMQ(statusMQ),
               mEfGroup(efGroup),
-              mThreadPriority(threadPriority),
               mBuffer(new uint8_t[dataMQ->getQuantumCount()]) {
     }
     virtual ~ReadThread() {}
 
-    status_t readyToRun() override;
-
   private:
     std::atomic<bool>* mStop;
     audio_stream_in_t* mStream;
@@ -66,7 +63,6 @@
     StreamIn::DataMQ* mDataMQ;
     StreamIn::StatusMQ* mStatusMQ;
     EventFlag* mEfGroup;
-    ThreadPriority mThreadPriority;
     std::unique_ptr<uint8_t[]> mBuffer;
     IStreamIn::ReadParameters mParameters;
     IStreamIn::ReadStatus mStatus;
@@ -77,16 +73,6 @@
     void doRead();
 };
 
-status_t ReadThread::readyToRun() {
-    if (mThreadPriority != ThreadPriority::NORMAL) {
-        int err = requestPriority(
-                getpid(), getTid(), static_cast<int>(mThreadPriority), true /*asynchronous*/);
-        ALOGW_IF(err, "failed to set priority %d for pid %d tid %d; error %d",
-                static_cast<int>(mThreadPriority), getpid(), getTid(), err);
-    }
-    return OK;
-}
-
 void ReadThread::doRead() {
     size_t availableToWrite = mDataMQ->availableToWrite();
     size_t requestedToRead = mParameters.params.read;
@@ -119,7 +105,7 @@
     while(!std::atomic_load_explicit(mStop, std::memory_order_acquire)) {
         // TODO: Remove manual event flag handling once blocking MQ is implemented. b/33815422
         uint32_t efState = 0;
-        mEfGroup->wait(static_cast<uint32_t>(MessageQueueFlagBits::NOT_FULL), &efState, NS_PER_SEC);
+        mEfGroup->wait(static_cast<uint32_t>(MessageQueueFlagBits::NOT_FULL), &efState);
         if (!(efState & static_cast<uint32_t>(MessageQueueFlagBits::NOT_FULL))) {
             continue;  // Nothing to do.
         }
@@ -313,14 +299,14 @@
 }
 
 Return<void> StreamIn::prepareForReading(
-        uint32_t frameSize, uint32_t framesCount, ThreadPriority threadPriority,
-        prepareForReading_cb _hidl_cb)  {
+        uint32_t frameSize, uint32_t framesCount, prepareForReading_cb _hidl_cb)  {
     status_t status;
+    ThreadInfo threadInfo = { 0, 0 };
     // Create message queues.
     if (mDataMQ) {
         ALOGE("the client attempts to call prepareForReading twice");
         _hidl_cb(Result::INVALID_STATE,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
     std::unique_ptr<CommandMQ> tempCommandMQ(new CommandMQ(1));
@@ -332,7 +318,7 @@
         ALOGE_IF(!tempDataMQ->isValid(), "data MQ is invalid");
         ALOGE_IF(!tempStatusMQ->isValid(), "status MQ is invalid");
         _hidl_cb(Result::INVALID_ARGUMENTS,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
     // TODO: Remove event flag management once blocking MQ is implemented. b/33815422
@@ -340,7 +326,7 @@
     if (status != OK || !mEfGroup) {
         ALOGE("failed creating event flag for data MQ: %s", strerror(-status));
         _hidl_cb(Result::INVALID_ARGUMENTS,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
 
@@ -351,20 +337,23 @@
             tempCommandMQ.get(),
             tempDataMQ.get(),
             tempStatusMQ.get(),
-            mEfGroup,
-            threadPriority);
+            mEfGroup);
     status = mReadThread->run("reader", PRIORITY_URGENT_AUDIO);
     if (status != OK) {
         ALOGW("failed to start reader thread: %s", strerror(-status));
         _hidl_cb(Result::INVALID_ARGUMENTS,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
 
     mCommandMQ = std::move(tempCommandMQ);
     mDataMQ = std::move(tempDataMQ);
     mStatusMQ = std::move(tempStatusMQ);
-    _hidl_cb(Result::OK, *mCommandMQ->getDesc(), *mDataMQ->getDesc(), *mStatusMQ->getDesc());
+    threadInfo.pid = getpid();
+    threadInfo.tid = mReadThread->getTid();
+    _hidl_cb(Result::OK,
+            *mCommandMQ->getDesc(), *mDataMQ->getDesc(), *mStatusMQ->getDesc(),
+            threadInfo);
     return Void();
 }
 
diff --git a/audio/2.0/default/StreamIn.h b/audio/2.0/default/StreamIn.h
index 3566430..b867387 100644
--- a/audio/2.0/default/StreamIn.h
+++ b/audio/2.0/default/StreamIn.h
@@ -44,7 +44,6 @@
 using ::android::hardware::audio::V2_0::IStreamIn;
 using ::android::hardware::audio::V2_0::ParameterValue;
 using ::android::hardware::audio::V2_0::Result;
-using ::android::hardware::audio::V2_0::ThreadPriority;
 using ::android::hardware::Return;
 using ::android::hardware::Void;
 using ::android::hardware::hidl_vec;
@@ -89,8 +88,7 @@
     Return<void> getAudioSource(getAudioSource_cb _hidl_cb)  override;
     Return<Result> setGain(float gain)  override;
     Return<void> prepareForReading(
-            uint32_t frameSize, uint32_t framesCount, ThreadPriority threadPriority,
-            prepareForReading_cb _hidl_cb)  override;
+            uint32_t frameSize, uint32_t framesCount, prepareForReading_cb _hidl_cb)  override;
     Return<uint32_t> getInputFramesLost()  override;
     Return<void> getCapturePosition(getCapturePosition_cb _hidl_cb)  override;
     Return<Result> start() override;
diff --git a/audio/2.0/default/StreamOut.cpp b/audio/2.0/default/StreamOut.cpp
index 6e46db2..6ccdbcd 100644
--- a/audio/2.0/default/StreamOut.cpp
+++ b/audio/2.0/default/StreamOut.cpp
@@ -20,7 +20,6 @@
 
 #include <android/log.h>
 #include <hardware/audio.h>
-#include <mediautils/SchedulingPolicyService.h>
 #include <utils/Trace.h>
 
 #include "StreamOut.h"
@@ -31,6 +30,8 @@
 namespace V2_0 {
 namespace implementation {
 
+using ::android::hardware::audio::common::V2_0::ThreadInfo;
+
 namespace {
 
 class WriteThread : public Thread {
@@ -41,8 +42,7 @@
             StreamOut::CommandMQ* commandMQ,
             StreamOut::DataMQ* dataMQ,
             StreamOut::StatusMQ* statusMQ,
-            EventFlag* efGroup,
-            ThreadPriority threadPriority)
+            EventFlag* efGroup)
             : Thread(false /*canCallJava*/),
               mStop(stop),
               mStream(stream),
@@ -50,13 +50,10 @@
               mDataMQ(dataMQ),
               mStatusMQ(statusMQ),
               mEfGroup(efGroup),
-              mThreadPriority(threadPriority),
               mBuffer(new uint8_t[dataMQ->getQuantumCount()]) {
     }
     virtual ~WriteThread() {}
 
-    status_t readyToRun() override;
-
   private:
     std::atomic<bool>* mStop;
     audio_stream_out_t* mStream;
@@ -64,7 +61,6 @@
     StreamOut::DataMQ* mDataMQ;
     StreamOut::StatusMQ* mStatusMQ;
     EventFlag* mEfGroup;
-    ThreadPriority mThreadPriority;
     std::unique_ptr<uint8_t[]> mBuffer;
     IStreamOut::WriteStatus mStatus;
 
@@ -75,16 +71,6 @@
     void doWrite();
 };
 
-status_t WriteThread::readyToRun() {
-    if (mThreadPriority != ThreadPriority::NORMAL) {
-        int err = requestPriority(
-                getpid(), getTid(), static_cast<int>(mThreadPriority), true /*asynchronous*/);
-        ALOGW_IF(err, "failed to set priority %d for pid %d tid %d; error %d",
-                static_cast<int>(mThreadPriority), getpid(), getTid(), err);
-    }
-    return OK;
-}
-
 void WriteThread::doWrite() {
     const size_t availToRead = mDataMQ->availableToRead();
     mStatus.retval = Result::OK;
@@ -117,8 +103,7 @@
     while(!std::atomic_load_explicit(mStop, std::memory_order_acquire)) {
         // TODO: Remove manual event flag handling once blocking MQ is implemented. b/33815422
         uint32_t efState = 0;
-        mEfGroup->wait(
-                static_cast<uint32_t>(MessageQueueFlagBits::NOT_EMPTY), &efState, NS_PER_SEC);
+        mEfGroup->wait(static_cast<uint32_t>(MessageQueueFlagBits::NOT_EMPTY), &efState);
         if (!(efState & static_cast<uint32_t>(MessageQueueFlagBits::NOT_EMPTY))) {
             continue;  // Nothing to do.
         }
@@ -297,14 +282,14 @@
 }
 
 Return<void> StreamOut::prepareForWriting(
-        uint32_t frameSize, uint32_t framesCount, ThreadPriority threadPriority,
-        prepareForWriting_cb _hidl_cb)  {
+        uint32_t frameSize, uint32_t framesCount, prepareForWriting_cb _hidl_cb)  {
     status_t status;
+    ThreadInfo threadInfo = { 0, 0 };
     // Create message queues.
     if (mDataMQ) {
         ALOGE("the client attempts to call prepareForWriting twice");
         _hidl_cb(Result::INVALID_STATE,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
     std::unique_ptr<CommandMQ> tempCommandMQ(new CommandMQ(1));
@@ -316,7 +301,7 @@
         ALOGE_IF(!tempDataMQ->isValid(), "data MQ is invalid");
         ALOGE_IF(!tempStatusMQ->isValid(), "status MQ is invalid");
         _hidl_cb(Result::INVALID_ARGUMENTS,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
     // TODO: Remove event flag management once blocking MQ is implemented. b/33815422
@@ -324,7 +309,7 @@
     if (status != OK || !mEfGroup) {
         ALOGE("failed creating event flag for data MQ: %s", strerror(-status));
         _hidl_cb(Result::INVALID_ARGUMENTS,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
 
@@ -335,20 +320,23 @@
             tempCommandMQ.get(),
             tempDataMQ.get(),
             tempStatusMQ.get(),
-            mEfGroup,
-            threadPriority);
+            mEfGroup);
     status = mWriteThread->run("writer", PRIORITY_URGENT_AUDIO);
     if (status != OK) {
         ALOGW("failed to start writer thread: %s", strerror(-status));
         _hidl_cb(Result::INVALID_ARGUMENTS,
-                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor());
+                CommandMQ::Descriptor(), DataMQ::Descriptor(), StatusMQ::Descriptor(), threadInfo);
         return Void();
     }
 
     mCommandMQ = std::move(tempCommandMQ);
     mDataMQ = std::move(tempDataMQ);
     mStatusMQ = std::move(tempStatusMQ);
-    _hidl_cb(Result::OK, *mCommandMQ->getDesc(), *mDataMQ->getDesc(), *mStatusMQ->getDesc());
+    threadInfo.pid = getpid();
+    threadInfo.tid = mWriteThread->getTid();
+    _hidl_cb(Result::OK,
+            *mCommandMQ->getDesc(), *mDataMQ->getDesc(), *mStatusMQ->getDesc(),
+            threadInfo);
     return Void();
 }
 
diff --git a/audio/2.0/default/StreamOut.h b/audio/2.0/default/StreamOut.h
index 6616557..bbe64a1 100644
--- a/audio/2.0/default/StreamOut.h
+++ b/audio/2.0/default/StreamOut.h
@@ -45,7 +45,6 @@
 using ::android::hardware::audio::V2_0::IStreamOutCallback;
 using ::android::hardware::audio::V2_0::ParameterValue;
 using ::android::hardware::audio::V2_0::Result;
-using ::android::hardware::audio::V2_0::ThreadPriority;
 using ::android::hardware::audio::V2_0::TimeSpec;
 using ::android::hardware::Return;
 using ::android::hardware::Void;
@@ -91,8 +90,7 @@
     Return<uint32_t> getLatency()  override;
     Return<Result> setVolume(float left, float right)  override;
     Return<void> prepareForWriting(
-            uint32_t frameSize, uint32_t framesCount, ThreadPriority threadPriority,
-            prepareForWriting_cb _hidl_cb)  override;
+            uint32_t frameSize, uint32_t framesCount, prepareForWriting_cb _hidl_cb)  override;
     Return<void> getRenderPosition(getRenderPosition_cb _hidl_cb)  override;
     Return<void> getNextWriteTimestamp(getNextWriteTimestamp_cb _hidl_cb)  override;
     Return<Result> setCallback(const sp<IStreamOutCallback>& callback)  override;
diff --git a/audio/2.0/default/service.cpp b/audio/2.0/default/service.cpp
index 646d898..8b608c8 100644
--- a/audio/2.0/default/service.cpp
+++ b/audio/2.0/default/service.cpp
@@ -33,11 +33,20 @@
 using android::hardware::registerPassthroughServiceImplementation;
 using android::hardware::broadcastradio::V1_0::IBroadcastRadioFactory;
 
+using android::OK;
+
 int main(int /* argc */, char* /* argv */ []) {
     configureRpcThreadpool(16, true /*callerWillJoin*/);
-    registerPassthroughServiceImplementation<IDevicesFactory>("audio_devices_factory");
-    registerPassthroughServiceImplementation<IEffectsFactory>("audio_effects_factory");
-    registerPassthroughServiceImplementation<ISoundTriggerHw>("sound_trigger.primary");
-    registerPassthroughServiceImplementation<IBroadcastRadioFactory>("broadcastradio");
+    android::status_t status;
+    status = registerPassthroughServiceImplementation<IDevicesFactory>("audio_devices_factory");
+    LOG_ALWAYS_FATAL_IF(status != OK, "Error while registering audio service: %d", status);
+    status = registerPassthroughServiceImplementation<IEffectsFactory>("audio_effects_factory");
+    LOG_ALWAYS_FATAL_IF(status != OK, "Error while registering audio effects service: %d", status);
+    // Soundtrigger and FM radio might be not present.
+    status = registerPassthroughServiceImplementation<ISoundTriggerHw>("sound_trigger.primary");
+    ALOGE_IF(status != OK, "Error while registering soundtrigger service: %d", status);
+    status = registerPassthroughServiceImplementation<IBroadcastRadioFactory>("broadcastradio");
+    ALOGE_IF(status != OK, "Error while registering fm radio service: %d", status);
     joinRpcThreadpool();
+    return status;
 }
diff --git a/audio/2.0/types.hal b/audio/2.0/types.hal
index 8fc4314..8e9ff14 100644
--- a/audio/2.0/types.hal
+++ b/audio/2.0/types.hal
@@ -98,12 +98,3 @@
     NOT_EMPTY = 1 << 0,
     NOT_FULL = 1 << 1
 };
-
-/*
- * The priority of threads executing reads and writes of audio data.
- */
-enum ThreadPriority : int32_t {
-    NORMAL = 0,
-    FAST_CAPTURE = 3,
-    FAST_MIXER = 3
-};
diff --git a/audio/common/2.0/Android.bp b/audio/common/2.0/Android.bp
index 8c14995..5330086 100644
--- a/audio/common/2.0/Android.bp
+++ b/audio/common/2.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.common@2.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.audio.common@2.0_hal",
     ],
     out: [
         "android/hardware/audio/common/2.0/types.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.common@2.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.audio.common@2.0_hal",
     ],
     out: [
         "android/hardware/audio/common/2.0/types.h",
diff --git a/audio/common/2.0/Android.mk b/audio/common/2.0/Android.mk
index 423fe35..7d62779 100644
--- a/audio/common/2.0/Android.mk
+++ b/audio/common/2.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.audio.common@2.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/audio/common/2.0/types.hal b/audio/common/2.0/types.hal
index 63d66db..ae7f545 100644
--- a/audio/common/2.0/types.hal
+++ b/audio/common/2.0/types.hal
@@ -933,3 +933,8 @@
         AudioPortSessionExt session;
     } ext;
 };
+
+struct ThreadInfo {
+    int64_t pid;
+    int64_t tid;
+};
diff --git a/audio/effect/2.0/Android.bp b/audio/effect/2.0/Android.bp
index 29bc890..83a702a 100644
--- a/audio/effect/2.0/Android.bp
+++ b/audio/effect/2.0/Android.bp
@@ -26,21 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.effect@2.0",
     srcs: [
-        "types.hal",
-        "IAcousticEchoCancelerEffect.hal",
-        "IAutomaticGainControlEffect.hal",
-        "IBassBoostEffect.hal",
-        "IDownmixEffect.hal",
-        "IEffect.hal",
-        "IEffectBufferProviderCallback.hal",
-        "IEffectsFactory.hal",
-        "IEnvironmentalReverbEffect.hal",
-        "IEqualizerEffect.hal",
-        "ILoudnessEnhancerEffect.hal",
-        "INoiseSuppressionEffect.hal",
-        "IPresetReverbEffect.hal",
-        "IVirtualizerEffect.hal",
-        "IVisualizerEffect.hal",
+        ":android.hardware.audio.effect@2.0_hal",
     ],
     out: [
         "android/hardware/audio/effect/2.0/types.cpp",
@@ -66,21 +52,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.effect@2.0",
     srcs: [
-        "types.hal",
-        "IAcousticEchoCancelerEffect.hal",
-        "IAutomaticGainControlEffect.hal",
-        "IBassBoostEffect.hal",
-        "IDownmixEffect.hal",
-        "IEffect.hal",
-        "IEffectBufferProviderCallback.hal",
-        "IEffectsFactory.hal",
-        "IEnvironmentalReverbEffect.hal",
-        "IEqualizerEffect.hal",
-        "ILoudnessEnhancerEffect.hal",
-        "INoiseSuppressionEffect.hal",
-        "IPresetReverbEffect.hal",
-        "IVirtualizerEffect.hal",
-        "IVisualizerEffect.hal",
+        ":android.hardware.audio.effect@2.0_hal",
     ],
     out: [
         "android/hardware/audio/effect/2.0/types.h",
diff --git a/audio/effect/2.0/Android.mk b/audio/effect/2.0/Android.mk
index 3383efd..d71255e 100644
--- a/audio/effect/2.0/Android.mk
+++ b/audio/effect/2.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.audio.effect@2.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/audio/effect/2.0/default/Effect.cpp b/audio/effect/2.0/default/Effect.cpp
index 0a4aeb7..83c8e09 100644
--- a/audio/effect/2.0/default/Effect.cpp
+++ b/audio/effect/2.0/default/Effect.cpp
@@ -77,10 +77,7 @@
     // as the Thread uses mutexes, and this can lead to priority inversion.
     while(!std::atomic_load_explicit(mStop, std::memory_order_acquire)) {
         uint32_t efState = 0;
-        mEfGroup->wait(
-                static_cast<uint32_t>(MessageQueueFlagBits::REQUEST_PROCESS_ALL),
-                &efState,
-                NS_PER_SEC);
+        mEfGroup->wait(static_cast<uint32_t>(MessageQueueFlagBits::REQUEST_PROCESS_ALL), &efState);
         if (!(efState & static_cast<uint32_t>(MessageQueueFlagBits::REQUEST_PROCESS_ALL))
                 || (efState & static_cast<uint32_t>(MessageQueueFlagBits::REQUEST_QUIT))) {
             continue;  // Nothing to do or time to quit.
diff --git a/automotive/vehicle/2.0/Android.bp b/automotive/vehicle/2.0/Android.bp
index 3f5b383..e08d3ca 100644
--- a/automotive/vehicle/2.0/Android.bp
+++ b/automotive/vehicle/2.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.0",
     srcs: [
-        "types.hal",
-        "IVehicle.hal",
-        "IVehicleCallback.hal",
+        ":android.hardware.automotive.vehicle@2.0_hal",
     ],
     out: [
         "android/hardware/automotive/vehicle/2.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.0",
     srcs: [
-        "types.hal",
-        "IVehicle.hal",
-        "IVehicleCallback.hal",
+        ":android.hardware.automotive.vehicle@2.0_hal",
     ],
     out: [
         "android/hardware/automotive/vehicle/2.0/types.h",
diff --git a/automotive/vehicle/2.0/Android.mk b/automotive/vehicle/2.0/Android.mk
index ca83918..c540027 100644
--- a/automotive/vehicle/2.0/Android.mk
+++ b/automotive/vehicle/2.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.automotive.vehicle@2.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -1189,7 +1189,7 @@
 LOCAL_MODULE := android.hardware.automotive.vehicle@2.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/automotive/vehicle/2.0/default/impl/DefaultConfig.h b/automotive/vehicle/2.0/default/impl/DefaultConfig.h
index 270bf8c..0c549b9 100644
--- a/automotive/vehicle/2.0/default/impl/DefaultConfig.h
+++ b/automotive/vehicle/2.0/default/impl/DefaultConfig.h
@@ -174,6 +174,18 @@
         .access = VehiclePropertyAccess::READ,
         .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
         .configArray = {0,0}
+    },
+
+    {
+        .prop = toInt(VehicleProperty::OBD2_FREEZE_FRAME_INFO),
+        .access = VehiclePropertyAccess::READ,
+        .changeMode = VehiclePropertyChangeMode::ON_CHANGE
+    },
+
+    {
+        .prop = toInt(VehicleProperty::OBD2_FREEZE_FRAME_CLEAR),
+        .access = VehiclePropertyAccess::WRITE,
+        .changeMode = VehiclePropertyChangeMode::ON_CHANGE
     }
 };
 
diff --git a/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.cpp b/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.cpp
index 88717a9..d3d77b6 100644
--- a/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.cpp
+++ b/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.cpp
@@ -15,9 +15,9 @@
  */
 
 #define LOG_TAG "DefaultVehicleHal"
+#include <android/log.h>
 
 #include <algorithm>
-#include <android/log.h>
 #include <netinet/in.h>
 #include <sys/socket.h>
 
@@ -181,87 +181,113 @@
     return nullptr;
 }
 
-void DefaultVehicleHal::initObd2LiveFrame(VehiclePropConfig& obd2LiveFramePropConfig) {
-    mObd2SensorStore.reset(new Obd2SensorStore(
-        obd2LiveFramePropConfig.configArray[0],
-        obd2LiveFramePropConfig.configArray[1]));
-    // precalculate OBD2 sensor values
-    mObd2SensorStore->setIntegerSensor(
+static std::unique_ptr<Obd2SensorStore> fillDefaultObd2Frame(
+        size_t numVendorIntegerSensors,
+        size_t numVendorFloatSensors) {
+    std::unique_ptr<Obd2SensorStore> sensorStore(new Obd2SensorStore(
+            numVendorIntegerSensors, numVendorFloatSensors));
+
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::FUEL_SYSTEM_STATUS,
         toInt(FuelSystemStatus::CLOSED_LOOP));
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::MALFUNCTION_INDICATOR_LIGHT_ON, 0);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::IGNITION_MONITORS_SUPPORTED,
         toInt(IgnitionMonitorKind::SPARK));
-    mObd2SensorStore->setIntegerSensor(Obd2IntegerSensorIndex::IGNITION_SPECIFIC_MONITORS,
+    sensorStore->setIntegerSensor(Obd2IntegerSensorIndex::IGNITION_SPECIFIC_MONITORS,
         CommonIgnitionMonitors::COMPONENTS_AVAILABLE |
         CommonIgnitionMonitors::MISFIRE_AVAILABLE |
         SparkIgnitionMonitors::AC_REFRIGERANT_AVAILABLE |
         SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_AVAILABLE);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::INTAKE_AIR_TEMPERATURE, 35);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::COMMANDED_SECONDARY_AIR_STATUS,
         toInt(SecondaryAirStatus::FROM_OUTSIDE_OR_OFF));
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::NUM_OXYGEN_SENSORS_PRESENT, 1);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::RUNTIME_SINCE_ENGINE_START, 500);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON, 0);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::WARMUPS_SINCE_CODES_CLEARED, 51);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::DISTANCE_TRAVELED_SINCE_CODES_CLEARED, 365);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::ABSOLUTE_BAROMETRIC_PRESSURE, 30);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::CONTROL_MODULE_VOLTAGE, 12);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::AMBIENT_AIR_TEMPERATURE, 18);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::MAX_FUEL_AIR_EQUIVALENCE_RATIO, 1);
-    mObd2SensorStore->setIntegerSensor(
+    sensorStore->setIntegerSensor(
         Obd2IntegerSensorIndex::FUEL_TYPE, toInt(FuelType::GASOLINE));
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::CALCULATED_ENGINE_LOAD, 0.153);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK1, -0.16);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK1, -0.16);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK2, -0.16);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK2, -0.16);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::INTAKE_MANIFOLD_ABSOLUTE_PRESSURE, 7.5);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::ENGINE_RPM, 1250.);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::VEHICLE_SPEED, 40.);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::TIMING_ADVANCE, 2.5);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::THROTTLE_POSITION, 19.75);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::OXYGEN_SENSOR1_VOLTAGE, 0.265);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::FUEL_TANK_LEVEL_INPUT, 0.824);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::EVAPORATION_SYSTEM_VAPOR_PRESSURE, -0.373);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR1, 190.);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::RELATIVE_THROTTLE_POSITION, 3.);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_B, 0.306);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::ACCELERATOR_PEDAL_POSITION_D, 0.188);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::ACCELERATOR_PEDAL_POSITION_E, 0.094);
-    mObd2SensorStore->setFloatSensor(
+    sensorStore->setFloatSensor(
         Obd2FloatSensorIndex::COMMANDED_THROTTLE_ACTUATOR, 0.024);
+
+    return sensorStore;
+}
+
+void DefaultVehicleHal::initObd2LiveFrame(VehiclePropConfig& propConfig) {
+    auto sensorStore = fillDefaultObd2Frame(propConfig.configArray[0],
+            propConfig.configArray[1]);
+    mLiveObd2Frame = createVehiclePropValue(VehiclePropertyType::COMPLEX, 0);
+    sensorStore->fillPropValue(mLiveObd2Frame.get(), "");
+}
+
+void DefaultVehicleHal::initObd2FreezeFrame(VehiclePropConfig& propConfig) {
+    auto sensorStore = fillDefaultObd2Frame(propConfig.configArray[0],
+            propConfig.configArray[1]);
+
+    mFreezeObd2Frames.push_back(
+            createVehiclePropValue(VehiclePropertyType::COMPLEX,0));
+    mFreezeObd2Frames.push_back(
+            createVehiclePropValue(VehiclePropertyType::COMPLEX,0));
+    mFreezeObd2Frames.push_back(
+            createVehiclePropValue(VehiclePropertyType::COMPLEX,0));
+
+    sensorStore->fillPropValue(mFreezeObd2Frames[0].get(), "P0070");
+    sensorStore->fillPropValue(mFreezeObd2Frames[1].get(), "P0102");
+    sensorStore->fillPropValue(mFreezeObd2Frames[2].get(), "P0123");
 }
 
 void DefaultVehicleHal::parseRxProtoBuf(std::vector<uint8_t>& msg) {
@@ -598,11 +624,15 @@
     switch (propId) {
     case toInt(VehicleProperty::OBD2_LIVE_FRAME):
         v = pool.obtainComplex();
-        status = fillObd2LiveFrame(&v);
+        status = fillObd2LiveFrame(v.get());
         break;
     case toInt(VehicleProperty::OBD2_FREEZE_FRAME):
         v = pool.obtainComplex();
-        status = fillObd2FreezeFrame(&v);
+        status = fillObd2FreezeFrame(requestedPropValue, v.get());
+        break;
+    case toInt(VehicleProperty::OBD2_FREEZE_FRAME_INFO):
+        v = pool.obtainComplex();
+        status = fillObd2DtcInfo(v.get());
         break;
     default:
         {
@@ -627,16 +657,24 @@
 }
 
 StatusCode DefaultVehicleHal::set(const VehiclePropValue& propValue) {
-    StatusCode status = updateProperty(propValue);
-
-    if (status == StatusCode::OK) {
-        // Send property update to emulator
-        emulator::EmulatorMessage msg;
-        emulator::VehiclePropValue *val = msg.add_value();
-        populateProtoVehiclePropValue(val, &propValue);
-        msg.set_status(emulator::RESULT_OK);
-        msg.set_msg_type(emulator::SET_PROPERTY_ASYNC);
-        txMsg(msg);
+    auto propId = propValue.prop;
+    StatusCode status;
+    switch (propId) {
+        case toInt(VehicleProperty::OBD2_FREEZE_FRAME_CLEAR):
+            status = clearObd2FreezeFrames(propValue);
+            break;
+        default:
+            status = updateProperty(propValue);
+            if (status == StatusCode::OK) {
+                // Send property update to emulator
+                emulator::EmulatorMessage msg;
+                emulator::VehiclePropValue *val = msg.add_value();
+                populateProtoVehiclePropValue(val, &propValue);
+                msg.set_status(emulator::RESULT_OK);
+                msg.set_msg_type(emulator::SET_PROPERTY_ASYNC);
+                txMsg(msg);
+            }
+            break;
     }
 
     return status;
@@ -680,6 +718,9 @@
             case toInt(VehicleProperty::OBD2_LIVE_FRAME):
                 initObd2LiveFrame(cfg);
                 break;
+            case toInt(VehicleProperty::OBD2_FREEZE_FRAME):
+                initObd2FreezeFrame(cfg);
+                break;
             default:
                 // Need to handle each complex property separately
                 break;
@@ -721,21 +762,78 @@
     mThread = std::thread(&DefaultVehicleHal::rxThread, this);
 }
 
-StatusCode DefaultVehicleHal::fillObd2LiveFrame(VehiclePropValuePtr* v) {
-    (*v)->value.int32Values = mObd2SensorStore->getIntegerSensors();
-    (*v)->value.floatValues = mObd2SensorStore->getFloatSensors();
-    (*v)->value.bytes = mObd2SensorStore->getSensorsBitmask();
+StatusCode DefaultVehicleHal::fillObd2LiveFrame(VehiclePropValue* v) {
+    v->prop = toInt(VehicleProperty::OBD2_LIVE_FRAME);
+    v->value.int32Values = mLiveObd2Frame->value.int32Values;
+    v->value.floatValues = mLiveObd2Frame->value.floatValues;
+    v->value.bytes = mLiveObd2Frame->value.bytes;
     return StatusCode::OK;
 }
 
-StatusCode DefaultVehicleHal::fillObd2FreezeFrame(VehiclePropValuePtr* v) {
-    (*v)->value.int32Values = mObd2SensorStore->getIntegerSensors();
-    (*v)->value.floatValues = mObd2SensorStore->getFloatSensors();
-    (*v)->value.bytes = mObd2SensorStore->getSensorsBitmask();
-    (*v)->value.stringValue = "P0010";
+template<typename Iterable>
+typename Iterable::const_iterator findPropValueAtTimestamp(
+        const Iterable& frames,
+        int64_t timestamp) {
+    return std::find_if(frames.begin(),
+            frames.end(),
+            [timestamp] (const std::unique_ptr<VehiclePropValue>&
+                         propValue) -> bool {
+                             return propValue->timestamp == timestamp;
+            });
+}
+
+StatusCode DefaultVehicleHal::fillObd2FreezeFrame(
+        const VehiclePropValue& requestedPropValue, VehiclePropValue* v) {
+    if (requestedPropValue.value.int64Values.size() != 1) {
+        ALOGE("asked for OBD2_FREEZE_FRAME without valid timestamp");
+        return StatusCode::INVALID_ARG;
+    }
+    auto timestamp = requestedPropValue.value.int64Values[0];
+    auto freezeFrameIter = findPropValueAtTimestamp(mFreezeObd2Frames,
+            timestamp);
+    if(mFreezeObd2Frames.end() == freezeFrameIter) {
+        ALOGE("asked for OBD2_FREEZE_FRAME at invalid timestamp");
+        return StatusCode::INVALID_ARG;
+    }
+    const std::unique_ptr<VehiclePropValue>& freezeFrame = *freezeFrameIter;
+    v->prop = toInt(VehicleProperty::OBD2_FREEZE_FRAME);
+    v->value.int32Values = freezeFrame->value.int32Values;
+    v->value.floatValues = freezeFrame->value.floatValues;
+    v->value.bytes = freezeFrame->value.bytes;
+    v->value.stringValue = freezeFrame->value.stringValue;
+    v->timestamp = freezeFrame->timestamp;
     return StatusCode::OK;
 }
 
+StatusCode DefaultVehicleHal::clearObd2FreezeFrames(
+    const VehiclePropValue& propValue) {
+    if (propValue.value.int64Values.size() == 0) {
+        mFreezeObd2Frames.clear();
+        return StatusCode::OK;
+    } else {
+        for(int64_t timestamp: propValue.value.int64Values) {
+            auto freezeFrameIter = findPropValueAtTimestamp(mFreezeObd2Frames,
+                    timestamp);
+            if(mFreezeObd2Frames.end() == freezeFrameIter) {
+                ALOGE("asked for OBD2_FREEZE_FRAME at invalid timestamp");
+                return StatusCode::INVALID_ARG;
+            }
+            mFreezeObd2Frames.erase(freezeFrameIter);
+        }
+    }
+    return StatusCode::OK;
+}
+
+StatusCode DefaultVehicleHal::fillObd2DtcInfo(VehiclePropValue* v) {
+    std::vector<int64_t> timestamps;
+    for(const auto& freezeFrame: mFreezeObd2Frames) {
+        timestamps.push_back(freezeFrame->timestamp);
+    }
+    v->value.int64Values = timestamps;
+    return StatusCode::OK;
+}
+
+
 
 }  // impl
 
diff --git a/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.h b/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.h
index edfc224..4b89f55 100644
--- a/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.h
+++ b/automotive/vehicle/2.0/default/impl/DefaultVehicleHal.h
@@ -85,7 +85,8 @@
     void doGetPropertyAll(emulator::EmulatorMessage& rxMsg, emulator::EmulatorMessage& respMsg);
     void doSetProperty(emulator::EmulatorMessage& rxMsg, emulator::EmulatorMessage& respMsg);
     VehiclePropValue* getVehiclePropValueLocked(int32_t propId, int32_t areaId);
-    void initObd2LiveFrame(VehiclePropConfig& obd2LiveFramePropConfig);
+    void initObd2LiveFrame(VehiclePropConfig& propConfig);
+    void initObd2FreezeFrame(VehiclePropConfig& propConfig);
     void parseRxProtoBuf(std::vector<uint8_t>& msg);
     void populateProtoVehicleConfig(emulator::VehiclePropConfig* protoCfg,
                                     const VehiclePropConfig& cfg);
@@ -96,14 +97,18 @@
     void rxThread(void);
     void txMsg(emulator::EmulatorMessage& txMsg);
     StatusCode updateProperty(const VehiclePropValue& propValue);
-    StatusCode fillObd2LiveFrame(VehiclePropValuePtr* v);
-    StatusCode fillObd2FreezeFrame(VehiclePropValuePtr* v);
+    StatusCode fillObd2LiveFrame(VehiclePropValue* v);
+    StatusCode fillObd2FreezeFrame(const VehiclePropValue& requestedPropValue,
+            VehiclePropValue* v);
+    StatusCode fillObd2DtcInfo(VehiclePropValue *v);
+    StatusCode clearObd2FreezeFrames(const VehiclePropValue& propValue);
 private:
     // TODO:  Use a hashtable to support indexing props
     std::vector<std::unique_ptr<VehiclePropValue>> mProps;
     std::atomic<int> mCurSocket;
     std::atomic<int> mExit;
-    std::unique_ptr<Obd2SensorStore> mObd2SensorStore{nullptr};
+    std::unique_ptr<VehiclePropValue> mLiveObd2Frame {nullptr};
+    std::vector<std::unique_ptr<VehiclePropValue>> mFreezeObd2Frames;
     std::mutex mPropsMutex;
     int mSocket;
     std::mutex mTxMutex;
diff --git a/automotive/vehicle/2.0/default/tests/AccessControlConfigParser_test.cpp b/automotive/vehicle/2.0/default/tests/AccessControlConfigParser_test.cpp
index 7c9a4d9..6922b86 100644
--- a/automotive/vehicle/2.0/default/tests/AccessControlConfigParser_test.cpp
+++ b/automotive/vehicle/2.0/default/tests/AccessControlConfigParser_test.cpp
@@ -50,7 +50,7 @@
 
     ASSERT_TRUE(parser->parseFromStream(&file, &aclMap));
 
-    ASSERT_EQ(1, aclMap.size());
+    ASSERT_EQ(1u, aclMap.size());
     auto it = aclMap.find(toInt(VehicleProperty::HVAC_FAN_SPEED));
     ASSERT_NE(aclMap.end(), it);
     ASSERT_EQ(VehiclePropertyAccess::READ_WRITE, it->second.access);
@@ -74,7 +74,7 @@
     for (auto it = range.first; it != range.second; ++it) {
         auto& acl = it->second;
 
-        ASSERT_EQ(1, expectedUids.count(acl.uid))
+        ASSERT_EQ(1u, expectedUids.count(acl.uid))
                 << " uid: " << std::hex << acl.uid;
 
         if (acl.uid == 0xbeef) {
@@ -93,12 +93,12 @@
 
     ASSERT_FALSE(parser->parseFromStream(&file, &aclMap));
 
-    ASSERT_EQ(1, aclMap.size());
+    ASSERT_EQ(1u, aclMap.size());
     auto it = aclMap.find(toInt(VehicleProperty::HVAC_FAN_SPEED));
     ASSERT_NE(aclMap.end(), it);
     ASSERT_EQ(VehiclePropertyAccess::READ, it->second.access);
     ASSERT_EQ(toInt(VehicleProperty::HVAC_FAN_SPEED), it->second.propId);
-    ASSERT_EQ(0xbeef, it->second.uid);
+    ASSERT_EQ(0xBEEFu, it->second.uid);
 }
 
 TEST_F(AccessControlConfigParserTest, badIntegerFormat) {
@@ -106,7 +106,7 @@
     file << "S:0x0500 A12 RW " << std::endl;
 
     ASSERT_FALSE(parser->parseFromStream(&file, &aclMap));
-    ASSERT_EQ(0, aclMap.size());
+    ASSERT_EQ(0u, aclMap.size());
 }
 
 TEST_F(AccessControlConfigParserTest, ignoreNotSupportedProperties) {
@@ -114,7 +114,7 @@
     file << "S:0x0666 1000 RW " << std::endl;
 
     ASSERT_FALSE(parser->parseFromStream(&file, &aclMap));
-    ASSERT_EQ(0, aclMap.size());
+    ASSERT_EQ(0u, aclMap.size());
 }
 
 TEST_F(AccessControlConfigParserTest, multipleCalls) {
@@ -122,12 +122,12 @@
     configFile << "S:0x0500 1000 RW" << std::endl;
 
     ASSERT_TRUE(parser->parseFromStream(&configFile, &aclMap));
-    ASSERT_EQ(1, aclMap.size());
+    ASSERT_EQ(1u, aclMap.size());
 
     std::stringstream configFile2;
     configFile2 << "S:0x0501 1004 RW" << std::endl;
     ASSERT_TRUE(parser->parseFromStream(&configFile2, &aclMap));
-    ASSERT_EQ(2, aclMap.size());
+    ASSERT_EQ(2u, aclMap.size());
 
     auto it = aclMap.find(toInt(VehicleProperty::HVAC_FAN_SPEED));
     ASSERT_NE(aclMap.end(), it);
diff --git a/automotive/vehicle/2.0/default/tests/VehicleHalManager_test.cpp b/automotive/vehicle/2.0/default/tests/VehicleHalManager_test.cpp
index 1ca5824..274a843 100644
--- a/automotive/vehicle/2.0/default/tests/VehicleHalManager_test.cpp
+++ b/automotive/vehicle/2.0/default/tests/VehicleHalManager_test.cpp
@@ -103,13 +103,13 @@
         return StatusCode::OK;
     }
 
-    StatusCode subscribe(int32_t property,
-                         int32_t areas,
-                         float sampleRate) override {
+    StatusCode subscribe(int32_t /* property */,
+                         int32_t /* areas */,
+                         float /* sampleRate */) override {
         return StatusCode::OK;
     }
 
-    StatusCode unsubscribe(int32_t property) override {
+    StatusCode unsubscribe(int32_t /* property */) override {
         return StatusCode::OK;
     }
 
@@ -323,20 +323,20 @@
     ASSERT_EQ(StatusCode::OK, actualStatusCode);
     ASSERT_EQ(toInt(VehicleProperty::VEHICLE_MAP_SERVICE), actualValue.prop);
 
-    ASSERT_EQ(3, actualValue.value.bytes.size());
+    ASSERT_EQ(3u, actualValue.value.bytes.size());
     ASSERT_EQ(1, actualValue.value.bytes[0]);
     ASSERT_EQ(2, actualValue.value.bytes[1]);
     ASSERT_EQ(3, actualValue.value.bytes[2]);
 
-    ASSERT_EQ(2, actualValue.value.int32Values.size());
+    ASSERT_EQ(2u, actualValue.value.int32Values.size());
     ASSERT_EQ(10, actualValue.value.int32Values[0]);
     ASSERT_EQ(20, actualValue.value.int32Values[1]);
 
-    ASSERT_EQ(2, actualValue.value.floatValues.size());
+    ASSERT_EQ(2u, actualValue.value.floatValues.size());
     ASSERT_FLOAT_EQ(1.1, actualValue.value.floatValues[0]);
     ASSERT_FLOAT_EQ(2.2, actualValue.value.floatValues[1]);
 
-    ASSERT_EQ(2, actualValue.value.int64Values.size());
+    ASSERT_EQ(2u, actualValue.value.int64Values.size());
     ASSERT_FLOAT_EQ(30, actualValue.value.int64Values[0]);
     ASSERT_FLOAT_EQ(40, actualValue.value.int64Values[1]);
 
diff --git a/automotive/vehicle/2.0/default/tests/VehicleHalTestUtils.h b/automotive/vehicle/2.0/default/tests/VehicleHalTestUtils.h
index a512fcf..8ba36d8 100644
--- a/automotive/vehicle/2.0/default/tests/VehicleHalTestUtils.h
+++ b/automotive/vehicle/2.0/default/tests/VehicleHalTestUtils.h
@@ -131,12 +131,12 @@
         mEventCond.notify_one();
         return Return<void>();
     }
-    Return<void> onPropertySet(const VehiclePropValue& value) override {
+    Return<void> onPropertySet(const VehiclePropValue& /* value */) override {
         return Return<void>();
     }
-    Return<void> onPropertySetError(StatusCode errorCode,
-                                    int32_t propId,
-                                    int32_t areaId) override {
+    Return<void> onPropertySetError(StatusCode /* errorCode */,
+                                    int32_t /* propId */,
+                                    int32_t /* areaId */) override {
         return Return<void>();
     }
 
diff --git a/automotive/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp b/automotive/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp
index 0d57284..7d37355 100644
--- a/automotive/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp
+++ b/automotive/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp
@@ -85,9 +85,9 @@
     // In this test we have T threads that concurrently in C cycles
     // obtain and release O VehiclePropValue objects of FLOAT / INT32 types.
 
-    const auto T = 2;
-    const auto C  = 500;
-    const auto O = 100;
+    const int T = 2;
+    const int C = 500;
+    const int O = 100;
 
     auto poolPtr = valuePool.get();
 
@@ -112,10 +112,10 @@
     }
     auto finish = elapsedRealtimeNano();
 
-    ASSERT_EQ(T * C * O, stats->Obtained);
-    ASSERT_EQ(T * C * O, stats->Recycled);
+    ASSERT_EQ(static_cast<uint32_t>(T * C * O), stats->Obtained);
+    ASSERT_EQ(static_cast<uint32_t>(T * C * O), stats->Recycled);
     // Created less than obtained.
-    ASSERT_GE(T * O, stats->Created);
+    ASSERT_GE(static_cast<uint32_t>(T * O), stats->Created);
 
     auto elapsedMs = (finish - start) / 1000000;
     ASSERT_GE(1000, elapsedMs);  // Less a second to access 100K objects.
diff --git a/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.cpp b/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.cpp
index 3a252af..761e550 100644
--- a/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.cpp
+++ b/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.cpp
@@ -16,6 +16,7 @@
 
 #include "Obd2SensorStore.h"
 
+#include <utils/SystemClock.h>
 #include <vehicle_hal_manager/VehicleUtils.h>
 
 namespace android {
@@ -98,6 +99,16 @@
     return mSensorsBitmask.getBitmask();
 }
 
+void Obd2SensorStore::fillPropValue(VehiclePropValue *propValue,
+                                    std::string dtc) const {
+    propValue->timestamp = elapsedRealtimeNano();
+    propValue->value.int32Values = getIntegerSensors();
+    propValue->value.floatValues = getFloatSensors();
+    propValue->value.bytes = getSensorsBitmask();
+    propValue->value.stringValue = dtc;
+}
+
+
 
 }  // namespace V2_0
 }  // namespace vehicle
diff --git a/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.h b/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.h
index cbe9893..3e2a08e 100644
--- a/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.h
+++ b/automotive/vehicle/2.0/default/vehicle_hal_manager/Obd2SensorStore.h
@@ -54,6 +54,10 @@
     // Returns a vector that contains a bitmask for all stored sensors.
     const std::vector<uint8_t>& getSensorsBitmask() const;
 
+    // Given a stringValue, fill in a VehiclePropValue
+    void fillPropValue(VehiclePropValue *propValue,
+            std::string dtc) const;
+
 private:
     class BitmaskInVector {
     public:
diff --git a/automotive/vehicle/2.0/default/vehicle_hal_manager/VehicleObjectPool.cpp b/automotive/vehicle/2.0/default/vehicle_hal_manager/VehicleObjectPool.cpp
index a79c55c..ac1245a 100644
--- a/automotive/vehicle/2.0/default/vehicle_hal_manager/VehicleObjectPool.cpp
+++ b/automotive/vehicle/2.0/default/vehicle_hal_manager/VehicleObjectPool.cpp
@@ -129,7 +129,7 @@
     if (!check(&o->value)) {
         ALOGE("Discarding value for prop 0x%x because it contains "
                   "data that is not consistent with this pool. "
-                  "Expected type: %d, vector size: %d",
+                  "Expected type: %d, vector size: %zu",
               o->prop, mPropType, mVectorSize);
         delete o;
     } else {
diff --git a/automotive/vehicle/2.0/types.hal b/automotive/vehicle/2.0/types.hal
index 05e10be..fa432f4 100644
--- a/automotive/vehicle/2.0/types.hal
+++ b/automotive/vehicle/2.0/types.hal
@@ -1829,6 +1829,10 @@
      *   configArray[1] : number of vendor-specific float-valued sensors
      *                    that can be returned in a frame.
      *
+     * A get of this property must take the following form:
+     *   int64Values[0]: timestamp of the freeze frame to retrieve.
+     *                   Valid timestamps are given by OBD2_DTC_INFO.
+     *
      * The values are to be interpreted as follows:
      * the indices defined in Obd2IntegerSensorIndex are to be used to
      * read from int32Values;
@@ -1860,8 +1864,49 @@
         | VehiclePropertyType:COMPLEX
         | VehicleArea:GLOBAL),
 
-};
+    /*
+     * OBD2 Freeze Frame Information
+     *
+     * This property describes the current freeze frames stored in vehicle
+     * memory and available for retrieval via OBD2_FREEZE_FRAME.
+     *
+     * The values are to be interpreted as follows:
+     * each element of int64Values is the timestamp at which a a fault code
+     * has been detected and the corresponding freeze frame stored, and each
+     * such element can be used as the key to OBD2_FREEZE_FRAME to retrieve
+     * the corresponding freeze frame.
+     *
+     * @change_mode VehiclePropertyChangeMode:ON_CHANGE
+     * @access VehiclePropertyAccess:READ
+     */
+    OBD2_FREEZE_FRAME_INFO = (
+        0x0D02
+        | VehiclePropertyGroup:SYSTEM
+        | VehiclePropertyType:COMPLEX
+        | VehicleArea:GLOBAL),
 
+    /*
+     * OBD2 Freeze Frame Clear
+     *
+     * This property allows deletion of any of the freeze frames stored in
+     * vehicle memory, as described by OBD2_DTC_INFO.
+     *
+     * A set of this property is to be interpreted as follows:
+     * if int64Values contains no elements, then all DTCs stored will be cleared;
+     * if int64Values contains one or more elements, then DTCs at the timestamps
+     * stored in int64Values will be cleared, and the others not cleared, except
+     * the memory will be compacted so that all remaining DTCs are stored
+     * contiguously.
+     *
+     * @change_mode VehiclePropertyChangeMode:ON_CHANGE
+     * @access VehiclePropertyAccess:WRITE
+     */
+    OBD2_FREEZE_FRAME_CLEAR = (
+        0x0D03
+        | VehiclePropertyGroup:SYSTEM
+        | VehiclePropertyType:COMPLEX
+        | VehicleArea:GLOBAL),
+};
 /*
  * Bit flags for fan direction
  */
diff --git a/benchmarks/msgq/1.0/Android.bp b/benchmarks/msgq/1.0/Android.bp
index de84e81..7f8ea99 100644
--- a/benchmarks/msgq/1.0/Android.bp
+++ b/benchmarks/msgq/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.benchmarks.msgq@1.0",
     srcs: [
-        "IBenchmarkMsgQ.hal",
+        ":android.hardware.benchmarks.msgq@1.0_hal",
     ],
     out: [
         "android/hardware/benchmarks/msgq/1.0/BenchmarkMsgQAll.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.benchmarks.msgq@1.0",
     srcs: [
-        "IBenchmarkMsgQ.hal",
+        ":android.hardware.benchmarks.msgq@1.0_hal",
     ],
     out: [
         "android/hardware/benchmarks/msgq/1.0/IBenchmarkMsgQ.h",
diff --git a/biometrics/Android.bp b/biometrics/Android.bp
index eea4604..b4681e4 100644
--- a/biometrics/Android.bp
+++ b/biometrics/Android.bp
@@ -1,4 +1,5 @@
 // This is an autogenerated file, do not edit.
 subdirs = [
     "fingerprint/2.1",
+    "fingerprint/2.1/vts/functional"
 ]
diff --git a/biometrics/fingerprint/2.1/Android.bp b/biometrics/fingerprint/2.1/Android.bp
index f285f16..586e1b3 100644
--- a/biometrics/fingerprint/2.1/Android.bp
+++ b/biometrics/fingerprint/2.1/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.biometrics.fingerprint@2.1",
     srcs: [
-        "types.hal",
-        "IBiometricsFingerprint.hal",
-        "IBiometricsFingerprintClientCallback.hal",
+        ":android.hardware.biometrics.fingerprint@2.1_hal",
     ],
     out: [
         "android/hardware/biometrics/fingerprint/2.1/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.biometrics.fingerprint@2.1",
     srcs: [
-        "types.hal",
-        "IBiometricsFingerprint.hal",
-        "IBiometricsFingerprintClientCallback.hal",
+        ":android.hardware.biometrics.fingerprint@2.1_hal",
     ],
     out: [
         "android/hardware/biometrics/fingerprint/2.1/types.h",
diff --git a/biometrics/fingerprint/2.1/Android.mk b/biometrics/fingerprint/2.1/Android.mk
index 22da268..567b38a 100644
--- a/biometrics/fingerprint/2.1/Android.mk
+++ b/biometrics/fingerprint/2.1/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.biometrics.fingerprint@2.1-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -239,7 +239,7 @@
 LOCAL_MODULE := android.hardware.biometrics.fingerprint@2.1-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp
index 7f0d005..b106481 100644
--- a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp
+++ b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 The Android Open Source Project
+ * 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.
diff --git a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
index 652a3e0..5923c84 100644
--- a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
+++ b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 The Android Open Source Project
+ * 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.
diff --git a/biometrics/fingerprint/2.1/default/service.cpp b/biometrics/fingerprint/2.1/default/service.cpp
index 0563acb..d6b91c6 100644
--- a/biometrics/fingerprint/2.1/default/service.cpp
+++ b/biometrics/fingerprint/2.1/default/service.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 The Android Open Source Project
+ * 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.
diff --git a/biometrics/fingerprint/2.1/types.hal b/biometrics/fingerprint/2.1/types.hal
index f462906..e389773 100644
--- a/biometrics/fingerprint/2.1/types.hal
+++ b/biometrics/fingerprint/2.1/types.hal
@@ -49,6 +49,8 @@
  * followed by ERROR_CANCELED.
  */
 enum FingerprintError : int32_t {
+  /* Used for testing, no error returned */
+  ERROR_NO_ERROR = 0,
   /* The hardware has an error that can't be resolved. */
   ERROR_HW_UNAVAILABLE = 1,
   /* Bad data; operation can't continue */
diff --git a/biometrics/fingerprint/2.1/vts/BiometricsFingerprint.vts b/biometrics/fingerprint/2.1/vts/BiometricsFingerprint.vts
new file mode 100644
index 0000000..475333e
--- /dev/null
+++ b/biometrics/fingerprint/2.1/vts/BiometricsFingerprint.vts
@@ -0,0 +1,461 @@
+component_class: HAL_HIDL
+component_type_version: 2.1
+component_name: "IBiometricsFingerprint"
+
+package: "android.hardware.biometrics.fingerprint"
+
+import: "android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprintClientCallback"
+import: "android.hardware.biometrics.fingerprint@2.1::types"
+import: "android.hidl.base@1.0::types"
+
+interface: {
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "SYS_UNKNOWN"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "SYS_OK"
+            scalar_value: {
+                int32_t: 0
+            }
+            enumerator: "SYS_ENOENT"
+            scalar_value: {
+                int32_t: -2
+            }
+            enumerator: "SYS_EINTR"
+            scalar_value: {
+                int32_t: -4
+            }
+            enumerator: "SYS_EIO"
+            scalar_value: {
+                int32_t: -5
+            }
+            enumerator: "SYS_EAGAIN"
+            scalar_value: {
+                int32_t: -11
+            }
+            enumerator: "SYS_ENOMEM"
+            scalar_value: {
+                int32_t: -12
+            }
+            enumerator: "SYS_EACCES"
+            scalar_value: {
+                int32_t: -13
+            }
+            enumerator: "SYS_EFAULT"
+            scalar_value: {
+                int32_t: -14
+            }
+            enumerator: "SYS_EBUSY"
+            scalar_value: {
+                int32_t: -16
+            }
+            enumerator: "SYS_EINVAL"
+            scalar_value: {
+                int32_t: -22
+            }
+            enumerator: "SYS_ENOSPC"
+            scalar_value: {
+                int32_t: -28
+            }
+            enumerator: "SYS_ETIMEDOUT"
+            scalar_value: {
+                int32_t: -110
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintError"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "ERROR_NO_ERROR"
+            scalar_value: {
+                int32_t: 0
+            }
+            enumerator: "ERROR_HW_UNAVAILABLE"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "ERROR_UNABLE_TO_PROCESS"
+            scalar_value: {
+                int32_t: 2
+            }
+            enumerator: "ERROR_TIMEOUT"
+            scalar_value: {
+                int32_t: 3
+            }
+            enumerator: "ERROR_NO_SPACE"
+            scalar_value: {
+                int32_t: 4
+            }
+            enumerator: "ERROR_CANCELED"
+            scalar_value: {
+                int32_t: 5
+            }
+            enumerator: "ERROR_UNABLE_TO_REMOVE"
+            scalar_value: {
+                int32_t: 6
+            }
+            enumerator: "ERROR_LOCKOUT"
+            scalar_value: {
+                int32_t: 7
+            }
+            enumerator: "ERROR_VENDOR"
+            scalar_value: {
+                int32_t: 8
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "ACQUIRED_GOOD"
+            scalar_value: {
+                int32_t: 0
+            }
+            enumerator: "ACQUIRED_PARTIAL"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "ACQUIRED_INSUFFICIENT"
+            scalar_value: {
+                int32_t: 2
+            }
+            enumerator: "ACQUIRED_IMAGER_DIRTY"
+            scalar_value: {
+                int32_t: 3
+            }
+            enumerator: "ACQUIRED_TOO_SLOW"
+            scalar_value: {
+                int32_t: 4
+            }
+            enumerator: "ACQUIRED_TOO_FAST"
+            scalar_value: {
+                int32_t: 5
+            }
+            enumerator: "ACQUIRED_VENDOR"
+            scalar_value: {
+                int32_t: 6
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "gid"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "fid"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintEnroll"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "finger"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        }
+        struct_value: {
+            name: "samplesRemaining"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "msg"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintIterator"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "finger"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        }
+        struct_value: {
+            name: "remainingTemplates"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquired"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "acquiredInfo"
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAuthenticated"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "finger"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        }
+        struct_value: {
+            name: "hat"
+            type: TYPE_ARRAY
+            vector_size: 69
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintMsgType"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "ERROR"
+            scalar_value: {
+                int32_t: -1
+            }
+            enumerator: "ACQUIRED"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "TEMPLATE_ENROLLING"
+            scalar_value: {
+                int32_t: 3
+            }
+            enumerator: "TEMPLATE_REMOVED"
+            scalar_value: {
+                int32_t: 4
+            }
+            enumerator: "AUTHENTICATED"
+            scalar_value: {
+                int32_t: 5
+            }
+            enumerator: "TEMPLATE_ENUMERATING"
+            scalar_value: {
+                int32_t: 6
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    api: {
+        name: "setNotify"
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_HIDL_CALLBACK
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprintClientCallback"
+        }
+        callflow: {
+            next: "setActiveGroup"
+        }
+        callflow: {
+            entry: true
+        }
+    }
+
+    api: {
+        name: "preEnroll"
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        callflow: {
+            next: "enroll"
+            next: "postEnroll"
+        }
+    }
+
+    api: {
+        name: "enroll"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        }
+        arg: {
+            type: TYPE_ARRAY
+            vector_size: 69
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        callflow: {
+            next: "cancel"
+            next: "enroll"
+            next: "postEnroll"
+            next: "remove"
+        }
+    }
+
+    api: {
+        name: "postEnroll"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        }
+        callflow: {
+            next: "authenticate"
+            next: "setActiveGroup"
+            next: "enumerate"
+            next: "remove"
+        }
+    }
+
+    api: {
+        name: "getAuthenticatorId"
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        callflow: {
+            next: "authenticate"
+        }
+    }
+
+    api: {
+        name: "cancel"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        }
+        callflow: {
+            next: "authenticate"
+            next: "enroll"
+            next: "enumerate"
+            next: "remove"
+            next: "setActiveGroup"
+        }
+    }
+
+    api: {
+        name: "enumerate"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        }
+        callflow: {
+            next: "remove"
+            next: "enroll"
+            next: "authenticate"
+            next: "setActiveGroup"
+        }
+    }
+
+    api: {
+        name: "remove"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        callflow: {
+            next: "enumerate"
+            next: "authenticate"
+            next: "cancel"
+            next: "getAuthenticatorId"
+            next: "setActiveGroup"
+        }
+    }
+
+    api: {
+        name: "setActiveGroup"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_STRING
+        }
+        callflow: {
+            next: "authenticate"
+            next: "preEnroll"
+            next: "enumerate"
+            next: "remove"
+        }
+    }
+
+    api: {
+        name: "authenticate"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        callflow: {
+            next: "cancel"
+            next: "preEnroll"
+            next: "remove"
+        }
+    }
+
+}
diff --git a/biometrics/fingerprint/2.1/vts/BiometricsFingerprintClientCallback.vts b/biometrics/fingerprint/2.1/vts/BiometricsFingerprintClientCallback.vts
new file mode 100644
index 0000000..7cf4003
--- /dev/null
+++ b/biometrics/fingerprint/2.1/vts/BiometricsFingerprintClientCallback.vts
@@ -0,0 +1,396 @@
+component_class: HAL_HIDL
+component_type_version: 2.1
+component_name: "IBiometricsFingerprintClientCallback"
+
+package: "android.hardware.biometrics.fingerprint"
+
+import: "android.hardware.biometrics.fingerprint@2.1::types"
+import: "android.hidl.base@1.0::types"
+
+interface: {
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "SYS_UNKNOWN"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "SYS_OK"
+            scalar_value: {
+                int32_t: 0
+            }
+            enumerator: "SYS_ENOENT"
+            scalar_value: {
+                int32_t: -2
+            }
+            enumerator: "SYS_EINTR"
+            scalar_value: {
+                int32_t: -4
+            }
+            enumerator: "SYS_EIO"
+            scalar_value: {
+                int32_t: -5
+            }
+            enumerator: "SYS_EAGAIN"
+            scalar_value: {
+                int32_t: -11
+            }
+            enumerator: "SYS_ENOMEM"
+            scalar_value: {
+                int32_t: -12
+            }
+            enumerator: "SYS_EACCES"
+            scalar_value: {
+                int32_t: -13
+            }
+            enumerator: "SYS_EFAULT"
+            scalar_value: {
+                int32_t: -14
+            }
+            enumerator: "SYS_EBUSY"
+            scalar_value: {
+                int32_t: -16
+            }
+            enumerator: "SYS_EINVAL"
+            scalar_value: {
+                int32_t: -22
+            }
+            enumerator: "SYS_ENOSPC"
+            scalar_value: {
+                int32_t: -28
+            }
+            enumerator: "SYS_ETIMEDOUT"
+            scalar_value: {
+                int32_t: -110
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintError"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "ERROR_NO_ERROR"
+            scalar_value: {
+                int32_t: 0
+            }
+            enumerator: "ERROR_HW_UNAVAILABLE"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "ERROR_UNABLE_TO_PROCESS"
+            scalar_value: {
+                int32_t: 2
+            }
+            enumerator: "ERROR_TIMEOUT"
+            scalar_value: {
+                int32_t: 3
+            }
+            enumerator: "ERROR_NO_SPACE"
+            scalar_value: {
+                int32_t: 4
+            }
+            enumerator: "ERROR_CANCELED"
+            scalar_value: {
+                int32_t: 5
+            }
+            enumerator: "ERROR_UNABLE_TO_REMOVE"
+            scalar_value: {
+                int32_t: 6
+            }
+            enumerator: "ERROR_LOCKOUT"
+            scalar_value: {
+                int32_t: 7
+            }
+            enumerator: "ERROR_VENDOR"
+            scalar_value: {
+                int32_t: 8
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "ACQUIRED_GOOD"
+            scalar_value: {
+                int32_t: 0
+            }
+            enumerator: "ACQUIRED_PARTIAL"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "ACQUIRED_INSUFFICIENT"
+            scalar_value: {
+                int32_t: 2
+            }
+            enumerator: "ACQUIRED_IMAGER_DIRTY"
+            scalar_value: {
+                int32_t: 3
+            }
+            enumerator: "ACQUIRED_TOO_SLOW"
+            scalar_value: {
+                int32_t: 4
+            }
+            enumerator: "ACQUIRED_TOO_FAST"
+            scalar_value: {
+                int32_t: 5
+            }
+            enumerator: "ACQUIRED_VENDOR"
+            scalar_value: {
+                int32_t: 6
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "gid"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "fid"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintEnroll"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "finger"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        }
+        struct_value: {
+            name: "samplesRemaining"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "msg"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintIterator"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "finger"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        }
+        struct_value: {
+            name: "remainingTemplates"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquired"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "acquiredInfo"
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo"
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAuthenticated"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "finger"
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+        }
+        struct_value: {
+            name: "hat"
+            type: TYPE_ARRAY
+            vector_size: 69
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintMsgType"
+        type: TYPE_ENUM
+        enum_value: {
+            scalar_type: "int32_t"
+
+            enumerator: "ERROR"
+            scalar_value: {
+                int32_t: -1
+            }
+            enumerator: "ACQUIRED"
+            scalar_value: {
+                int32_t: 1
+            }
+            enumerator: "TEMPLATE_ENROLLING"
+            scalar_value: {
+                int32_t: 3
+            }
+            enumerator: "TEMPLATE_REMOVED"
+            scalar_value: {
+                int32_t: 4
+            }
+            enumerator: "AUTHENTICATED"
+            scalar_value: {
+                int32_t: 5
+            }
+            enumerator: "TEMPLATE_ENUMERATING"
+            scalar_value: {
+                int32_t: 6
+            }
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    api: {
+        name: "onEnrollResult"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+    api: {
+        name: "onAcquired"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "onAuthenticated"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+    }
+
+    api: {
+        name: "onError"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintError"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "onRemoved"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+    api: {
+        name: "onEnumerate"
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+    }
+
+}
diff --git a/biometrics/fingerprint/2.1/vts/functional/Android.bp b/biometrics/fingerprint/2.1/vts/functional/Android.bp
new file mode 100644
index 0000000..7d2e83f
--- /dev/null
+++ b/biometrics/fingerprint/2.1/vts/functional/Android.bp
@@ -0,0 +1,41 @@
+//
+// 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.
+//
+
+cc_test {
+    name: "fingerprint_hidl_hal_test",
+    gtest: true,
+    srcs: ["fingerprint_hidl_hal_test.cpp"],
+    shared_libs: [
+        "libbase",
+        "libhidltransport",
+        "libhardware",
+        "libhwbinder",
+        "libhidlbase",
+        "liblog",
+        "libutils",
+        "android.hardware.biometrics.fingerprint@2.1",
+    ],
+    static_libs: ["libgtest"],
+    cflags: [
+        "--coverage",
+        "-O0",
+        "-g",
+    ],
+    ldflags: [
+        "--coverage"
+    ]
+}
+
diff --git a/biometrics/fingerprint/2.1/vts/functional/fingerprint_hidl_hal_test.cpp b/biometrics/fingerprint/2.1/vts/functional/fingerprint_hidl_hal_test.cpp
new file mode 100644
index 0000000..9138000
--- /dev/null
+++ b/biometrics/fingerprint/2.1/vts/functional/fingerprint_hidl_hal_test.cpp
@@ -0,0 +1,158 @@
+/*
+ * 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.
+ */
+
+#define LOG_TAG "fingerprint_hidl_hal_test"
+
+#include <android-base/logging.h>
+#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprint.h>
+#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprintClientCallback.h>
+#include <chrono>
+#include <gtest/gtest.h>
+#include <hidl/HidlSupport.h>
+#include <hidl/HidlTransportSupport.h>
+
+using android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprint;
+using android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprintClientCallback;
+using android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo;
+using android::hardware::biometrics::fingerprint::V2_1::FingerprintError;
+using android::hardware::biometrics::fingerprint::V2_1::RequestStatus;
+using android::hardware::hidl_vec;
+using android::hardware::Return;
+
+#define SERVICE_NAME "fingerprint_hal"
+
+class FingerprintHidlTest : public ::testing::Test,
+    public IBiometricsFingerprintClientCallback {
+
+protected:
+    android::sp<IBiometricsFingerprint> service;
+    FingerprintError err;
+    // State changes should occur within this threshold, otherwise the
+    // framework' will assume things have broken.
+    std::chrono::seconds threshold;
+
+public:
+    FingerprintHidlTest ():
+        err(FingerprintError::ERROR_NO_ERROR), threshold(1) {}
+
+    virtual void SetUp() override {
+        service = IBiometricsFingerprint::getService(SERVICE_NAME);
+
+        ASSERT_NE(service, nullptr);
+        clearErr();
+
+        // TODO: instantly fail any test that receives a death notification
+    }
+
+    virtual void TearDown() override {}
+
+    // implement methods of IBiometricsFingerprintClientCallback
+    virtual Return<void> onEnrollResult(uint64_t, uint32_t, uint32_t, uint32_t)
+            override {
+        return Return<void>();
+    }
+    virtual Return<void> onAcquired(uint64_t, FingerprintAcquiredInfo, int32_t)
+            override {
+        return Return<void>();
+    }
+
+    virtual Return<void> onAuthenticated(uint64_t, uint32_t, uint32_t, const
+            hidl_vec<uint8_t>&) override {
+        return Return<void>();
+    }
+
+    virtual Return<void> onError(uint64_t, FingerprintError error, int32_t)
+            override {
+        err = error;
+        return Return<void>();
+    }
+
+    virtual Return<void> onRemoved(uint64_t, uint32_t, uint32_t, uint32_t)
+            override {
+        return Return<void>();
+    }
+
+    virtual Return<void> onEnumerate(uint64_t, uint32_t, uint32_t, uint32_t)
+            override {
+        return Return<void>();
+    }
+
+    void clearErr () {
+        err = FingerprintError::ERROR_NO_ERROR;
+    }
+};
+
+class FingerprintHidlEnvironment : public ::testing::Environment {
+public:
+    virtual void SetUp() {}
+    virtual void TearDown() {}
+};
+
+// The service should be reachable.
+TEST_F(FingerprintHidlTest, ConnectTest) {
+    Return<uint64_t> rc = service->setNotify(this);
+    EXPECT_NE(rc, 0UL);
+}
+
+// Cancel should always return ERROR_CANCELED from any starting state including
+// the IDLE state.
+TEST_F(FingerprintHidlTest, CancelTest) {
+    Return<uint64_t> rc = service->setNotify(this);
+    EXPECT_NE(rc, 0UL);
+
+    auto start = std::chrono::system_clock::now();
+    Return<RequestStatus> res = service->cancel();
+    auto end = std::chrono::system_clock::now();
+    auto diff = end - start;
+
+    // check that we were able to make an IPC request successfully
+    EXPECT_EQ(RequestStatus::SYS_OK, res);
+    // check error should be ERROR_CANCELED
+    EXPECT_EQ(FingerprintError::ERROR_CANCELED, err);
+    // check that this did not take longer than a threshold
+    EXPECT_TRUE(diff <= threshold);
+}
+
+// A call to cancel should after any other method call should set the error
+// state to canceled.
+TEST_F(FingerprintHidlTest, AuthTest) {
+    Return<uint64_t> rc = service->setNotify(this);
+    EXPECT_NE(rc, 0UL);
+
+    Return<RequestStatus> res = service->authenticate(0, 0);
+    // check that we were able to make an IPC request successfully
+    EXPECT_EQ(RequestStatus::SYS_OK, res);
+
+    auto start = std::chrono::system_clock::now();
+    res = service->cancel();
+    auto end = std::chrono::system_clock::now();
+    auto diff = end - start;
+
+    // check that we were able to make an IPC request successfully
+    EXPECT_EQ(RequestStatus::SYS_OK, res);
+    // check error should be ERROR_CANCELED
+    EXPECT_EQ(FingerprintError::ERROR_CANCELED, err);
+    // check that this did not take longer than a threshold
+    EXPECT_TRUE(diff <= threshold);
+}
+
+int main(int argc, char **argv) {
+    ::testing::AddGlobalTestEnvironment(new FingerprintHidlEnvironment);
+    ::testing::InitGoogleTest(&argc, argv);
+    int status = RUN_ALL_TESTS();
+    LOG(INFO) << "Test result = " << status;
+    return status;
+}
diff --git a/biometrics/fingerprint/2.1/vts/types.vts b/biometrics/fingerprint/2.1/vts/types.vts
new file mode 100644
index 0000000..9f9fd37
--- /dev/null
+++ b/biometrics/fingerprint/2.1/vts/types.vts
@@ -0,0 +1,262 @@
+component_class: HAL_HIDL
+component_type_version: 2.1
+component_name: "types"
+
+package: "android.hardware.biometrics.fingerprint"
+
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::RequestStatus"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SYS_UNKNOWN"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "SYS_OK"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "SYS_ENOENT"
+        scalar_value: {
+            int32_t: -2
+        }
+        enumerator: "SYS_EINTR"
+        scalar_value: {
+            int32_t: -4
+        }
+        enumerator: "SYS_EIO"
+        scalar_value: {
+            int32_t: -5
+        }
+        enumerator: "SYS_EAGAIN"
+        scalar_value: {
+            int32_t: -11
+        }
+        enumerator: "SYS_ENOMEM"
+        scalar_value: {
+            int32_t: -12
+        }
+        enumerator: "SYS_EACCES"
+        scalar_value: {
+            int32_t: -13
+        }
+        enumerator: "SYS_EFAULT"
+        scalar_value: {
+            int32_t: -14
+        }
+        enumerator: "SYS_EBUSY"
+        scalar_value: {
+            int32_t: -16
+        }
+        enumerator: "SYS_EINVAL"
+        scalar_value: {
+            int32_t: -22
+        }
+        enumerator: "SYS_ENOSPC"
+        scalar_value: {
+            int32_t: -28
+        }
+        enumerator: "SYS_ETIMEDOUT"
+        scalar_value: {
+            int32_t: -110
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintError"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ERROR_NO_ERROR"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ERROR_HW_UNAVAILABLE"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ERROR_UNABLE_TO_PROCESS"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ERROR_TIMEOUT"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ERROR_NO_SPACE"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ERROR_CANCELED"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "ERROR_UNABLE_TO_REMOVE"
+        scalar_value: {
+            int32_t: 6
+        }
+        enumerator: "ERROR_LOCKOUT"
+        scalar_value: {
+            int32_t: 7
+        }
+        enumerator: "ERROR_VENDOR"
+        scalar_value: {
+            int32_t: 8
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ACQUIRED_GOOD"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "ACQUIRED_PARTIAL"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "ACQUIRED_INSUFFICIENT"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "ACQUIRED_IMAGER_DIRTY"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "ACQUIRED_TOO_SLOW"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "ACQUIRED_TOO_FAST"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "ACQUIRED_VENDOR"
+        scalar_value: {
+            int32_t: 6
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "gid"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "fid"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintEnroll"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "finger"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+    }
+    struct_value: {
+        name: "samplesRemaining"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "msg"
+        type: TYPE_SCALAR
+        scalar_type: "uint64_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintIterator"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "finger"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+    }
+    struct_value: {
+        name: "remainingTemplates"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquired"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "acquiredInfo"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAcquiredInfo"
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintAuthenticated"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "finger"
+        type: TYPE_STRUCT
+        predefined_type: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintFingerId"
+    }
+    struct_value: {
+        name: "hat"
+        type: TYPE_ARRAY
+        vector_size: 69
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::biometrics::fingerprint::V2_1::FingerprintMsgType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ERROR"
+        scalar_value: {
+            int32_t: -1
+        }
+        enumerator: "ACQUIRED"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "TEMPLATE_ENROLLING"
+        scalar_value: {
+            int32_t: 3
+        }
+        enumerator: "TEMPLATE_REMOVED"
+        scalar_value: {
+            int32_t: 4
+        }
+        enumerator: "AUTHENTICATED"
+        scalar_value: {
+            int32_t: 5
+        }
+        enumerator: "TEMPLATE_ENUMERATING"
+        scalar_value: {
+            int32_t: 6
+        }
+    }
+}
+
diff --git a/bluetooth/1.0/Android.bp b/bluetooth/1.0/Android.bp
index f2c394b..2373ceb 100644
--- a/bluetooth/1.0/Android.bp
+++ b/bluetooth/1.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.bluetooth@1.0",
     srcs: [
-        "types.hal",
-        "IBluetoothHci.hal",
-        "IBluetoothHciCallbacks.hal",
+        ":android.hardware.bluetooth@1.0_hal",
     ],
     out: [
         "android/hardware/bluetooth/1.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.bluetooth@1.0",
     srcs: [
-        "types.hal",
-        "IBluetoothHci.hal",
-        "IBluetoothHciCallbacks.hal",
+        ":android.hardware.bluetooth@1.0_hal",
     ],
     out: [
         "android/hardware/bluetooth/1.0/types.h",
diff --git a/bluetooth/1.0/Android.mk b/bluetooth/1.0/Android.mk
index 7924cee..d824d5d 100644
--- a/bluetooth/1.0/Android.mk
+++ b/bluetooth/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.bluetooth@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -87,7 +87,7 @@
 LOCAL_MODULE := android.hardware.bluetooth@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/boot/1.0/Android.bp b/boot/1.0/Android.bp
index 9dcabc4..7265cc2 100644
--- a/boot/1.0/Android.bp
+++ b/boot/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.boot@1.0",
     srcs: [
-        "types.hal",
-        "IBootControl.hal",
+        ":android.hardware.boot@1.0_hal",
     ],
     out: [
         "android/hardware/boot/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.boot@1.0",
     srcs: [
-        "types.hal",
-        "IBootControl.hal",
+        ":android.hardware.boot@1.0_hal",
     ],
     out: [
         "android/hardware/boot/1.0/types.h",
diff --git a/boot/1.0/Android.mk b/boot/1.0/Android.mk
index 6fa5e4b..b188acb 100644
--- a/boot/1.0/Android.mk
+++ b/boot/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.boot@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -83,7 +83,7 @@
 LOCAL_MODULE := android.hardware.boot@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/broadcastradio/1.0/Android.bp b/broadcastradio/1.0/Android.bp
index a58fbe1..3c3a015 100644
--- a/broadcastradio/1.0/Android.bp
+++ b/broadcastradio/1.0/Android.bp
@@ -16,11 +16,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.0",
     srcs: [
-        "types.hal",
-        "IBroadcastRadio.hal",
-        "IBroadcastRadioFactory.hal",
-        "ITuner.hal",
-        "ITunerCallback.hal",
+        ":android.hardware.broadcastradio@1.0_hal",
     ],
     out: [
         "android/hardware/broadcastradio/1.0/types.cpp",
@@ -36,11 +32,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.0",
     srcs: [
-        "types.hal",
-        "IBroadcastRadio.hal",
-        "IBroadcastRadioFactory.hal",
-        "ITuner.hal",
-        "ITunerCallback.hal",
+        ":android.hardware.broadcastradio@1.0_hal",
     ],
     out: [
         "android/hardware/broadcastradio/1.0/types.h",
diff --git a/camera/common/1.0/Android.bp b/camera/common/1.0/Android.bp
index 9717963..aea6e76 100644
--- a/camera/common/1.0/Android.bp
+++ b/camera/common/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.common@1.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.camera.common@1.0_hal",
     ],
     out: [
         "android/hardware/camera/common/1.0/types.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.common@1.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.camera.common@1.0_hal",
     ],
     out: [
         "android/hardware/camera/common/1.0/types.h",
diff --git a/camera/common/1.0/Android.mk b/camera/common/1.0/Android.mk
index 2e68dc0..9e05172 100644
--- a/camera/common/1.0/Android.mk
+++ b/camera/common/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.camera.common@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -191,7 +191,7 @@
 LOCAL_MODULE := android.hardware.camera.common@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/camera/device/1.0/Android.bp b/camera/device/1.0/Android.bp
index b285ee0..b8560c7 100644
--- a/camera/device/1.0/Android.bp
+++ b/camera/device/1.0/Android.bp
@@ -15,10 +15,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@1.0",
     srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDevicePreviewCallback.hal",
+        ":android.hardware.camera.device@1.0_hal",
     ],
     out: [
         "android/hardware/camera/device/1.0/types.cpp",
@@ -33,10 +30,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@1.0",
     srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDevicePreviewCallback.hal",
+        ":android.hardware.camera.device@1.0_hal",
     ],
     out: [
         "android/hardware/camera/device/1.0/types.h",
diff --git a/camera/device/3.2/Android.bp b/camera/device/3.2/Android.bp
index 1bc11ed..a3ac721 100644
--- a/camera/device/3.2/Android.bp
+++ b/camera/device/3.2/Android.bp
@@ -15,10 +15,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.2",
     srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDeviceSession.hal",
+        ":android.hardware.camera.device@3.2_hal",
     ],
     out: [
         "android/hardware/camera/device/3.2/types.cpp",
@@ -33,10 +30,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.2",
     srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDeviceSession.hal",
+        ":android.hardware.camera.device@3.2_hal",
     ],
     out: [
         "android/hardware/camera/device/3.2/types.h",
diff --git a/camera/metadata/3.2/Android.bp b/camera/metadata/3.2/Android.bp
index fa319e9..1e464d6 100644
--- a/camera/metadata/3.2/Android.bp
+++ b/camera/metadata/3.2/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.metadata@3.2",
     srcs: [
-        "types.hal",
+        ":android.hardware.camera.metadata@3.2_hal",
     ],
     out: [
         "android/hardware/camera/metadata/3.2/types.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.metadata@3.2",
     srcs: [
-        "types.hal",
+        ":android.hardware.camera.metadata@3.2_hal",
     ],
     out: [
         "android/hardware/camera/metadata/3.2/types.h",
diff --git a/camera/metadata/3.2/Android.mk b/camera/metadata/3.2/Android.mk
index 6604ccd..86cee91 100644
--- a/camera/metadata/3.2/Android.mk
+++ b/camera/metadata/3.2/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.camera.metadata@3.2-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -1236,7 +1236,7 @@
 LOCAL_MODULE := android.hardware.camera.metadata@3.2-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/camera/provider/2.4/Android.bp b/camera/provider/2.4/Android.bp
index 1874cd5..3369a3c 100644
--- a/camera/provider/2.4/Android.bp
+++ b/camera/provider/2.4/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.provider@2.4",
     srcs: [
-        "ICameraProvider.hal",
-        "ICameraProviderCallback.hal",
+        ":android.hardware.camera.provider@2.4_hal",
     ],
     out: [
         "android/hardware/camera/provider/2.4/CameraProviderAll.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.provider@2.4",
     srcs: [
-        "ICameraProvider.hal",
-        "ICameraProviderCallback.hal",
+        ":android.hardware.camera.provider@2.4_hal",
     ],
     out: [
         "android/hardware/camera/provider/2.4/ICameraProvider.h",
diff --git a/camera/provider/2.4/default/CameraProvider.cpp b/camera/provider/2.4/default/CameraProvider.cpp
index f1a66a8..5714f83 100644
--- a/camera/provider/2.4/default/CameraProvider.cpp
+++ b/camera/provider/2.4/default/CameraProvider.cpp
@@ -51,8 +51,7 @@
         const struct camera_module_callbacks* callbacks,
         int camera_id,
         int new_status) {
-    ALOGI("%s++", __FUNCTION__);
-    sp<CameraProvider> cp = const_cast<CameraProvider*>(
+    CameraProvider* cp = const_cast<CameraProvider*>(
             static_cast<const CameraProvider*>(callbacks));
 
     if (cp == nullptr) {
@@ -60,7 +59,7 @@
         return;
     }
 
-    ALOGI("%s resolved provider %p", __FUNCTION__, cp.get());
+    ALOGI("%s resolved provider %p", __FUNCTION__, cp);
 
     Mutex::Autolock _l(cp->mCbLock);
     char cameraId[kMaxCameraIdLen];
@@ -76,15 +75,13 @@
             }
         }
     }
-    ALOGI("%s--", __FUNCTION__);
 }
 
 void CameraProvider::sTorchModeStatusChange(
         const struct camera_module_callbacks* callbacks,
         const char* camera_id,
         int new_status) {
-    ALOGI("%s++", __FUNCTION__);
-    sp<CameraProvider> cp = const_cast<CameraProvider*>(
+    CameraProvider* cp = const_cast<CameraProvider*>(
             static_cast<const CameraProvider*>(callbacks));
 
     if (cp == nullptr) {
@@ -92,7 +89,7 @@
         return;
     }
 
-    ALOGI("%s resolved provider %p", __FUNCTION__, cp.get());
+    ALOGI("%s resolved provider %p", __FUNCTION__, cp);
 
     Mutex::Autolock _l(cp->mCbLock);
     if (cp->mCallbacks != nullptr) {
@@ -105,7 +102,6 @@
             }
         }
     }
-    ALOGI("%s--", __FUNCTION__);
 }
 
 Status CameraProvider::getHidlStatus(int status) {
@@ -234,8 +230,10 @@
 
     // Setup vendor tags here so HAL can setup vendor keys in camera characteristics
     VendorTagDescriptor::clearGlobalVendorTagDescriptor();
-    bool setupSucceed = setUpVendorTags();
-    return !setupSucceed; // return flag here is mInitFailed
+    if (!setUpVendorTags()) {
+        ALOGE("%s: Vendor tag setup failed, will not be available.", __FUNCTION__);
+    }
+    return false; // mInitFailed
 }
 
 bool CameraProvider::setUpVendorTags() {
@@ -245,7 +243,7 @@
     // Check if vendor operations have been implemented
     if (!mModule->isVendorTagDefined()) {
         ALOGI("%s: No vendor tags defined for this device.", __FUNCTION__);
-        return false;
+        return true;
     }
 
     mModule->getVendorTagOps(&vOps);
diff --git a/configstore/1.0/Android.bp b/configstore/1.0/Android.bp
index 5b3242e..c2cd54a 100644
--- a/configstore/1.0/Android.bp
+++ b/configstore/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.configstore@1.0",
     srcs: [
-        "types.hal",
-        "ISurfaceFlingerConfigs.hal",
+        ":android.hardware.configstore@1.0_hal",
     ],
     out: [
         "android/hardware/configstore/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.configstore@1.0",
     srcs: [
-        "types.hal",
-        "ISurfaceFlingerConfigs.hal",
+        ":android.hardware.configstore@1.0_hal",
     ],
     out: [
         "android/hardware/configstore/1.0/types.h",
diff --git a/configstore/1.0/Android.mk b/configstore/1.0/Android.mk
index fd2718e..010d509 100644
--- a/configstore/1.0/Android.mk
+++ b/configstore/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.configstore@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -159,7 +159,7 @@
 LOCAL_MODULE := android.hardware.configstore@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/contexthub/1.0/Android.bp b/contexthub/1.0/Android.bp
index 556894d..8cd4acb 100644
--- a/contexthub/1.0/Android.bp
+++ b/contexthub/1.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.contexthub@1.0",
     srcs: [
-        "types.hal",
-        "IContexthub.hal",
-        "IContexthubCallback.hal",
+        ":android.hardware.contexthub@1.0_hal",
     ],
     out: [
         "android/hardware/contexthub/1.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.contexthub@1.0",
     srcs: [
-        "types.hal",
-        "IContexthub.hal",
-        "IContexthubCallback.hal",
+        ":android.hardware.contexthub@1.0_hal",
     ],
     out: [
         "android/hardware/contexthub/1.0/types.h",
diff --git a/contexthub/1.0/Android.mk b/contexthub/1.0/Android.mk
index c73c5c4..a053986 100644
--- a/contexthub/1.0/Android.mk
+++ b/contexthub/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.contexthub@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -334,7 +334,7 @@
 LOCAL_MODULE := android.hardware.contexthub@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/drm/1.0/Android.bp b/drm/1.0/Android.bp
index d96ba14..0241984 100644
--- a/drm/1.0/Android.bp
+++ b/drm/1.0/Android.bp
@@ -17,12 +17,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.drm@1.0",
     srcs: [
-        "types.hal",
-        "ICryptoFactory.hal",
-        "ICryptoPlugin.hal",
-        "IDrmFactory.hal",
-        "IDrmPlugin.hal",
-        "IDrmPluginListener.hal",
+        ":android.hardware.drm@1.0_hal",
     ],
     out: [
         "android/hardware/drm/1.0/types.cpp",
@@ -39,12 +34,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.drm@1.0",
     srcs: [
-        "types.hal",
-        "ICryptoFactory.hal",
-        "ICryptoPlugin.hal",
-        "IDrmFactory.hal",
-        "IDrmPlugin.hal",
-        "IDrmPluginListener.hal",
+        ":android.hardware.drm@1.0_hal",
     ],
     out: [
         "android/hardware/drm/1.0/types.h",
diff --git a/dumpstate/1.0/Android.bp b/dumpstate/1.0/Android.bp
index 127b22a..1b473bc 100644
--- a/dumpstate/1.0/Android.bp
+++ b/dumpstate/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.dumpstate@1.0",
     srcs: [
-        "IDumpstateDevice.hal",
+        ":android.hardware.dumpstate@1.0_hal",
     ],
     out: [
         "android/hardware/dumpstate/1.0/DumpstateDeviceAll.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.dumpstate@1.0",
     srcs: [
-        "IDumpstateDevice.hal",
+        ":android.hardware.dumpstate@1.0_hal",
     ],
     out: [
         "android/hardware/dumpstate/1.0/IDumpstateDevice.h",
diff --git a/evs/1.0/Android.bp b/evs/1.0/Android.bp
index 7c23996..89bac10 100644
--- a/evs/1.0/Android.bp
+++ b/evs/1.0/Android.bp
@@ -16,11 +16,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.evs@1.0",
     srcs: [
-        "types.hal",
-        "IEvsCamera.hal",
-        "IEvsCameraStream.hal",
-        "IEvsDisplay.hal",
-        "IEvsEnumerator.hal",
+        ":android.hardware.evs@1.0_hal",
     ],
     out: [
         "android/hardware/evs/1.0/types.cpp",
@@ -36,11 +32,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.evs@1.0",
     srcs: [
-        "types.hal",
-        "IEvsCamera.hal",
-        "IEvsCameraStream.hal",
-        "IEvsDisplay.hal",
-        "IEvsEnumerator.hal",
+        ":android.hardware.evs@1.0_hal",
     ],
     out: [
         "android/hardware/evs/1.0/types.h",
diff --git a/example/extension/light/2.0/Android.bp b/example/extension/light/2.0/Android.bp
index a658356..cf345da 100644
--- a/example/extension/light/2.0/Android.bp
+++ b/example/extension/light/2.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.example.extension.light@2.0",
     srcs: [
-        "types.hal",
-        "IExtLight.hal",
+        ":android.hardware.example.extension.light@2.0_hal",
     ],
     out: [
         "android/hardware/example/extension/light/2.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.example.extension.light@2.0",
     srcs: [
-        "types.hal",
-        "IExtLight.hal",
+        ":android.hardware.example.extension.light@2.0_hal",
     ],
     out: [
         "android/hardware/example/extension/light/2.0/types.h",
diff --git a/example/extension/light/2.0/Android.mk b/example/extension/light/2.0/Android.mk
index deb7a2a..0b79747 100644
--- a/example/extension/light/2.0/Android.mk
+++ b/example/extension/light/2.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.example.extension.light@2.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -103,7 +103,7 @@
 LOCAL_MODULE := android.hardware.example.extension.light@2.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/gatekeeper/1.0/Android.bp b/gatekeeper/1.0/Android.bp
index 89e2f39..2697e4c 100644
--- a/gatekeeper/1.0/Android.bp
+++ b/gatekeeper/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gatekeeper@1.0",
     srcs: [
-        "types.hal",
-        "IGatekeeper.hal",
+        ":android.hardware.gatekeeper@1.0_hal",
     ],
     out: [
         "android/hardware/gatekeeper/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gatekeeper@1.0",
     srcs: [
-        "types.hal",
-        "IGatekeeper.hal",
+        ":android.hardware.gatekeeper@1.0_hal",
     ],
     out: [
         "android/hardware/gatekeeper/1.0/types.h",
diff --git a/gatekeeper/1.0/Android.mk b/gatekeeper/1.0/Android.mk
index 5d66b45..70206ff 100644
--- a/gatekeeper/1.0/Android.mk
+++ b/gatekeeper/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.gatekeeper@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -83,7 +83,7 @@
 LOCAL_MODULE := android.hardware.gatekeeper@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/gnss/1.0/Android.bp b/gnss/1.0/Android.bp
index b76b4c5..16895b6 100644
--- a/gnss/1.0/Android.bp
+++ b/gnss/1.0/Android.bp
@@ -32,27 +32,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gnss@1.0",
     srcs: [
-        "types.hal",
-        "IAGnss.hal",
-        "IAGnssCallback.hal",
-        "IAGnssRil.hal",
-        "IAGnssRilCallback.hal",
-        "IGnss.hal",
-        "IGnssBatching.hal",
-        "IGnssBatchingCallback.hal",
-        "IGnssCallback.hal",
-        "IGnssConfiguration.hal",
-        "IGnssDebug.hal",
-        "IGnssGeofenceCallback.hal",
-        "IGnssGeofencing.hal",
-        "IGnssMeasurement.hal",
-        "IGnssMeasurementCallback.hal",
-        "IGnssNavigationMessage.hal",
-        "IGnssNavigationMessageCallback.hal",
-        "IGnssNi.hal",
-        "IGnssNiCallback.hal",
-        "IGnssXtra.hal",
-        "IGnssXtraCallback.hal",
+        ":android.hardware.gnss@1.0_hal",
     ],
     out: [
         "android/hardware/gnss/1.0/types.cpp",
@@ -84,27 +64,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gnss@1.0",
     srcs: [
-        "types.hal",
-        "IAGnss.hal",
-        "IAGnssCallback.hal",
-        "IAGnssRil.hal",
-        "IAGnssRilCallback.hal",
-        "IGnss.hal",
-        "IGnssBatching.hal",
-        "IGnssBatchingCallback.hal",
-        "IGnssCallback.hal",
-        "IGnssConfiguration.hal",
-        "IGnssDebug.hal",
-        "IGnssGeofenceCallback.hal",
-        "IGnssGeofencing.hal",
-        "IGnssMeasurement.hal",
-        "IGnssMeasurementCallback.hal",
-        "IGnssNavigationMessage.hal",
-        "IGnssNavigationMessageCallback.hal",
-        "IGnssNi.hal",
-        "IGnssNiCallback.hal",
-        "IGnssXtra.hal",
-        "IGnssXtraCallback.hal",
+        ":android.hardware.gnss@1.0_hal",
     ],
     out: [
         "android/hardware/gnss/1.0/types.h",
diff --git a/gnss/1.0/Android.mk b/gnss/1.0/Android.mk
index 98c547c..5985c87 100644
--- a/gnss/1.0/Android.mk
+++ b/gnss/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.gnss@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -530,7 +530,7 @@
 LOCAL_MODULE := android.hardware.gnss@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -1052,7 +1052,7 @@
 LOCAL_MODULE := android.hardware.gnss@1.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/graphics/allocator/2.0/Android.bp b/graphics/allocator/2.0/Android.bp
index b481fde..69ddd9b 100644
--- a/graphics/allocator/2.0/Android.bp
+++ b/graphics/allocator/2.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.allocator@2.0",
     srcs: [
-        "types.hal",
-        "IAllocator.hal",
-        "IAllocatorClient.hal",
+        ":android.hardware.graphics.allocator@2.0_hal",
     ],
     out: [
         "android/hardware/graphics/allocator/2.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.allocator@2.0",
     srcs: [
-        "types.hal",
-        "IAllocator.hal",
-        "IAllocatorClient.hal",
+        ":android.hardware.graphics.allocator@2.0_hal",
     ],
     out: [
         "android/hardware/graphics/allocator/2.0/types.h",
diff --git a/graphics/common/1.0/Android.bp b/graphics/common/1.0/Android.bp
index 4524e3a..99370e8 100644
--- a/graphics/common/1.0/Android.bp
+++ b/graphics/common/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.common@1.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.graphics.common@1.0_hal",
     ],
     out: [
         "android/hardware/graphics/common/1.0/types.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.common@1.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.graphics.common@1.0_hal",
     ],
     out: [
         "android/hardware/graphics/common/1.0/types.h",
diff --git a/graphics/common/1.0/Android.mk b/graphics/common/1.0/Android.mk
index 0fa6dcc..c08053d 100644
--- a/graphics/common/1.0/Android.mk
+++ b/graphics/common/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.graphics.common@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -134,7 +134,7 @@
 LOCAL_MODULE := android.hardware.graphics.common@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -260,7 +260,7 @@
 LOCAL_MODULE := android.hardware.graphics.common@1.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/graphics/composer/2.1/Android.bp b/graphics/composer/2.1/Android.bp
index 9cd753a..f309439 100644
--- a/graphics/composer/2.1/Android.bp
+++ b/graphics/composer/2.1/Android.bp
@@ -15,10 +15,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.composer@2.1",
     srcs: [
-        "types.hal",
-        "IComposer.hal",
-        "IComposerCallback.hal",
-        "IComposerClient.hal",
+        ":android.hardware.graphics.composer@2.1_hal",
     ],
     out: [
         "android/hardware/graphics/composer/2.1/types.cpp",
@@ -33,10 +30,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.composer@2.1",
     srcs: [
-        "types.hal",
-        "IComposer.hal",
-        "IComposerCallback.hal",
-        "IComposerClient.hal",
+        ":android.hardware.graphics.composer@2.1_hal",
     ],
     out: [
         "android/hardware/graphics/composer/2.1/types.h",
diff --git a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc
index fc21d59..9548d41 100644
--- a/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc
+++ b/graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc
@@ -2,4 +2,5 @@
     class hal
     user system
     group graphics drmrpc readproc
+    capabilities SYS_NICE
     onrestart restart surfaceflinger
diff --git a/graphics/composer/2.1/default/service.cpp b/graphics/composer/2.1/default/service.cpp
index a31decd..656673e 100644
--- a/graphics/composer/2.1/default/service.cpp
+++ b/graphics/composer/2.1/default/service.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "android.hardware.graphics.composer@2.1-service"
 
+#include <sched.h>
+
 #include <android/hardware/graphics/composer/2.1/IComposer.h>
 
 #include <binder/ProcessState.h>
@@ -29,5 +31,13 @@
     android::ProcessState::self()->setThreadPoolMaxThreadCount(4);
     android::ProcessState::self()->startThreadPool();
 
+    // same as SF main thread
+    struct sched_param param = {0};
+    param.sched_priority = 2;
+    if (sched_setscheduler(0, SCHED_FIFO | SCHED_RESET_ON_FORK,
+                &param) != 0) {
+        ALOGE("Couldn't set SCHED_FIFO: %d", errno);
+    }
+
     return defaultPassthroughServiceImplementation<IComposer>("hwcomposer");
 }
diff --git a/graphics/mapper/2.0/Android.bp b/graphics/mapper/2.0/Android.bp
index f53759c..b835b4a 100644
--- a/graphics/mapper/2.0/Android.bp
+++ b/graphics/mapper/2.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.mapper@2.0",
     srcs: [
-        "types.hal",
-        "IMapper.hal",
+        ":android.hardware.graphics.mapper@2.0_hal",
     ],
     out: [
         "android/hardware/graphics/mapper/2.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.mapper@2.0",
     srcs: [
-        "types.hal",
-        "IMapper.hal",
+        ":android.hardware.graphics.mapper@2.0_hal",
     ],
     out: [
         "android/hardware/graphics/mapper/2.0/types.h",
diff --git a/health/1.0/Android.bp b/health/1.0/Android.bp
index 189cb3d..a428c7d 100644
--- a/health/1.0/Android.bp
+++ b/health/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.health@1.0",
     srcs: [
-        "types.hal",
-        "IHealth.hal",
+        ":android.hardware.health@1.0_hal",
     ],
     out: [
         "android/hardware/health/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.health@1.0",
     srcs: [
-        "types.hal",
-        "IHealth.hal",
+        ":android.hardware.health@1.0_hal",
     ],
     out: [
         "android/hardware/health/1.0/types.h",
diff --git a/health/1.0/Android.mk b/health/1.0/Android.mk
index f05d227..ebb89a7 100644
--- a/health/1.0/Android.mk
+++ b/health/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.health@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -140,7 +140,7 @@
 LOCAL_MODULE := android.hardware.health@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -272,7 +272,7 @@
 LOCAL_MODULE := android.hardware.health@1.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/ir/1.0/Android.bp b/ir/1.0/Android.bp
index 5628952..da49579 100644
--- a/ir/1.0/Android.bp
+++ b/ir/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.ir@1.0",
     srcs: [
-        "types.hal",
-        "IConsumerIr.hal",
+        ":android.hardware.ir@1.0_hal",
     ],
     out: [
         "android/hardware/ir/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.ir@1.0",
     srcs: [
-        "types.hal",
-        "IConsumerIr.hal",
+        ":android.hardware.ir@1.0_hal",
     ],
     out: [
         "android/hardware/ir/1.0/types.h",
diff --git a/ir/1.0/Android.mk b/ir/1.0/Android.mk
index 660b32b..d43286c 100644
--- a/ir/1.0/Android.mk
+++ b/ir/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.ir@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -64,7 +64,7 @@
 LOCAL_MODULE := android.hardware.ir@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/keymaster/3.0/Android.bp b/keymaster/3.0/Android.bp
index ec56292..074bb68 100644
--- a/keymaster/3.0/Android.bp
+++ b/keymaster/3.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.keymaster@3.0",
     srcs: [
-        "types.hal",
-        "IKeymasterDevice.hal",
+        ":android.hardware.keymaster@3.0_hal",
     ],
     out: [
         "android/hardware/keymaster/3.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.keymaster@3.0",
     srcs: [
-        "types.hal",
-        "IKeymasterDevice.hal",
+        ":android.hardware.keymaster@3.0_hal",
     ],
     out: [
         "android/hardware/keymaster/3.0/types.h",
diff --git a/light/2.0/Android.bp b/light/2.0/Android.bp
index 74c8e50..093a9f3 100644
--- a/light/2.0/Android.bp
+++ b/light/2.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.light@2.0",
     srcs: [
-        "types.hal",
-        "ILight.hal",
+        ":android.hardware.light@2.0_hal",
     ],
     out: [
         "android/hardware/light/2.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.light@2.0",
     srcs: [
-        "types.hal",
-        "ILight.hal",
+        ":android.hardware.light@2.0_hal",
     ],
     out: [
         "android/hardware/light/2.0/types.h",
diff --git a/light/2.0/Android.mk b/light/2.0/Android.mk
index ef19bad..7bb4293 100644
--- a/light/2.0/Android.mk
+++ b/light/2.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.light@2.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -140,7 +140,7 @@
 LOCAL_MODULE := android.hardware.light@2.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/media/1.0/Android.bp b/media/1.0/Android.bp
index 36e9eff..7518eb3 100644
--- a/media/1.0/Android.bp
+++ b/media/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.media@1.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.media@1.0_hal",
     ],
     out: [
         "android/hardware/media/1.0/types.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.media@1.0",
     srcs: [
-        "types.hal",
+        ":android.hardware.media@1.0_hal",
     ],
     out: [
         "android/hardware/media/1.0/types.h",
diff --git a/media/omx/1.0/Android.bp b/media/omx/1.0/Android.bp
index e042e5d..85d15ae 100644
--- a/media/omx/1.0/Android.bp
+++ b/media/omx/1.0/Android.bp
@@ -19,14 +19,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.media.omx@1.0",
     srcs: [
-        "types.hal",
-        "IGraphicBufferSource.hal",
-        "IOmx.hal",
-        "IOmxBufferProducer.hal",
-        "IOmxBufferSource.hal",
-        "IOmxNode.hal",
-        "IOmxObserver.hal",
-        "IOmxProducerListener.hal",
+        ":android.hardware.media.omx@1.0_hal",
     ],
     out: [
         "android/hardware/media/omx/1.0/types.cpp",
@@ -45,14 +38,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.media.omx@1.0",
     srcs: [
-        "types.hal",
-        "IGraphicBufferSource.hal",
-        "IOmx.hal",
-        "IOmxBufferProducer.hal",
-        "IOmxBufferSource.hal",
-        "IOmxNode.hal",
-        "IOmxObserver.hal",
-        "IOmxProducerListener.hal",
+        ":android.hardware.media.omx@1.0_hal",
     ],
     out: [
         "android/hardware/media/omx/1.0/types.h",
diff --git a/memtrack/1.0/Android.bp b/memtrack/1.0/Android.bp
index 9a1b84a..9f4c7f6 100644
--- a/memtrack/1.0/Android.bp
+++ b/memtrack/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.memtrack@1.0",
     srcs: [
-        "types.hal",
-        "IMemtrack.hal",
+        ":android.hardware.memtrack@1.0_hal",
     ],
     out: [
         "android/hardware/memtrack/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.memtrack@1.0",
     srcs: [
-        "types.hal",
-        "IMemtrack.hal",
+        ":android.hardware.memtrack@1.0_hal",
     ],
     out: [
         "android/hardware/memtrack/1.0/types.h",
diff --git a/memtrack/1.0/Android.mk b/memtrack/1.0/Android.mk
index eeb67f6..62bee97 100644
--- a/memtrack/1.0/Android.mk
+++ b/memtrack/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.memtrack@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -121,7 +121,7 @@
 LOCAL_MODULE := android.hardware.memtrack@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/nfc/1.0/Android.bp b/nfc/1.0/Android.bp
index 7f228a7..e7305b4 100644
--- a/nfc/1.0/Android.bp
+++ b/nfc/1.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.nfc@1.0",
     srcs: [
-        "types.hal",
-        "INfc.hal",
-        "INfcClientCallback.hal",
+        ":android.hardware.nfc@1.0_hal",
     ],
     out: [
         "android/hardware/nfc/1.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.nfc@1.0",
     srcs: [
-        "types.hal",
-        "INfc.hal",
-        "INfcClientCallback.hal",
+        ":android.hardware.nfc@1.0_hal",
     ],
     out: [
         "android/hardware/nfc/1.0/types.h",
diff --git a/nfc/1.0/Android.mk b/nfc/1.0/Android.mk
index 823bde5..6f09764 100644
--- a/nfc/1.0/Android.mk
+++ b/nfc/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.nfc@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -106,7 +106,7 @@
 LOCAL_MODULE := android.hardware.nfc@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -204,7 +204,7 @@
 LOCAL_MODULE := android.hardware.nfc@1.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/power/1.0/Android.bp b/power/1.0/Android.bp
index 62e03ea..453d525 100644
--- a/power/1.0/Android.bp
+++ b/power/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.0",
     srcs: [
-        "types.hal",
-        "IPower.hal",
+        ":android.hardware.power@1.0_hal",
     ],
     out: [
         "android/hardware/power/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.0",
     srcs: [
-        "types.hal",
-        "IPower.hal",
+        ":android.hardware.power@1.0_hal",
     ],
     out: [
         "android/hardware/power/1.0/types.h",
diff --git a/power/1.0/Android.mk b/power/1.0/Android.mk
index 4e11867..98d95a8 100644
--- a/power/1.0/Android.mk
+++ b/power/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.power@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -140,7 +140,7 @@
 LOCAL_MODULE := android.hardware.power@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/radio/1.0/Android.bp b/radio/1.0/Android.bp
index d9df910..f59cf66 100644
--- a/radio/1.0/Android.bp
+++ b/radio/1.0/Android.bp
@@ -17,12 +17,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0",
     srcs: [
-        "types.hal",
-        "IRadio.hal",
-        "IRadioIndication.hal",
-        "IRadioResponse.hal",
-        "ISap.hal",
-        "ISapCallback.hal",
+        ":android.hardware.radio@1.0_hal",
     ],
     out: [
         "android/hardware/radio/1.0/types.cpp",
@@ -39,12 +34,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0",
     srcs: [
-        "types.hal",
-        "IRadio.hal",
-        "IRadioIndication.hal",
-        "IRadioResponse.hal",
-        "ISap.hal",
-        "ISapCallback.hal",
+        ":android.hardware.radio@1.0_hal",
     ],
     out: [
         "android/hardware/radio/1.0/types.h",
diff --git a/radio/1.0/Android.mk b/radio/1.0/Android.mk
index 704ea08..7f4c7d4 100644
--- a/radio/1.0/Android.mk
+++ b/radio/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.radio@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -3023,7 +3023,7 @@
 LOCAL_MODULE := android.hardware.radio@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/radio/1.0/IRadioResponse.hal b/radio/1.0/IRadioResponse.hal
index 538c06d..dafd264 100644
--- a/radio/1.0/IRadioResponse.hal
+++ b/radio/1.0/IRadioResponse.hal
@@ -1562,6 +1562,16 @@
 
     /*
      * @param info Response info struct containing response type, serial no. and error
+     *
+     * Valid errors returned:
+     *   RadioError:NONE
+     *   RadioError:RADIO_NOT_AVAILABLE
+     *   RadioError:GENERIC_FAILURE
+     */
+    oneway reportStkServiceIsRunningResponse(RadioResponseInfo info);
+
+    /*
+     * @param info Response info struct containing response type, serial no. and error
      * @param source CDMA subscription source
      *
      * Valid errors returned:
diff --git a/sensors/1.0/Android.bp b/sensors/1.0/Android.bp
index 1ddb50c..8357dbe 100644
--- a/sensors/1.0/Android.bp
+++ b/sensors/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.sensors@1.0",
     srcs: [
-        "types.hal",
-        "ISensors.hal",
+        ":android.hardware.sensors@1.0_hal",
     ],
     out: [
         "android/hardware/sensors/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.sensors@1.0",
     srcs: [
-        "types.hal",
-        "ISensors.hal",
+        ":android.hardware.sensors@1.0_hal",
     ],
     out: [
         "android/hardware/sensors/1.0/types.h",
diff --git a/sensors/1.0/Android.mk b/sensors/1.0/Android.mk
index 5784916..29f7c7e 100644
--- a/sensors/1.0/Android.mk
+++ b/sensors/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.sensors@1.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/sensors/1.0/default/service.cpp b/sensors/1.0/default/service.cpp
index 65f6d81..5bcfe4b 100644
--- a/sensors/1.0/default/service.cpp
+++ b/sensors/1.0/default/service.cpp
@@ -23,9 +23,5 @@
 using android::hardware::defaultPassthroughServiceImplementation;
 
 int main() {
-    /* Sensors framework service needs at least two threads.
-     * One thread blocks on a "poll"
-     * The second thread is needed for all other HAL methods.
-     */
-    return defaultPassthroughServiceImplementation<ISensors>(2);
+    return defaultPassthroughServiceImplementation<ISensors>();
 }
diff --git a/soundtrigger/2.0/Android.bp b/soundtrigger/2.0/Android.bp
index 1473776..4d2bb1a 100644
--- a/soundtrigger/2.0/Android.bp
+++ b/soundtrigger/2.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.soundtrigger@2.0",
     srcs: [
-        "types.hal",
-        "ISoundTriggerHw.hal",
-        "ISoundTriggerHwCallback.hal",
+        ":android.hardware.soundtrigger@2.0_hal",
     ],
     out: [
         "android/hardware/soundtrigger/2.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.soundtrigger@2.0",
     srcs: [
-        "types.hal",
-        "ISoundTriggerHw.hal",
-        "ISoundTriggerHwCallback.hal",
+        ":android.hardware.soundtrigger@2.0_hal",
     ],
     out: [
         "android/hardware/soundtrigger/2.0/types.h",
diff --git a/tests/Android.bp b/tests/Android.bp
index 8b3e8b1..337e4f4 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -17,4 +17,7 @@
     "pointer/1.0",
     "pointer/1.0/default",
     "pointer/1.0/default/lib",
+    "versioning/1.0",
+    "versioning/2.2",
+    "versioning/2.3",
 ]
diff --git a/tests/bar/1.0/Android.bp b/tests/bar/1.0/Android.bp
index 924b3ab..694804c 100644
--- a/tests/bar/1.0/Android.bp
+++ b/tests/bar/1.0/Android.bp
@@ -17,12 +17,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.bar@1.0",
     srcs: [
-        "types.hal",
-        "IBar.hal",
-        "IComplicated.hal",
-        "IFooCallback.hal",
-        "IImportRules.hal",
-        "IImportTypes.hal",
+        ":android.hardware.tests.bar@1.0_hal",
     ],
     out: [
         "android/hardware/tests/bar/1.0/types.cpp",
@@ -39,12 +34,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.bar@1.0",
     srcs: [
-        "types.hal",
-        "IBar.hal",
-        "IComplicated.hal",
-        "IFooCallback.hal",
-        "IImportRules.hal",
-        "IImportTypes.hal",
+        ":android.hardware.tests.bar@1.0_hal",
     ],
     out: [
         "android/hardware/tests/bar/1.0/types.h",
diff --git a/tests/baz/1.0/Android.bp b/tests/baz/1.0/Android.bp
index 1cf71b6..7939444 100644
--- a/tests/baz/1.0/Android.bp
+++ b/tests/baz/1.0/Android.bp
@@ -15,10 +15,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.baz@1.0",
     srcs: [
-        "types.hal",
-        "IBase.hal",
-        "IBaz.hal",
-        "IBazCallback.hal",
+        ":android.hardware.tests.baz@1.0_hal",
     ],
     out: [
         "android/hardware/tests/baz/1.0/types.cpp",
@@ -33,10 +30,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.baz@1.0",
     srcs: [
-        "types.hal",
-        "IBase.hal",
-        "IBaz.hal",
-        "IBazCallback.hal",
+        ":android.hardware.tests.baz@1.0_hal",
     ],
     out: [
         "android/hardware/tests/baz/1.0/types.h",
diff --git a/tests/baz/1.0/Android.mk b/tests/baz/1.0/Android.mk
index 82ba3cb..40026ec 100644
--- a/tests/baz/1.0/Android.mk
+++ b/tests/baz/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.tests.baz@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -85,7 +85,7 @@
 LOCAL_MODULE := android.hardware.tests.baz@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/tests/expression/1.0/Android.bp b/tests/expression/1.0/Android.bp
index 1730aba..5279503 100644
--- a/tests/expression/1.0/Android.bp
+++ b/tests/expression/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.expression@1.0",
     srcs: [
-        "IExpression.hal",
-        "IExpressionExt.hal",
+        ":android.hardware.tests.expression@1.0_hal",
     ],
     out: [
         "android/hardware/tests/expression/1.0/ExpressionAll.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.expression@1.0",
     srcs: [
-        "IExpression.hal",
-        "IExpressionExt.hal",
+        ":android.hardware.tests.expression@1.0_hal",
     ],
     out: [
         "android/hardware/tests/expression/1.0/IExpression.h",
diff --git a/tests/expression/1.0/Android.mk b/tests/expression/1.0/Android.mk
index 1c7da4b..6bc9390 100644
--- a/tests/expression/1.0/Android.mk
+++ b/tests/expression/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.tests.expression@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -64,7 +64,7 @@
 LOCAL_MODULE := android.hardware.tests.expression@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/tests/foo/1.0/Android.bp b/tests/foo/1.0/Android.bp
index c65d3cf..9572855 100644
--- a/tests/foo/1.0/Android.bp
+++ b/tests/foo/1.0/Android.bp
@@ -17,12 +17,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.foo@1.0",
     srcs: [
-        "types.hal",
-        "IFoo.hal",
-        "IFooCallback.hal",
-        "IMyTypes.hal",
-        "ISimple.hal",
-        "ITheirTypes.hal",
+        ":android.hardware.tests.foo@1.0_hal",
     ],
     out: [
         "android/hardware/tests/foo/1.0/types.cpp",
@@ -39,12 +34,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.foo@1.0",
     srcs: [
-        "types.hal",
-        "IFoo.hal",
-        "IFooCallback.hal",
-        "IMyTypes.hal",
-        "ISimple.hal",
-        "ITheirTypes.hal",
+        ":android.hardware.tests.foo@1.0_hal",
     ],
     out: [
         "android/hardware/tests/foo/1.0/types.h",
diff --git a/tests/inheritance/1.0/Android.bp b/tests/inheritance/1.0/Android.bp
index 433e9ac..f50aee4 100644
--- a/tests/inheritance/1.0/Android.bp
+++ b/tests/inheritance/1.0/Android.bp
@@ -15,10 +15,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.inheritance@1.0",
     srcs: [
-        "IChild.hal",
-        "IFetcher.hal",
-        "IGrandparent.hal",
-        "IParent.hal",
+        ":android.hardware.tests.inheritance@1.0_hal",
     ],
     out: [
         "android/hardware/tests/inheritance/1.0/ChildAll.cpp",
@@ -33,10 +30,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.inheritance@1.0",
     srcs: [
-        "IChild.hal",
-        "IFetcher.hal",
-        "IGrandparent.hal",
-        "IParent.hal",
+        ":android.hardware.tests.inheritance@1.0_hal",
     ],
     out: [
         "android/hardware/tests/inheritance/1.0/IChild.h",
diff --git a/tests/inheritance/1.0/Android.mk b/tests/inheritance/1.0/Android.mk
index 8c1b1c8..21aac00 100644
--- a/tests/inheritance/1.0/Android.mk
+++ b/tests/inheritance/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.tests.inheritance@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -110,7 +110,7 @@
 LOCAL_MODULE := android.hardware.tests.inheritance@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/tests/libhwbinder/1.0/Android.bp b/tests/libhwbinder/1.0/Android.bp
index 1d0b4b5..580e961 100644
--- a/tests/libhwbinder/1.0/Android.bp
+++ b/tests/libhwbinder/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.libhwbinder@1.0",
     srcs: [
-        "IBenchmark.hal",
+        ":android.hardware.tests.libhwbinder@1.0_hal",
     ],
     out: [
         "android/hardware/tests/libhwbinder/1.0/BenchmarkAll.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.libhwbinder@1.0",
     srcs: [
-        "IBenchmark.hal",
+        ":android.hardware.tests.libhwbinder@1.0_hal",
     ],
     out: [
         "android/hardware/tests/libhwbinder/1.0/IBenchmark.h",
diff --git a/tests/libhwbinder/1.0/Android.mk b/tests/libhwbinder/1.0/Android.mk
index ae873af..2ee26d6 100644
--- a/tests/libhwbinder/1.0/Android.mk
+++ b/tests/libhwbinder/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.tests.libhwbinder@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -43,7 +43,7 @@
 LOCAL_MODULE := android.hardware.tests.libhwbinder@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/tests/memory/1.0/Android.bp b/tests/memory/1.0/Android.bp
index 3f27810..49faf41 100644
--- a/tests/memory/1.0/Android.bp
+++ b/tests/memory/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.memory@1.0",
     srcs: [
-        "IMemoryTest.hal",
+        ":android.hardware.tests.memory@1.0_hal",
     ],
     out: [
         "android/hardware/tests/memory/1.0/MemoryTestAll.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.memory@1.0",
     srcs: [
-        "IMemoryTest.hal",
+        ":android.hardware.tests.memory@1.0_hal",
     ],
     out: [
         "android/hardware/tests/memory/1.0/IMemoryTest.h",
diff --git a/tests/msgq/1.0/Android.bp b/tests/msgq/1.0/Android.bp
index 39fef89..d17efe4 100644
--- a/tests/msgq/1.0/Android.bp
+++ b/tests/msgq/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.msgq@1.0",
     srcs: [
-        "ITestMsgQ.hal",
+        ":android.hardware.tests.msgq@1.0_hal",
     ],
     out: [
         "android/hardware/tests/msgq/1.0/TestMsgQAll.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.msgq@1.0",
     srcs: [
-        "ITestMsgQ.hal",
+        ":android.hardware.tests.msgq@1.0_hal",
     ],
     out: [
         "android/hardware/tests/msgq/1.0/ITestMsgQ.h",
diff --git a/tests/pointer/1.0/Android.bp b/tests/pointer/1.0/Android.bp
index e40003d..7f66e2a 100644
--- a/tests/pointer/1.0/Android.bp
+++ b/tests/pointer/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.pointer@1.0",
     srcs: [
-        "IGraph.hal",
-        "IPointer.hal",
+        ":android.hardware.tests.pointer@1.0_hal",
     ],
     out: [
         "android/hardware/tests/pointer/1.0/GraphAll.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.pointer@1.0",
     srcs: [
-        "IGraph.hal",
-        "IPointer.hal",
+        ":android.hardware.tests.pointer@1.0_hal",
     ],
     out: [
         "android/hardware/tests/pointer/1.0/IGraph.h",
diff --git a/tests/versioning/1.0/Android.bp b/tests/versioning/1.0/Android.bp
new file mode 100644
index 0000000..fd331f2
--- /dev/null
+++ b/tests/versioning/1.0/Android.bp
@@ -0,0 +1,59 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+filegroup {
+    name: "android.hardware.tests.versioning@1.0_hal",
+    srcs: [
+        "IFoo.hal",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.versioning@1.0_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@1.0",
+    srcs: [
+        "IFoo.hal",
+    ],
+    out: [
+        "android/hardware/tests/versioning/1.0/FooAll.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.versioning@1.0_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@1.0",
+    srcs: [
+        "IFoo.hal",
+    ],
+    out: [
+        "android/hardware/tests/versioning/1.0/IFoo.h",
+        "android/hardware/tests/versioning/1.0/IHwFoo.h",
+        "android/hardware/tests/versioning/1.0/BnHwFoo.h",
+        "android/hardware/tests/versioning/1.0/BpHwFoo.h",
+        "android/hardware/tests/versioning/1.0/BsFoo.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.versioning@1.0",
+    generated_sources: ["android.hardware.tests.versioning@1.0_genc++"],
+    generated_headers: ["android.hardware.tests.versioning@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.versioning@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "android.hidl.base@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
diff --git a/tests/versioning/1.0/Android.mk b/tests/versioning/1.0/Android.mk
new file mode 100644
index 0000000..753ad0c
--- /dev/null
+++ b/tests/versioning/1.0/Android.mk
@@ -0,0 +1,76 @@
+# This file is autogenerated by hidl-gen. Do not edit manually.
+
+LOCAL_PATH := $(call my-dir)
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.tests.versioning@1.0-java
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_JAVA_LIBRARIES := \
+    android.hidl.base@1.0-java \
+
+
+#
+# Build IFoo.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V1_0/IFoo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFoo.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.tests.versioning@1.0::IFoo
+
+$(GEN): $(LOCAL_PATH)/IFoo.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_JAVA_LIBRARY)
+
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.tests.versioning@1.0-java-static
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android.hidl.base@1.0-java-static \
+
+
+#
+# Build IFoo.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V1_0/IFoo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFoo.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.tests.versioning@1.0::IFoo
+
+$(GEN): $(LOCAL_PATH)/IFoo.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/versioning/1.0/IFoo.hal b/tests/versioning/1.0/IFoo.hal
new file mode 100644
index 0000000..0571eff
--- /dev/null
+++ b/tests/versioning/1.0/IFoo.hal
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+package android.hardware.tests.versioning@1.0;
+
+interface IFoo {
+};
diff --git a/tests/versioning/2.2/Android.bp b/tests/versioning/2.2/Android.bp
new file mode 100644
index 0000000..5e90105
--- /dev/null
+++ b/tests/versioning/2.2/Android.bp
@@ -0,0 +1,68 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+filegroup {
+    name: "android.hardware.tests.versioning@2.2_hal",
+    srcs: [
+        "IBar.hal",
+        "IFoo.hal",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.versioning@2.2_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.2",
+    srcs: [
+        "IBar.hal",
+        "IFoo.hal",
+    ],
+    out: [
+        "android/hardware/tests/versioning/2.2/BarAll.cpp",
+        "android/hardware/tests/versioning/2.2/FooAll.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.versioning@2.2_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.2",
+    srcs: [
+        "IBar.hal",
+        "IFoo.hal",
+    ],
+    out: [
+        "android/hardware/tests/versioning/2.2/IBar.h",
+        "android/hardware/tests/versioning/2.2/IHwBar.h",
+        "android/hardware/tests/versioning/2.2/BnHwBar.h",
+        "android/hardware/tests/versioning/2.2/BpHwBar.h",
+        "android/hardware/tests/versioning/2.2/BsBar.h",
+        "android/hardware/tests/versioning/2.2/IFoo.h",
+        "android/hardware/tests/versioning/2.2/IHwFoo.h",
+        "android/hardware/tests/versioning/2.2/BnHwFoo.h",
+        "android/hardware/tests/versioning/2.2/BpHwFoo.h",
+        "android/hardware/tests/versioning/2.2/BsFoo.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.versioning@2.2",
+    generated_sources: ["android.hardware.tests.versioning@2.2_genc++"],
+    generated_headers: ["android.hardware.tests.versioning@2.2_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.versioning@2.2_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "android.hidl.base@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
diff --git a/tests/versioning/2.2/Android.mk b/tests/versioning/2.2/Android.mk
new file mode 100644
index 0000000..6376652
--- /dev/null
+++ b/tests/versioning/2.2/Android.mk
@@ -0,0 +1,114 @@
+# This file is autogenerated by hidl-gen. Do not edit manually.
+
+LOCAL_PATH := $(call my-dir)
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.tests.versioning@2.2-java
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_JAVA_LIBRARIES := \
+    android.hidl.base@1.0-java \
+
+
+#
+# Build IBar.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_2/IBar.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IBar.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.tests.versioning@2.2::IBar
+
+$(GEN): $(LOCAL_PATH)/IBar.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IFoo.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_2/IFoo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFoo.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.tests.versioning@2.2::IFoo
+
+$(GEN): $(LOCAL_PATH)/IFoo.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_JAVA_LIBRARY)
+
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.tests.versioning@2.2-java-static
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android.hidl.base@1.0-java-static \
+
+
+#
+# Build IBar.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_2/IBar.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IBar.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.tests.versioning@2.2::IBar
+
+$(GEN): $(LOCAL_PATH)/IBar.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IFoo.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_2/IFoo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFoo.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.tests.versioning@2.2::IFoo
+
+$(GEN): $(LOCAL_PATH)/IFoo.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/versioning/2.2/IBar.hal b/tests/versioning/2.2/IBar.hal
new file mode 100644
index 0000000..e28ce19
--- /dev/null
+++ b/tests/versioning/2.2/IBar.hal
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+package android.hardware.tests.versioning@2.2;
+
+interface IBar {
+
+};
diff --git a/tests/versioning/2.2/IFoo.hal b/tests/versioning/2.2/IFoo.hal
new file mode 100644
index 0000000..d6b8782
--- /dev/null
+++ b/tests/versioning/2.2/IFoo.hal
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+package android.hardware.tests.versioning@2.2;
+
+interface IFoo {
+
+};
diff --git a/tests/versioning/2.3/Android.bp b/tests/versioning/2.3/Android.bp
new file mode 100644
index 0000000..1489539
--- /dev/null
+++ b/tests/versioning/2.3/Android.bp
@@ -0,0 +1,68 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+filegroup {
+    name: "android.hardware.tests.versioning@2.3_hal",
+    srcs: [
+        "IBar.hal",
+        "IFoo.hal",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.versioning@2.3_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.3",
+    srcs: [
+        "IBar.hal",
+        "IFoo.hal",
+    ],
+    out: [
+        "android/hardware/tests/versioning/2.3/BarAll.cpp",
+        "android/hardware/tests/versioning/2.3/FooAll.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.versioning@2.3_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.3",
+    srcs: [
+        "IBar.hal",
+        "IFoo.hal",
+    ],
+    out: [
+        "android/hardware/tests/versioning/2.3/IBar.h",
+        "android/hardware/tests/versioning/2.3/IHwBar.h",
+        "android/hardware/tests/versioning/2.3/BnHwBar.h",
+        "android/hardware/tests/versioning/2.3/BpHwBar.h",
+        "android/hardware/tests/versioning/2.3/BsBar.h",
+        "android/hardware/tests/versioning/2.3/IFoo.h",
+        "android/hardware/tests/versioning/2.3/IHwFoo.h",
+        "android/hardware/tests/versioning/2.3/BnHwFoo.h",
+        "android/hardware/tests/versioning/2.3/BpHwFoo.h",
+        "android/hardware/tests/versioning/2.3/BsFoo.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.versioning@2.3",
+    generated_sources: ["android.hardware.tests.versioning@2.3_genc++"],
+    generated_headers: ["android.hardware.tests.versioning@2.3_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.versioning@2.3_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "android.hardware.tests.versioning@2.2",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hardware.tests.versioning@2.2",
+    ],
+}
diff --git a/tests/versioning/2.3/Android.mk b/tests/versioning/2.3/Android.mk
new file mode 100644
index 0000000..5b05152
--- /dev/null
+++ b/tests/versioning/2.3/Android.mk
@@ -0,0 +1,116 @@
+# This file is autogenerated by hidl-gen. Do not edit manually.
+
+LOCAL_PATH := $(call my-dir)
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.tests.versioning@2.3-java
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_JAVA_LIBRARIES := \
+    android.hardware.tests.versioning@2.2-java \
+    android.hidl.base@1.0-java \
+
+
+#
+# Build IBar.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_3/IBar.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IBar.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.tests.versioning@2.3::IBar
+
+$(GEN): $(LOCAL_PATH)/IBar.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IFoo.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_3/IFoo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFoo.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.tests.versioning@2.3::IFoo
+
+$(GEN): $(LOCAL_PATH)/IFoo.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_JAVA_LIBRARY)
+
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.tests.versioning@2.3-java-static
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    android.hardware.tests.versioning@2.2-java-static \
+    android.hidl.base@1.0-java-static \
+
+
+#
+# Build IBar.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_3/IBar.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IBar.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.tests.versioning@2.3::IBar
+
+$(GEN): $(LOCAL_PATH)/IBar.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IFoo.hal
+#
+GEN := $(intermediates)/android/hardware/tests/versioning/V2_3/IFoo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IFoo.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.tests.versioning@2.3::IFoo
+
+$(GEN): $(LOCAL_PATH)/IFoo.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/versioning/2.3/IBar.hal b/tests/versioning/2.3/IBar.hal
new file mode 100644
index 0000000..946d42e
--- /dev/null
+++ b/tests/versioning/2.3/IBar.hal
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+package android.hardware.tests.versioning@2.3;
+
+import @2.2::IBar;
+
+// Must extend @2.3::IBar.
+interface IBar extends @2.2::IBar {
+
+};
diff --git a/tests/versioning/2.3/IFoo.hal b/tests/versioning/2.3/IFoo.hal
new file mode 100644
index 0000000..c450dd2
--- /dev/null
+++ b/tests/versioning/2.3/IFoo.hal
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+package android.hardware.tests.versioning@2.3;
+
+import @2.2::IFoo;
+
+// Must extend @2.3::IFoo.
+interface IFoo extends @2.2::IFoo {
+
+};
diff --git a/thermal/1.0/Android.bp b/thermal/1.0/Android.bp
index c4b6d39..fab5533 100644
--- a/thermal/1.0/Android.bp
+++ b/thermal/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.0",
     srcs: [
-        "types.hal",
-        "IThermal.hal",
+        ":android.hardware.thermal@1.0_hal",
     ],
     out: [
         "android/hardware/thermal/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.0",
     srcs: [
-        "types.hal",
-        "IThermal.hal",
+        ":android.hardware.thermal@1.0_hal",
     ],
     out: [
         "android/hardware/thermal/1.0/types.h",
diff --git a/thermal/1.0/Android.mk b/thermal/1.0/Android.mk
index b88bb81..7748b9e 100644
--- a/thermal/1.0/Android.mk
+++ b/thermal/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.thermal@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -178,7 +178,7 @@
 LOCAL_MODULE := android.hardware.thermal@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -348,7 +348,7 @@
 LOCAL_MODULE := android.hardware.thermal@1.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/tv/cec/1.0/Android.bp b/tv/cec/1.0/Android.bp
index d2eee14..5c6919d 100644
--- a/tv/cec/1.0/Android.bp
+++ b/tv/cec/1.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.cec@1.0",
     srcs: [
-        "types.hal",
-        "IHdmiCec.hal",
-        "IHdmiCecCallback.hal",
+        ":android.hardware.tv.cec@1.0_hal",
     ],
     out: [
         "android/hardware/tv/cec/1.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.cec@1.0",
     srcs: [
-        "types.hal",
-        "IHdmiCec.hal",
-        "IHdmiCecCallback.hal",
+        ":android.hardware.tv.cec@1.0_hal",
     ],
     out: [
         "android/hardware/tv/cec/1.0/types.h",
diff --git a/tv/cec/1.0/Android.mk b/tv/cec/1.0/Android.mk
index efa71a1..b08099e 100644
--- a/tv/cec/1.0/Android.mk
+++ b/tv/cec/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.tv.cec@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -296,7 +296,7 @@
 LOCAL_MODULE := android.hardware.tv.cec@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/tv/input/1.0/Android.bp b/tv/input/1.0/Android.bp
index 3666b85..ae5e3de 100644
--- a/tv/input/1.0/Android.bp
+++ b/tv/input/1.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.input@1.0",
     srcs: [
-        "types.hal",
-        "ITvInput.hal",
-        "ITvInputCallback.hal",
+        ":android.hardware.tv.input@1.0_hal",
     ],
     out: [
         "android/hardware/tv/input/1.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.input@1.0",
     srcs: [
-        "types.hal",
-        "ITvInput.hal",
-        "ITvInputCallback.hal",
+        ":android.hardware.tv.input@1.0_hal",
     ],
     out: [
         "android/hardware/tv/input/1.0/types.h",
diff --git a/usb/1.0/Android.bp b/usb/1.0/Android.bp
index 3505ded..0b641f1 100644
--- a/usb/1.0/Android.bp
+++ b/usb/1.0/Android.bp
@@ -14,9 +14,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.0",
     srcs: [
-        "types.hal",
-        "IUsb.hal",
-        "IUsbCallback.hal",
+        ":android.hardware.usb@1.0_hal",
     ],
     out: [
         "android/hardware/usb/1.0/types.cpp",
@@ -30,9 +28,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.0",
     srcs: [
-        "types.hal",
-        "IUsb.hal",
-        "IUsbCallback.hal",
+        ":android.hardware.usb@1.0_hal",
     ],
     out: [
         "android/hardware/usb/1.0/types.h",
diff --git a/usb/1.0/Android.mk b/usb/1.0/Android.mk
index 0eded5b..7be7147 100644
--- a/usb/1.0/Android.mk
+++ b/usb/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.usb@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -201,7 +201,7 @@
 LOCAL_MODULE := android.hardware.usb@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -394,7 +394,7 @@
 LOCAL_MODULE := android.hardware.usb@1.0-java-constants
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 #
diff --git a/vibrator/1.0/Android.bp b/vibrator/1.0/Android.bp
index aeefb5d..d6813ea 100644
--- a/vibrator/1.0/Android.bp
+++ b/vibrator/1.0/Android.bp
@@ -13,8 +13,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.0",
     srcs: [
-        "types.hal",
-        "IVibrator.hal",
+        ":android.hardware.vibrator@1.0_hal",
     ],
     out: [
         "android/hardware/vibrator/1.0/types.cpp",
@@ -27,8 +26,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.0",
     srcs: [
-        "types.hal",
-        "IVibrator.hal",
+        ":android.hardware.vibrator@1.0_hal",
     ],
     out: [
         "android/hardware/vibrator/1.0/types.h",
diff --git a/vibrator/1.0/Android.mk b/vibrator/1.0/Android.mk
index 1437d44..4e1ba6a 100644
--- a/vibrator/1.0/Android.mk
+++ b/vibrator/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.vibrator@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -64,7 +64,7 @@
 LOCAL_MODULE := android.hardware.vibrator@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/vr/1.0/Android.bp b/vr/1.0/Android.bp
index ab318f0..b48d010 100644
--- a/vr/1.0/Android.bp
+++ b/vr/1.0/Android.bp
@@ -12,7 +12,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vr@1.0",
     srcs: [
-        "IVr.hal",
+        ":android.hardware.vr@1.0_hal",
     ],
     out: [
         "android/hardware/vr/1.0/VrAll.cpp",
@@ -24,7 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vr@1.0",
     srcs: [
-        "IVr.hal",
+        ":android.hardware.vr@1.0_hal",
     ],
     out: [
         "android/hardware/vr/1.0/IVr.h",
diff --git a/vr/1.0/Android.mk b/vr/1.0/Android.mk
index 1b8e8c7..0fbdaf7 100644
--- a/vr/1.0/Android.mk
+++ b/vr/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.vr@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -43,7 +43,7 @@
 LOCAL_MODULE := android.hardware.vr@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
diff --git a/wifi/1.0/Android.bp b/wifi/1.0/Android.bp
index 59326d0..2319999 100644
--- a/wifi/1.0/Android.bp
+++ b/wifi/1.0/Android.bp
@@ -25,20 +25,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.0",
     srcs: [
-        "types.hal",
-        "IWifi.hal",
-        "IWifiApIface.hal",
-        "IWifiChip.hal",
-        "IWifiChipEventCallback.hal",
-        "IWifiEventCallback.hal",
-        "IWifiIface.hal",
-        "IWifiNanIface.hal",
-        "IWifiNanIfaceEventCallback.hal",
-        "IWifiP2pIface.hal",
-        "IWifiRttController.hal",
-        "IWifiRttControllerEventCallback.hal",
-        "IWifiStaIface.hal",
-        "IWifiStaIfaceEventCallback.hal",
+        ":android.hardware.wifi@1.0_hal",
     ],
     out: [
         "android/hardware/wifi/1.0/types.cpp",
@@ -63,20 +50,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.0",
     srcs: [
-        "types.hal",
-        "IWifi.hal",
-        "IWifiApIface.hal",
-        "IWifiChip.hal",
-        "IWifiChipEventCallback.hal",
-        "IWifiEventCallback.hal",
-        "IWifiIface.hal",
-        "IWifiNanIface.hal",
-        "IWifiNanIfaceEventCallback.hal",
-        "IWifiP2pIface.hal",
-        "IWifiRttController.hal",
-        "IWifiRttControllerEventCallback.hal",
-        "IWifiStaIface.hal",
-        "IWifiStaIfaceEventCallback.hal",
+        ":android.hardware.wifi@1.0_hal",
     ],
     out: [
         "android/hardware/wifi/1.0/types.h",
diff --git a/wifi/1.0/Android.mk b/wifi/1.0/Android.mk
index 708c14c..4476b14 100644
--- a/wifi/1.0/Android.mk
+++ b/wifi/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.wifi@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -74,44 +74,6 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
-# Build types.hal (NanBeaconSdfPayloadInd)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/NanBeaconSdfPayloadInd.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@1.0::types.NanBeaconSdfPayloadInd
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (NanBeaconSdfPayloadRequest)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/NanBeaconSdfPayloadRequest.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@1.0::types.NanBeaconSdfPayloadRequest
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
 # Build types.hal (NanCapabilities)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/NanCapabilities.java
@@ -587,25 +549,6 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
-# Build types.hal (NanVsaRxFrameMask)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/NanVsaRxFrameMask.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@1.0::types.NanVsaRxFrameMask
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
 # Build types.hal (RttBw)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/RttBw.java
@@ -1868,7 +1811,7 @@
 LOCAL_MODULE := android.hardware.wifi@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -1934,44 +1877,6 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
-# Build types.hal (NanBeaconSdfPayloadInd)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/NanBeaconSdfPayloadInd.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@1.0::types.NanBeaconSdfPayloadInd
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (NanBeaconSdfPayloadRequest)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/NanBeaconSdfPayloadRequest.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@1.0::types.NanBeaconSdfPayloadRequest
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
 # Build types.hal (NanCapabilities)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/NanCapabilities.java
@@ -2447,25 +2352,6 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
-# Build types.hal (NanVsaRxFrameMask)
-#
-GEN := $(intermediates)/android/hardware/wifi/V1_0/NanVsaRxFrameMask.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@1.0::types.NanVsaRxFrameMask
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
 # Build types.hal (RttBw)
 #
 GEN := $(intermediates)/android/hardware/wifi/V1_0/RttBw.java
diff --git a/wifi/1.0/IWifiNanIface.hal b/wifi/1.0/IWifiNanIface.hal
index 3362339..d1d4ca5 100644
--- a/wifi/1.0/IWifiNanIface.hal
+++ b/wifi/1.0/IWifiNanIface.hal
@@ -21,6 +21,9 @@
 
 /**
  * Interface used to represent a single NAN(Neighbour Aware Network) iface.
+ *
+ * References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness
+ * Networking (NAN) Technical Specification".
  */
 interface IWifiNanIface extends IWifiIface {
   /**
@@ -39,7 +42,8 @@
       generates (WifiStatus status);
 
   /**
-   * Get NAN capabilities.
+   * Get NAN capabilities. Asynchronous response is with
+   * |IWifiNanIfaceEventCallback.notifyCapabilitiesResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @return status WifiStatus of the operation.
@@ -53,8 +57,9 @@
   /**
    * Enable NAN: configures and activates NAN clustering (does not start
    * a discovery session or set up data-interfaces or data-paths). Use the
-   * |configureRequest| method to change the configuration of an already enabled
+   * |IWifiNanIface.configureRequest| method to change the configuration of an already enabled
    * NAN interface.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyEnableResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param msg Instance of |NanEnableRequest|.
@@ -70,7 +75,8 @@
 
   /**
    * Configure NAN: configures an existing NAN functionality (i.e. assumes
-   * |enableRequest| already submitted and succeeded).
+   * |IWifiNanIface.enableRequest| already submitted and succeeded).
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyConfigResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param msg Instance of |NanConfigRequest|.
@@ -86,6 +92,7 @@
 
   /**
    * Disable NAN functionality.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyDisableResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @return status WifiStatus of the operation.
@@ -98,6 +105,7 @@
 
   /**
    * Publish request to start advertising a discovery service.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStartPublishResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param msg Instance of |NanPublishRequest|.
@@ -113,6 +121,7 @@
 
   /**
    * Stop publishing a discovery service.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStopPublishResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param sessionId ID of the publish discovery session to be stopped.
@@ -122,11 +131,12 @@
    *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
    *         |WifiStatusCode.ERROR_UNKNOWN|
    */
-  stopPublishRequest(CommandIdShort cmdId, uint16_t sessionId)
+  stopPublishRequest(CommandIdShort cmdId, uint8_t sessionId)
       generates (WifiStatus status);
 
   /**
    * Subscribe request to start searching for a discovery service.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStartSubscribeResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param msg Instance of |NanSubscribeRequest|.
@@ -142,6 +152,7 @@
 
   /**
    * Stop subscribing to a discovery service.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyStopSubscribeResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param sessionId ID of the subscribe discovery session to be stopped.
@@ -151,11 +162,12 @@
    *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
    *         |WifiStatusCode.ERROR_UNKNOWN|
    */
-  stopSubscribeRequest(CommandIdShort cmdId, uint16_t sessionId)
+  stopSubscribeRequest(CommandIdShort cmdId, uint8_t sessionId)
       generates (WifiStatus status);
 
   /**
    * NAN transmit follow up message request.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyTransmitFollowupResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param msg Instance of |NanTransmitFollowupRequest|.
@@ -171,6 +183,7 @@
 
   /**
    * Create a NAN Data Interface.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyCreateDataInterfaceResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @return status WifiStatus of the operation.
@@ -184,6 +197,7 @@
 
   /**
    * Delete a NAN Data Interface.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyDeleteDataInterfaceResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @return status WifiStatus of the operation.
@@ -197,6 +211,7 @@
 
   /**
    * Initiate a data-path (NDP) setup operation: Initiator.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyInitiateDataPathResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param msg Instance of |NanInitiateDataPathRequest|.
@@ -213,6 +228,8 @@
   /**
    * Respond to a received data indication as part of a data-path (NDP) setup operation. An
    * indication is received by the Responder from the Initiator.
+   * Asynchronous response is with
+   * |IWifiNanIfaceEventCallback.notifyRespondToDataPathIndicationResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param msg Instance of |NanRespondToDataPathIndicationRequest|.
@@ -229,6 +246,7 @@
 
   /**
    * Data-path (NDP) termination request: executed by either Initiator or Responder.
+   * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyTerminateDataPathResponse|.
    *
    * @param cmdId command Id to use for this invocation.
    * @param ndpInstanceId Data-path instance ID to be terminated.
@@ -240,19 +258,4 @@
    */
   terminateDataPathRequest(CommandIdShort cmdId, uint32_t ndpInstanceId)
       generates (WifiStatus status);
-
-  /**
-   * Configure NAN Beacon or SDF payload to include vendor-specific payload.
-   *
-   * @param cmdId command Id to use for this invocation.
-   * @param msg Instance of |NanBeaconSdfPayloadRequest|.
-   * @return status WifiStatus of the operation.
-   *         Possible status codes:
-   *         |WifiStatusCode.SUCCESS|,
-   *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
-   *         |WifiStatusCode.ERROR_INVALID_ARGS|,
-   *         |WifiStatusCode.ERROR_UNKNOWN|
-   */
-  beaconSdfPayloadRequest(CommandIdShort cmdId, NanBeaconSdfPayloadRequest msg)
-      generates (WifiStatus status);
 };
diff --git a/wifi/1.0/IWifiNanIfaceEventCallback.hal b/wifi/1.0/IWifiNanIfaceEventCallback.hal
index cb4b043..80d67ce 100644
--- a/wifi/1.0/IWifiNanIfaceEventCallback.hal
+++ b/wifi/1.0/IWifiNanIfaceEventCallback.hal
@@ -18,10 +18,19 @@
 
 /**
  * NAN Response and Asynchronous Event Callbacks.
+ *
+ * References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness
+ * Networking (NAN) Technical Specification".
  */
 interface IWifiNanIfaceEventCallback {
   /**
-   * Callback invoked in response to a capability request |getCapabilitiesRequest|.
+   * Notify callbacks are asynchronous callbacks - but in response to |IWifiNanIface| method calls.
+   * Each method will receive a notify callback to return results (on success) or failure status.
+   */
+
+  /**
+   * Asynchronous callback invoked in response to a capability request
+   * |IWifiNanIface.getCapabilitiesRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -32,7 +41,7 @@
                                     NanCapabilities capabilities);
 
   /**
-   * Callback invoked in response to an enable request |enableRequest|.
+   * Asynchronous callback invoked in response to an enable request |IWifiNanIface.enableRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -46,7 +55,7 @@
   oneway notifyEnableResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to a config request |configRequest|.
+   * Asynchronous callback invoked in response to a config request |IWifiNanIface.configRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -58,7 +67,7 @@
   oneway notifyConfigResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to a disable request |disableRequest|.
+   * Asynchronous callback invoked in response to a disable request |IWifiNanIface.disableRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -68,7 +77,8 @@
   oneway notifyDisableResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked to notify the status of the start publish request |startPublishRequest|.
+   * Asynchronous callback invoked to notify the status of the start publish request
+   * |IWifiNanIface.startPublishRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -79,10 +89,11 @@
    *        |NanStatusType.INVALID_SESSION_ID|
    * @param sessionId ID of the new publish session (if successfully created).
    */
-  oneway notifyStartPublishResponse(CommandIdShort id, WifiNanStatus status, uint16_t sessionId);
+  oneway notifyStartPublishResponse(CommandIdShort id, WifiNanStatus status, uint8_t sessionId);
 
   /**
-   * Callback invoked in response to a stop publish request |stopPublishRequest|.
+   * Asynchronous callback invoked in response to a stop publish request
+   * |IWifiNanIface.stopPublishRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -93,7 +104,8 @@
   oneway notifyStopPublishResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked to notify the status of the start subscribe request |startSubscribeRequest|.
+   * Asynchronous callback invoked to notify the status of the start subscribe request
+   * |IWifiNanIface.startSubscribeRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -104,10 +116,11 @@
    *        |NanStatusType.INVALID_SESSION_ID|
    * @param sessionId ID of the new subscribe session (if successfully created).
    */
-  oneway notifyStartSubscribeResponse(CommandIdShort id, WifiNanStatus status, uint16_t sessionId);
+  oneway notifyStartSubscribeResponse(CommandIdShort id, WifiNanStatus status, uint8_t sessionId);
 
   /**
-   * Callback invoked in response to a stop subscribe request |stopSubscribeRequest|.
+   * Asynchronous callback invoked in response to a stop subscribe request
+   * |IWifiNanIface.stopSubscribeRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -118,7 +131,8 @@
   oneway notifyStopSubscribeResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to a transmit followup request |transmitFollowupRequest|.
+   * Asynchronous callback invoked in response to a transmit followup request
+   * |IWifiNanIface.transmitFollowupRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -131,7 +145,8 @@
   oneway notifyTransmitFollowupResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to a create data interface request |createDataInterfaceRequest|.
+   * Asynchronous callback invoked in response to a create data interface request
+   * |IWifiNanIface.createDataInterfaceRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -142,7 +157,8 @@
   oneway notifyCreateDataInterfaceResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to a delete data interface request |deleteDataInterfaceRequest|.
+   * Asynchronous callback invoked in response to a delete data interface request
+   * |IWifiNanIface.deleteDataInterfaceRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -153,7 +169,8 @@
   oneway notifyDeleteDataInterfaceResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to an initiate data path request |initiateDataPathRequest|.
+   * Asynchronous callback invoked in response to an initiate data path request
+   * |IWifiNanIface.initiateDataPathRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -168,8 +185,8 @@
         uint32_t ndpInstanceId );
 
   /**
-   * Callback invoked in response to a respond to data path indication request
-   * |respondToDataPathIndicationRequest|.
+   * Asynchronous callback invoked in response to a respond to data path indication request
+   * |IWifiNanIface.respondToDataPathIndicationRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -182,7 +199,8 @@
   oneway notifyRespondToDataPathIndicationResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to a terminate data path request |terminateDataPathRequest|.
+   * Asynchronous callback invoked in response to a terminate data path request
+   * |IWifiNanIface.terminateDataPathRequest|.
    *
    * @param cmdId command Id corresponding to the original request.
    * @param status WifiNanStatus of the operation. Possible status codes are:
@@ -195,18 +213,6 @@
   oneway notifyTerminateDataPathResponse(CommandIdShort id, WifiNanStatus status);
 
   /**
-   * Callback invoked in response to a request to include vendor-specific payload in beacon or SDF
-   * frames |beaconSdfPayloadRequest|.
-   *
-   * @param cmdId command Id corresponding to the original request.
-   * @param status WifiNanStatus of the operation. Possible status codes are:
-   *        |NanStatusType.SUCCESS|
-   *        |NanStatusType.INVALID_ARGS|
-   *        |NanStatusType.INTERNAL_FAILURE|
-   */
-  oneway notifyBeaconSdfPayloadResponse(CommandIdShort id, WifiNanStatus status);
-
-  /**
    * Callbacks for the various asynchornous NAN Events.
    */
 
@@ -235,7 +241,7 @@
    *                Possible status codes are:
    *                |NanStatusType.SUCCESS|
    */
-  oneway eventPublishTerminated(uint16_t sessionId, WifiNanStatus status);
+  oneway eventPublishTerminated(uint8_t sessionId, WifiNanStatus status);
 
   /**
    * Asynchronous callback indicating that an active subscribe session has terminated.
@@ -245,7 +251,7 @@
    *                 Possible status codes are:
    *                |NanStatusType.SUCCESS|
    */
-  oneway eventSubscribeTerminated(uint16_t sessionId, WifiNanStatus status);
+  oneway eventSubscribeTerminated(uint8_t sessionId, WifiNanStatus status);
 
   /**
    * Asynchronous callback indicating that a match has occurred: i.e. a service has been
@@ -261,7 +267,7 @@
    * @param discoverySessionId: The discovery session ID of the expired match.
    * @param peerId: The peer ID of the expired match.
    */
-  oneway eventMatchExpired(uint16_t discoverySessionId, uint32_t peerId);
+  oneway eventMatchExpired(uint8_t discoverySessionId, uint32_t peerId);
 
   /**
    * Asynchronous callback indicating that a followup message has been received from a peer.
@@ -303,11 +309,4 @@
    * @param ndpInstanceId: data-path ID of the terminated data-path.
    */
   oneway eventDataPathTerminated(uint32_t ndpInstanceId);
-
-  /**
-   * Asynchronous callback indicating vendor-specific payload received in NAN beacon or SDF frame.
-   *
-   * @param event: NanBeaconSdfPayloadInd containing event details.
-   */
-  oneway eventBeaconSdfPayload(NanBeaconSdfPayloadInd event);
 };
diff --git a/wifi/1.0/default/hidl_struct_util.cpp b/wifi/1.0/default/hidl_struct_util.cpp
index 7464b81..e57919d 100644
--- a/wifi/1.0/default/hidl_struct_util.cpp
+++ b/wifi/1.0/default/hidl_struct_util.cpp
@@ -780,12 +780,14 @@
   legacy_request->discovery_indication_cfg |=
         hidl_request.configParams.disableJoinedClusterIndication ? 0x4 : 0x0;
   legacy_request->config_sid_beacon = 1;
-  if (hidl_request.configParams.numberOfServiceIdsInBeacon > 127) {
-    LOG(ERROR) << "convertHidlNanEnableRequestToLegacy: numberOfServiceIdsInBeacon > 127";
+  if (hidl_request.configParams.numberOfPublishServiceIdsInBeacon > 127) {
+    LOG(ERROR) << "convertHidlNanEnableRequestToLegacy: numberOfPublishServiceIdsInBeacon > 127";
     return false;
   }
-  legacy_request->sid_beacon_val = (hidl_request.configParams.includeServiceIdsInBeacon ? 0x1 : 0x0)
-        | (hidl_request.configParams.numberOfServiceIdsInBeacon << 1);
+  legacy_request->sid_beacon_val =
+        (hidl_request.configParams.includePublishServiceIdsInBeacon ? 0x1 : 0x0)
+            | (hidl_request.configParams.numberOfPublishServiceIdsInBeacon << 1);
+  // TODO: b/35195516 connect SubscribeServiceIds to legacy HAL once implemented
   legacy_request->config_rssi_window_size = 1;
   legacy_request->rssi_window_size_val = hidl_request.configParams.rssiWindowSize;
   legacy_request->config_disc_mac_addr_randomization = 1;
@@ -809,7 +811,7 @@
   legacy_request->config_2dot4g_rssi_proximity = 1;
   legacy_request->rssi_proximity_2dot4g_val =
         hidl_request.configParams.bandSpecificConfig[
-            (size_t) NanBandIndex::NAN_BAND_24GHZ].rssiProximity;
+            (size_t) NanBandIndex::NAN_BAND_24GHZ].rssiCloseProximity;
   legacy_request->config_scan_params = 1;
   legacy_request->scan_params_val.dwell_time[legacy_hal::NAN_CHANNEL_24G_BAND] =
         hidl_request.configParams.bandSpecificConfig[
@@ -832,7 +834,7 @@
   legacy_request->config_5g_rssi_close_proximity = 1;
   legacy_request->rssi_close_proximity_5g_val =
         hidl_request.configParams.bandSpecificConfig[
-            (size_t) NanBandIndex::NAN_BAND_5GHZ].rssiProximity;
+            (size_t) NanBandIndex::NAN_BAND_5GHZ].rssiCloseProximity;
   legacy_request->scan_params_val.dwell_time[legacy_hal::NAN_CHANNEL_5G_BAND_LOW] =
         hidl_request.configParams.bandSpecificConfig[
             (size_t) NanBandIndex::NAN_BAND_5GHZ].dwellTimeMs;
@@ -850,8 +852,8 @@
   legacy_request->config_dw.dw_5g_interval_val = hidl_request.configParams
         .bandSpecificConfig[(size_t) NanBandIndex::NAN_BAND_5GHZ].discoveryWindowIntervalVal;
   if (hidl_request.debugConfigs.validClusterIdVals) {
-    legacy_request->cluster_low = hidl_request.debugConfigs.clusterIdLowVal;
-    legacy_request->cluster_high = hidl_request.debugConfigs.clusterIdHighVal;
+    legacy_request->cluster_low = hidl_request.debugConfigs.clusterIdBottomRangeVal;
+    legacy_request->cluster_high = hidl_request.debugConfigs.clusterIdTopRangeVal;
   } else { // need 'else' since not configurable in legacy HAL
     legacy_request->cluster_low = 0x0000;
     legacy_request->cluster_high = 0xFFFF;
@@ -916,6 +918,7 @@
   memcpy(legacy_request->service_specific_info,
         hidl_request.baseConfigs.serviceSpecificInfo.data(),
         legacy_request->service_specific_info_len);
+  // TODO: b/35193423 add support for extended service specific info
   legacy_request->rx_match_filter_len = hidl_request.baseConfigs.rxMatchFilter.size();
   if (legacy_request->rx_match_filter_len > NAN_MAX_MATCH_FILTER_LEN) {
     LOG(ERROR) << "convertHidlNanPublishRequestToLegacy: rx_match_filter_len too large";
@@ -994,6 +997,7 @@
   memcpy(legacy_request->service_specific_info,
         hidl_request.baseConfigs.serviceSpecificInfo.data(),
         legacy_request->service_specific_info_len);
+  // TODO: b/35193423 add support for extended service specific info
   legacy_request->rx_match_filter_len = hidl_request.baseConfigs.rxMatchFilter.size();
   if (legacy_request->rx_match_filter_len > NAN_MAX_MATCH_FILTER_LEN) {
     LOG(ERROR) << "convertHidlNanSubscribeRequestToLegacy: rx_match_filter_len too large";
@@ -1072,14 +1076,15 @@
         legacy_hal::NAN_TX_PRIORITY_HIGH : legacy_hal::NAN_TX_PRIORITY_NORMAL;
   legacy_request->dw_or_faw = hidl_request.shouldUseDiscoveryWindow ?
         legacy_hal::NAN_TRANSMIT_IN_DW : legacy_hal::NAN_TRANSMIT_IN_FAW;
-  legacy_request->service_specific_info_len = hidl_request.message.size();
+  legacy_request->service_specific_info_len = hidl_request.serviceSpecificInfo.size();
   if (legacy_request->service_specific_info_len > NAN_MAX_SERVICE_SPECIFIC_INFO_LEN) {
     LOG(ERROR) << "convertHidlNanTransmitFollowupRequestToLegacy: service_specific_info_len too large";
     return false;
   }
   memcpy(legacy_request->service_specific_info,
-        hidl_request.message.data(),
+        hidl_request.serviceSpecificInfo.data(),
         legacy_request->service_specific_info_len);
+  // TODO: b/35193423 add support for extended service specific info
   legacy_request->recv_indication_cfg = hidl_request.disableFollowupResultIndication ? 0x1 : 0x0;
 
   return true;
@@ -1104,12 +1109,13 @@
   legacy_request->discovery_indication_cfg |=
         hidl_request.disableJoinedClusterIndication ? 0x4 : 0x0;
   legacy_request->config_sid_beacon = 1;
-  if (hidl_request.numberOfServiceIdsInBeacon > 127) {
-    LOG(ERROR) << "convertHidlNanConfigRequestToLegacy: numberOfServiceIdsInBeacon > 127";
+  if (hidl_request.numberOfPublishServiceIdsInBeacon > 127) {
+    LOG(ERROR) << "convertHidlNanConfigRequestToLegacy: numberOfPublishServiceIdsInBeacon > 127";
     return false;
   }
-  legacy_request->sid_beacon = (hidl_request.includeServiceIdsInBeacon ? 0x1 : 0x0)
-        | (hidl_request.numberOfServiceIdsInBeacon << 1);
+  legacy_request->sid_beacon = (hidl_request.includePublishServiceIdsInBeacon ? 0x1 : 0x0)
+        | (hidl_request.numberOfPublishServiceIdsInBeacon << 1);
+  // TODO: b/35195516 connect SubscribeServiceIds to legacy HAL once implemented
   legacy_request->config_rssi_window_size = 1;
   legacy_request->rssi_window_size_val = hidl_request.rssiWindowSize;
   legacy_request->config_disc_mac_addr_randomization = 1;
@@ -1130,7 +1136,7 @@
   legacy_request->config_2dot4g_rssi_proximity = 1;
   legacy_request->rssi_proximity_2dot4g_val =
         hidl_request.bandSpecificConfig[
-            (size_t) NanBandIndex::NAN_BAND_24GHZ].rssiProximity;
+            (size_t) NanBandIndex::NAN_BAND_24GHZ].rssiCloseProximity;
   */
   legacy_request->config_scan_params = 1;
   legacy_request->scan_params_val.dwell_time[legacy_hal::NAN_CHANNEL_24G_BAND] =
@@ -1156,7 +1162,7 @@
   legacy_request->config_5g_rssi_close_proximity = 1;
   legacy_request->rssi_close_proximity_5g_val =
         hidl_request.bandSpecificConfig[
-            (size_t) NanBandIndex::NAN_BAND_5GHZ].rssiProximity;
+            (size_t) NanBandIndex::NAN_BAND_5GHZ].rssiCloseProximity;
   legacy_request->scan_params_val.dwell_time[legacy_hal::NAN_CHANNEL_5G_BAND_LOW] =
         hidl_request.bandSpecificConfig[
             (size_t) NanBandIndex::NAN_BAND_5GHZ].dwellTimeMs;
@@ -1177,30 +1183,6 @@
   return true;
 }
 
-bool convertHidlNanBeaconSdfPayloadRequestToLegacy(
-    const NanBeaconSdfPayloadRequest& hidl_request,
-    legacy_hal::NanBeaconSdfPayloadRequest* legacy_request) {
-  if (!legacy_request) {
-    LOG(ERROR) << "convertHidlNanBeaconSdfPayloadRequestToLegacy: legacy_request is null";
-    return false;
-  }
-  memset(legacy_request, 0, sizeof(legacy_hal::NanBeaconSdfPayloadRequest));
-
-  legacy_request->vsa.payload_transmit_flag = hidl_request.transmitInNext16dws ? 1 : 0;
-  legacy_request->vsa.tx_in_discovery_beacon = hidl_request.transmitInDiscoveryBeacon;
-  legacy_request->vsa.tx_in_sync_beacon = hidl_request.transmitInSyncBeacon;
-  legacy_request->vsa.tx_in_service_discovery = hidl_request.transmitInServiceDiscoveryFrame;
-  legacy_request->vsa.vendor_oui = hidl_request.vendorOui;
-  legacy_request->vsa.vsa_len = hidl_request.vsa.size();
-  if (legacy_request->vsa.vsa_len > NAN_MAX_VSA_DATA_LEN) {
-    LOG(ERROR) << "convertHidlNanBeaconSdfPayloadRequestToLegacy: vsa_len too long";
-    return false;
-  }
-  memcpy(legacy_request->vsa.vsa, hidl_request.vsa.data(), legacy_request->vsa.vsa_len);
-
-  return true;
-}
-
 bool convertHidlNanDataPathInitiatorRequestToLegacy(
     const NanInitiateDataPathRequest& hidl_request,
     legacy_hal::NanDataPathInitiatorRequest* legacy_request) {
@@ -1295,7 +1277,8 @@
   hidl_response->maxMatchFilterLen = legacy_response.max_match_filter_len;
   hidl_response->maxTotalMatchFilterLen = legacy_response.max_total_match_filter_len;
   hidl_response->maxServiceSpecificInfoLen = legacy_response.max_service_specific_info_len;
-  hidl_response->maxVsaDataLen = legacy_response.max_vsa_data_len;
+  // TODO: b/35193423 add support for extended service specific info
+  hidl_response->maxExtendedServiceSpecificInfoLen = 0;
   hidl_response->maxNdiInterfaces = legacy_response.max_ndi_interfaces;
   hidl_response->maxNdpSessions = legacy_response.max_ndp_sessions;
   hidl_response->maxAppInfoLen = legacy_response.max_app_info_len;
@@ -1319,6 +1302,7 @@
   hidl_ind->addr = hidl_array<uint8_t, 6>(legacy_ind.addr);
   hidl_ind->serviceSpecificInfo = std::vector<uint8_t>(legacy_ind.service_specific_info,
         legacy_ind.service_specific_info + legacy_ind.service_specific_info_len);
+  // TODO: b/35193423 add support for extended service specific info
   hidl_ind->matchFilter = std::vector<uint8_t>(legacy_ind.sdf_match_filter,
         legacy_ind.sdf_match_filter + legacy_ind.sdf_match_filter_len);
   hidl_ind->matchOccuredInBeaconFlag = legacy_ind.match_occured_flag == 1;
@@ -1346,32 +1330,12 @@
   hidl_ind->peerId = legacy_ind.requestor_instance_id;
   hidl_ind->addr = hidl_array<uint8_t, 6>(legacy_ind.addr);
   hidl_ind->receivedInFaw = legacy_ind.dw_or_faw == 1;
-  hidl_ind->message = std::vector<uint8_t>(legacy_ind.service_specific_info,
+  hidl_ind->serviceSpecificInfo = std::vector<uint8_t>(legacy_ind.service_specific_info,
         legacy_ind.service_specific_info + legacy_ind.service_specific_info_len);
 
   return true;
 }
 
-bool convertLegacyNanBeaconSdfPayloadIndToHidl(
-    const legacy_hal::NanBeaconSdfPayloadInd& legacy_ind,
-    NanBeaconSdfPayloadInd* hidl_ind) {
-  if (!hidl_ind) {
-    LOG(ERROR) << "convertLegacyNanBeaconSdfPayloadIndToHidl: hidl_ind is null";
-    return false;
-  }
-  hidl_ind->addr = hidl_array<uint8_t, 6>(legacy_ind.addr);
-  hidl_ind->isVsaReceived = legacy_ind.is_vsa_received == 1;
-  hidl_ind->vsaReceivedOnFrames = legacy_ind.vsa.vsa_received_on;
-  hidl_ind->vsaVendorOui = legacy_ind.vsa.vendor_oui;
-  hidl_ind->vsa = std::vector<uint8_t>(legacy_ind.vsa.vsa,
-        legacy_ind.vsa.vsa + legacy_ind.vsa.attr_len);
-  hidl_ind->isBeaconSdfPayloadReceived = legacy_ind.is_beacon_sdf_payload_received == 1;
-  hidl_ind->beaconSdfPayloadData = std::vector<uint8_t>(legacy_ind.data.frame_data,
-        legacy_ind.data.frame_data + legacy_ind.data.frame_len);
-
-  return true;
-}
-
 bool convertLegacyNanDataPathRequestIndToHidl(
     const legacy_hal::NanDataPathRequestInd& legacy_ind,
     NanDataPathRequestInd* hidl_ind) {
diff --git a/wifi/1.0/default/hidl_struct_util.h b/wifi/1.0/default/hidl_struct_util.h
index 14bc77d..490dcae 100644
--- a/wifi/1.0/default/hidl_struct_util.h
+++ b/wifi/1.0/default/hidl_struct_util.h
@@ -110,9 +110,6 @@
 bool convertHidlNanTransmitFollowupRequestToLegacy(
     const NanTransmitFollowupRequest& hidl_request,
     legacy_hal::NanTransmitFollowupRequest* legacy_request);
-bool convertHidlNanBeaconSdfPayloadRequestToLegacy(
-    const NanBeaconSdfPayloadRequest& hidl_request,
-    legacy_hal::NanBeaconSdfPayloadRequest* legacy_request);
 bool convertHidlNanDataPathInitiatorRequestToLegacy(
     const NanInitiateDataPathRequest& hidl_request,
     legacy_hal::NanDataPathInitiatorRequest* legacy_request);
@@ -135,9 +132,6 @@
 bool convertLegacyNanDataPathConfirmIndToHidl(
     const legacy_hal::NanDataPathConfirmInd& legacy_ind,
     NanDataPathConfirmInd* hidl_ind);
-bool convertLegacyNanBeaconSdfPayloadIndToHidl(
-    const legacy_hal::NanBeaconSdfPayloadInd& legacy_ind,
-    NanBeaconSdfPayloadInd* hidl_ind);
 
 // RTT controller conversion methods.
 bool convertHidlVectorOfRttConfigToLegacy(
diff --git a/wifi/1.0/default/wifi_nan_iface.cpp b/wifi/1.0/default/wifi_nan_iface.cpp
index 333fac7..8d76f91 100644
--- a/wifi/1.0/default/wifi_nan_iface.cpp
+++ b/wifi/1.0/default/wifi_nan_iface.cpp
@@ -120,14 +120,6 @@
         }
         break;
      }
-    case legacy_hal::NAN_RESPONSE_BEACON_SDF_PAYLOAD: {
-        for (const auto& callback : shared_ptr_this->event_callbacks_) {
-          if (!callback->notifyBeaconSdfPayloadResponse(id, wifiNanStatus).isOk()) {
-            LOG(ERROR) << "Failed to invoke the callback";
-          }
-        }
-        break;
-     }
     case legacy_hal::NAN_GET_CAPABILITIES: {
         NanCapabilities hidl_struct;
         if (!hidl_struct_util::convertLegacyNanCapabilitiesResponseToHidl(
@@ -183,6 +175,8 @@
         }
         break;
     }
+    case legacy_hal::NAN_RESPONSE_BEACON_SDF_PAYLOAD:
+        /* fall through */
     case legacy_hal::NAN_RESPONSE_TCA:
         /* fall through */
     case legacy_hal::NAN_RESPONSE_STATS:
@@ -402,24 +396,8 @@
   };
 
   callback_handlers.on_event_beacon_sdf_payload = [weak_ptr_this](
-        const legacy_hal::NanBeaconSdfPayloadInd& msg) {
-      const auto shared_ptr_this = weak_ptr_this.promote();
-      if (!shared_ptr_this.get() || !shared_ptr_this->isValid()) {
-        LOG(ERROR) << "Callback invoked on an invalid object";
-        return;
-      }
-      NanBeaconSdfPayloadInd hidl_struct;
-      if (!hidl_struct_util::convertLegacyNanBeaconSdfPayloadIndToHidl(
-            msg, &hidl_struct)) {
-          LOG(ERROR) << "Failed to convert nan capabilities response";
-          return;
-      }
-
-      for (const auto& callback : shared_ptr_this->event_callbacks_) {
-        if (!callback->eventBeaconSdfPayload(hidl_struct).isOk()) {
-            LOG(ERROR) << "Failed to invoke the callback";
-        }
-      }
+        const legacy_hal::NanBeaconSdfPayloadInd& /* msg */) {
+      LOG(ERROR) << "on_event_beacon_sdf_payload - should not be called";
   };
 
   legacy_hal::wifi_error legacy_status =
@@ -517,7 +495,7 @@
 
 Return<void> WifiNanIface::stopPublishRequest(
     uint16_t cmd_id,
-    uint16_t sessionId,
+    uint8_t sessionId,
     stopPublishRequest_cb hidl_status_cb) {
   return validateAndCall(this,
                          WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
@@ -541,7 +519,7 @@
 
 Return<void> WifiNanIface::stopSubscribeRequest(
     uint16_t cmd_id,
-    uint16_t sessionId,
+    uint8_t sessionId,
     stopSubscribeRequest_cb hidl_status_cb) {
   return validateAndCall(this,
                          WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
@@ -621,18 +599,6 @@
                          ndpInstanceId);
 }
 
-Return<void> WifiNanIface::beaconSdfPayloadRequest(
-    uint16_t cmd_id,
-    const NanBeaconSdfPayloadRequest& msg,
-    beaconSdfPayloadRequest_cb hidl_status_cb) {
-  return validateAndCall(this,
-                         WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
-                         &WifiNanIface::beaconSdfPayloadRequestInternal,
-                         hidl_status_cb,
-                         cmd_id,
-                         msg);
-}
-
 std::pair<WifiStatus, std::string> WifiNanIface::getNameInternal() {
   return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_};
 }
@@ -699,7 +665,7 @@
 }
 
 WifiStatus WifiNanIface::stopPublishRequestInternal(
-    uint16_t cmd_id, uint16_t sessionId) {
+    uint16_t cmd_id, uint8_t sessionId) {
   legacy_hal::NanPublishCancelRequest legacy_msg;
   legacy_msg.publish_id = sessionId;
   legacy_hal::wifi_error legacy_status =
@@ -720,7 +686,7 @@
 }
 
 WifiStatus WifiNanIface::stopSubscribeRequestInternal(
-    uint16_t cmd_id, uint16_t sessionId) {
+    uint16_t cmd_id, uint8_t sessionId) {
   legacy_hal::NanSubscribeCancelRequest legacy_msg;
   legacy_msg.subscribe_id = sessionId;
   legacy_hal::wifi_error legacy_status =
@@ -783,16 +749,6 @@
   free(legacy_msg);
   return createWifiStatusFromLegacyError(legacy_status);
 }
-WifiStatus WifiNanIface::beaconSdfPayloadRequestInternal(
-    uint16_t cmd_id, const NanBeaconSdfPayloadRequest& msg) {
-  legacy_hal::NanBeaconSdfPayloadRequest legacy_msg;
-  if (!hidl_struct_util::convertHidlNanBeaconSdfPayloadRequestToLegacy(msg, &legacy_msg)) {
-    return createWifiStatus(WifiStatusCode::ERROR_INVALID_ARGS);
-  }
-  legacy_hal::wifi_error legacy_status =
-      legacy_hal_.lock()->nanBeaconSdfPayloadRequest(cmd_id, legacy_msg);
-  return createWifiStatusFromLegacyError(legacy_status);
-}
 
 }  // namespace implementation
 }  // namespace V1_0
diff --git a/wifi/1.0/default/wifi_nan_iface.h b/wifi/1.0/default/wifi_nan_iface.h
index 4fae3df..d1da60e 100644
--- a/wifi/1.0/default/wifi_nan_iface.h
+++ b/wifi/1.0/default/wifi_nan_iface.h
@@ -60,13 +60,13 @@
                                    const NanPublishRequest& msg,
                                    startPublishRequest_cb hidl_status_cb) override;
   Return<void> stopPublishRequest(uint16_t cmd_id,
-                                  uint16_t sessionId,
+                                  uint8_t sessionId,
                                   stopPublishRequest_cb hidl_status_cb) override;
   Return<void> startSubscribeRequest(uint16_t cmd_id,
                                      const NanSubscribeRequest& msg,
                                     startSubscribeRequest_cb hidl_status_cb) override;
   Return<void> stopSubscribeRequest(uint16_t cmd_id,
-                                    uint16_t sessionId,
+                                    uint8_t sessionId,
                                     stopSubscribeRequest_cb hidl_status_cb) override;
   Return<void> transmitFollowupRequest(uint16_t cmd_id,
                                        const NanTransmitFollowupRequest& msg,
@@ -87,9 +87,6 @@
   Return<void> terminateDataPathRequest(uint16_t cmd_id,
                                         uint32_t ndpInstanceId,
                                         terminateDataPathRequest_cb hidl_status_cb) override;
-  Return<void> beaconSdfPayloadRequest(uint16_t cmd_id,
-                                       const NanBeaconSdfPayloadRequest& msg,
-                                       beaconSdfPayloadRequest_cb hidl_status_cb) override;
 
  private:
   // Corresponding worker functions for the HIDL methods.
@@ -105,10 +102,10 @@
   WifiStatus disableRequestInternal(uint16_t cmd_id);
   WifiStatus startPublishRequestInternal(uint16_t cmd_id,
                                          const NanPublishRequest& msg);
-  WifiStatus stopPublishRequestInternal(uint16_t cmd_id, uint16_t sessionId);
+  WifiStatus stopPublishRequestInternal(uint16_t cmd_id, uint8_t sessionId);
   WifiStatus startSubscribeRequestInternal(uint16_t cmd_id,
                                            const NanSubscribeRequest& msg);
-  WifiStatus stopSubscribeRequestInternal(uint16_t cmd_id, uint16_t sessionId);
+  WifiStatus stopSubscribeRequestInternal(uint16_t cmd_id, uint8_t sessionId);
   WifiStatus transmitFollowupRequestInternal(
       uint16_t cmd_id, const NanTransmitFollowupRequest& msg);
   WifiStatus createDataInterfaceRequestInternal(uint16_t cmd_id,
@@ -121,8 +118,6 @@
       uint16_t cmd_id, const NanRespondToDataPathIndicationRequest& msg);
   WifiStatus terminateDataPathRequestInternal(
       uint16_t cmd_id, uint32_t ndpInstanceId);
-  WifiStatus beaconSdfPayloadRequestInternal(
-      uint16_t cmd_id, const NanBeaconSdfPayloadRequest& msg);
 
   std::string ifname_;
   std::weak_ptr<legacy_hal::WifiLegacyHal> legacy_hal_;
diff --git a/wifi/1.0/types.hal b/wifi/1.0/types.hal
index 1ec1357..f777207 100644
--- a/wifi/1.0/types.hal
+++ b/wifi/1.0/types.hal
@@ -211,7 +211,7 @@
 
 /**
  * STA specific types.
- * TODO(b/32159498): Move to a separate nan_types.hal.
+ * TODO(b/32159498): Move to a separate sta_types.hal.
  */
 /**
  * Parameters to specify the APF capabilities of this iface.
@@ -562,6 +562,9 @@
 /**
  * NAN specific types.
  * TODO(b/32159498): Move to a separate nan_types.hal.
+ *
+ * References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness
+ * Networking (NAN) Technical Specification".
  */
 
 /**
@@ -624,55 +627,59 @@
 };
 
 /**
- * NAN Match indication type.
+ * NAN Match indication type: control how often to trigger |IWifiNanIfaceEventCallback.eventMatch|
+ * for a single discovery session - i.e. continuously discovering the same publisher with no new
+ * data.
  */
 enum NanMatchAlg : uint32_t {
-  MATCH_ONCE = 0,
-  MATCH_CONTINUOUS,
-  MATCH_NEVER,
+  MATCH_ONCE = 0,   // Only trigger |IWifiNanIfaceEventCallback.eventMatch| once
+  MATCH_CONTINUOUS, // Trigger |IWifiNanIfaceEventCallback.eventMatch| every time
+  MATCH_NEVER,      // Never trigger |IWifiNanIfaceEventCallback.eventMatch|
 };
 
 /**
  * NAN publish discovery session types.
  */
 enum NanPublishType : uint32_t {
-  UNSOLICITED = 0,
-  SOLICITED,
-  UNSOLICITED_SOLICITED,
+  UNSOLICITED = 0,       // Publish session broadcasts discovery packets
+  SOLICITED,             // Publish session silent, responds to active subscribes queries
+  UNSOLICITED_SOLICITED, // Both
 };
 
 /**
  * NAN transmit type used in |NanPublishType.SOLICITED| or |NanPublishType.UNSOLICITED_SOLICITED|
- * publish discovery sessions.
+ * publish discovery sessions. Describes the addressing of the packet responding to an ACTIVE
+ * subscribe query.
  */
 enum NanTxType : uint32_t {
-  BROADCAST = 0,
-  UNICAST,
+  BROADCAST = 0, // Respond with a broadcast packet
+  UNICAST,       // Respond with a unicast packet
 };
 
 /**
- * NAN subscribe discovery session ypes.
+ * NAN subscribe discovery session types.
  */
 enum NanSubscribeType : uint32_t {
-  PASSIVE = 0,
-  ACTIVE,
+  PASSIVE = 0, // Subscribe session scans for |NanPublishType.UNSOLICITED| publish sessions.
+  ACTIVE,      // Subscribe session probes for |NanPublishType.SOLICITED| publish sessions.
 };
 
 /**
  * NAN Service Response Filter Attribute Bit.
  */
 enum NanSrfType : uint32_t {
-  BLOOM_FILTER = 0,
-  PARTIAL_MAC_ADDR,
+  BLOOM_FILTER = 0, // Use a Bloom filter.
+  PARTIAL_MAC_ADDR, // Use a list of MAC addresses.
 };
 
 /**
- * NAN DP channel config options.
+ * NAN DP (data-path) channel config options.
  */
 enum NanDataPathChannelCfg : uint32_t {
-  CHANNEL_NOT_REQUESTED = 0,
-  REQUEST_CHANNEL_SETUP,
-  FORCE_CHANNEL_SETUP,
+  CHANNEL_NOT_REQUESTED = 0, // No channel request is specified.
+  REQUEST_CHANNEL_SETUP,     // Channel request is specified - but may be overridden by firmware.
+  FORCE_CHANNEL_SETUP,       // Channel request is specified and must be respected. If the firmware
+                             // cannot honor the request then the data-path request is rejected.
 };
 
 /**
@@ -680,86 +687,100 @@
  */
 struct NanBandSpecificConfig {
   /**
-   * RSSI values controlling clustering behavior per spec.
+   * RSSI values controlling clustering behavior per spec. RSSI values are specified without a sign,
+   * e.g. a value of -65dBm would be specified as 65.
    */
-  uint8_t rssiClose;
-  uint8_t rssiMiddle;
+  uint8_t rssiClose;  // NAN Spec: RSSI_close
+  uint8_t rssiMiddle; // NAN Spec: RSSI_middle
   /**
-   * RSSI value determining whether discovery is near (used if enabled in discovery).
+   * RSSI value determining whether discovery is near (used if enabled in discovery by
+   * |NanDiscoveryCommonConfig.useRssiThreshold|).
+   * RSSI values are specified without a sign, e.g. a value of -65dBm would be specified as 65.
+   * NAN Spec: RSSI_close_proximity
    */
-  uint8_t rssiProximity;
+  uint8_t rssiCloseProximity;
   /**
-   * Dwell time of each discovery channel in milliseconds.
-   * If time set to 0 then the FW default time must be used.
+   * Dwell time of each discovery channel in milliseconds. If set to 0 then the firmware determines
+   * the dwell time to use.
    */
   uint8_t dwellTimeMs;
   /**
-   * Scan period of each discovery channel in seconds.
-   * If time set to 0 then the FW default time must be used.
+   * Scan period of each discovery channel in seconds. If set to 0 then the firmware determines
+   * the scan period to use.
    */
   uint16_t scanPeriodSec;
    /**
-    * Specifies the interval for Sync beacons and SDF's.
+    * Specifies the discovery window interval for Sync beacons and SDF's.
     * Valid values of DW Interval are: 1, 2, 3, 4 and 5 corresponding to 1, 2, 4, 8, and 16 DWs.
     * Value of 0:
     *  - reserved in 2.4GHz band
     *  - no wakeup at all in 5GHz band
     * The publish/subscribe period values don't override the device level configurations if
-    * specified (if 'valid' is true).
+    * specified.
+    * Configuration is only used only if |validDiscoveryWindowIntervalVal| is set to true.
+    * NAN Spec: Device Capability Attribute / 2.4 GHz DW, Device Capability Attribute / 5 GHz DW
     */
   bool validDiscoveryWindowIntervalVal;
   uint8_t discoveryWindowIntervalVal;
 };
 
 /**
- * Configuration parameters
+ * Debug configuration parameters. Many of these allow non-standard-compliant operation and are
+ * not intended for normal operational mode.
  */
 struct NanDebugConfig {
   /**
-   * The low and high values of the cluster ID: standard values are 0x0000 - 0xFFFF.
-   * A clusterLow == clusterHigh indicates a request to join or create a cluster with that ID.
-   * Used if 'valid' is true.
+   * Specification of the lower 2 bytes of the cluster ID. The cluster ID is 50-60-9a-01-00-00 to
+   * 50-60-9a-01-FF-FF. Configuration of the bottom and top values of the range (which defaults to
+   * 0x0000 and 0xFFFF respectively).
+   * Configuration is only used if |validClusterIdVals| is set to true.
    */
   bool validClusterIdVals;
-  uint16_t clusterIdLowVal;
-  uint16_t clusterIdHighVal;
+  uint16_t clusterIdBottomRangeVal;
+  uint16_t clusterIdTopRangeVal;
   /**
-   * NAN management interface address, If specified ('valid' is true) then overrides any other
-   * configuration (specifically the default randomization).
+   * NAN management interface address, if specified (|validIntfAddrVal| is true) then overrides any
+   * other configuration (specifically the default randomization configured by
+   * |NanConfigRequest.macAddressRandomizationIntervalSec|).
    */
   bool validIntfAddrVal;
   MacAddress intfAddrVal;
   /**
-   * The 24 bit Organizationally Unique ID + the 8 bit Network Id. Used if 'valid' is true.
+   * Combination of the 24 bit Organizationally Unique ID (OUI) and the 8 bit OUI Type.
+   * Used if |validOuiVal| is set to true.
    */
   bool validOuiVal;
   uint32_t ouiVal;
   /**
-   * Force the Random Factor to the specified value for all transmitted Sync/Discovery beacons
-   * if the 'valid' flag is true.
+   * Force the Random Factor to the specified value for all transmitted Sync/Discovery beacons.
+   * Used if |validRandomFactorForceVal| is set to true.
+   * NAN Spec: Master Indication Attribute / Random Factor
    */
   bool validRandomFactorForceVal;
   uint8_t randomFactorForceVal;
   /**
    * Forces the hop-count for all transmitted Sync and Discovery Beacons NO matter the real
-   * hop-count being received over the air. Used if the 'valid' flag is true.
+   * hop-count being received over the air. Used if the |validHopCountForceVal}| flag is set to
+   * true.
+   * NAN Spec: Cluster Attribute / Anchor Master Information / Hop Count to Anchor Master
    */
   bool validHopCountForceVal;
   uint8_t hopCountForceVal;
   /**
    * Frequency in MHz to of the discovery channel in the specified band. Indexed by |NanBandIndex|.
+   * Used if the |validDiscoveryChannelVal| is set to true.
    */
   bool validDiscoveryChannelVal;
   WifiChannelInMhz[2] discoveryChannelMhzVal;
   /**
    * Specifies whether sync/discovery beacons are transmitted in the specified band. Indexed by
-   * |NanBandIndex|.
+   * |NanBandIndex|. Used if the |validUseBeaconsInBandVal| is set to true.
    */
   bool validUseBeaconsInBandVal;
   bool[2] useBeaconsInBandVal;
   /**
-   * Specified whether SDF (service discovery frames) are transmitted in the specified band. Indexed
-   * by |NanBandIndex|.
+   * Specifies whether SDF (service discovery frames) are transmitted in the specified band. Indexed
+   * by |NanBandIndex|. Used if the |validUseSdfInBandVal| is set to true.
    */
   bool validUseSdfInBandVal;
   bool[2] useSdfInBandVal;
@@ -771,34 +792,48 @@
 struct NanConfigRequest {
   /**
    * Master preference of this device.
+   * NAN Spec: Master Indication Attribute / Master Preference
    */
   uint8_t masterPref;
   /**
    * Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
-   * for DISCOVERY_MAC_ADDRESS_CHANGED.
+   * for |NanClusterEventType.DISCOVERY_MAC_ADDRESS_CHANGED|.
    */
   bool disableDiscoveryAddressChangeIndication;
   /**
    * Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
-   * for STARTED_CLUSTER.
+   * for |NanClusterEventType.STARTED_CLUSTER|.
    */
   bool disableStartedClusterIndication;
   /**
    * Controls whether or not the |IWifiNanIfaceEventCallback.eventClusterEvent| will be delivered
-   * for JOINED_CLUSTER.
+   * for |NanClusterEventType.JOINED_CLUSTER|.
    */
   bool disableJoinedClusterIndication;
   /**
-   * Control whether service IDs are included in Sync/Discovery beacons.
+   * Control whether publish service IDs are included in Sync/Discovery beacons.
+   * NAN Spec: Service ID List Attribute
    */
-  bool includeServiceIdsInBeacon;
+  bool includePublishServiceIdsInBeacon;
   /**
-   * If |includeServiceIdInBeacon| is true then specifies the number of service IDs to include
-   * in the Sync/Discovery beacons:
+   * If |includePublishServiceIdsInBeacon| is true then specifies the number of publish service IDs
+   * to include in the Sync/Discovery beacons:
    *  Value = 0: include as many service IDs as will fit into the maximum allowed beacon frame size.
    *  Value must fit within 7 bits - i.e. <= 127.
    */
-  uint8_t numberOfServiceIdsInBeacon;
+  uint8_t numberOfPublishServiceIdsInBeacon;
+  /**
+   * Control whether subscribe service IDs are included in Sync/Discovery beacons.
+   * Spec: Subscribe Service ID List Attribute
+   */
+  bool includeSubscribeServiceIdsInBeacon;
+  /**
+   * If |includeSubscribeServiceIdsInBeacon| is true then specifies the number of subscribe service
+   * IDs to include in the Sync/Discovery beacons:
+   *  Value = 0: include as many service IDs as will fit into the maximum allowed beacon frame size.
+   *  Value must fit within 7 bits - i.e. <= 127.
+   */
+  uint8_t numberOfSubscribeServiceIdsInBeacon;
   /**
    * Number of samples used to calculate RSSI.
    */
@@ -820,7 +855,7 @@
 };
 
 /**
- * Enable requests for NAN: start-up configuration.
+ * Enable requests for NAN: start-up configuration |IWifiNanIface.enableRequest|.
  */
 struct NanEnableRequest {
   /**
@@ -833,30 +868,31 @@
   uint8_t hopCountMax;
   /**
    * Configurations of NAN cluster operation. Can also be modified at run-time using
-   * |configRequest|.
+   * |IWifiNanIface.configRequest|.
    */
   NanConfigRequest configParams;
   /**
-   * Non-standard configurations of NAN cluster operation - useful for debugging opeations.
+   * Non-standard configurations of NAN cluster operation - useful for debugging operations.
    */
   NanDebugConfig debugConfigs;
 };
 
 /**
- * Cipher suite flags - to be used as a bitmask.
+ * Cipher suite flags.
  */
 enum NanCipherSuiteType : uint32_t {
-  SHARED_KEY_128_MASK = 1 << 0,
-  SHARED_KEY_256_MASK = 1 << 1
+  SHARED_KEY_128_MASK = 1 << 0, // NCS-SK-128
+  SHARED_KEY_256_MASK = 1 << 1  // NCS-SK-256
 };
 
 /**
- * Ranging in the context of discovery sessions indication controls - to be used as a bitmask.
+ * Ranging in the context of discovery sessions indication controls. Controls the frequency of
+ * ranging-driven |IWifiNanIfaceEventCallback.eventMatch|.
  */
 enum NanRangingIndication : uint32_t {
-  CONTINUOUS_INDICATION_MASK = 1 << 0,
-  INGRESS_MET_MASK = 1 << 1,
-  EGRESS_MET_MASK = 1 << 2
+  CONTINUOUS_INDICATION_MASK = 1 << 0, // trigger event on every RTT measurement
+  INGRESS_MET_MASK = 1 << 1,           // trigger event only when ingress conditions met
+  EGRESS_MET_MASK = 1 << 2             // trigger event only when egress conditions met
 };
 
 /**
@@ -865,58 +901,82 @@
 struct NanDiscoveryCommonConfig {
   /**
    * The ID of the discovery session being configured. A value of 0 specifies a request to create
-   * a new discovery session.
+   * a new discovery session. The new discovery session ID is returned with
+   * |IWifiNanIfaceEventCallback.notifyStartPublishResponse| or
+   * |IWifiNanIfaceEventCallback.notifyStartSubscribeResponse|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Instance ID
    */
-  uint16_t sessionId;
+  uint8_t sessionId;
   /**
    * The lifetime of the discovery session in seconds. A value of 0 means run forever or until
-   * canceled.
+   * canceled using |IWifiIface.stopPublishRequest| or |IWifiIface.stopSubscribeRequest|.
    */
   uint16_t ttlSec;
   /**
    * Indicates the interval between two Discovery Windows in which the device supporting the
-   * service is awake to transmit or receive the Service Discovery frames.
-   * Valid values of Awake DW Interval are: 1, 2, 4, 8 and 16. A value of 0 will default to 1.
+   * service is awake to transmit or receive the Service Discovery frames. Valid values of Awake
+   * DW Interval are: 1, 2, 4, 8 and 16. A value of 0 will default to 1. Overrides any
+   * |NanBandSpecificConfig.discoveryWindowIntervalVal| configurations.
    */
   uint16_t discoveryWindowPeriod;
   /**
-   * Number of other-air-air operations (i.e. active transmissions), 0 means forever or until
-   * canceled.
+   * The lifetime of the discovery session in number of transmitted SDF discovery packets. A value
+   * of 0 means forever or until canceled using |IWifiIface.stopPublishRequest| or
+   * |IWifiIface.stopSubscribeRequest|.
    */
   uint8_t discoveryCount;
   /**
    * UTF-8 encoded string identifying the service.
    * Max length: |NanCapabilities.maxServiceNameLen|.
+   * NAN Spec: The only acceptable single-byte UTF-8 symbols for a Service Name are alphanumeric
+   * values (A-Z, a-z, 0-9), the hyphen ('-'), and the period ('.'). All valid multi-byte UTF-8
+   * characters are acceptable in a Service Name.
    */
   vec<uint8_t> serviceName;
   /**
-   * Specifies the matching indication to host: once, continuous, or never.
+   * Specifies how often to trigger |IWifiNanIfaceEventCallback.eventMatch| when continuously
+   * discovering the same discovery session (with no changes).
    */
   NanMatchAlg discoveryMatchIndicator;
   /**
-   * Arbitrary information communicated as part of discovery.
+   * Arbitrary information communicated in discovery packets - there is no semantic meaning to these
+   * bytes. They are passed-through from publisher to subscriber as-is with no parsing.
    * Max length: |NanCapabilities.maxServiceSpecificInfoLen|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Info
    */
   vec<uint8_t> serviceSpecificInfo;
   /**
-   * Ordered sequence of <length, value> pairs (length uses 1 byte) which specify further match
-   * criteria (beyond the service name).
+   * Arbitrary information communicated in discovery packets - there is no semantic meaning to these
+   * bytes. They are passed-through from publisher to subscriber as-is with no parsing.
+   * Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
+   * Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
+   */
+  vec<uint8_t> extendedServiceSpecificInfo;
+  /**
+   * Ordered sequence of <length, value> pairs (|length| uses 1 byte and contains the number of
+   * bytes in the |value| field) which specify further match criteria (beyond the service name).
+   * The match behavior is specified in details in the NAN spec.
    * Publisher: used in SOLICITED or SOLICITED_UNSOLICITED sessions.
    * Subscriber: used in ACTIVE or PASSIVE sessions.
    * Max length: |NanCapabilities.maxMatchFilterLen|.
+   * NAN Spec: matching_filter_rx
    */
   vec<uint8_t> rxMatchFilter;
   /**
-   * Ordered sequence of <length, value> pairs (length uses 1 byte) which specify further match
-   * criteria (beyond the service name).
+   * Ordered sequence of <length, value> pairs (|length| uses 1 byte and contains the number of
+   * bytes in the |value| field) which specify further match criteria (beyond the service name).
+   * The match behavior is specified in details in the NAN spec.
    * Publisher: used if provided.
-   * Subscriber: used in ACTIVE sessions.
+   * Subscriber: used (if provided) only in ACTIVE sessions.
    * Max length: |NanCapabilities.maxMatchFilterLen|.
+   * NAN Spec: matching_filter_tx and Service Descriptor Attribute (SDA) / Matching Filter
    */
   vec<uint8_t> txMatchFilter;
   /**
-   * Specifies whether or not the discovery session uses the |rssiProximity| value (configured
-   * in enable/configure requests) to filter out matched discovered peers.
+   * Specifies whether or not the discovery session uses the
+   * |NanBandSpecificConfig.rssiCloseProximity| value (configured in enable/configure requests) to
+   * filter out matched discovered peers.
+   * NAN Spec: Service Descriptor Attribute / Service Control / Discovery Range Limited.
    */
   bool useRssiThreshold;
   /**
@@ -935,45 +995,49 @@
    */
   bool disableFollowupReceivedIndication;
   /**
-   * Cipher types supported in data-paths constructed in the context of this discovery session. The
-   * |NanCipherSuiteType| bit fields are used to set this value.
+   * Cipher types supported in data-paths constructed in the context of this discovery session.
    */
   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
-   * each data-path).
+   * Optional Pairwise Master Key (PMK) for data-paths constructed in the context of this discovery
+   * session. A PMK can also be provided during the actual construction of the data-path (which
+   * allows for unique PMKs for each data-path).
    * Max length: 32
+   * Ref: IEEE 802.11i
    */
   vec<uint8_t> pmk;
   /**
    * Specifies whether or not security is enabled in any data-path (NDP) constructed in the context
    * of this discovery session.
+   * NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / Security Required
    */
   bool securityEnabledInNdp;
   /**
    * Specifies whether or not there is a ranging requirement in this discovery session.
    * Note that ranging is only performed if all other match criteria with the peer are met.
+   * NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / Ranging Require.
    */
   bool rangingRequired;
    /**
-    * Interval in msec between two ranging measurements.
-    * If the Awake DW interval in Enable/Config is larger than the ranging interval - priority is
-    * given to Awake DW interval.
+    * Interval in msec between two ranging measurements. Only relevant if |rangingRequired| is true.
+    * If the Awake DW interval specified either in |discoveryWindowPeriod| or in
+    * |NanBandSpecificConfig.discoveryWindowIntervalVal| is larger than the ranging interval then
+    * priority is given to Awake DW interval.
     */
   uint32_t rangingIntervalMsec;
   /**
-   * The type of ranging indication feedback to be provided by discovery session matches. Use
-   * bit-fields from |NanRangingIndication|.
+   * The type of ranging feedback to be provided by discovery session matches
+   * |IWifiNanIfaceEventCallback.eventMatch|. Only relevant if |rangingRequired| is true.
    */
    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)
+    * The ingress and egress distance in cm. If ranging is enabled (|rangingEnabled| is true) then
+    * |configRangingIndications| is used to determine whether ingress and/or egress (or neither)
     * are used to determine whether a match has occurred.
+    * NAN Spec: Service Discovery Extension Attribute (SDEA) / Ingress & Egress Range Limit
     */
-   uint32_t distanceIngressCm;
-   uint32_t distanceEgressCm;
+   uint16_t distanceIngressCm;
+   uint16_t distanceEgressCm;
 };
 
 /**
@@ -1009,27 +1073,35 @@
    */
   NanSubscribeType subscribeType;
   /**
-   * For Active subscribe discovery sessions specify how the Service Response Filter (SRF)
-   * attribute is populated.
+   * For |NanSubscribeType.ACTIVE| subscribe discovery sessions specify how the Service Response
+   * Filter (SRF) attribute is populated. Relevant only if |shouldUseSrf| is set to true.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Response Filter / SRF Control / SRF Type
    */
   NanSrfType srfType;
   /**
-   * Configure the requested response of the Service Response Filter (SRF).
+   * Configure whether inclusion of an address in |intfAddr| indicates that those devices should
+   * respond or the reverse. Relevant only if |shouldUseSrf| is set to true and |srfType| is set to
+   * |NanSrfType.PARTIAL_MAC_ADDR|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Response Filter / SRF Control / Include
    */
   bool srfRespondIfInAddressSet;
   /**
-   * Control whether the Service Response Filter (SRF) is transmitted OTA.
+   * Control whether the Service Response Filter (SRF) is used.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Control /
+   *           Service Response Filter Present
    */
   bool shouldUseSrf;
   /**
-   * Control whether the Service Specific Info (SSI) is needed in the Publish message to trigger
-   * service discovery (a match).
+   * Control whether the presence of |NanDiscoveryCommonConfig.serviceSpecificInfo| data is needed
+   * in the publisher in order to trigger service discovery, i.e. a
+   * |IWifiNanIfaceEventCallback.eventMatch|. The test is for presence of data - not for the
+   * specific contents of the data.
    */
   bool isSsiRequiredForMatch;
   /**
-   * NAN Interface Address, conforming to the format as described in
-   * 8.2.4.3.2 of IEEE Std. 802.11-2012.
-   * Max length: |NanCapabilities.maxSubscribeInterfaceAddresses|.
+   * NAN Interface Addresses constituting the Service Response Filter (SRF).
+   * Max length (number of addresses): |NanCapabilities.maxSubscribeInterfaceAddresses|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Response Filter / Address Set
    */
   vec<MacAddress> intfAddr;
 };
@@ -1041,15 +1113,17 @@
   /**
    * ID of an active publish or subscribe discovery session. Follow-up message is transmitted in the
    * context of the discovery session.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Instance ID
    */
-  uint16_t discoverySessionId;
+  uint8_t discoverySessionId;
   /**
-   * ID of the peer. Obtained as part of an earlier |eventMatch| or |eventFollowupReceived|.
+   * ID of the peer. Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or
+   * |IWifiNanIfaceEventCallback.eventFollowupReceived|.
    */
   uint32_t peerId;
   /**
-   * MAC address of the peer. Obtained as part of an earlier |eventMatch| or
-   * |eventFollowupReceived|.
+   * MAC address of the peer. Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch|
+   * or |IWifiNanIfaceEventCallback.eventFollowupReceived|.
    */
   MacAddress addr;
   /**
@@ -1062,13 +1136,22 @@
    */
   bool shouldUseDiscoveryWindow;
   /**
-   * Message as a byte sequence.
+   * Arbitrary information communicated to the peer - there is no semantic meaning to these
+   * bytes. They are passed-through from sender to receiver as-is with no parsing.
    * Max length: |NanCapabilities.maxServiceSpecificInfoLen|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Info
    */
-  vec<uint8_t> message;
+  vec<uint8_t> serviceSpecificInfo;
   /**
-   * Disable |eventTransmitFollowup| - i.e. do not get indication on whether the follow-up
-   * was transmitted and received successfully.
+   * Arbitrary information communicated in discovery packets - there is no semantic meaning to these
+   * bytes. They are passed-through from publisher to subscriber as-is with no parsing.
+   * Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
+   * Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
+   */
+  vec<uint8_t> extendedServiceSpecificInfo;
+  /**
+   * Disable |IWifiNanIfaceEventCallback.eventTransmitFollowup| - i.e. do not get indication on
+   * whether the follow-up was transmitted and received successfully.
    */
   bool disableFollowupResultIndication;
 };
@@ -1078,11 +1161,13 @@
  */
 struct NanInitiateDataPathRequest {
   /**
-   * ID of the peer. Obtained as part of an earlier |eventMatch| or |eventFollowupReceived|.
+   * ID of the peer. Obtained as part of an earlier |IWifiNanIfaceEventCallback.eventMatch| or
+   * |IWifiNanIfaceEventCallback.eventFollowupReceived|.
    */
   uint32_t peerId;
   /**
-   * NAN management interface MAC address of the peer.
+   * NAN management interface MAC address of the peer. Obtained as part of an earlier
+   * |IWifiNanIfaceEventCallback.eventMatch| or |IWifiNanIfaceEventCallback.eventFollowupReceived|.
    */
   MacAddress peerDiscMacAddr;
   /**
@@ -1090,31 +1175,36 @@
    */
   NanDataPathChannelCfg channelRequestType;
   /**
-   * Channel frequency in MHz to start data-path.
+   * Channel frequency in MHz to start data-path. Not relevant if |channelRequestType| is
+   * |NanDataPathChannelCfg.CHANNEL_NOT_REQUESTED|.
    */
   WifiChannelInMhz channel;
   /**
-   * NAN data interface name on which this data-path session is to be started.
-   * This must be an interface created using |createDataInterfaceRequest|.
+   * NAN data interface name on which this data-path session is to be initiated.
+   * This must be an interface created using |IWifiNanIface.createDataInterfaceRequest|.
    */
   string ifaceName;
   /**
    * Specifies whether or not security is required for the data-path being created.
+   * NAN Spec: Data Path Attributes / NDP Attribute / NDP Control / Security Present
    */
   bool securityRequired;
   /**
-   * Arbitrary token transmitted as part of the data-path negotiation (not encrypted).
+   * Arbitrary information communicated to the peer as part of the data-path setup process - there
+   * is no semantic meaning to these bytes. They are passed-through from sender to receiver as-is
+   * with no parsing.
    * Max length: |NanCapabilities.maxAppInfoLen|.
+   * NAN Spec: Data Path Attributes / NDP Attribute / NDP Specific Info
    */
   vec<uint8_t> appInfo;
   /**
-   * Cipher types supported in data-paths constructed in the context of this discovery session. The
-   * |NanCipherSuiteType| bit fields are used to set this value.
+   * Cipher types supported in data-paths constructed in the context of this discovery session.
    */
   bitfield<NanCipherSuiteType> supportedCipherTypes;
   /**
-   * PMK of the data-path being requested (if |securityRequired| is true).
+   * Pairwise Master Key (PMK) for the data-path being requested (if |securityRequired| is true).
    * Max length: 32
+   * Ref: IEEE 802.11i
    */
   vec<uint8_t> pmk;
 };
@@ -1125,65 +1215,44 @@
 struct NanRespondToDataPathIndicationRequest {
   /**
    * Accept (true) or reject (false) the request.
+   * NAN Spec: Data Path Attributes / NDP Attribute / Type and Status
    */
   bool acceptRequest;
   /**
    * ID of the data-path (NDP) for which we're responding - obtained as part of the request in
-   * |NanDataPathRequestInd|.
+   * |IWifiNanIfaceEventCallback.eventDataPathRequest|.
    */
   uint32_t ndpInstanceId;
   /**
    * NAN data interface name on which this data-path session is to be started.
-   * This must be an interface created using |createDataInterfaceRequest|.
+   * This must be an interface created using |IWifiNanIface.createDataInterfaceRequest|.
    */
   string ifaceName;
   /**
    * Specifies whether or not security is required for the data-path being created.
+   * NAN Spec: Data Path Attributes / NDP Attribute / NDP Control / Security Present
    */
   bool securityRequired;
   /**
-   * Arbitrary token transmitted as part of the data-path negotiation (not encrypted).
+   * Arbitrary information communicated to the peer as part of the data-path setup process - there
+   * is no semantic meaning to these bytes. They are passed-through from sender to receiver as-is
+   * with no parsing.
    * Max length: |NanCapabilities.maxAppInfoLen|.
+   * NAN Spec: Data Path Attributes / NDP Attribute / NDP Specific Info
    */
   vec<uint8_t> appInfo;
   /**
-   * Cipher types supported in data-paths constructed in the context of this discovery session. The
-   * |NanCipherSuiteType| bit fields are used to set this value.
+   * Cipher types supported in data-paths constructed in the context of this discovery session.
    */
   bitfield<NanCipherSuiteType> supportedCipherTypes;
   /**
-   * PMK of the data-path being requested (if |securityRequired| is true).
+   * Pairwise Master Key (PMK) for the data-path being negotiated (if |securityRequired| is true).
    * Max length: 32
    */
   vec<uint8_t> pmk;
 };
 
 /**
- * Specifies vendor-specific information fields to be included in NAN management frames.
- */
-struct NanBeaconSdfPayloadRequest {
-  /**
-   * If true information is transmitted in next 16 DWs, else only in the next (1) DW.
-   */
-  bool transmitInNext16dws;
-  /**
-   * Specify the management frames in which the vendor-specific information is included.
-   */
-  bool transmitInDiscoveryBeacon;
-  bool transmitInSyncBeacon;
-  bool transmitInServiceDiscoveryFrame;
-  /**
-   * Organizationally Unique Identifier (OUI).
-   */
-  uint32_t vendorOui;
-  /**
-   * Vendor specific attribute to be transmitted.
-   * Max length: |NanCapabilities.maxVsaDataLen|.
-   */
-  vec<uint8_t> vsa;
-};
-
-/**
  * NDP Capabilities response.
  */
 struct NanCapabilities {
@@ -1208,24 +1277,24 @@
    */
   uint32_t maxMatchFilterLen;
   /**
-   * Maximum length (in bytes) of aggregate match filters.
+   * Maximum length (in bytes) of aggregate match filters across all active sessions.
    */
   uint32_t maxTotalMatchFilterLen;
   /**
-   * Maximum length (in bytes) of the service specific info length or message length in follow-ups.
+   * Maximum length (in bytes) of the service specific info field.
    */
   uint32_t maxServiceSpecificInfoLen;
   /**
-   * Maximum length (in bytes) of vendor-specific (VSA) data.
+   * Maximum length (in bytes) of the extended service specific info field.
    */
-  uint32_t maxVsaDataLen;
+  uint32_t maxExtendedServiceSpecificInfoLen;
   /**
-   * Maximum number of data interfaces which can be created concurrently on the device.
+   * Maximum number of data interfaces (NDI) which can be created concurrently on the device.
    */
   uint32_t maxNdiInterfaces;
   /**
-   * Maximum number of data paths which can be created concurrently on each individual
-   * data interface.
+   * Maximum number of data paths (NDP) which can be created concurrently on each individual
+   * data interface (NDI).
    */
   uint32_t maxNdpSessions;
   /**
@@ -1239,7 +1308,7 @@
   /**
    * Maximum number MAC interface addresses which can be specified to a subscribe discovery session.
    */
-  uint32_t maxSubscribeInterfaceAddresses; // TODO: (hard-code to 42) get from HAL
+  uint32_t maxSubscribeInterfaceAddresses;
   /**
    * The set of supported Cipher suites. The |NanCipherSuiteType| bit fields are used.
    */
@@ -1252,10 +1321,12 @@
 struct NanMatchInd {
   /**
    * Publish or subscribe discovery session ID of an existing discovery session.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Instance ID
    */
-  uint16_t discoverySessionId;
+  uint8_t discoverySessionId;
   /**
-   * A unique ID of the peer. Can be subsequently used in |transmitFollowupRequest|.
+   * A unique ID of the peer. Can be subsequently used in |IWifiNanIface.transmitFollowupRequest| or
+   * to set up a data-path.
    */
   uint32_t peerId;
   /**
@@ -1263,47 +1334,60 @@
    */
   MacAddress addr;
   /**
-   * The arbitrary information contained in the |serviceSpecificInfo| of the peer's discovery
-   * session.
+   * The arbitrary information contained in the |NanDiscoveryCommonConfig.serviceSpecificInfo| of
+   * the peer's discovery session configuration.
    * Max length: |NanCapabilities.maxServiceSpecificInfoLen|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Info
    */
   vec<uint8_t> serviceSpecificInfo;
   /**
-   * Ordered sequence of <length, value> pairs (length uses 1 byte) of the peer's discovery session
-   * match filter.
+   * Arbitrary information communicated in discovery packets - there is no semantic meaning to these
+   * bytes. They are passed-through from publisher to subscriber as-is with no parsing.
+   * Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
+   * Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
+   */
+  vec<uint8_t> extendedServiceSpecificInfo;
+  /**
+   * The match filter from the discovery packet (publish or subscribe) which caused service
+   * discovery. Matches the peer's |NanDiscoveryCommonConfig.txMatchFilter|.
    * Max length: |NanCapabilities.maxMatchFilterLen|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Matching Filter
    */
   vec<uint8_t> matchFilter;
   /**
-   * Indicates the type of discovery: Beacon if true, Service Discovery Frames (SDF) if false.
+   * Indicates the type of discovery: true if match occurred on a Beacon frame, false if the match
+   * occurred on a Service Discovery Frames (SDF).
    */
   bool matchOccuredInBeaconFlag;
   /**
-   * Flag to indicate FW is out of resource and that it can no longer
-   * track this Service Name.
+   * Flag to indicate firmware is out of resource and that it can no longer track this Service Name.
+   * Indicates that while |IWifiNanIfaceEventCallback.eventMatch| will be received, the
+   * |NanDiscoveryCommonConfig.discoveryMatchIndicator| configuration will not be honored.
    */
   bool outOfResourceFlag;
   /**
-   * If RSSI filtering was configured in discovery session setup then this
-   * field must contain the received RSSI value. It will contain 0 if RSSI filtering was not
-   * configured.
+   * If RSSI filtering was enabled using |NanDiscoveryCommonConfig.useRssiThreshold| in discovery
+   * session setup then this field contains the received RSSI value. It will contain 0 if RSSI
+   * filtering was not enabled.
    * RSSI values are returned without sign, e.g. -70dBm will be returned as 70.
    */
   uint8_t rssiValue;
   /**
    * 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.
+   * session.
    */
   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.
+   * NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / Security Required
    */
   bool peerRequiresSecurityEnabledInNdp;
   /**
-   * Indicates whether or not the peer requires (and hence allows) ranging in this discovery
-   * session.
+   * Indicates whether or not the peer requires (and hence allows) ranging in the context of this
+   * discovery session.
    * Note that ranging is only performed if all other match criteria with the peer are met.
+   * NAN Spec: Service Discovery Extension Attribute (SDEA) / Control / Ranging Require.
    */
   bool peerRequiresRanging;
   /**
@@ -1324,8 +1408,8 @@
    */
   uint32_t rangingMeasurementInCm;
   /**
-   * 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.
+   * The ranging event(s) which triggered the ranging. E.g. can indicate that continuous ranging was
+   * requested, or else that an ingress event occurred.
    */
    bitfield<NanRangingIndication> rangingIndicationType;
 };
@@ -1337,10 +1421,12 @@
   /**
    * Discovery session (publish or subscribe) ID of a previously created discovery session. The
    * message is received in the context of this discovery session.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Instance ID
    */
-  uint16_t discoverySessionId;
+  uint8_t discoverySessionId;
   /**
-   * A unique ID of the peer. Can be subsequently used in |transmitFollowupRequest|.
+   * A unique ID of the peer. Can be subsequently used in |IWifiNanIface.transmitFollowupRequest| or
+   * to set up a data-path.
    */
   uint32_t peerId;
   /**
@@ -1353,10 +1439,19 @@
    */
   bool receivedInFaw;
   /**
-   * Received message as a byte sequence.
+   * Received message from the peer - there is no semantic meaning to these bytes. They are
+   * passed-through from sender to receiver as-is with no parsing.
    * Max length: |NanCapabilities.maxServiceSpecificInfoLen|.
+   * NAN Spec: Service Descriptor Attribute (SDA) / Service Info
    */
-  vec<uint8_t> message;
+  vec<uint8_t> serviceSpecificInfo;
+  /**
+   * Arbitrary information communicated in discovery packets - there is no semantic meaning to these
+   * bytes. They are passed-through from publisher to subscriber as-is with no parsing.
+   * Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
+   * Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
+   */
+  vec<uint8_t> extendedServiceSpecificInfo;
 };
 
 /**
@@ -1394,54 +1489,6 @@
 };
 
 /**
- * Mask to determine on which frames the vendor-specific attribute (VSA) was received on.
- */
-enum NanVsaRxFrameMask: uint32_t {
-  DISCOVERY_BEACON_MASK = 1 << 0,
-  SYNC_BEACON_MASK = 1 << 1,
-  SERVICE_DISCOVERY_MASK = 1 << 2
-};
-
-/**
- * NAN Beacon or SDF Payload Indication Message structure.
- * The BeaconSdfPayloadInd message indicates to the upper layers that information
- * elements were received either in a Beacon or SDF which needs to be delivered
- * outside of a Publish/Subscribe Handle.
- */
-struct NanBeaconSdfPayloadInd {
-  /**
-   * The MAC address of the peer which sent the attributes.
-   */
-  MacAddress addr;
-  /**
-   * A flag indicating whether a vendor-specific attribute (VSA) has been received.
-   */
-  bool isVsaReceived;
-  /**
-   * Frames on which this vendor specific attribute was received.
-   * Mask |NanVsaRxFrameMask| defined above.
-   */
-  bitfield<NanVsaRxFrameMask> vsaReceivedOnFrames;
-  /**
-   * Organizationally Unique Identifier (OUI) of the vendor-specific attribute.
-   */
-  uint32_t vsaVendorOui;
-  /**
-   * Contents of the vendor specific attribute.
-   * Max length: |NanCapabilities.maxVsaDataLen|.
-   */
-  vec<uint8_t> vsa;
-  /**
-   * A flag indicating whether a NAN beacon or SDF payload has been received.
-   */
-  bool isBeaconSdfPayloadReceived;
-  /**
-   * The contents of the NAN beacon or SDF payload.
-   */
-  vec<uint8_t> beaconSdfPayloadData;
-};
-
-/**
  * NAN Data path request Indication Message structure.
  * Event indication received by an intended Responder when a Nan Data request initiated by an
  * Initiator.
@@ -1450,8 +1497,9 @@
   /**
    * ID of an active publish or subscribe discovery session - the data-path request is in the
    * context of this discovery session.
+   * NAN Spec: Data Path Attributes / NDP Attribute / Publish ID
    */
-  uint16_t discoverySessionId;
+  uint8_t discoverySessionId;
   /**
    * MAC address of the Initiator peer. This is the MAC address of the peer's management/discovery
    * NAN interface.
@@ -1463,11 +1511,15 @@
   uint32_t ndpInstanceId;
   /**
    * Specifies whether or not security is required by the peer for the data-path being created.
+   * NAN Spec: Data Path Attributes / NDP Attribute / NDP Control / Security Present
    */
   bool securityRequired;
   /**
-   * Arbitrary token transmitted by the peer as part of the data-path negotiation (not encrypted).
+   * Arbitrary information communicated from the peer as part of the data-path setup process - there
+   * is no semantic meaning to these bytes. They are passed-through from sender to receiver as-is
+   * with no parsing.
    * Max length: |NanCapabilities.maxAppInfoLen|.
+   * NAN Spec: Data Path Attributes / NDP Attribute / NDP Specific Info
    */
   vec<uint8_t> appInfo;
 };
@@ -1491,8 +1543,11 @@
    */
   MacAddress peerNdiMacAddr;
   /**
-   * Arbitrary token transmitted by the peer as part of the data-path negotiation (not encrypted).
+   * Arbitrary information communicated from the peer as part of the data-path setup process - there
+   * is no semantic meaning to these bytes. They are passed-through from sender to receiver as-is
+   * with no parsing.
    * Max length: |NanCapabilities.maxAppInfoLen|.
+   * NAN Spec: Data Path Attributes / NDP Attribute / NDP Specific Info
    */
   vec<uint8_t> appInfo;
   /**
diff --git a/wifi/1.0/vts/Wifi.vts b/wifi/1.0/vts/Wifi.vts
index 608e012..85c901a7 100644
--- a/wifi/1.0/vts/Wifi.vts
+++ b/wifi/1.0/vts/Wifi.vts
@@ -4,11 +4,3041 @@
 
 package: "android.hardware.wifi"
 
+import: "android.hardware.wifi@1.0::IWifiApIface"
 import: "android.hardware.wifi@1.0::IWifiChip"
+import: "android.hardware.wifi@1.0::IWifiChipEventCallback"
 import: "android.hardware.wifi@1.0::IWifiEventCallback"
+import: "android.hardware.wifi@1.0::IWifiIface"
+import: "android.hardware.wifi@1.0::IWifiNanIface"
+import: "android.hardware.wifi@1.0::IWifiNanIfaceEventCallback"
+import: "android.hardware.wifi@1.0::IWifiP2pIface"
+import: "android.hardware.wifi@1.0::IWifiRttController"
+import: "android.hardware.wifi@1.0::IWifiRttControllerEventCallback"
+import: "android.hardware.wifi@1.0::IWifiStaIface"
+import: "android.hardware.wifi@1.0::IWifiStaIfaceEventCallback"
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    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
+            }
+        }
+    }
+
+    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: "registerEventCallback"
         return_type_hidl: {
@@ -17,8 +3047,7 @@
         }
         arg: {
             type: TYPE_HIDL_CALLBACK
-            predefined_type: "IWifiEventCallback"
-            is_callback: true
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiEventCallback"
         }
         callflow: {
             entry: true
@@ -95,8 +3124,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiChip"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiChip"
         }
         arg: {
             type: TYPE_SCALAR
diff --git a/wifi/1.0/vts/WifiApIface.vts b/wifi/1.0/vts/WifiApIface.vts
index c4f3640..f231e4f 100644
--- a/wifi/1.0/vts/WifiApIface.vts
+++ b/wifi/1.0/vts/WifiApIface.vts
@@ -5,8 +5,2857 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::IWifiIface"
+import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "getType"
         return_type_hidl: {
@@ -30,4 +2879,20 @@
         }
     }
 
+    api: {
+        name: "setCountryCode"
+        return_type_hidl: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
+        }
+        arg: {
+            type: TYPE_ARRAY
+            vector_size: 2
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "int8_t"
+            }
+        }
+    }
+
 }
diff --git a/wifi/1.0/vts/WifiChip.vts b/wifi/1.0/vts/WifiChip.vts
index 4b278c1..53b1bc5 100644
--- a/wifi/1.0/vts/WifiChip.vts
+++ b/wifi/1.0/vts/WifiChip.vts
@@ -8,13 +8,2933 @@
 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::IWifiNanIfaceEventCallback"
 import: "android.hardware.wifi@1.0::IWifiP2pIface"
 import: "android.hardware.wifi@1.0::IWifiRttController"
+import: "android.hardware.wifi@1.0::IWifiRttControllerEventCallback"
 import: "android.hardware.wifi@1.0::IWifiStaIface"
+import: "android.hardware.wifi@1.0::IWifiStaIfaceEventCallback"
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
     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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    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
+            }
+        }
+    }
+
+    attribute: {
         name: "::android::hardware::wifi::V1_0::IWifiChip::ChipIfaceCombinationLimit"
         type: TYPE_STRUCT
         struct_value: {
@@ -137,8 +3057,7 @@
         }
         arg: {
             type: TYPE_HIDL_CALLBACK
-            predefined_type: "IWifiChipEventCallback"
-            is_callback: true
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiChipEventCallback"
         }
     }
 
@@ -150,6 +3069,7 @@
         }
         return_type_hidl: {
             type: TYPE_MASK
+            scalar_type: "uint32_t"
             predefined_type: "::android::hardware::wifi::V1_0::IWifiChip::ChipCapabilityMask"
         }
     }
@@ -243,8 +3163,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiApIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiApIface"
         }
     }
 
@@ -270,8 +3189,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiApIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiApIface"
         }
         arg: {
             type: TYPE_STRING
@@ -297,8 +3215,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiNanIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiNanIface"
         }
     }
 
@@ -324,8 +3241,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiNanIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiNanIface"
         }
         arg: {
             type: TYPE_STRING
@@ -351,8 +3267,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiP2pIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiP2pIface"
         }
     }
 
@@ -378,8 +3293,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiP2pIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiP2pIface"
         }
         arg: {
             type: TYPE_STRING
@@ -405,8 +3319,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiStaIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIface"
         }
     }
 
@@ -432,8 +3345,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiStaIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIface"
         }
         arg: {
             type: TYPE_STRING
@@ -459,13 +3371,11 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiRttController"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiRttController"
         }
         arg: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiIface"
         }
     }
 
diff --git a/wifi/1.0/vts/WifiChipEventCallback.vts b/wifi/1.0/vts/WifiChipEventCallback.vts
index c755162..7467d05 100644
--- a/wifi/1.0/vts/WifiChipEventCallback.vts
+++ b/wifi/1.0/vts/WifiChipEventCallback.vts
@@ -5,8 +5,2856 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "onChipReconfigured"
         arg: {
diff --git a/wifi/1.0/vts/WifiEventCallback.vts b/wifi/1.0/vts/WifiEventCallback.vts
index a0cf667..458672b 100644
--- a/wifi/1.0/vts/WifiEventCallback.vts
+++ b/wifi/1.0/vts/WifiEventCallback.vts
@@ -5,8 +5,2856 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "onStart"
     }
diff --git a/wifi/1.0/vts/WifiIface.vts b/wifi/1.0/vts/WifiIface.vts
index 1434a3e..0327509 100644
--- a/wifi/1.0/vts/WifiIface.vts
+++ b/wifi/1.0/vts/WifiIface.vts
@@ -5,8 +5,2856 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "getType"
         return_type_hidl: {
diff --git a/wifi/1.0/vts/WifiNanIface.vts b/wifi/1.0/vts/WifiNanIface.vts
index 663b526..924f564 100644
--- a/wifi/1.0/vts/WifiNanIface.vts
+++ b/wifi/1.0/vts/WifiNanIface.vts
@@ -7,8 +7,2856 @@
 import: "android.hardware.wifi@1.0::IWifiIface"
 import: "android.hardware.wifi@1.0::IWifiNanIfaceEventCallback"
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "getType"
         return_type_hidl: {
@@ -40,8 +2888,7 @@
         }
         arg: {
             type: TYPE_HIDL_CALLBACK
-            predefined_type: "IWifiNanIfaceEventCallback"
-            is_callback: true
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiNanIfaceEventCallback"
         }
     }
 
@@ -129,7 +2976,7 @@
         }
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "uint16_t"
+            scalar_type: "uint8_t"
         }
     }
 
@@ -161,7 +3008,7 @@
         }
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "uint16_t"
+            scalar_type: "uint8_t"
         }
     }
 
@@ -259,20 +3106,4 @@
         }
     }
 
-    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
index 30ca88a..f2bb608 100644
--- a/wifi/1.0/vts/WifiNanIfaceEventCallback.vts
+++ b/wifi/1.0/vts/WifiNanIfaceEventCallback.vts
@@ -5,8 +5,2856 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "notifyCapabilitiesResponse"
         arg: {
@@ -71,7 +2919,7 @@
         }
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "uint16_t"
+            scalar_type: "uint8_t"
         }
     }
 
@@ -99,7 +2947,7 @@
         }
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "uint16_t"
+            scalar_type: "uint8_t"
         }
     }
 
@@ -161,6 +3009,10 @@
             type: TYPE_STRUCT
             predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
         }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
     }
 
     api: {
@@ -173,10 +3025,6 @@
             type: TYPE_STRUCT
             predefined_type: "::android::hardware::wifi::V1_0::WifiNanStatus"
         }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "uint32_t"
-        }
     }
 
     api: {
@@ -192,18 +3040,6 @@
     }
 
     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
@@ -223,7 +3059,7 @@
         name: "eventPublishTerminated"
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "uint16_t"
+            scalar_type: "uint8_t"
         }
         arg: {
             type: TYPE_STRUCT
@@ -235,7 +3071,7 @@
         name: "eventSubscribeTerminated"
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "uint16_t"
+            scalar_type: "uint8_t"
         }
         arg: {
             type: TYPE_STRUCT
@@ -255,7 +3091,7 @@
         name: "eventMatchExpired"
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "uint16_t"
+            scalar_type: "uint8_t"
         }
         arg: {
             type: TYPE_SCALAR
@@ -307,12 +3143,4 @@
         }
     }
 
-    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
index b40c81e..94f3de6 100644
--- a/wifi/1.0/vts/WifiP2pIface.vts
+++ b/wifi/1.0/vts/WifiP2pIface.vts
@@ -5,8 +5,2857 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::IWifiIface"
+import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "getType"
         return_type_hidl: {
diff --git a/wifi/1.0/vts/WifiRttController.vts b/wifi/1.0/vts/WifiRttController.vts
index 0fd3626..3ed2885 100644
--- a/wifi/1.0/vts/WifiRttController.vts
+++ b/wifi/1.0/vts/WifiRttController.vts
@@ -7,8 +7,2856 @@
 import: "android.hardware.wifi@1.0::IWifiIface"
 import: "android.hardware.wifi@1.0::IWifiRttControllerEventCallback"
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "getBoundIface"
         return_type_hidl: {
@@ -17,8 +2865,7 @@
         }
         return_type_hidl: {
             type: TYPE_HIDL_INTERFACE
-            predefined_type: "IWifiIface"
-            is_callback: false
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiIface"
         }
     }
 
@@ -30,8 +2877,7 @@
         }
         arg: {
             type: TYPE_HIDL_CALLBACK
-            predefined_type: "IWifiRttControllerEventCallback"
-            is_callback: true
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiRttControllerEventCallback"
         }
     }
 
@@ -68,8 +2914,8 @@
             type: TYPE_VECTOR
             vector_value: {
                 type: TYPE_ARRAY
+                vector_size: 6
                 vector_value: {
-                    vector_size: 6
                     type: TYPE_SCALAR
                     scalar_type: "uint8_t"
                 }
diff --git a/wifi/1.0/vts/WifiRttControllerEventCallback.vts b/wifi/1.0/vts/WifiRttControllerEventCallback.vts
index 028fd03..ab69dea 100644
--- a/wifi/1.0/vts/WifiRttControllerEventCallback.vts
+++ b/wifi/1.0/vts/WifiRttControllerEventCallback.vts
@@ -5,8 +5,2856 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "onResults"
         arg: {
diff --git a/wifi/1.0/vts/WifiStaIface.vts b/wifi/1.0/vts/WifiStaIface.vts
index 0cff792..ecd0ae2 100644
--- a/wifi/1.0/vts/WifiStaIface.vts
+++ b/wifi/1.0/vts/WifiStaIface.vts
@@ -7,9 +7,2857 @@
 import: "android.hardware.wifi@1.0::IWifiIface"
 import: "android.hardware.wifi@1.0::IWifiStaIfaceEventCallback"
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
     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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
+    attribute: {
         name: "::android::hardware::wifi::V1_0::IWifiStaIface::StaIfaceCapabilityMask"
         type: TYPE_ENUM
         enum_value: {
@@ -109,8 +2957,7 @@
         }
         arg: {
             type: TYPE_HIDL_CALLBACK
-            predefined_type: "IWifiStaIfaceEventCallback"
-            is_callback: true
+            predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIfaceEventCallback"
         }
     }
 
@@ -122,6 +2969,7 @@
         }
         return_type_hidl: {
             type: TYPE_MASK
+            scalar_type: "uint32_t"
             predefined_type: "::android::hardware::wifi::V1_0::IWifiStaIface::StaIfaceCapabilityMask"
         }
     }
@@ -351,16 +3199,16 @@
         }
         arg: {
             type: TYPE_ARRAY
+            vector_size: 6
             vector_value: {
-                vector_size: 6
                 type: TYPE_SCALAR
                 scalar_type: "uint8_t"
             }
         }
         arg: {
             type: TYPE_ARRAY
+            vector_size: 6
             vector_value: {
-                vector_size: 6
                 type: TYPE_SCALAR
                 scalar_type: "uint8_t"
             }
@@ -384,15 +3232,23 @@
     }
 
     api: {
-        name: "startDebugPacketFateMonitoring"
+        name: "setScanningMacOui"
         return_type_hidl: {
             type: TYPE_STRUCT
             predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
         }
+        arg: {
+            type: TYPE_ARRAY
+            vector_size: 3
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
     }
 
     api: {
-        name: "stopDebugPacketFateMonitoring"
+        name: "startDebugPacketFateMonitoring"
         return_type_hidl: {
             type: TYPE_STRUCT
             predefined_type: "::android::hardware::wifi::V1_0::WifiStatus"
diff --git a/wifi/1.0/vts/WifiStaIfaceEventCallback.vts b/wifi/1.0/vts/WifiStaIfaceEventCallback.vts
index b04ad26..b8156d0 100644
--- a/wifi/1.0/vts/WifiStaIfaceEventCallback.vts
+++ b/wifi/1.0/vts/WifiStaIfaceEventCallback.vts
@@ -5,8 +5,2856 @@
 package: "android.hardware.wifi"
 
 import: "android.hardware.wifi@1.0::types"
+import: "android.hidl.base@1.0::types"
 
 interface: {
+    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
+            scalar_type: "uint32_t"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "int32_t"
+            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_size: 6
+                vector_value: {
+                    type: TYPE_SCALAR
+                    scalar_type: "uint8_t"
+                }
+            }
+        }
+        struct_value: {
+            name: "ssidWhitelist"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_ARRAY
+                vector_size: 32
+                vector_value: {
+                    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: "DISABLED"
+            scalar_value: {
+                uint8_t: 0
+            }
+            enumerator: "ENABLED"
+            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: "rssiCloseProximity"
+            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: "clusterIdBottomRangeVal"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "clusterIdTopRangeVal"
+            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_size: 6
+            vector_value: {
+                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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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_ARRAY
+            vector_size: 2
+            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: "includePublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfPublishServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+        struct_value: {
+            name: "includeSubscribeServiceIdsInBeacon"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "numberOfSubscribeServiceIdsInBeacon"
+            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_ARRAY
+            vector_size: 2
+            vector_value: {
+                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: "rssiCloseProximity"
+                    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::NanEnableRequest"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "operateInBand"
+            type: TYPE_ARRAY
+            vector_size: 2
+            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: "uint8_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_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
+        }
+        struct_value: {
+            name: "distanceIngressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_t"
+        }
+        struct_value: {
+            name: "distanceEgressCm"
+            type: TYPE_SCALAR
+            scalar_type: "uint16_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_size: 6
+                vector_value: {
+                    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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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::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: "maxExtendedServiceSpecificInfoLen"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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: "extendedServiceSpecificInfo"
+            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
+            scalar_type: "uint32_t"
+            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
+            scalar_type: "uint32_t"
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerId"
+            type: TYPE_SCALAR
+            scalar_type: "uint32_t"
+        }
+        struct_value: {
+            name: "addr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "receivedInFaw"
+            type: TYPE_SCALAR
+            scalar_type: "bool_t"
+        }
+        struct_value: {
+            name: "serviceSpecificInfo"
+            type: TYPE_VECTOR
+            vector_value: {
+                type: TYPE_SCALAR
+                scalar_type: "uint8_t"
+            }
+        }
+        struct_value: {
+            name: "extendedServiceSpecificInfo"
+            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_size: 6
+            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: "uint8_t"
+        }
+        struct_value: {
+            name: "peerDiscMacAddr"
+            type: TYPE_ARRAY
+            vector_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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_size: 6
+            vector_value: {
+                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
+            scalar_type: "uint32_t"
+            predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
+        }
+        struct_value: {
+            name: "bwSupport"
+            type: TYPE_MASK
+            scalar_type: "uint32_t"
+            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_size: 2
+            vector_value: {
+                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"
+        }
+    }
+
+    attribute: {
+        name: "::android::hidl::base::V1_0::DebugInfo"
+        type: TYPE_STRUCT
+        struct_value: {
+            name: "pid"
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        struct_value: {
+            name: "ptr"
+            type: TYPE_SCALAR
+            scalar_type: "uint64_t"
+        }
+    }
+
     api: {
         name: "onBackgroundScanFailure"
         arg: {
@@ -50,8 +2898,8 @@
         }
         arg: {
             type: TYPE_ARRAY
+            vector_size: 6
             vector_value: {
-                vector_size: 6
                 type: TYPE_SCALAR
                 scalar_type: "uint8_t"
             }
diff --git a/wifi/1.0/vts/types.vts b/wifi/1.0/vts/types.vts
index fd60d4e..12a5060 100644
--- a/wifi/1.0/vts/types.vts
+++ b/wifi/1.0/vts/types.vts
@@ -383,6 +383,7 @@
     struct_value: {
         name: "eventReportScheme"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::StaBackgroundScanBucketEventReportSchemeMask"
     }
     struct_value: {
@@ -567,8 +568,8 @@
     struct_value: {
         name: "bssid"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -622,6 +623,7 @@
     struct_value: {
         name: "flags"
         type: TYPE_MASK
+        scalar_type: "int32_t"
         predefined_type: "::android::hardware::wifi::V1_0::StaScanDataFlagMask"
     }
     struct_value: {
@@ -662,8 +664,8 @@
         type: TYPE_VECTOR
         vector_value: {
             type: TYPE_ARRAY
+            vector_size: 6
             vector_value: {
-                vector_size: 6
                 type: TYPE_SCALAR
                 scalar_type: "uint8_t"
             }
@@ -674,8 +676,8 @@
         type: TYPE_VECTOR
         vector_value: {
             type: TYPE_ARRAY
+            vector_size: 32
             vector_value: {
-                vector_size: 32
                 type: TYPE_SCALAR
                 scalar_type: "uint8_t"
             }
@@ -689,11 +691,11 @@
     enum_value: {
         scalar_type: "uint8_t"
 
-        enumerator: "ENABLED"
+        enumerator: "DISABLED"
         scalar_value: {
             uint8_t: 0
         }
-        enumerator: "DISABLED"
+        enumerator: "ENABLED"
         scalar_value: {
             uint8_t: 1
         }
@@ -920,7 +922,7 @@
         scalar_type: "uint8_t"
     }
     struct_value: {
-        name: "rssiProximity"
+        name: "rssiCloseProximity"
         type: TYPE_SCALAR
         scalar_type: "uint8_t"
     }
@@ -955,12 +957,12 @@
         scalar_type: "bool_t"
     }
     struct_value: {
-        name: "clusterIdLowVal"
+        name: "clusterIdBottomRangeVal"
         type: TYPE_SCALAR
         scalar_type: "uint16_t"
     }
     struct_value: {
-        name: "clusterIdHighVal"
+        name: "clusterIdTopRangeVal"
         type: TYPE_SCALAR
         scalar_type: "uint16_t"
     }
@@ -972,8 +974,8 @@
     struct_value: {
         name: "intfAddrVal"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -1015,7 +1017,8 @@
     }
     struct_value: {
         name: "discoveryChannelMhzVal"
-        type: TYPE_VECTOR
+        type: TYPE_ARRAY
+        vector_size: 2
         vector_value: {
             type: TYPE_SCALAR
             scalar_type: "uint32_t"
@@ -1028,7 +1031,8 @@
     }
     struct_value: {
         name: "useBeaconsInBandVal"
-        type: TYPE_VECTOR
+        type: TYPE_ARRAY
+        vector_size: 2
         vector_value: {
             type: TYPE_SCALAR
             scalar_type: "bool_t"
@@ -1041,7 +1045,8 @@
     }
     struct_value: {
         name: "useSdfInBandVal"
-        type: TYPE_VECTOR
+        type: TYPE_ARRAY
+        vector_size: 2
         vector_value: {
             type: TYPE_SCALAR
             scalar_type: "bool_t"
@@ -1073,12 +1078,22 @@
         scalar_type: "bool_t"
     }
     struct_value: {
-        name: "includeServiceIdsInBeacon"
+        name: "includePublishServiceIdsInBeacon"
         type: TYPE_SCALAR
         scalar_type: "bool_t"
     }
     struct_value: {
-        name: "numberOfServiceIdsInBeacon"
+        name: "numberOfPublishServiceIdsInBeacon"
+        type: TYPE_SCALAR
+        scalar_type: "uint8_t"
+    }
+    struct_value: {
+        name: "includeSubscribeServiceIdsInBeacon"
+        type: TYPE_SCALAR
+        scalar_type: "bool_t"
+    }
+    struct_value: {
+        name: "numberOfSubscribeServiceIdsInBeacon"
         type: TYPE_SCALAR
         scalar_type: "uint8_t"
     }
@@ -1099,10 +1114,46 @@
     }
     struct_value: {
         name: "bandSpecificConfig"
-        type: TYPE_VECTOR
+        type: TYPE_ARRAY
+        vector_size: 2
         vector_value: {
+            name: "::android::hardware::wifi::V1_0::NanBandSpecificConfig"
             type: TYPE_STRUCT
-            predefined_type: "::android::hardware::wifi::V1_0::NanBandSpecificConfig"
+            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: "rssiCloseProximity"
+                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"
+            }
         }
     }
 }
@@ -1112,7 +1163,8 @@
     type: TYPE_STRUCT
     struct_value: {
         name: "operateInBand"
-        type: TYPE_VECTOR
+        type: TYPE_ARRAY
+        vector_size: 2
         vector_value: {
             type: TYPE_SCALAR
             scalar_type: "bool_t"
@@ -1179,7 +1231,7 @@
     struct_value: {
         name: "sessionId"
         type: TYPE_SCALAR
-        scalar_type: "uint16_t"
+        scalar_type: "uint8_t"
     }
     struct_value: {
         name: "ttlSec"
@@ -1198,7 +1250,11 @@
     }
     struct_value: {
         name: "serviceName"
-        type: TYPE_STRING
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
     }
     struct_value: {
         name: "discoveryMatchIndicator"
@@ -1214,6 +1270,14 @@
         }
     }
     struct_value: {
+        name: "extendedServiceSpecificInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+    struct_value: {
         name: "rxMatchFilter"
         type: TYPE_VECTOR
         vector_value: {
@@ -1252,6 +1316,7 @@
     struct_value: {
         name: "supportedCipherTypes"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
     }
     struct_value: {
@@ -1280,17 +1345,18 @@
     struct_value: {
         name: "configRangingIndications"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
     }
     struct_value: {
         name: "distanceIngressCm"
         type: TYPE_SCALAR
-        scalar_type: "uint32_t"
+        scalar_type: "uint16_t"
     }
     struct_value: {
         name: "distanceEgressCm"
         type: TYPE_SCALAR
-        scalar_type: "uint32_t"
+        scalar_type: "uint16_t"
     }
 }
 
@@ -1352,8 +1418,8 @@
         type: TYPE_VECTOR
         vector_value: {
             type: TYPE_ARRAY
+            vector_size: 6
             vector_value: {
-                vector_size: 6
                 type: TYPE_SCALAR
                 scalar_type: "uint8_t"
             }
@@ -1367,7 +1433,7 @@
     struct_value: {
         name: "discoverySessionId"
         type: TYPE_SCALAR
-        scalar_type: "uint16_t"
+        scalar_type: "uint8_t"
     }
     struct_value: {
         name: "peerId"
@@ -1377,8 +1443,8 @@
     struct_value: {
         name: "addr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -1394,7 +1460,15 @@
         scalar_type: "bool_t"
     }
     struct_value: {
-        name: "message"
+        name: "serviceSpecificInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+    struct_value: {
+        name: "extendedServiceSpecificInfo"
         type: TYPE_VECTOR
         vector_value: {
             type: TYPE_SCALAR
@@ -1419,8 +1493,8 @@
     struct_value: {
         name: "peerDiscMacAddr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -1455,6 +1529,7 @@
     struct_value: {
         name: "supportedCipherTypes"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
     }
     struct_value: {
@@ -1500,6 +1575,7 @@
     struct_value: {
         name: "supportedCipherTypes"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
     }
     struct_value: {
@@ -1513,44 +1589,6 @@
 }
 
 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: {
@@ -1589,6 +1627,11 @@
         scalar_type: "uint32_t"
     }
     struct_value: {
+        name: "maxExtendedServiceSpecificInfoLen"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
         name: "maxVsaDataLen"
         type: TYPE_SCALAR
         scalar_type: "uint32_t"
@@ -1621,6 +1664,7 @@
     struct_value: {
         name: "supportedCipherSuites"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
     }
 }
@@ -1631,7 +1675,7 @@
     struct_value: {
         name: "discoverySessionId"
         type: TYPE_SCALAR
-        scalar_type: "uint16_t"
+        scalar_type: "uint8_t"
     }
     struct_value: {
         name: "peerId"
@@ -1641,8 +1685,8 @@
     struct_value: {
         name: "addr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -1656,6 +1700,14 @@
         }
     }
     struct_value: {
+        name: "extendedServiceSpecificInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+    struct_value: {
         name: "matchFilter"
         type: TYPE_VECTOR
         vector_value: {
@@ -1681,6 +1733,7 @@
     struct_value: {
         name: "peerSupportedCipherTypes"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::NanCipherSuiteType"
     }
     struct_value: {
@@ -1701,6 +1754,7 @@
     struct_value: {
         name: "rangingIndicationType"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::NanRangingIndication"
     }
 }
@@ -1711,7 +1765,7 @@
     struct_value: {
         name: "discoverySessionId"
         type: TYPE_SCALAR
-        scalar_type: "uint16_t"
+        scalar_type: "uint8_t"
     }
     struct_value: {
         name: "peerId"
@@ -1721,8 +1775,8 @@
     struct_value: {
         name: "addr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -1733,7 +1787,15 @@
         scalar_type: "bool_t"
     }
     struct_value: {
-        name: "message"
+        name: "serviceSpecificInfo"
+        type: TYPE_VECTOR
+        vector_value: {
+            type: TYPE_SCALAR
+            scalar_type: "uint8_t"
+        }
+    }
+    struct_value: {
+        name: "extendedServiceSpecificInfo"
         type: TYPE_VECTOR
         vector_value: {
             type: TYPE_SCALAR
@@ -1774,78 +1836,7 @@
     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_size: 6
         vector_value: {
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
@@ -1859,13 +1850,13 @@
     struct_value: {
         name: "discoverySessionId"
         type: TYPE_SCALAR
-        scalar_type: "uint16_t"
+        scalar_type: "uint8_t"
     }
     struct_value: {
         name: "peerDiscMacAddr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -1906,8 +1897,8 @@
     struct_value: {
         name: "peerNdiMacAddr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -2106,8 +2097,8 @@
     struct_value: {
         name: "addr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -2185,8 +2176,8 @@
     struct_value: {
         name: "addr"
         type: TYPE_ARRAY
+        vector_size: 6
         vector_value: {
-            vector_size: 6
             type: TYPE_SCALAR
             scalar_type: "uint8_t"
         }
@@ -2334,11 +2325,13 @@
     struct_value: {
         name: "preambleSupport"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::RttPreamble"
     }
     struct_value: {
         name: "bwSupport"
         type: TYPE_MASK
+        scalar_type: "uint32_t"
         predefined_type: "::android::hardware::wifi::V1_0::RttBw"
     }
     struct_value: {
@@ -2430,8 +2423,8 @@
     struct_value: {
         name: "countryCode"
         type: TYPE_ARRAY
+        vector_size: 2
         vector_value: {
-            vector_size: 2
             type: TYPE_SCALAR
             scalar_type: "int8_t"
         }
diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp
index b985a93..a6c2758 100644
--- a/wifi/supplicant/1.0/Android.bp
+++ b/wifi/supplicant/1.0/Android.bp
@@ -24,19 +24,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.supplicant@1.0",
     srcs: [
-        "types.hal",
-        "ISupplicant.hal",
-        "ISupplicantCallback.hal",
-        "ISupplicantIface.hal",
-        "ISupplicantNetwork.hal",
-        "ISupplicantP2pIface.hal",
-        "ISupplicantP2pIfaceCallback.hal",
-        "ISupplicantP2pNetwork.hal",
-        "ISupplicantP2pNetworkCallback.hal",
-        "ISupplicantStaIface.hal",
-        "ISupplicantStaIfaceCallback.hal",
-        "ISupplicantStaNetwork.hal",
-        "ISupplicantStaNetworkCallback.hal",
+        ":android.hardware.wifi.supplicant@1.0_hal",
     ],
     out: [
         "android/hardware/wifi/supplicant/1.0/types.cpp",
@@ -60,19 +48,7 @@
     tools: ["hidl-gen"],
     cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.supplicant@1.0",
     srcs: [
-        "types.hal",
-        "ISupplicant.hal",
-        "ISupplicantCallback.hal",
-        "ISupplicantIface.hal",
-        "ISupplicantNetwork.hal",
-        "ISupplicantP2pIface.hal",
-        "ISupplicantP2pIfaceCallback.hal",
-        "ISupplicantP2pNetwork.hal",
-        "ISupplicantP2pNetworkCallback.hal",
-        "ISupplicantStaIface.hal",
-        "ISupplicantStaIfaceCallback.hal",
-        "ISupplicantStaNetwork.hal",
-        "ISupplicantStaNetworkCallback.hal",
+        ":android.hardware.wifi.supplicant@1.0_hal",
     ],
     out: [
         "android/hardware/wifi/supplicant/1.0/types.h",
diff --git a/wifi/supplicant/1.0/Android.mk b/wifi/supplicant/1.0/Android.mk
index ad49b0a..dd210d0 100644
--- a/wifi/supplicant/1.0/Android.mk
+++ b/wifi/supplicant/1.0/Android.mk
@@ -8,7 +8,7 @@
 LOCAL_MODULE := android.hardware.wifi.supplicant@1.0-java
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
 
@@ -387,7 +387,7 @@
 LOCAL_MODULE := android.hardware.wifi.supplicant@1.0-java-static
 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
-intermediates := $(local-generated-sources-dir)
+intermediates := $(call local-generated-sources-dir, COMMON)
 
 HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)