Add new attributes in get_sta_info QCA vendor command
Add additional attributes for the QCA vendor command QCA_NL80211_VENDOR_SUBCMD_GET_STA_INFO to get finer details on roaming behavior, TSF out of sync count, and the latest TX rate, Rate Index used for the transmission. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
8f204f69ac
commit
98a52b09ca
1 changed files with 173 additions and 0 deletions
|
@ -4243,6 +4243,139 @@ enum qca_vendor_roam_triggers {
|
|||
QCA_ROAM_TRIGGER_REASON_EXTERNAL_SCAN = 1 << 12,
|
||||
};
|
||||
|
||||
/*
|
||||
* enum qca_vendor_roam_fail_reasons: Defines the various roam
|
||||
* fail reasons. This enum value is used in
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_FAIL_REASON attribute.
|
||||
*
|
||||
* @QCA_ROAM_FAIL_REASON_SCAN_NOT_ALLOWED: Roam module in the firmware is not
|
||||
* able to trigger the scan.
|
||||
* @QCA_ROAM_FAIL_REASON_NO_AP_FOUND: No roamable APs found during roam scan.
|
||||
* @QCA_ROAM_FAIL_REASON_NO_CAND_AP_FOUND: No candidate APs found during roam
|
||||
* scan.
|
||||
* @QCA_ROAM_FAIL_REASON_HOST: Roam fail due to disconnect issued from host.
|
||||
* @QCA_ROAM_FAIL_REASON_AUTH_SEND: Unable to send Authentication frame.
|
||||
* @QCA_ROAM_FAIL_REASON_AUTH_RECV: Received Authentication frame with error
|
||||
* status code.
|
||||
* @QCA_ROAM_FAIL_REASON_NO_AUTH_RESP: Authentication frame not received.
|
||||
* @QCA_ROAM_FAIL_REASON_REASSOC_SEND: Unable to send Reassociation Request
|
||||
* frame.
|
||||
* @QCA_ROAM_FAIL_REASON_REASSOC_RECV: Received Reassociation Response frame
|
||||
* with error status code.
|
||||
* @QCA_ROAM_FAIL_REASON_NO_REASSOC_RESP: Reassociation Response frame not
|
||||
* received.
|
||||
* @QCA_ROAM_FAIL_REASON_SCAN_FAIL: Scan module not able to start scan.
|
||||
* @QCA_ROAM_FAIL_REASON_AUTH_NO_ACK: No ACK is received for Authentication
|
||||
* frame.
|
||||
* @QCA_ROAM_FAIL_REASON_AUTH_INTERNAL_DROP: Authentication frame is dropped
|
||||
* internally before transmission.
|
||||
* @QCA_ROAM_FAIL_REASON_REASSOC_NO_ACK: No ACK is received for Reassociation
|
||||
* Request frame.
|
||||
* @QCA_ROAM_FAIL_REASON_REASSOC_INTERNAL_DROP: Reassociation Request frame is
|
||||
* dropped internally.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M1_TIMEOUT: EAPOL-Key M1 is not received and
|
||||
* times out.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M2_SEND: Unable to send EAPOL-Key M2 frame.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M2_INTERNAL_DROP: EAPOL-Key M2 frame dropped
|
||||
* internally.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M2_NO_ACK: No ACK is received for EAPOL-Key
|
||||
* M2 frame.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M3_TIMEOUT: EAPOL-Key M3 frame is not received.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M4_SEND: Unable to send EAPOL-Key M4 frame.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M4_INTERNAL_DROP: EAPOL-Key M4 frame dropped
|
||||
* internally.
|
||||
* @QCA_ROAM_FAIL_REASON_EAPOL_M4_NO_ACK: No ACK is received for EAPOL-Key M4
|
||||
* frame.
|
||||
* @QCA_ROAM_FAIL_REASON_NO_SCAN_FOR_FINAL_BEACON_MISS: Roam scan is not
|
||||
* started for final beacon miss case.
|
||||
* @QCA_ROAM_FAIL_REASON_DISCONNECT: Deauthentication or Disassociation frame
|
||||
* received from the AP during roaming handoff.
|
||||
* @QCA_ROAM_FAIL_REASON_RESUME_ABORT: Firmware roams to the AP when the Apps
|
||||
* or host is suspended and gives the indication of the last roamed AP only
|
||||
* when the Apps is resumed. If the Apps is resumed while the roaming is in
|
||||
* progress, this ongoing roaming is aborted and the last roamed AP is
|
||||
* indicated to host.
|
||||
* @QCA_ROAM_FAIL_REASON_SAE_INVALID_PMKID: WPA3-SAE invalid PMKID.
|
||||
* @QCA_ROAM_FAIL_REASON_SAE_PREAUTH_TIMEOUT: WPA3-SAE pre-authentication times
|
||||
* out.
|
||||
* @QCA_ROAM_FAIL_REASON_SAE_PREAUTH_FAIL: WPA3-SAE pre-authentication fails.
|
||||
*/
|
||||
enum qca_vendor_roam_fail_reasons {
|
||||
QCA_ROAM_FAIL_REASON_NONE = 0,
|
||||
QCA_ROAM_FAIL_REASON_SCAN_NOT_ALLOWED = 1,
|
||||
QCA_ROAM_FAIL_REASON_NO_AP_FOUND = 2,
|
||||
QCA_ROAM_FAIL_REASON_NO_CAND_AP_FOUND = 3,
|
||||
QCA_ROAM_FAIL_REASON_HOST = 4,
|
||||
QCA_ROAM_FAIL_REASON_AUTH_SEND = 5,
|
||||
QCA_ROAM_FAIL_REASON_AUTH_RECV = 6,
|
||||
QCA_ROAM_FAIL_REASON_NO_AUTH_RESP = 7,
|
||||
QCA_ROAM_FAIL_REASON_REASSOC_SEND = 8,
|
||||
QCA_ROAM_FAIL_REASON_REASSOC_RECV = 9,
|
||||
QCA_ROAM_FAIL_REASON_NO_REASSOC_RESP = 10,
|
||||
QCA_ROAM_FAIL_REASON_SCAN_FAIL = 11,
|
||||
QCA_ROAM_FAIL_REASON_AUTH_NO_ACK = 12,
|
||||
QCA_ROAM_FAIL_REASON_AUTH_INTERNAL_DROP = 13,
|
||||
QCA_ROAM_FAIL_REASON_REASSOC_NO_ACK = 14,
|
||||
QCA_ROAM_FAIL_REASON_REASSOC_INTERNAL_DROP = 15,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M1_TIMEOUT = 16,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M2_SEND = 17,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M2_INTERNAL_DROP = 18,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M2_NO_ACK = 19,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M3_TIMEOUT = 20,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M4_SEND = 21,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M4_INTERNAL_DROP = 22,
|
||||
QCA_ROAM_FAIL_REASON_EAPOL_M4_NO_ACK = 23,
|
||||
QCA_ROAM_FAIL_REASON_NO_SCAN_FOR_FINAL_BEACON_MISS = 24,
|
||||
QCA_ROAM_FAIL_REASON_DISCONNECT = 25,
|
||||
QCA_ROAM_FAIL_REASON_RESUME_ABORT = 26,
|
||||
QCA_ROAM_FAIL_REASON_SAE_INVALID_PMKID = 27,
|
||||
QCA_ROAM_FAIL_REASON_SAE_PREAUTH_TIMEOUT = 28,
|
||||
QCA_ROAM_FAIL_REASON_SAE_PREAUTH_FAIL = 29,
|
||||
};
|
||||
|
||||
/*
|
||||
* enum qca_vendor_roam_invoke_fail_reasons: Defines the various roam
|
||||
* invoke fail reasons. This enum value is used in
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_INVOKE_FAIL_REASON attribute.
|
||||
*
|
||||
* @QCA_ROAM_INVOKE_STATUS_IFACE_INVALID: Invalid interface ID is passed
|
||||
* in roam invoke command.
|
||||
* @QCA_ROAM_INVOKE_STATUS_OFFLOAD_DISABLE: Roam offload in firmware is not
|
||||
* enabled.
|
||||
* @QCA_ROAM_INVOKE_STATUS_AP_SSID_LENGTH_INVALID: Connected AP profile SSID
|
||||
* length is invalid.
|
||||
* @QCA_ROAM_INVOKE_STATUS_ROAM_DISALLOW: Firmware internal roaming is already
|
||||
* in progress.
|
||||
* @QCA_ROAM_INVOKE_STATUS_NON_ROAMABLE_AP: Host sends the Beacon/Probe Response
|
||||
* of the AP in the roam invoke command to firmware. This reason is sent by the
|
||||
* firmware when the given AP is configured to be ignored or SSID/security
|
||||
* does not match.
|
||||
* @QCA_ROAM_INVOKE_STATUS_ROAM_INTERNAL_FAIL: Roam handoff failed because of
|
||||
* firmware internal reasons.
|
||||
* @QCA_ROAM_INVOKE_STATUS_DISALLOW: Roam invoke trigger is not enabled.
|
||||
* @QCA_ROAM_INVOKE_STATUS_SCAN_FAIL: Scan start fail for roam invoke.
|
||||
* @QCA_ROAM_INVOKE_STATUS_START_ROAM_FAIL: Roam handoff start fail.
|
||||
* @QCA_ROAM_INVOKE_STATUS_INVALID_PARAMS: Roam invoke parameters are invalid.
|
||||
* @QCA_ROAM_INVOKE_STATUS_NO_CAND_AP: No candidate AP found to roam to.
|
||||
* @QCA_ROAM_INVOKE_STATUS_ROAM_FAIL: Roam handoff failed.
|
||||
*/
|
||||
enum qca_vendor_roam_invoke_fail_reasons {
|
||||
QCA_ROAM_INVOKE_STATUS_NONE = 0,
|
||||
QCA_ROAM_INVOKE_STATUS_IFACE_INVALID = 1,
|
||||
QCA_ROAM_INVOKE_STATUS_OFFLOAD_DISABLE = 2,
|
||||
QCA_ROAM_INVOKE_STATUS_AP_SSID_LENGTH_INVALID = 3,
|
||||
QCA_ROAM_INVOKE_STATUS_ROAM_DISALLOW = 4,
|
||||
QCA_ROAM_INVOKE_STATUS_NON_ROAMABLE_AP = 5,
|
||||
QCA_ROAM_INVOKE_STATUS_ROAM_INTERNAL_FAIL = 6,
|
||||
QCA_ROAM_INVOKE_STATUS_DISALLOW = 7,
|
||||
QCA_ROAM_INVOKE_STATUS_SCAN_FAIL = 8,
|
||||
QCA_ROAM_INVOKE_STATUS_START_ROAM_FAIL = 9,
|
||||
QCA_ROAM_INVOKE_STATUS_INVALID_PARAMS = 10,
|
||||
QCA_ROAM_INVOKE_STATUS_NO_CAND_AP = 11,
|
||||
QCA_ROAM_INVOKE_STATUS_ROAM_FAIL = 12,
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_vendor_attr_roam_candidate_selection_criteria:
|
||||
*
|
||||
|
@ -9942,6 +10075,40 @@ enum qca_vendor_wlan_sta_guard_interval {
|
|||
* include this attribute in response to the
|
||||
* QCA_NL80211_VENDOR_SUBCMD_GET_STA_INFO command if there is no connection
|
||||
* failure observed in the last attempted connection.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_LATEST_TX_RATE: u32, latest TX rate (Kbps)
|
||||
* used by the station in its last TX frame while communicating to the AP in the
|
||||
* connected state. When queried in the disconnected state, this represents the
|
||||
* rate used by the STA in the last TX frame to the AP when it was connected.
|
||||
* This attribute is used for STA mode only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_LATEST_RIX: u32, used in STA mode only.
|
||||
* This represents the rate index used by the STA for the last TX frame to the
|
||||
* AP. When queried in the disconnected state, this gives the last RIX used by
|
||||
* the STA in the last TX frame to the AP when it was connected.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_TSF_OUT_OF_SYNC_COUNT: u32, used in STA
|
||||
* mode only. This represents the number of times the STA TSF goes out of sync
|
||||
* from the AP after the connection. If queried in the disconnected state, this
|
||||
* gives the count of TSF out of sync for the last connection.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_TRIGGER_REASON: u32, used in STA
|
||||
* mode only. This represents the roam trigger reason for the last roaming
|
||||
* attempted by the firmware. This can be queried either in connected state or
|
||||
* disconnected state. Each bit of this attribute represents the different
|
||||
* roam trigger reason code which are defined in enum qca_vendor_roam_triggers.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_FAIL_REASON: u32, used in STA mode
|
||||
* only. This represents the roam fail reason for the last failed roaming
|
||||
* attempt by the firmware. Different roam failure reason codes are specified
|
||||
* in enum qca_vendor_roam_fail_reasons. This can be queried either in
|
||||
* connected state or disconnected state.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_INVOKE_FAIL_REASON: u32, used in
|
||||
* STA mode only. This represents the roam invoke fail reason for the last
|
||||
* failed roam invoke. Different roam invoke failure reason codes
|
||||
* are specified in enum qca_vendor_roam_invoke_fail_reasons. This can be
|
||||
* queried either in connected state or disconnected state.
|
||||
*/
|
||||
enum qca_wlan_vendor_attr_get_sta_info {
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_INVALID = 0,
|
||||
|
@ -9988,6 +10155,12 @@ enum qca_wlan_vendor_attr_get_sta_info {
|
|||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_BEACON_MIC_ERROR_COUNT = 41,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_BEACON_REPLAY_COUNT = 42,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_CONNECT_FAIL_REASON_CODE = 43,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_LATEST_TX_RATE = 44,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_LATEST_RIX = 45,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_TSF_OUT_OF_SYNC_COUNT = 46,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_TRIGGER_REASON = 47,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_FAIL_REASON = 48,
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_ROAM_INVOKE_FAIL_REASON = 49,
|
||||
|
||||
/* keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_GET_STA_INFO_AFTER_LAST,
|
||||
|
|
Loading…
Reference in a new issue