// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.wlan.ieee80211;

/// 802.11 status codes.  These values are common throughout the standard.
/// IEEE Std 802.11-2016, 9.4.1.9, Table 9-46
enum StatusCode : uint16 {
    SUCCESS = 0;
    REFUSED_REASON_UNSPECIFIED = 1;
    TDLS_REJECTED_ALTERNATIVE_PROVIDED = 2;
    TDLS_REJECTED = 3;
    /// 4 reserved.
    SECURITY_DISABLED = 5;
    UNACCEPTABLE_LIFETIME = 6;
    NOT_IN_SAME_BSS = 7;
    /// 8-9 reserved.
    REFUSED_CAPABILITIES_MISMATCH = 10;
    DENIED_NO_ASSOCIATION_EXISTS = 11;
    DENIED_OTHER_REASON = 12;
    UNSUPPORTED_AUTH_ALGORITHM = 13;
    TRANSACTION_SEQUENCE_ERROR = 14;
    CHALLENGE_FAILURE = 15;
    REJECTED_SEQUENCE_TIMEOUT = 16;
    DENIED_NO_MORE_STAS = 17;
    REFUSED_BASIC_RATES_MISMATCH = 18;
    DENIED_NO_SHORT_PREAMBLE_SUPPORT = 19;
    /// 20-21 reserved.
    REJECTED_SPECTRUM_MANAGEMENT_REQUIRED = 22;
    REJECTED_BAD_POWER_CAPABILITY = 23;
    REJECTED_BAD_SUPPORTED_CHANNELS = 24;
    DENIED_NO_SHORT_SLOT_TIME_SUPPORT = 25;
    /// 26 reserved.
    DENIED_NO_HT_SUPPORT = 27;
    R0KH_UNREACHABLE = 28;
    DENIED_PCO_TIME_NOT_SUPPORTED = 29;
    REFUSED_TEMPORARILY = 30;
    ROBUST_MANAGEMENT_POLICY_VIOLATION = 31;
    UNSPECIFIED_QOS_FAILURE = 32;
    DENIED_INSUFFICIENT_BANDWIDTH = 33;
    DENIED_POOR_CHANNEL_CONDITIONS = 34;
    DENIED_QOS_NOT_SUPPORTED = 35;
    REQUEST_DECLINED = 37;
    INVALID_PARAMETERS = 38;
    REJECTED_WITH_SUGGESTED_CHANGES = 39;
    STATUS_INVALID_ELEMENT = 40;
    STATUS_INVALID_GROUP_CIPHER = 41;
    STATUS_INVALID_PAIRWISE_CIPHER = 42;
    STATUS_INVALID_AKMP = 43;
    UNSUPPORTED_RSNE_VERSION = 44;
    INVALID_RSNE_CAPABILITIES = 45;
    STATUS_CIPHER_OUT_OF_POLICY = 46;
    REJECTED_FOR_DELAY_PERIOD = 47;
    DLS_NOT_ALLOWED = 48;
    NOT_PRESENT = 49;
    NOT_QOS_STA = 50;
    DENIED_LISTEN_INTERVAL_TOO_LARGE = 51;
    STATUS_INVALID_FT_ACTION_FRAME_COUNT = 52;
    STATUS_INVALID_PMKID = 53;
    STATUS_INVALID_MDE = 54;
    STATUS_INVALID_FTE = 55;
    /// 56 is assigned to "REQUESTED_TCLAS_NOT_SUPPORTED_BY_AP" in 802.11-2016, duplicate with 80.
    /// Name below is as listed in the 802.11 Assigned Numbers Authority database.
    REQUESTED_TCLAS_NOT_SUPPORTED_BY_AP = 56;
    INSUFFICIENT_TCLAS_PROCESSING_RESOURCES = 57;
    TRY_ANOTHER_BSS = 58;
    GAS_ADVERTISEMENT_PROTOCOL_NOT_SUPPORTED = 59;
    NO_OUTSTANDING_GAS_REQUEST = 60;
    GAS_RESPONSE_NOT_RECEIVED_FROM_SERVER = 61;
    GAS_QUERY_TIMEOUT = 62;
    GAS_QUERY_RESPONSE_TOO_LARGE = 63;
    REJECTED_HOME_WITH_SUGGESTED_CHANGES = 64;
    SERVER_UNREACHABLE = 65;
    /// 66 reserved.
    REJECTED_FOR_SSP_PERMISSIONS = 67;
    REFUSED_UNAUTHENTICATED_ACCESS_NOT_SUPPORTED = 68;
    /// 69-71 reserved.
    INVALID_RSNE = 72;
    U_APSD_COEXISTANCE_NOT_SUPPORTED = 73;
    U_APSD_COEX_MODE_NOT_SUPPORTED = 74;
    BAD_INTERVAL_WITH_U_APSD_COEX = 75;
    ANTI_CLOGGING_TOKEN_REQUIRED = 76;
    UNSUPPORTED_FINITE_CYCLIC_GROUP = 77;
    CANNOT_FIND_ALTERNATIVE_TBTT = 78;
    TRANSMISSION_FAILURE = 79;
    /// See assignment for 56.
    REQUESTED_TCLAS_NOT_SUPPORTED = 80;
    TCLAS_RESOURCES_EXHAUSTED = 81;
    REJECTED_WITH_SUGGESTED_BSS_TRANSITION = 82;
    REJECT_WITH_SCHEDULE = 83;
    REJECT_NO_WAKEUP_SPECIFIED = 84;
    SUCCESS_POWER_SAVE_MODE = 85;
    PENDING_ADMITTING_FST_SESSION = 86;
    PERFORMING_FST_NOW = 87;
    PENDING_GAP_IN_BA_WINDOW = 88;
    REJECT_U_PID_SETTING = 89;
    REFUSED_EXTERNAL_REASON = 92;
    REFUSED_AP_OUT_OF_MEMORY = 93;
    REJECTED_EMERGENCY_SERVICES_NOT_SUPPORTED = 94;
    QUERY_RESPONSE_OUTSTANDING = 95;
    REJECT_DSE_BAND = 96;
    TCLAS_PROCESSING_TERMINATED = 97;
    TS_SCHEDULE_CONFLICT = 98;
    DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99;
    MCCAOP_RESERVATION_CONFLICT = 100;
    MAF_LIMIT_EXCEEDED = 101;
    MCCA_TRACK_LIMIT_EXCEEDED = 102;
    DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103;
    DENIED_VHT_NOT_SUPPORTED = 104;
    ENABLEMENT_DENIED = 105;
    RESTRICTION_FROM_AUTHORIZED_GDB = 106;
    AUTHORIZATION_DEENABLED = 107;
};
