hostapd: add 60GHz(WiGig) support

Extend the band with 60GHz constant to support starting
AP on the 60GHz band.
Add channel parameters for EDMG (802.11ay, 60GHz channel
bonding).

Bug: 147469374
Test: atest VtsHalWifiHostapdV1_3TargetTest
Change-Id: I8d3ca0c14766dfb4a79c1febcc2bb05f65ba311e
diff --git a/wifi/hostapd/1.3/IHostapd.hal b/wifi/hostapd/1.3/IHostapd.hal
index be6fe59..70de7c2 100644
--- a/wifi/hostapd/1.3/IHostapd.hal
+++ b/wifi/hostapd/1.3/IHostapd.hal
@@ -17,6 +17,8 @@
 package android.hardware.wifi.hostapd@1.3;
 
 import @1.2::HostapdStatus;
+import @1.2::IHostapd.BandMask;
+import @1.2::IHostapd.HwModeParams;
 import @1.2::IHostapd.IfaceParams;
 import @1.2::IHostapd.NetworkParams;
 import @1.2::IHostapd;
@@ -27,6 +29,28 @@
  */
 interface IHostapd extends @1.2::IHostapd {
 
+    enum BandMask : @1.2::IHostapd.BandMask {
+        /**
+         * 60 GHz band.
+         */
+        BAND_60_GHZ = 1 << 3,
+    };
+
+    /**
+     * Parameters to control the HW mode for the interface.
+     */
+    struct HwModeParams {
+        /**
+         * Baseline information as defined in HAL 1.2.
+         */
+        @1.2::IHostapd.HwModeParams V1_2;
+
+        /**
+         * Enable EDMG (802.11ay), this option is only allowed for the 60GHz band.
+         */
+        bool enableEdmg;
+    };
+
     /**
      * Parameters to control the channel selection for the interface.
      */
@@ -52,10 +76,20 @@
          * Channel number (IEEE 802.11) to use for the interface.
          * If ACS is enabled, this field is ignored.
          *
+         * If |enableEdmg| is true, the channel must be set. Refer to
+         * P802.11ay_D4.0 29.3.4.
+         *
          * Note: It is used instead of V1_0::ChannelParams.channel inside
          * V1_3::IfaceParams.V1_2.V1_1.V1_0.
          */
         uint32_t channel;
+
+        /**
+         * Band to use for the SoftAp operations.
+         * Note: It is used instead of V1_2::ChannelParams.bandMask inside
+         * V1_3::IfaceParams.V1_2.channelParams
+         */
+        bitfield<BandMask> bandMask;
     };
 
     /**
@@ -68,6 +102,11 @@
         @1.2::IHostapd.IfaceParams V1_2;
 
         /**
+         * Additional Hw mode params for the interface
+         */
+        HwModeParams hwModeParams;
+
+        /**
          * The list of the channel params for the dual interfaces.
          */
         vec<ChannelParams> channelParamsList;
diff --git a/wifi/hostapd/1.3/types.hal b/wifi/hostapd/1.3/types.hal
index de85043..f453df7 100644
--- a/wifi/hostapd/1.3/types.hal
+++ b/wifi/hostapd/1.3/types.hal
@@ -26,6 +26,7 @@
  *                     [hw_mode is HOSTAPD_MODE_IEEE80211A and VHT is 0].
  * WIFI_STANDARD_11AC = hw_mode is HOSTAPD_MODE_IEEE80211A and VHT is 1.
  * WIFI_STANDARD_11AX = hw_mode is HOSTAPD_MODE_IEEE80211AX.
+ * WIFI_STANDARD_11AD = hw_mode is HOSTAPD_MODE_IEEE80211AD.
  */
 enum Generation : uint32_t {
     WIFI_STANDARD_UNKNOWN = -1,
@@ -33,6 +34,7 @@
     WIFI_STANDARD_11N = 1,
     WIFI_STANDARD_11AC = 2,
     WIFI_STANDARD_11AX = 3,
+    WIFI_STANDARD_11AD = 4,
 };
 
 /**
@@ -46,4 +48,8 @@
     WIFI_BANDWIDTH_80 = 4,
     WIFI_BANDWIDTH_80P80 = 5,
     WIFI_BANDWIDTH_160 = 6,
+    WIFI_BANDWIDTH_2160 = 7,
+    WIFI_BANDWIDTH_4320 = 8,
+    WIFI_BANDWIDTH_6480 = 9,
+    WIFI_BANDWIDTH_8640 = 10,
 };