qcacmn: Add proprietary status codes for disconnection
Host adds internal status code in enum wlan_status_code. Change-Id: I17cdcee9f0df1e34cc13425a4f06985a418d5a8a CRs-Fixed: 2799197
Dieser Commit ist enthalten in:

committet von
snandini

Ursprung
c5798d9910
Commit
58c169c64c
@@ -31,7 +31,19 @@
|
||||
#include <cdp_txrx_mob_def.h>
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
/**
|
||||
* osif_cm_mac_to_qca_connect_fail_reason() - Convert to qca internal connect
|
||||
* fail reason
|
||||
* @internal_reason: Mac reason code of type @wlan_status_code
|
||||
*
|
||||
* Check if it is internal status code and convert it to the
|
||||
* enum qca_sta_connect_fail_reason_codes.
|
||||
*
|
||||
* Return: Reason code of type enum qca_sta_connect_fail_reason_codes
|
||||
*/
|
||||
enum qca_sta_connect_fail_reason_codes
|
||||
osif_cm_mac_to_qca_connect_fail_reason(enum wlan_status_code internal_reason);
|
||||
|
||||
/**
|
||||
* osif_cm_qca_reason_to_str() - return string conversion of qca reason code
|
||||
* @reason: enum qca_disconnect_reason_codes
|
||||
@@ -56,6 +68,7 @@ osif_cm_qca_reason_to_str(enum qca_disconnect_reason_codes reason);
|
||||
enum qca_disconnect_reason_codes
|
||||
osif_cm_mac_to_qca_reason(enum wlan_reason_code internal_reason);
|
||||
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
/**
|
||||
* osif_cm_register_cb() - API to register connection manager
|
||||
* callbacks.
|
||||
|
@@ -24,6 +24,7 @@
|
||||
#ifndef __OSIF_CM_RSP_H
|
||||
#define __OSIF_CM_RSP_H
|
||||
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
#include "wlan_objmgr_vdev_obj.h"
|
||||
#include "wlan_cm_public_struct.h"
|
||||
|
||||
@@ -71,4 +72,5 @@ QDF_STATUS osif_connect_handler(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS osif_failed_candidate_handler(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_cm_connect_rsp *rsp);
|
||||
|
||||
#endif /* FEATURE_CM_ENABLE */
|
||||
#endif /* __OSIF_CM_RSP_H */
|
||||
|
@@ -27,7 +27,43 @@
|
||||
#include "osif_cm_rsp.h"
|
||||
#include "wlan_cfg80211_scan.h"
|
||||
|
||||
static struct osif_cm_ops *osif_cm_legacy_ops;
|
||||
enum qca_sta_connect_fail_reason_codes
|
||||
osif_cm_mac_to_qca_connect_fail_reason(enum wlan_status_code internal_reason)
|
||||
{
|
||||
enum qca_sta_connect_fail_reason_codes reason = 0;
|
||||
|
||||
if (internal_reason < STATUS_PROP_START)
|
||||
return reason;
|
||||
|
||||
switch (internal_reason) {
|
||||
case STATUS_NO_NETWORK_FOUND:
|
||||
reason = QCA_STA_CONNECT_FAIL_REASON_NO_BSS_FOUND;
|
||||
break;
|
||||
case STATUS_AUTH_TX_FAIL:
|
||||
reason = QCA_STA_CONNECT_FAIL_REASON_AUTH_TX_FAIL;
|
||||
break;
|
||||
case STATUS_AUTH_NO_ACK_RECEIVED:
|
||||
reason = QCA_STA_CONNECT_FAIL_REASON_AUTH_NO_ACK_RECEIVED;
|
||||
break;
|
||||
case STATUS_AUTH_NO_RESP_RECEIVED:
|
||||
reason = QCA_STA_CONNECT_FAIL_REASON_AUTH_NO_RESP_RECEIVED;
|
||||
break;
|
||||
case STATUS_ASSOC_TX_FAIL:
|
||||
reason = QCA_STA_CONNECT_FAIL_REASON_ASSOC_REQ_TX_FAIL;
|
||||
break;
|
||||
case STATUS_ASSOC_NO_ACK_RECEIVED:
|
||||
reason = QCA_STA_CONNECT_FAIL_REASON_ASSOC_NO_ACK_RECEIVED;
|
||||
break;
|
||||
case STATUS_ASSOC_NO_RESP_RECEIVED:
|
||||
reason = QCA_STA_CONNECT_FAIL_REASON_ASSOC_NO_RESP_RECEIVED;
|
||||
break;
|
||||
default:
|
||||
osif_debug("QCA code not present for internal status code %d",
|
||||
internal_reason);
|
||||
}
|
||||
|
||||
return reason;
|
||||
}
|
||||
|
||||
const char *
|
||||
osif_cm_qca_reason_to_str(enum qca_disconnect_reason_codes reason)
|
||||
@@ -67,9 +103,10 @@ osif_cm_mac_to_qca_reason(enum wlan_reason_code internal_reason)
|
||||
|
||||
switch (internal_reason) {
|
||||
case REASON_HOST_TRIGGERED_ROAM_FAILURE:
|
||||
case REASON_FW_TRIGGERED_ROAM_FAILURE:
|
||||
reason = QCA_DISCONNECT_REASON_INTERNAL_ROAM_FAILURE;
|
||||
break;
|
||||
case REASON_FW_TRIGGERED_ROAM_FAILURE:
|
||||
case REASON_USER_TRIGGERED_ROAM_FAILURE:
|
||||
reason = QCA_DISCONNECT_REASON_EXTERNAL_ROAM_FAILURE;
|
||||
break;
|
||||
case REASON_GATEWAY_REACHABILITY_FAILURE:
|
||||
@@ -114,9 +151,6 @@ osif_cm_mac_to_qca_reason(enum wlan_reason_code internal_reason)
|
||||
case REASON_BEACON_MISSED:
|
||||
reason = QCA_DISCONNECT_REASON_BEACON_MISS_FAILURE;
|
||||
break;
|
||||
case REASON_USER_TRIGGERED_ROAM_FAILURE:
|
||||
reason = QCA_DISCONNECT_REASON_USER_TRIGGERED;
|
||||
break;
|
||||
default:
|
||||
osif_debug("No QCA reason code for mac reason: %u",
|
||||
internal_reason);
|
||||
@@ -126,6 +160,9 @@ osif_cm_mac_to_qca_reason(enum wlan_reason_code internal_reason)
|
||||
return reason;
|
||||
}
|
||||
|
||||
#ifdef FEATURE_CM_ENABLE
|
||||
static struct osif_cm_ops *osif_cm_legacy_ops;
|
||||
|
||||
void osif_cm_reset_id_and_src_no_lock(struct vdev_osif_priv *osif_priv)
|
||||
{
|
||||
osif_priv->cm_info.last_id = CM_ID_INVALID;
|
||||
@@ -401,4 +438,4 @@ void osif_cm_reset_legacy_cb(void)
|
||||
{
|
||||
osif_cm_legacy_ops = NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -746,6 +746,19 @@ enum wlan_reason_code {
|
||||
* listen interval is too large.
|
||||
* @STATUS_INVALID_FT_ACTION_FRAME_COUNT: Invalid FT Action frame count.
|
||||
* @STATUS_INVALID_PMKID: Invalid pairwise master key identifier (PMKID).
|
||||
*
|
||||
* Internal status codes: Add any internal status code just after
|
||||
* STATUS_PROP_START and decrease the value of STATUS_PROP_START
|
||||
* accordingly.
|
||||
*
|
||||
* @STATUS_PROP_START: Start of prop status codes.
|
||||
* @STATUS_NO_NETWORK_FOUND: No network found
|
||||
* @STATUS_AUTH_TX_FAIL: Failed to sent AUTH on air
|
||||
* @STATUS_AUTH_NO_ACK_RECEIVED: No ack received for Auth tx
|
||||
* @STATUS_AUTH_NO_RESP_RECEIVED: No Auth response for Auth tx
|
||||
* @STATUS_ASSOC_TX_FAIL: Failed to sent Assoc on air
|
||||
* @STATUS_ASSOC_NO_ACK_RECEIVED: No ack received for Assoc tx
|
||||
* @STATUS_ASSOC_NO_RESP_RECEIVED: No Assoc response for Assoc tx
|
||||
*/
|
||||
enum wlan_status_code {
|
||||
STATUS_SUCCESS = 0,
|
||||
@@ -794,6 +807,16 @@ enum wlan_status_code {
|
||||
STATUS_ASSOC_DENIED_LISTEN_INT_TOO_LARGE = 51,
|
||||
STATUS_INVALID_FT_ACTION_FRAME_COUNT = 52,
|
||||
STATUS_INVALID_PMKID = 53,
|
||||
|
||||
/* Error STATUS code for intenal usage*/
|
||||
STATUS_PROP_START = 65528,
|
||||
STATUS_NO_NETWORK_FOUND = 65528,
|
||||
STATUS_AUTH_TX_FAIL = 65529,
|
||||
STATUS_AUTH_NO_ACK_RECEIVED = 65530,
|
||||
STATUS_AUTH_NO_RESP_RECEIVED = 65531,
|
||||
STATUS_ASSOC_TX_FAIL = 65532,
|
||||
STATUS_ASSOC_NO_ACK_RECEIVED = 65533,
|
||||
STATUS_ASSOC_NO_RESP_RECEIVED = 65534,
|
||||
};
|
||||
|
||||
#define WLAN_OUI_SIZE 4
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren