Commit 12d11109 authored by Avinash Patil's avatar Avinash Patil Committed by Kalle Valo
Browse files

mwifiex: verbose logging for association failure messages



This patch adds more detailed information about association failures
 - reason and states.

Signed-off-by: default avatarAvinash Patil <patila@marvell.com>
Signed-off-by: default avatarCathy Luo <cluo@marvell.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 300f77c0
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -419,8 +419,12 @@ enum P2P_MODES {
#define HS_CFG_COND_MAC_EVENT		0x00000004
#define HS_CFG_COND_MULTICAST_DATA	0x00000008

#define MWIFIEX_TIMEOUT_FOR_AP_RESP		0xfffc
#define MWIFIEX_STATUS_CODE_AUTH_TIMEOUT	2
#define CONNECT_ERR_AUTH_ERR_STA_FAILURE	0xFFFB
#define CONNECT_ERR_ASSOC_ERR_TIMEOUT		0xFFFC
#define CONNECT_ERR_ASSOC_ERR_AUTH_REFUSED	0xFFFD
#define CONNECT_ERR_AUTH_MSG_UNHANDLED		0xFFFE
#define CONNECT_ERR_STA_FAILURE			0xFFFF


#define CMD_F_HOSTCMD           (1 << 0)
#define CMD_F_CANCELED          (1 << 1)
@@ -1151,6 +1155,13 @@ enum SNMP_MIB_INDEX {
	DOT11H_I = 10,
};

enum mwifiex_assocmd_failurepoint {
	MWIFIEX_ASSOC_CMD_SUCCESS = 0,
	MWIFIEX_ASSOC_CMD_FAILURE_ASSOC,
	MWIFIEX_ASSOC_CMD_FAILURE_AUTH,
	MWIFIEX_ASSOC_CMD_FAILURE_JOIN
};

#define MAX_SNMP_BUF_SIZE   128

struct host_cmd_ds_802_11_snmp_mib {
+27 −3
Original line number Diff line number Diff line
@@ -556,6 +556,23 @@ int mwifiex_cmd_802_11_associate(struct mwifiex_private *priv,
	return 0;
}

static const char *assoc_failure_reason_to_str(u16 cap_info)
{
	switch (cap_info) {
	case CONNECT_ERR_AUTH_ERR_STA_FAILURE:
		return "CONNECT_ERR_AUTH_ERR_STA_FAILURE";
	case CONNECT_ERR_AUTH_MSG_UNHANDLED:
		return "CONNECT_ERR_AUTH_MSG_UNHANDLED";
	case CONNECT_ERR_ASSOC_ERR_TIMEOUT:
		return "CONNECT_ERR_ASSOC_ERR_TIMEOUT";
	case CONNECT_ERR_ASSOC_ERR_AUTH_REFUSED:
		return "CONNECT_ERR_ASSOC_ERR_AUTH_REFUSED";
	case CONNECT_ERR_STA_FAILURE:
		return "CONNECT_ERR_STA_FAILURE";
	}

	return "Unknown connect failure";
}
/*
 * Association firmware command response handler
 *
@@ -656,11 +673,18 @@ int mwifiex_ret_802_11_associate(struct mwifiex_private *priv,
			    status_code, cap_info,
			    le16_to_cpu(assoc_rsp->a_id));

		if (cap_info == MWIFIEX_TIMEOUT_FOR_AP_RESP) {
			if (status_code == MWIFIEX_STATUS_CODE_AUTH_TIMEOUT)
		mwifiex_dbg(priv->adapter, ERROR, "assoc failure: reason %s\n",
			    assoc_failure_reason_to_str(cap_info));
		if (cap_info == CONNECT_ERR_ASSOC_ERR_TIMEOUT) {
			if (status_code == MWIFIEX_ASSOC_CMD_FAILURE_AUTH) {
				ret = WLAN_STATUS_AUTH_TIMEOUT;
			else
				mwifiex_dbg(priv->adapter, ERROR,
					    "ASSOC_RESP: AUTH timeout\n");
			} else {
				ret = WLAN_STATUS_UNSPECIFIED_FAILURE;
				mwifiex_dbg(priv->adapter, ERROR,
					    "ASSOC_RESP: UNSPECIFIED failure\n");
			}
		} else {
			ret = status_code;
		}