]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Add QCA vendor attributes for AFC support in external ACS
authorJhalak Naik <quic_jhalnaik@quicinc.com>
Mon, 28 Feb 2022 08:06:36 +0000 (13:36 +0530)
committerJouni Malinen <j@w1.fi>
Thu, 10 Mar 2022 17:31:49 +0000 (19:31 +0200)
Add support for new QCA nested attributes to pass the AFC channel
information as part of the external ACS request command,
EXTERNAL_ACS_EVENT_CHAN_INFO.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
src/common/qca-vendor.h

index 7c0f5533aa9269a9a2641f76f50be374ee4ed270..816261c7938246c82a54528cafbb72acd5dbe924 100644 (file)
@@ -5627,6 +5627,8 @@ enum qca_wlan_vendor_acs_select_reason {
         * current channel.
         */
        QCA_WLAN_VENDOR_ACS_SELECT_REASON_JAMMER_INTERFERENCE,
+       /* Represents the reason that ACS triggered by AFC */
+       QCA_WLAN_VENDOR_ACS_SELECT_REASON_AFC_TRIGGER,
 };
 
 /**
@@ -5834,12 +5836,77 @@ enum qca_wlan_vendor_external_acs_event_chan_info_attr {
         */
        QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_1 = 13,
 
+       /*
+        * 16-bit attribute of bits indicating the AP power modes supported by
+        * the channel (u16).
+        * Note: Currently, only 3 bits are used in the attribute and each bit
+        * corresponds to the power mode mentioned in enum
+        * qca_wlan_vendor_external_acs_chan_power_mode and a given bit is
+        * set if the associated mode is supported.
+        */
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_SUPP_POWER_MODES
+                                                                       = 14,
+       /* Array of nested attributes for each power mode. It takes attr as
+        * defined in enum
+        * qca_wlan_vendor_external_acs_event_chan_power_info_attr.
+        */
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR = 15,
        /* keep last */
        QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_LAST,
        QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_MAX =
                QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_LAST - 1,
 };
 
+/**
+ * qca_wlan_vendor_external_acs_chan_power_mode - Specifies the valid
+ * values that the vendor external ACS channel power attribute
+ * QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_POWER_MODE can
+ * take.
+ * @QCA_WLAN_VENDOR_EXTERNAL_ACS_CHAN_LOW_POWER: Low power/Indoor mode
+ * @QCA_WLAN_VENDOR_EXTERNAL_ACS_CHAN_STANDARD_POWER: Standard power mode
+ * @QCA_WLAN_VENDOR_EXTERNAL_ACS_CHAN_VERY_LOW_POWER: Very low power mode
+ */
+enum qca_wlan_vendor_external_acs_chan_power_level {
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_CHAN_LOW_POWER = 0,
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_CHAN_STANDARD_POWER = 1,
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_CHAN_VERY_LOW_POWER = 2,
+};
+
+/**
+ * qca_wlan_vendor_external_acs_event_chan_power_info_attr: Represents nested
+ * attributes for power mode type and power values corresponding to that.
+ * These attributes are sent as part of
+ * QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR.
+ */
+enum qca_wlan_vendor_external_acs_event_chan_power_info_attr {
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_INVALID = 0,
+       /*
+        * Power mode (u8) takes the values defined in enum
+        * qca_wlan_vendor_external_acs_chan_power_mode
+        */
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_POWER_MODE
+                                                                       = 1,
+       /*
+        * Indicates if power value is a PSD/EIRP value (flag). If flag is
+        * present, it indicates a PSD value.
+        */
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_PSD_FLAG = 2,
+       /*
+        * Power value (u32) PSD/EIRP as indicated by
+        * QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_PSD_FLAG,
+        * for power mode corresponding to the
+        * QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_POWER_MODE.
+        * Units for PSD - dBm/MHz
+        * Units for EIRP - dBm
+        */
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_POWER_VALUE
+                                                                       = 3,
+       /* keep last */
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_LAST,
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_MAX =
+       QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_POWER_INFO_ATTR_LAST - 1,
+};
+
 /**
  * qca_wlan_vendor_attr_pcl: Represents attributes for
  * preferred channel list (PCL). These attributes are sent as part of
@@ -5930,6 +5997,10 @@ enum qca_wlan_vendor_attr_external_acs_event {
         * qca_wlan_vendor_attr_rropavail_info.
         */
        QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_EVENT_RROPAVAIL_INFO = 14,
+       /* Flag attribute to indicate if driver supports 6 GHz AFC trigger
+        * for External ACS
+        */
+       QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_EVENT_AFC_CAPABILITY = 15,
 
        /* keep last */
        QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_EVENT_LAST,