/*
 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */
/*
 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

/*
 * Copyright (C) 2007-2009 QUALCOMM Incorporated. All rights reserved. Proprietary and Confidential.
 */

/*
 * DO NOT EDIT - This file is generated automaticlly
 */

/*
 * IMPORTANT:  This file is for system that supports STA mode ONLY.
 */
#include "cfgPriv.h"

unsigned char *gCfgParamName[] = {
    (unsigned char *)"STA_ID",
    (unsigned char *)"CF_POLLABLE",
    (unsigned char *)"CFP_PERIOD",
    (unsigned char *)"CFP_MAX_DURATION",
    (unsigned char *)"SSID",
    (unsigned char *)"BEACON_INTERVAL",
    (unsigned char *)"DTIM_PERIOD",
    (unsigned char *)"WEP_KEY_LENGTH",
    (unsigned char *)"WEP_DEFAULT_KEY_1",
    (unsigned char *)"WEP_DEFAULT_KEY_2",
    (unsigned char *)"WEP_DEFAULT_KEY_3",
    (unsigned char *)"WEP_DEFAULT_KEY_4",
    (unsigned char *)"WEP_DEFAULT_KEYID",
    (unsigned char *)"EXCLUDE_UNENCRYPTED",
    (unsigned char *)"RTS_THRESHOLD",
    (unsigned char *)"SHORT_RETRY_LIMIT",
    (unsigned char *)"LONG_RETRY_LIMIT",
    (unsigned char *)"FRAGMENTATION_THRESHOLD",
    (unsigned char *)"ACTIVE_MINIMUM_CHANNEL_TIME",
    (unsigned char *)"ACTIVE_MAXIMUM_CHANNEL_TIME",
    (unsigned char *)"PASSIVE_MINIMUM_CHANNEL_TIME",
    (unsigned char *)"PASSIVE_MAXIMUM_CHANNEL_TIME",
    (unsigned char *)"JOIN_FAILURE_TIMEOUT",
    (unsigned char *)"AUTHENTICATE_FAILURE_TIMEOUT",
    (unsigned char *)"AUTHENTICATE_RSP_TIMEOUT",
    (unsigned char *)"ASSOCIATION_FAILURE_TIMEOUT",
    (unsigned char *)"REASSOCIATION_FAILURE_TIMEOUT",
    (unsigned char *)"RA_PERIODICITY_TIMEOUT_IN_PS",
    (unsigned char *)"PS_ENABLE_BCN_FILTER",
    (unsigned char *)"PS_ENABLE_HEART_BEAT",
    (unsigned char *)"PS_ENABLE_RSSI_MONITOR",
    (unsigned char *)"PS_DATA_INACTIVITY_TIMEOUT",
    (unsigned char *)"RF_SETTLING_TIME_CLK",
    (unsigned char *)"SUPPORTED_RATES_11B",
    (unsigned char *)"SUPPORTED_RATES_11A",
    (unsigned char *)"PHY_MODE",
    (unsigned char *)"DOT11_MODE",
    (unsigned char *)"OPERATIONAL_RATE_SET",
    (unsigned char *)"EXTENDED_OPERATIONAL_RATE_SET",
    (unsigned char *)"PROPRIETARY_OPERATIONAL_RATE_SET",
    (unsigned char *)"BSSID",
    (unsigned char *)"LISTEN_INTERVAL",
    (unsigned char *)"VALID_CHANNEL_LIST",
    (unsigned char *)"CURRENT_CHANNEL",
    (unsigned char *)"DEFAULT_RATE_INDEX_5GHZ",
    (unsigned char *)"DEFAULT_RATE_INDEX_24GHZ",
    (unsigned char *)"RATE_ADAPTATION_TYPE",
    (unsigned char *)"FIXED_RATE",
    (unsigned char *)"FIXED_RATE_MULTICAST_24GHZ",
    (unsigned char *)"FIXED_RATE_MULTICAST_5GHZ",
    (unsigned char *)"RETRYRATE_POLICY",
    (unsigned char *)"RETRYRATE_SECONDARY",
    (unsigned char *)"RETRYRATE_TERTIARY",
    (unsigned char *)"APSD_ENABLED",
    (unsigned char *)"SHARED_KEY_AUTH_ENABLE",
    (unsigned char *)"OPEN_SYSTEM_AUTH_ENABLE",
    (unsigned char *)"AUTHENTICATION_TYPE",
    (unsigned char *)"CF_POLL_REQUEST",
    (unsigned char *)"PRIVACY_ENABLED",
    (unsigned char *)"SHORT_PREAMBLE",
    (unsigned char *)"SHORT_SLOT_TIME",
    (unsigned char *)"ACCEPT_SHORT_SLOT_ASSOC_ONLY",
    (unsigned char *)"QOS_ENABLED",
    (unsigned char *)"HCF_ENABLED",
    (unsigned char *)"RSN_ENABLED",
    (unsigned char *)"BACKGROUND_SCAN_PERIOD",
    (unsigned char *)"MAX_NUM_PRE_AUTH",
    (unsigned char *)"PREAUTH_CLNUP_TIMEOUT",
    (unsigned char *)"RELEASE_AID_TIMEOUT",
    (unsigned char *)"HEART_BEAT_THRESHOLD",
    (unsigned char *)"PROBE_AFTER_HB_FAIL_TIMEOUT",
    (unsigned char *)"MANUFACTURER_OUI",
    (unsigned char *)"MANUFACTURER_NAME",
    (unsigned char *)"MODEL_NUMBER",
    (unsigned char *)"MODEL_NAME",
    (unsigned char *)"MANUFACTURER_PRODUCT_NAME",
    (unsigned char *)"MANUFACTURER_PRODUCT_VERSION",
    (unsigned char *)"11D_ENABLED",
    (unsigned char *)"MAX_TX_POWER_2_4",
    (unsigned char *)"MAX_TX_POWER_5",
    (unsigned char *)"NETWORK_DENSITY",
    (unsigned char *)"ADAPTIVE_THRESHOLD_ALGORITHM",
    (unsigned char *)"CURRENT_TX_ANTENNA",
    (unsigned char *)"CURRENT_RX_ANTENNA",
    (unsigned char *)"CURRENT_TX_POWER_LEVEL",
    (unsigned char *)"POWER_STATE_PER_CHAIN",
    (unsigned char *)"NEW_BSS_FOUND_IND",
    (unsigned char *)"PROPRIETARY_ANI_FEATURES_ENABLED",
    (unsigned char *)"PROPRIETARY_RATES_ENABLED",
    (unsigned char *)"AP_NODE_NAME",
    (unsigned char *)"COUNTRY_CODE",
    (unsigned char *)"11H_ENABLED",
    (unsigned char *)"WT_CNF_TIMEOUT",
    (unsigned char *)"KEEPALIVE_TIMEOUT",
    (unsigned char *)"PROXIMITY",
    (unsigned char *)"LOG_LEVEL",
    (unsigned char *)"OLBC_DETECT_TIMEOUT",
    (unsigned char *)"PROTECTION_ENABLED",
    (unsigned char *)"11G_PROTECTION_ALWAYS",
    (unsigned char *)"FORCE_POLICY_PROTECTION",
    (unsigned char *)"11G_SHORT_PREAMBLE_ENABLED",
    (unsigned char *)"11G_SHORT_SLOT_TIME_ENABLED",
    (unsigned char *)"CAL_PERIOD",
    (unsigned char *)"STATS_PERIOD",
    (unsigned char *)"CAL_CONTROL",
    (unsigned char *)"11G_ONLY_POLICY",
    (unsigned char *)"PACKET_CLASSIFICATION",
    (unsigned char *)"WME_ENABLED",
    (unsigned char *)"ADDTS_RSP_TIMEOUT",
    (unsigned char *)"MAX_SP_LENGTH",
    (unsigned char *)"KEEP_ALIVE_STA_LIMIT_THRESHOLD",
    (unsigned char *)"SEND_SINGLE_SSID_ALWAYS",
    (unsigned char *)"WSM_ENABLED",
    (unsigned char *)"PROP_CAPABILITY",
    (unsigned char *)"EDCA_PROFILE",
    (unsigned char *)"EDCA_ANI_ACBK_LOCAL",
    (unsigned char *)"EDCA_ANI_ACBE_LOCAL",
    (unsigned char *)"EDCA_ANI_ACVI_LOCAL",
    (unsigned char *)"EDCA_ANI_ACVO_LOCAL",
    (unsigned char *)"EDCA_ANI_ACBK",
    (unsigned char *)"EDCA_ANI_ACBE",
    (unsigned char *)"EDCA_ANI_ACVI",
    (unsigned char *)"EDCA_ANI_ACVO",
    (unsigned char *)"EDCA_WME_ACBK_LOCAL",
    (unsigned char *)"EDCA_WME_ACBE_LOCAL",
    (unsigned char *)"EDCA_WME_ACVI_LOCAL",
    (unsigned char *)"EDCA_WME_ACVO_LOCAL",
    (unsigned char *)"EDCA_WME_ACBK",
    (unsigned char *)"EDCA_WME_ACBE",
    (unsigned char *)"EDCA_WME_ACVI",
    (unsigned char *)"EDCA_WME_ACVO",
    (unsigned char *)"EDCA_TIT_DEMO_ACBK_LOCAL",
    (unsigned char *)"EDCA_TIT_DEMO_ACBE_LOCAL",
    (unsigned char *)"EDCA_TIT_DEMO_ACVI_LOCAL",
    (unsigned char *)"EDCA_TIT_DEMO_ACVO_LOCAL",
    (unsigned char *)"EDCA_TIT_DEMO_ACBK",
    (unsigned char *)"EDCA_TIT_DEMO_ACBE",
    (unsigned char *)"EDCA_TIT_DEMO_ACVI",
    (unsigned char *)"EDCA_TIT_DEMO_ACVO",
    (unsigned char *)"RDET_FLAG",
    (unsigned char *)"RADAR_CHANNEL_LIST",
    (unsigned char *)"LOCAL_POWER_CONSTRAINT",
    (unsigned char *)"ADMIT_POLICY",
    (unsigned char *)"ADMIT_BWFACTOR",
    (unsigned char *)"MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE",
    (unsigned char *)"CHANNEL_BONDING_MODE",
    (unsigned char *)"CB_SECONDARY_CHANNEL_STATE",
    (unsigned char *)"DYNAMIC_THRESHOLD_ZERO",
    (unsigned char *)"DYNAMIC_THRESHOLD_ONE",
    (unsigned char *)"DYNAMIC_THRESHOLD_TWO",
    (unsigned char *)"TRIG_STA_BK_SCAN",
    (unsigned char *)"DYNAMIC_PROFILE_SWITCHING",
    (unsigned char *)"SCAN_CONTROL_LIST",
    (unsigned char *)"MIMO_ENABLED",
    (unsigned char *)"BLOCK_ACK_ENABLED",
    (unsigned char *)"BA_ACTIVITY_CHECK_TIMEOUT",
    (unsigned char *)"HT_RX_STBC",
    (unsigned char *)"HT_CAP_INFO",
    (unsigned char *)"HT_AMPDU_PARAMS",
    (unsigned char *)"SUPPORTED_MCS_SET",
    (unsigned char *)"EXT_HT_CAP_INFO",
    (unsigned char *)"TX_BF_CAP",
    (unsigned char *)"AS_CAP",
    (unsigned char *)"HT_INFO_FIELD1",
    (unsigned char *)"HT_INFO_FIELD2",
    (unsigned char *)"HT_INFO_FIELD3",
    (unsigned char *)"BASIC_MCS_SET",
    (unsigned char *)"CURRENT_MCS_SET",
    (unsigned char *)"GREENFIELD_CAPABILITY",
    (unsigned char *)"VHT_MAX_MPDU_LENGTH",
    (unsigned char *)"VHT_SUPPORTED_CHAN_WIDTH_SET",
    (unsigned char *)"VHT_LDPC_CODING_CAP",
    (unsigned char *)"VHT_SHORT_GI_80MHZ",
    (unsigned char *)"VHT_SHORT_GI_160_AND_80_PLUS_80MHZ",
    (unsigned char *)"VHT_TXSTBC",
    (unsigned char *)"VHT_RXSTBC",
    (unsigned char *)"VHT_SU_BEAMFORMER_CAP",
    (unsigned char *)"VHT_SU_BEAMFORMEE_CAP",
    (unsigned char *)"VHT_CSN_BEAMFORMEE_ANT_SUPPORTED",
    (unsigned char *)"VHT_NUM_SOUNDING_DIMENSIONS",
    (unsigned char *)"VHT_MU_BEAMFORMER_CAP",
    (unsigned char *)"VHT_MU_BEAMFORMEE_CAP",
    (unsigned char *)"VHT_TXOP_PS",
    (unsigned char *)"VHT_HTC_VHTC_CAP",
    (unsigned char *)"VHT_AMPDU_LEN_EXPONENT",
    (unsigned char *)"VHT_LINK_ADAPTATION_CAP",
    (unsigned char *)"VHT_RX_ANT_PATTERN",
    (unsigned char *)"VHT_TX_ANT_PATTERN",
    (unsigned char *)"VHT_RX_MCS_MAP",
    (unsigned char *)"VHT_TX_MCS_MAP",
    (unsigned char *)"VHT_RX_HIGHEST_SUPPORTED_DATA_RATE",
    (unsigned char *)"VHT_TX_HIGHEST_SUPPORTED_DATA_RATE",
    (unsigned char *)"VHT_CHANNEL_WIDTH",
    (unsigned char *)"VHT_CHANNEL_CENTER_FREQ_SEGMENT1",
    (unsigned char *)"VHT_CHANNEL_CENTER_FREQ_SEGMENT2",
    (unsigned char *)"VHT_BASIC_MCS_SET",
    (unsigned char *)"VHT_MU_MIMO_CAP_STA_COUNT",
    (unsigned char *)"VHT_SS_UNDER_UTIL",
    (unsigned char *)"VHT_40MHZ_UTILIZATION",
    (unsigned char *)"VHT_80MHZ_UTILIZATION",
    (unsigned char *)"VHT_160MHZ_UTILIZATION",
    (unsigned char *)"MAX_AMSDU_LENGTH",
    (unsigned char *)"MPDU_DENSITY",
    (unsigned char *)"NUM_BUFF_ADVERT",
    (unsigned char *)"MAX_RX_AMPDU_FACTOR",
    (unsigned char *)"SHORT_GI_20MHZ",
    (unsigned char *)"SHORT_GI_40MHZ",
    (unsigned char *)"RIFS_ENABLED",
    (unsigned char *)"MAX_PS_POLL",
    (unsigned char *)"NUM_BEACON_PER_RSSI_AVERAGE",
    (unsigned char *)"RSSI_FILTER_PERIOD",
    (unsigned char *)"FT_RSSI_FILTER_PERIOD",
    (unsigned char *)"MIN_RSSI_THRESHOLD",
    (unsigned char *)"NTH_BEACON_FILTER",
    (unsigned char *)"BROADCAST_FRAME_FILTER_ENABLE",
    (unsigned char *)"SCAN_IN_POWERSAVE",
    (unsigned char *)"IGNORE_DTIM",
    (unsigned char *)"WOWLAN_UCAST_PATTERN_FILTER_ENABLE",
    (unsigned char *)"WOWLAN_CHANNEL_SWITCH_ENABLE",
    (unsigned char *)"WOWLAN_DEAUTH_ENABLE",
    (unsigned char *)"WOWLAN_DISASSOC_ENABLE",
    (unsigned char *)"WOWLAN_MAX_MISSED_BEACON",
    (unsigned char *)"WOWLAN_MAX_SLEEP_PERIOD",
    (unsigned char *)"BA_TIMEOUT",
    (unsigned char *)"BA_THRESHOLD_HIGH",
    (unsigned char *)"MAX_BA_BUFFERS",
    (unsigned char *)"MAX_BA_SESSIONS",
    (unsigned char *)"BA_AUTO_SETUP",
    (unsigned char *)"ADDBA_REQ_DECLINE",
    (unsigned char *)"BG_SCAN_CHANNEL_LIST",
    (unsigned char *)"MAX_MEDIUM_TIME",
    (unsigned char *)"MAX_MPDUS_IN_AMPDU",
    (unsigned char *)"IBSS_AUTO_BSSID",
    (unsigned char *)"PROBE_REQ_ADDNIE_FLAG",
    (unsigned char *)"PROBE_REQ_ADDNIE_DATA",
    (unsigned char *)"PROBE_RSP_ADDNIE_FLAG",
    (unsigned char *)"PROBE_RSP_ADDNIE_DATA1",
    (unsigned char *)"PROBE_RSP_ADDNIE_DATA2",
    (unsigned char *)"PROBE_RSP_ADDNIE_DATA3",
    (unsigned char *)"ASSOC_RSP_ADDNIE_FLAG",
    (unsigned char *)"ASSOC_RSP_ADDNIE_DATA",
    (unsigned char *)"PROBE_REQ_ADDNP2PIE_FLAG",
    (unsigned char *)"PROBE_REQ_ADDNP2PIE_DATA",
    (unsigned char *)"PROBE_RSP_BCN_ADDNIE_FLAG",
    (unsigned char *)"PROBE_RSP_BCN_ADDNIE_DATA",
    (unsigned char *)"WPS_ENABLE",
    (unsigned char *)"WPS_STATE",
    (unsigned char *)"WPS_PROBE_REQ_FLAG",
    (unsigned char *)"WPS_VERSION",
    (unsigned char *)"WPS_REQUEST_TYPE",
    (unsigned char *)"WPS_CFG_METHOD",
    (unsigned char *)"WPS_UUID",
    (unsigned char *)"WPS_PRIMARY_DEVICE_CATEGORY",
    (unsigned char *)"WPS_PIMARY_DEVICE_OUI",
    (unsigned char *)"WPS_DEVICE_SUB_CATEGORY",
    (unsigned char *)"WPS_ASSOCIATION_STATE",
    (unsigned char *)"WPS_CONFIGURATION_ERROR",
    (unsigned char *)"WPS_DEVICE_PASSWORD_ID",
    (unsigned char *)"WPS_ASSOC_METHOD",
    (unsigned char *)"LOW_GAIN_OVERRIDE",
    (unsigned char *)"ENABLE_PHY_AGC_LISTEN_MODE",
    (unsigned char *)"RPE_POLLING_THRESHOLD",
    (unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC0_REG",
    (unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC1_REG",
    (unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC2_REG",
    (unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC3_REG",
    (unsigned char *)"NO_OF_ONCHIP_REORDER_SESSIONS",
    (unsigned char *)"SINGLE_TID_RC",
    (unsigned char *)"RRM_ENABLED",
    (unsigned char *)"RRM_OPERATING_CHAN_MAX",
    (unsigned char *)"RRM_NON_OPERATING_CHAN_MAX",
    (unsigned char *)"TX_PWR_CTRL_ENABLE",
    (unsigned char *)"MCAST_BCAST_FILTER_SETTING",
    (unsigned char *)"BTC_DHCP_BT_SLOTS_TO_BLOCK",
    (unsigned char *)"DYNAMIC_PS_POLL_VALUE",
    (unsigned char *)"PS_NULLDATA_AP_RESP_TIMEOUT",
    (unsigned char *)"TELE_BCN_WAKEUP_EN",
    (unsigned char *)"TELE_BCN_TRANS_LI",
    (unsigned char *)"TELE_BCN_TRANS_LI_IDLE_BCNS",
    (unsigned char *)"TELE_BCN_MAX_LI",
    (unsigned char *)"TELE_BCN_MAX_LI_IDLE_BCNS",
    (unsigned char *)"BTC_A2DP_DHCP_BT_SUB_INTERVALS",
    (unsigned char *)"INFRA_STA_KEEP_ALIVE_PERIOD",
    (unsigned char *)"ASSOC_STA_LIMIT",
    (unsigned char *)"SAP_CHANNEL_SELECT_START_CHANNEL",
    (unsigned char *)"SAP_CHANNEL_SELECT_END_CHANNEL",
    (unsigned char *)"SAP_CHANNEL_SELECT_OPERATING_BAND",
    (unsigned char *)"AP_DATA_AVAIL_POLL_PERIOD",
    (unsigned char *)"ENABLE_CLOSE_LOOP",
    (unsigned char *)"ENABLE_LTE_COEX",
    (unsigned char *)"AP_KEEP_ALIVE_TIMEOUT",
    (unsigned char *)"GO_KEEP_ALIVE_TIMEOUT",
    (unsigned char *)"ENABLE_MC_ADDR_LIST",
    (unsigned char *)"ENABLE_UC_FILTER",
    (unsigned char *)"ENABLE_LPWR_IMG_TRANSITION",
};



