]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
QCA vendor subcommand and attributes to configure capture of CFR data
authorVisweswara Tanuku <vtanuku@codeaurora.org>
Thu, 4 Oct 2018 06:45:12 +0000 (12:15 +0530)
committerJouni Malinen <j@w1.fi>
Thu, 11 Oct 2018 09:12:30 +0000 (12:12 +0300)
Add a subcommand for Channel Frequency Response (CFG) Capture
Configuration and define attributes for configuring CFR capture
parameters per peer and enabling/disabling CFR capture.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
src/common/qca-vendor.h

index 72140f386cf3674c7c31de3ba4fe1c18c274b3d5..0f8ae2f79263dac45649654bf6321653fb72ce0d 100644 (file)
@@ -469,6 +469,11 @@ enum qca_radiotap_vendor_ids {
  *     qca_wlan_vendor_attr_roam_scan. Some drivers may not send these events
  *     in few cases, e.g., if the host processor is sleeping when this event
  *     is generated in firmware.
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG: This command is used to
+ *     configure parameters per peer to capture Channel Frequency Response
+ *     (CFR) and enable Periodic CFR capture. The attributes for this command
+ *     are defined in enum qca_wlan_vendor_peer_cfr_capture_attr.
  */
 enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@@ -630,6 +635,7 @@ enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_BSS_FILTER = 170,
        QCA_NL80211_VENDOR_SUBCMD_NAN_EXT = 171,
        QCA_NL80211_VENDOR_SUBCMD_ROAM_SCAN_EVENT = 172,
+       QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG = 173,
 };
 
 enum qca_wlan_vendor_attr {
@@ -5920,4 +5926,64 @@ enum qca_wlan_vendor_attr_roam_scan {
        QCA_WLAN_VENDOR_ATTR_ROAM_SCAN_AFTER_LAST - 1,
 };
 
+/**
+ * enum qca_wlan_vendor_cfr_method - QCA vendor CFR methods used by
+ * attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD as part of vendor
+ * command QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG.
+ */
+enum qca_wlan_vendor_cfr_method {
+       /* CFR method using QOS Null frame */
+       QCA_WLAN_VENDOR_CFR_METHOD_QOS_NULL = 0,
+};
+
+/**
+ * enum qca_wlan_vendor_peer_cfr_capture_attr - Used by the vendor command
+ * QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG to configure peer
+ * Channel Frequency Response capture parameters and enable periodic CFR
+ * capture.
+ */
+enum qca_wlan_vendor_peer_cfr_capture_attr {
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_INVALID = 0,
+       /* 6-byte MAC address of the peer.
+        * This attribute is mandatory.
+        */
+       QCA_WLAN_VENDOR_ATTR_CFR_PEER_MAC_ADDR = 1,
+       /* Enable peer CFR Capture, flag attribute.
+        * This attribute is mandatory to enable peer CFR capture.
+        * If this attribute is not present, peer CFR capture is disabled.
+        */
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE = 2,
+       /* BW of measurement, attribute uses the values in enum nl80211_chan_width
+        * Supported values: 20, 40, 80, 80+80, 160.
+        * Note that all targets may not support all bandwidths.
+        * u8 attribute. This attribute is mandatory if attribute
+        * QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
+        */
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH = 3,
+       /* Periodicity of CFR measurement in msec.
+        * Periodicity should be a multiple of Base timer.
+        * Current Base timer value supported is 10 msecs (default).
+        * 0 for one shot capture. u32 attribute.
+        * This attribute is mandatory if attribute
+        * QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
+        */
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY = 4,
+       /* Method used to capture Channel Frequency Response.
+        * Attribute uses the values defined in enum qca_wlan_vendor_cfr_method.
+        * u8 attribute. This attribute is mandatory if attribute
+        * QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
+        */
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD = 5,
+       /* Enable periodic CFR capture, flag attribute.
+        * This attribute is mandatory to enable Periodic CFR capture.
+        * If this attribute is not present, periodic CFR capture is disabled.
+        */
+       QCA_WLAN_VENDOR_ATTR_PERIODIC_CFR_CAPTURE_ENABLE = 6,
+
+       /* Keep last */
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST,
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_MAX =
+       QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST - 1,
+};
+
 #endif /* QCA_VENDOR_H */