Add 802.11 status code strings
Logs involving IEEE 802.11 Status Codes output the Status Code value, but do not provide any explanation of what the value means. This change provides a terse explanation of each status code using the latter part of the Status Code #define names. Signed-off-by: Alex Khouderchah <akhouderchah@chromium.org>
This commit is contained in:
parent
4be17ffbd9
commit
9c95124418
4 changed files with 122 additions and 10 deletions
|
@ -1038,8 +1038,8 @@ static void handle_auth_sae(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
|
|
||||||
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
||||||
HOSTAPD_LEVEL_DEBUG,
|
HOSTAPD_LEVEL_DEBUG,
|
||||||
"start SAE authentication (RX commit, status=%u)",
|
"start SAE authentication (RX commit, status=%u (%s))",
|
||||||
status_code);
|
status_code, status2str(status_code));
|
||||||
|
|
||||||
if ((hapd->conf->mesh & MESH_ENABLED) &&
|
if ((hapd->conf->mesh & MESH_ENABLED) &&
|
||||||
status_code == WLAN_STATUS_ANTI_CLOGGING_TOKEN_REQ &&
|
status_code == WLAN_STATUS_ANTI_CLOGGING_TOKEN_REQ &&
|
||||||
|
@ -1182,8 +1182,8 @@ static void handle_auth_sae(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
} else if (auth_transaction == 2) {
|
} else if (auth_transaction == 2) {
|
||||||
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
||||||
HOSTAPD_LEVEL_DEBUG,
|
HOSTAPD_LEVEL_DEBUG,
|
||||||
"SAE authentication (RX confirm, status=%u)",
|
"SAE authentication (RX confirm, status=%u (%s))",
|
||||||
status_code);
|
status_code, status2str(status_code));
|
||||||
if (status_code != WLAN_STATUS_SUCCESS)
|
if (status_code != WLAN_STATUS_SUCCESS)
|
||||||
goto remove_sta;
|
goto remove_sta;
|
||||||
if (sta->sae->state >= SAE_CONFIRMED ||
|
if (sta->sae->state >= SAE_CONFIRMED ||
|
||||||
|
@ -1224,8 +1224,9 @@ static void handle_auth_sae(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
} else {
|
} else {
|
||||||
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
||||||
HOSTAPD_LEVEL_DEBUG,
|
HOSTAPD_LEVEL_DEBUG,
|
||||||
"unexpected SAE authentication transaction %u (status=%u)",
|
"unexpected SAE authentication transaction %u (status=%u (%s))",
|
||||||
auth_transaction, status_code);
|
auth_transaction, status_code,
|
||||||
|
status2str(status_code));
|
||||||
if (status_code != WLAN_STATUS_SUCCESS)
|
if (status_code != WLAN_STATUS_SUCCESS)
|
||||||
goto remove_sta;
|
goto remove_sta;
|
||||||
resp = WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION;
|
resp = WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION;
|
||||||
|
|
|
@ -3090,8 +3090,9 @@ void wpa_ft_process_auth(struct wpa_state_machine *sm, const u8 *bssid,
|
||||||
status = res;
|
status = res;
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "FT: FT authentication response: dst=" MACSTR
|
wpa_printf(MSG_DEBUG, "FT: FT authentication response: dst=" MACSTR
|
||||||
" auth_transaction=%d status=%d",
|
" auth_transaction=%d status=%u (%s)",
|
||||||
MAC2STR(sm->addr), auth_transaction + 1, status);
|
MAC2STR(sm->addr), auth_transaction + 1, status,
|
||||||
|
status2str(status));
|
||||||
wpa_hexdump(MSG_DEBUG, "FT: Response IEs", resp_ies, resp_ies_len);
|
wpa_hexdump(MSG_DEBUG, "FT: Response IEs", resp_ies, resp_ies_len);
|
||||||
cb(ctx, sm->addr, bssid, auth_transaction + 1, status,
|
cb(ctx, sm->addr, bssid, auth_transaction + 1, status,
|
||||||
resp_ies, resp_ies_len);
|
resp_ies, resp_ies_len);
|
||||||
|
@ -3449,8 +3450,9 @@ static int wpa_ft_send_rrb_auth_resp(struct wpa_state_machine *sm,
|
||||||
u8 *pos;
|
u8 *pos;
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "FT: RRB authentication response: STA=" MACSTR
|
wpa_printf(MSG_DEBUG, "FT: RRB authentication response: STA=" MACSTR
|
||||||
" CurrentAP=" MACSTR " status=%d",
|
" CurrentAP=" MACSTR " status=%u (%s)",
|
||||||
MAC2STR(sm->addr), MAC2STR(current_ap), status);
|
MAC2STR(sm->addr), MAC2STR(current_ap), status,
|
||||||
|
status2str(status));
|
||||||
wpa_hexdump(MSG_DEBUG, "FT: Response IEs", resp_ies, resp_ies_len);
|
wpa_hexdump(MSG_DEBUG, "FT: Response IEs", resp_ies, resp_ies_len);
|
||||||
|
|
||||||
/* RRB - Forward action frame response to the Current AP */
|
/* RRB - Forward action frame response to the Current AP */
|
||||||
|
|
|
@ -1386,6 +1386,114 @@ const char * reason2str(u16 reason)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char * status2str(u16 status)
|
||||||
|
{
|
||||||
|
#define S2S(s) case WLAN_STATUS_ ## s: return #s;
|
||||||
|
switch (status) {
|
||||||
|
S2S(SUCCESS)
|
||||||
|
S2S(UNSPECIFIED_FAILURE)
|
||||||
|
S2S(TDLS_WAKEUP_ALTERNATE)
|
||||||
|
S2S(TDLS_WAKEUP_REJECT)
|
||||||
|
S2S(SECURITY_DISABLED)
|
||||||
|
S2S(UNACCEPTABLE_LIFETIME)
|
||||||
|
S2S(NOT_IN_SAME_BSS)
|
||||||
|
S2S(CAPS_UNSUPPORTED)
|
||||||
|
S2S(REASSOC_NO_ASSOC)
|
||||||
|
S2S(ASSOC_DENIED_UNSPEC)
|
||||||
|
S2S(NOT_SUPPORTED_AUTH_ALG)
|
||||||
|
S2S(UNKNOWN_AUTH_TRANSACTION)
|
||||||
|
S2S(CHALLENGE_FAIL)
|
||||||
|
S2S(AUTH_TIMEOUT)
|
||||||
|
S2S(AP_UNABLE_TO_HANDLE_NEW_STA)
|
||||||
|
S2S(ASSOC_DENIED_RATES)
|
||||||
|
S2S(ASSOC_DENIED_NOSHORT)
|
||||||
|
S2S(SPEC_MGMT_REQUIRED)
|
||||||
|
S2S(PWR_CAPABILITY_NOT_VALID)
|
||||||
|
S2S(SUPPORTED_CHANNEL_NOT_VALID)
|
||||||
|
S2S(ASSOC_DENIED_NO_SHORT_SLOT_TIME)
|
||||||
|
S2S(ASSOC_DENIED_NO_HT)
|
||||||
|
S2S(R0KH_UNREACHABLE)
|
||||||
|
S2S(ASSOC_DENIED_NO_PCO)
|
||||||
|
S2S(ASSOC_REJECTED_TEMPORARILY)
|
||||||
|
S2S(ROBUST_MGMT_FRAME_POLICY_VIOLATION)
|
||||||
|
S2S(UNSPECIFIED_QOS_FAILURE)
|
||||||
|
S2S(DENIED_INSUFFICIENT_BANDWIDTH)
|
||||||
|
S2S(DENIED_POOR_CHANNEL_CONDITIONS)
|
||||||
|
S2S(DENIED_QOS_NOT_SUPPORTED)
|
||||||
|
S2S(REQUEST_DECLINED)
|
||||||
|
S2S(INVALID_PARAMETERS)
|
||||||
|
S2S(REJECTED_WITH_SUGGESTED_CHANGES)
|
||||||
|
S2S(INVALID_IE)
|
||||||
|
S2S(GROUP_CIPHER_NOT_VALID)
|
||||||
|
S2S(PAIRWISE_CIPHER_NOT_VALID)
|
||||||
|
S2S(AKMP_NOT_VALID)
|
||||||
|
S2S(UNSUPPORTED_RSN_IE_VERSION)
|
||||||
|
S2S(INVALID_RSN_IE_CAPAB)
|
||||||
|
S2S(CIPHER_REJECTED_PER_POLICY)
|
||||||
|
S2S(TS_NOT_CREATED)
|
||||||
|
S2S(DIRECT_LINK_NOT_ALLOWED)
|
||||||
|
S2S(DEST_STA_NOT_PRESENT)
|
||||||
|
S2S(DEST_STA_NOT_QOS_STA)
|
||||||
|
S2S(ASSOC_DENIED_LISTEN_INT_TOO_LARGE)
|
||||||
|
S2S(INVALID_FT_ACTION_FRAME_COUNT)
|
||||||
|
S2S(INVALID_PMKID)
|
||||||
|
S2S(INVALID_MDIE)
|
||||||
|
S2S(INVALID_FTIE)
|
||||||
|
S2S(REQUESTED_TCLAS_NOT_SUPPORTED)
|
||||||
|
S2S(INSUFFICIENT_TCLAS_PROCESSING_RESOURCES)
|
||||||
|
S2S(TRY_ANOTHER_BSS)
|
||||||
|
S2S(GAS_ADV_PROTO_NOT_SUPPORTED)
|
||||||
|
S2S(NO_OUTSTANDING_GAS_REQ)
|
||||||
|
S2S(GAS_RESP_NOT_RECEIVED)
|
||||||
|
S2S(STA_TIMED_OUT_WAITING_FOR_GAS_RESP)
|
||||||
|
S2S(GAS_RESP_LARGER_THAN_LIMIT)
|
||||||
|
S2S(REQ_REFUSED_HOME)
|
||||||
|
S2S(ADV_SRV_UNREACHABLE)
|
||||||
|
S2S(REQ_REFUSED_SSPN)
|
||||||
|
S2S(REQ_REFUSED_UNAUTH_ACCESS)
|
||||||
|
S2S(INVALID_RSNIE)
|
||||||
|
S2S(U_APSD_COEX_NOT_SUPPORTED)
|
||||||
|
S2S(U_APSD_COEX_MODE_NOT_SUPPORTED)
|
||||||
|
S2S(BAD_INTERVAL_WITH_U_APSD_COEX)
|
||||||
|
S2S(ANTI_CLOGGING_TOKEN_REQ)
|
||||||
|
S2S(FINITE_CYCLIC_GROUP_NOT_SUPPORTED)
|
||||||
|
S2S(CANNOT_FIND_ALT_TBTT)
|
||||||
|
S2S(TRANSMISSION_FAILURE)
|
||||||
|
S2S(REQ_TCLAS_NOT_SUPPORTED)
|
||||||
|
S2S(TCLAS_RESOURCES_EXCHAUSTED)
|
||||||
|
S2S(REJECTED_WITH_SUGGESTED_BSS_TRANSITION)
|
||||||
|
S2S(REJECT_WITH_SCHEDULE)
|
||||||
|
S2S(REJECT_NO_WAKEUP_SPECIFIED)
|
||||||
|
S2S(SUCCESS_POWER_SAVE_MODE)
|
||||||
|
S2S(PENDING_ADMITTING_FST_SESSION)
|
||||||
|
S2S(PERFORMING_FST_NOW)
|
||||||
|
S2S(PENDING_GAP_IN_BA_WINDOW)
|
||||||
|
S2S(REJECT_U_PID_SETTING)
|
||||||
|
S2S(REFUSED_EXTERNAL_REASON)
|
||||||
|
S2S(REFUSED_AP_OUT_OF_MEMORY)
|
||||||
|
S2S(REJECTED_EMERGENCY_SERVICE_NOT_SUPPORTED)
|
||||||
|
S2S(QUERY_RESP_OUTSTANDING)
|
||||||
|
S2S(REJECT_DSE_BAND)
|
||||||
|
S2S(TCLAS_PROCESSING_TERMINATED)
|
||||||
|
S2S(TS_SCHEDULE_CONFLICT)
|
||||||
|
S2S(DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL)
|
||||||
|
S2S(MCCAOP_RESERVATION_CONFLICT)
|
||||||
|
S2S(MAF_LIMIT_EXCEEDED)
|
||||||
|
S2S(MCCA_TRACK_LIMIT_EXCEEDED)
|
||||||
|
S2S(DENIED_DUE_TO_SPECTRUM_MANAGEMENT)
|
||||||
|
S2S(ASSOC_DENIED_NO_VHT)
|
||||||
|
S2S(ENABLEMENT_DENIED)
|
||||||
|
S2S(RESTRICTION_FROM_AUTHORIZED_GDB)
|
||||||
|
S2S(AUTHORIZATION_DEENABLED)
|
||||||
|
S2S(FILS_AUTHENTICATION_FAILURE)
|
||||||
|
S2S(UNKNOWN_AUTHENTICATION_SERVER)
|
||||||
|
S2S(UNKNOWN_PASSWORD_IDENTIFIER)
|
||||||
|
}
|
||||||
|
return "UNKNOWN";
|
||||||
|
#undef S2S
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int mb_ies_info_by_ies(struct mb_ies_info *info, const u8 *ies_buf,
|
int mb_ies_info_by_ies(struct mb_ies_info *info, const u8 *ies_buf,
|
||||||
size_t ies_len)
|
size_t ies_len)
|
||||||
{
|
{
|
||||||
|
|
|
@ -186,6 +186,7 @@ struct wpabuf * mb_ies_by_info(struct mb_ies_info *info);
|
||||||
|
|
||||||
const char * fc2str(u16 fc);
|
const char * fc2str(u16 fc);
|
||||||
const char * reason2str(u16 reason);
|
const char * reason2str(u16 reason);
|
||||||
|
const char * status2str(u16 status);
|
||||||
|
|
||||||
struct oper_class_map {
|
struct oper_class_map {
|
||||||
enum hostapd_hw_mode mode;
|
enum hostapd_hw_mode mode;
|
||||||
|
|
Loading…
Reference in a new issue