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:
Abhishek Ambure
2020-10-15 17:03:40 +05:30
committet von snandini
Ursprung c5798d9910
Commit 58c169c64c
4 geänderte Dateien mit 82 neuen und 7 gelöschten Zeilen

Datei anzeigen

@@ -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.

Datei anzeigen

@@ -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 */

Datei anzeigen

@@ -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

Datei anzeigen

@@ -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