]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Introduce QCA_NL80211_VENDOR_SUBCMD_HANG
authorSunil Dutt <usdutt@qti.qualcomm.com>
Wed, 23 Aug 2017 04:35:21 +0000 (10:05 +0530)
committerJouni Malinen <j@w1.fi>
Wed, 23 Aug 2017 08:32:07 +0000 (11:32 +0300)
This is an event indicating to the user space that the driver has
detected an internal failure. The driver is expected to recover from
such a failure automatically, e.g., by resetting the device. This event
carries the information indicating the reason that triggered this
detection.

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

index 07c1a21fb3227f4f67b68dfe43a93a16da3c485a..da15e4ab4684a83f824245578073b9f945dc2f40 100644 (file)
@@ -332,6 +332,12 @@ enum qca_radiotap_vendor_ids {
  *     These scan parameters shall be reset by the driver/firmware once
  *     disconnected. The attributes used with this command are defined in
  *     enum qca_wlan_vendor_attr_active_tos.
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_HANG: Event indicating to the user space that the
+ *     driver has detected an internal failure. This event carries the
+ *     information indicating the reason that triggered this detection. The
+ *     attributes for this command are defined in
+ *     enum qca_wlan_vendor_attr_hang.
  */
 enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@@ -463,6 +469,7 @@ enum qca_nl80211_vendor_subcmds {
        QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_START = 154,
        QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_STOP = 155,
        QCA_NL80211_VENDOR_SUBCMD_ACTIVE_TOS = 156,
+       QCA_NL80211_VENDOR_SUBCMD_HANG = 157,
 };
 
 
@@ -3868,4 +3875,51 @@ enum qca_wlan_vendor_attr_active_tos {
        QCA_WLAN_VENDOR_ATTR_ACTIVE_TOS_START = 2,
 };
 
+enum qca_wlan_vendor_hang_reason {
+       /* Unspecified reason */
+       QCA_WLAN_HANG_REASON_UNSPECIFIED = 0,
+       /* No Map for the MAC entry for the received frame */
+       QCA_WLAN_HANG_RX_HASH_NO_ENTRY_FOUND = 1,
+       /* Peer deletion timeout happened */
+       QCA_WLAN_HANG_PEER_DELETION_TIMEDOUT = 2,
+       /* Peer unmap timeout */
+       QCA_WLAN_HANG_PEER_UNMAP_TIMEDOUT = 3,
+       /* Scan request timed out */
+       QCA_WLAN_HANG_SCAN_REQ_EXPIRED = 4,
+       /* Consecutive Scan attempt failures */
+       QCA_WLAN_HANG_SCAN_ATTEMPT_FAILURES = 5,
+       /* Unable to get the message buffer */
+       QCA_WLAN_HANG_GET_MSG_BUFF_FAILURE = 6,
+       /* Current command processing is timedout */
+       QCA_WLAN_HANG_ACTIVE_LIST_TIMEOUT = 7,
+       /* Timeout for an ACK from FW for suspend request */
+       QCA_WLAN_HANG_SUSPEND_TIMEOUT = 8,
+       /* Timeout for an ACK from FW for resume request */
+       QCA_WLAN_HANG_RESUME_TIMEOUT = 9,
+       /* Transmission timeout for consecutive data frames */
+       QCA_WLAN_HANG_TRANSMISSIONS_TIMEOUT = 10,
+       /* Timeout for the TX completion status of data frame */
+       QCA_WLAN_HANG_TX_COMPLETE_TIMEOUT = 11,
+       /* DXE failure for TX/RX, DXE resource unavailability */
+       QCA_WLAN_HANG_DXE_FAILURE = 12,
+       /* WMI pending commands exceed the maximum count */
+       QCA_WLAN_HANG_WMI_EXCEED_MAX_PENDING_CMDS = 13,
+};
+
+/**
+ * enum qca_wlan_vendor_attr_hang - Used by the vendor command
+ * QCA_NL80211_VENDOR_SUBCMD_HANG.
+ */
+enum qca_wlan_vendor_attr_hang {
+       QCA_WLAN_VENDOR_ATTR_HANG_INVALID = 0,
+       /* Reason for the hang - u32 attribute with a value from enum
+        * qca_wlan_vendor_hang_reason.
+        */
+       QCA_WLAN_VENDOR_ATTR_HANG_REASON = 1,
+
+       QCA_WLAN_VENDOR_ATTR_HANG_AFTER_LAST,
+       QCA_WLAN_VENDOR_ATTR_HANG_MAX =
+               QCA_WLAN_VENDOR_ATTR_HANG_AFTER_LAST - 1,
+};
+
 #endif /* QCA_VENDOR_H */