/*-
 * Copyright (c) 2001 Atsushi Onoe
 * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * Alternatively, this software may be distributed under the terms of the
 * GNU General Public License ("GPL") version 2 as published by the Free
 * Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * $Id: ieee80211_ioctl.h 1856 2006-12-14 01:38:00Z scottr $
 */
#ifndef _NET80211_IEEE80211_IOCTL_H_
#define _NET80211_IEEE80211_IOCTL_H_

/*
 * IEEE 802.11 ioctls.
 */
#include "net80211/_ieee80211.h"
#include "net80211/ieee80211.h"
#include "net80211/ieee80211_qos.h"
#include "net80211/ieee80211_crypto.h"

#pragma pack(4)
/*
 * Per-channel flags to differentiate chan_pri_inactive configuration
 * between regulatory db and user configuration.
 * By default, system uses static regulatory db configs.
 * However driver shall always honour dynamic user coniguration.
 * In this way, user configuration will override regulatory db configs.
 */
enum {
	CHAN_PRI_INACTIVE_CFG_DATABASE = 0x1,
	CHAN_PRI_INACTIVE_CFG_USER_OVERRIDE = 0x2,
	CHAN_PRI_INACTIVE_CFG_AUTOCHAN_ONLY = 0x4,
};

/*
 * Per/node (station) statistics available when operating as an AP.
 */
struct ieee80211_nodestats {
	uint32_t ns_rx_data;		/* rx data frames */
	uint32_t ns_rx_mgmt;		/* rx management frames */
	uint32_t ns_rx_ctrl;		/* rx control frames */
	uint32_t ns_rx_ucast;		/* rx unicast frames */
	uint32_t ns_rx_mcast;		/* rx multicast frames */
	uint32_t ns_rx_bcast;		/* rx broadcast frames */
	uint64_t ns_rx_bytes;		/* rx data count (bytes) */
	uint64_t ns_rx_beacons;		/* rx beacon frames */
	uint32_t ns_rx_proberesp;	/* rx probe response frames */

	uint32_t ns_rx_dup;		/* rx discard because it's a dup */
	uint32_t ns_rx_noprivacy;	/* rx w/ wep but privacy off */
	uint32_t ns_rx_wepfail;		/* rx wep processing failed */
	uint32_t ns_rx_demicfail;	/* rx demic failed */
	uint32_t ns_rx_decap;		/* rx decapsulation failed */
	uint32_t ns_rx_defrag;		/* rx defragmentation failed */
	uint32_t ns_rx_disassoc;	/* rx disassociation */
	uint32_t ns_rx_deauth;		/* rx deauthentication */
	uint32_t ns_rx_decryptcrc;	/* rx decrypt failed on crc */
	uint32_t ns_rx_unauth;		/* rx on unauthorized port */
	uint32_t ns_rx_unencrypted;	/* rx unecrypted w/ privacy */

	uint32_t ns_tx_data;		/* tx data frames */
	uint32_t ns_tx_mgmt;		/* tx management frames */
	uint32_t ns_tx_ucast;		/* tx unicast frames */
	uint32_t ns_tx_mcast;		/* tx multicast frames */
	uint32_t ns_tx_bcast;		/* tx broadcast frames */
	uint64_t ns_tx_bytes;		/* tx data count (bytes) */
	uint32_t ns_tx_probereq;	/* tx probe request frames */
	uint32_t ns_tx_uapsd;		/* tx on uapsd queue */

	uint32_t ns_tx_novlantag;	/* tx discard due to no tag */
	uint32_t ns_tx_vlanmismatch;	/* tx discard due to of bad tag */
	uint32_t ns_tx_unauth;		/* rx on unauthorized port */

	uint32_t ns_tx_eosplost;	/* uapsd EOSP retried out */

	uint32_t ns_ps_discard;		/* ps discard due to of age */

	uint32_t ns_uapsd_triggers;	/* uapsd triggers */

	/* MIB-related state */
	uint32_t ns_tx_assoc;		/* [re]associations */
	uint32_t ns_tx_assoc_fail;	/* [re]association failures */
	uint32_t ns_tx_auth;		/* [re]authentications */
	uint32_t ns_tx_auth_fail;	/* [re]authentication failures*/
	uint32_t ns_tx_deauth;		/* deauthentications */
	uint32_t ns_tx_deauth_code;	/* last deauth reason */
	uint32_t ns_tx_disassoc;	/* disassociations */
	uint32_t ns_tx_disassoc_code;	/* last disassociation reason */
	uint32_t ns_psq_drops;		/* power save queue drops */
	uint32_t ns_rx_action;         /* rx action */
	uint32_t ns_tx_action;
	/*
	 * Next few fields track the corresponding entry in struct net_device_stats,
	 * but here for each associated node
	 */
	uint32_t ns_rx_errors;
	uint32_t ns_tx_errors;
	uint32_t ns_rx_dropped;
	uint32_t ns_tx_dropped;
	/*
	 * The number of dropped data packets failed to transmit through
	 * wireless media for each traffic category(TC).
	 */
	uint32_t ns_tx_wifi_drop[WME_AC_NUM];

	uint32_t ns_ap_isolation_dropped;
	uint32_t ns_rx_fragment_pkts;
	uint32_t ns_rx_vlan_pkts;

	uint32_t ns_rx_tdls_action;
	uint32_t ns_tx_tdls_action;
};

/*
 * Summary statistics.
 */
struct ieee80211_stats {
	uint32_t is_rx_badversion;	/* rx frame with bad version */
	uint32_t is_rx_tooshort;	/* rx frame too short */
	uint32_t is_rx_wrongbss;	/* rx from wrong bssid */
	uint32_t is_rx_dup;		/* rx discard due to it's a dup */
	uint32_t is_rx_wrongdir;	/* rx w/ wrong direction */
	uint32_t is_rx_mcastecho;	/* rx discard due to of mcast echo */
	uint32_t is_rx_notassoc;	/* rx discard due to sta !assoc */
	uint32_t is_rx_noprivacy;	/* rx w/ wep but privacy off */
	uint32_t is_rx_unencrypted;	/* rx w/o wep and privacy on */
	uint32_t is_rx_wepfail;		/* rx wep processing failed */
	uint32_t is_rx_decap;		/* rx decapsulation failed */
	uint32_t is_rx_mgtdiscard;	/* rx discard mgt frames */
	uint32_t is_rx_ctl;		/* rx discard ctrl frames */
	uint32_t is_rx_beacon;		/* rx beacon frames */
	uint32_t is_rx_rstoobig;	/* rx rate set truncated */
	uint32_t is_rx_elem_missing;	/* rx required element missing*/
	uint32_t is_rx_elem_toobig;	/* rx element too big */
	uint32_t is_rx_elem_toosmall;	/* rx element too small */
	uint32_t is_rx_elem_unknown;	/* rx element unknown */
	uint32_t is_rx_badchan;	/* rx frame w/ invalid chan */
	uint32_t is_rx_chanmismatch;	/* rx frame chan mismatch */
	uint32_t is_rx_nodealloc;	/* rx frame dropped */
	uint32_t is_rx_ssidmismatch;	/* rx frame ssid mismatch  */
	uint32_t is_rx_auth_unsupported;/* rx w/ unsupported auth alg */
	uint32_t is_rx_auth_fail;	/* rx sta auth failure */
	uint32_t is_rx_auth_countermeasures;/* rx auth discard due to CM */
	uint32_t is_rx_assoc_bss;	/* rx assoc from wrong bssid */
	uint32_t is_rx_assoc_notauth;	/* rx assoc w/o auth */
	uint32_t is_rx_assoc_capmismatch;/* rx assoc w/ cap mismatch */
	uint32_t is_rx_assoc_norate;	/* rx assoc w/ no rate match */
	uint32_t is_rx_assoc_badwpaie;	/* rx assoc w/ bad WPA IE */
	uint32_t is_rx_deauth;		/* rx deauthentication */
	uint32_t is_rx_disassoc;	/* rx disassociation */
	uint32_t is_rx_action;         /* rx action mgt */
	uint32_t is_rx_badsubtype;	/* rx frame w/ unknown subtype*/
	uint32_t is_rx_nobuf;		/* rx failed for lack of buf */
	uint32_t is_rx_decryptcrc;	/* rx decrypt failed on crc */
	uint32_t is_rx_ahdemo_mgt;	/* rx discard ahdemo mgt frame*/
	uint32_t is_rx_bad_auth;	/* rx bad auth request */
	uint32_t is_rx_unauth;		/* rx on unauthorized port */
	uint32_t is_rx_badkeyid;	/* rx w/ incorrect keyid */
	uint32_t is_rx_ccmpreplay;	/* rx seq# violation (CCMP) */
	uint32_t is_rx_ccmpformat;	/* rx format bad (CCMP) */
	uint32_t is_rx_ccmpmic;		/* rx MIC check failed (CCMP) */
	uint32_t is_rx_tkipreplay;	/* rx seq# violation (TKIP) */
	uint32_t is_rx_tkipformat;	/* rx format bad (TKIP) */
	uint32_t is_rx_tkipmic;		/* rx MIC check failed (TKIP) */
	uint32_t is_rx_tkipicv;		/* rx ICV check failed (TKIP) */
	uint32_t is_rx_badcipher;	/* rx failed due to of key type */
	uint32_t is_rx_nocipherctx;	/* rx failed due to key !setup */
	uint32_t is_rx_acl;		/* rx discard due to of acl policy */
	uint32_t is_rx_ffcnt;		/* rx fast frames */
	uint32_t is_rx_badathtnl;	/* driver key alloc failed */
	uint32_t is_tx_nobuf;		/* tx failed for lack of buf */
	uint32_t is_tx_nonode;		/* tx failed for no node */
	uint32_t is_tx_unknownmgt;	/* tx of unknown mgt frame */
	uint32_t is_tx_badcipher;	/* tx failed due to of key type */
	uint32_t is_tx_nodefkey;	/* tx failed due to no defkey */
	uint32_t is_tx_noheadroom;	/* tx failed due to no space */
	uint32_t is_tx_ffokcnt;		/* tx fast frames sent success */
	uint32_t is_tx_fferrcnt;	/* tx fast frames sent success */
	uint32_t is_tx_unauth;		/* tx on unauthorized port */
	uint32_t is_scan_active;	/* active scans started */
	uint32_t is_scan_passive;	/* passive scans started */
	uint32_t is_node_timeout;	/* nodes timed out inactivity */
	uint32_t is_crypto_nomem;	/* no memory for crypto ctx */
	uint32_t is_crypto_tkip;	/* tkip crypto done in s/w */
	uint32_t is_crypto_tkipenmic;	/* tkip en-MIC done in s/w */
	uint32_t is_crypto_tkipdemic;	/* tkip de-MIC done in s/w */
	uint32_t is_crypto_tkipcm;	/* tkip counter measures */
	uint32_t is_crypto_ccmp;	/* ccmp crypto done in s/w */
	uint32_t is_crypto_wep;		/* wep crypto done in s/w */
	uint32_t is_crypto_setkey_cipher;/* cipher rejected key */
	uint32_t is_crypto_setkey_nokey;/* no key index for setkey */
	uint32_t is_crypto_delkey;	/* driver key delete failed */
	uint32_t is_crypto_badcipher;	/* unknown cipher */
	uint32_t is_crypto_nocipher;	/* cipher not available */
	uint32_t is_crypto_attachfail;	/* cipher attach failed */
	uint32_t is_crypto_swfallback;	/* cipher fallback to s/w */
	uint32_t is_crypto_keyfail;	/* driver key alloc failed */
	uint32_t is_crypto_enmicfail;	/* en-MIC failed */
	uint32_t is_ibss_capmismatch;	/* merge failed-cap mismatch */
	uint32_t is_ibss_norate;	/* merge failed-rate mismatch */
	uint32_t is_ps_unassoc;	/* ps-poll for unassoc. sta */
	uint32_t is_ps_badaid;		/* ps-poll w/ incorrect aid */
	uint32_t is_ps_qempty;		/* ps-poll w/ nothing to send */
	uint32_t is_rx_assoc_nohtcap;	/* HT capabilities mismatch */
	uint32_t is_rx_assoc_tkiphtreject; /* rx assoc requesting TKIP and HT capabilities */
	uint32_t is_rx_assoc_toomany;	/* reach assoc limit */
	uint32_t is_rx_ps_unauth;	/* ps-poll for un-authenticated STA */
	uint32_t is_rx_tdls_stsmismatch;/* tdls status mismatch */
	uint32_t is_rx_tdls;		/* tdls action frame */
	uint32_t is_tx_tdls;		/* tdls action frame */
};

/*
 * Max size of optional information elements.  We artificially
 * constrain this; it's limited only by the max frame size (and
 * the max parameter size of the wireless extensions).
 */
#define	IEEE80211_MAX_OPT_IE	256

/*
 * WPA/RSN get/set key request.  Specify the key/cipher
 * type and whether the key is to be used for sending and/or
 * receiving.  The key index should be set only when working
 * with global keys (use IEEE80211_KEYIX_NONE for ``no index'').
 * Otherwise a unicast/pairwise key is specified by the bssid
 * (on a station) or mac address (on an ap).  They key length
 * must include any MIC key data; otherwise it should be no
 more than IEEE80211_KEYBUF_SIZE.
 */
struct ieee80211req_key {
	uint8_t ik_type;		/* key/cipher type */
	uint8_t ik_pad;
	uint8_t ik_keyix;		/* key index */
	uint8_t ik_keylen;		/* key length in bytes */
	uint8_t ik_flags;
/* NB: IEEE80211_KEY_XMIT and IEEE80211_KEY_RECV defined elsewhere */
#define	IEEE80211_KEY_DEFAULT	0x80	/* default xmit key */
	uint8_t ik_macaddr[IEEE80211_ADDR_LEN];
	uint16_t ik_vlan;
	uint64_t ik_keyrsc;		/* key receive sequence counter */
	uint64_t ik_keytsc;		/* key transmit sequence counter */
	uint8_t ik_keydata[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE];
};

/*
 * Delete a key either by index or address.  Set the index
 * to IEEE80211_KEYIX_NONE when deleting a unicast key.
 */
struct ieee80211req_del_key {
	uint8_t idk_keyix;		/* key index */
	uint8_t idk_macaddr[IEEE80211_ADDR_LEN];
};

/*
 * MLME state manipulation request.  IEEE80211_MLME_ASSOC
 * only makes sense when operating as a station.  The other
 * requests can be used when operating as a station or an
 * ap (to effect a station).
 */
struct ieee80211req_mlme {
	uint8_t im_op;			/* operation to perform */
#define	IEEE80211_MLME_ASSOC		1	/* associate station */
#define	IEEE80211_MLME_DISASSOC		2	/* disassociate station */
#define	IEEE80211_MLME_DEAUTH		3	/* deauthenticate station */
#define	IEEE80211_MLME_AUTHORIZE	4	/* authorize station */
#define	IEEE80211_MLME_UNAUTHORIZE	5	/* unauthorize station */
#define IEEE80211_MLME_CLEAR_STATS	6	/* clear station statistic */
#define IEEE80211_MLME_DEBUG_CLEAR	7	/* remove the STA without deauthing (DEBUG ONLY) */
	uint8_t im_ssid_len;		/* length of optional ssid */
	uint16_t im_reason;		/* 802.11 reason code */
	uint8_t im_macaddr[IEEE80211_ADDR_LEN];
	uint8_t im_ssid[IEEE80211_NWID_LEN];
};

struct ieee80211req_brcm {
	uint8_t ib_op;				/* operation to perform */
#define IEEE80211REQ_BRCM_INFO        0       /* BRCM client information */
#define IEEE80211REQ_BRCM_PKT         1       /* BRCM pkt from ap to client */
	uint8_t ib_macaddr[IEEE80211_ADDR_LEN];
	int ib_rssi;
	uint32_t ib_rxglitch;
	uint8_t *ib_pkt;
	int32_t ib_pkt_len;
};

#define QTN_CHAN_AVAIL_STATUS_TO_STR	{"", "Non-Available", "Available",\
					"", "Not-Available-Radar-Detected", "",\
					"", "", "Not-Available-CAC-Required"}

#define IEEE80211REQ_SCS_REPORT_CHAN_NUM    32
struct ieee80211req_scs_currchan_rpt {
	uint8_t iscr_curchan;
	uint16_t iscr_cca_try;
	uint16_t iscr_cca_idle;
	uint16_t iscr_cca_busy;
	uint16_t iscr_cca_intf;
	uint16_t iscr_cca_tx;
	uint16_t iscr_tx_ms;
	uint16_t iscr_rx_ms;
	uint32_t iscr_pmbl;
};

struct ieee80211req_scs_ranking_rpt_chan {
	uint8_t isrc_chan;
	uint8_t isrc_dfs;
	uint8_t isrc_txpwr;
	int32_t isrc_metric;
	uint32_t isrc_metric_age;
	/* scs part */
	uint16_t isrc_cca_intf;
	uint32_t isrc_pmbl_ap;
	uint32_t isrc_pmbl_sta;
	/* initial channel selection part */
	unsigned int isrc_numbeacons;
	int isrc_cci;
	int isrc_aci;
	/* channel usage */
	uint32_t isrc_duration;
	uint32_t isrc_times;
	uint8_t isrc_chan_avail_status;
};

struct ieee80211req_scs_ranking_rpt {
	uint8_t isr_num;
	struct ieee80211req_scs_ranking_rpt_chan isr_chans[IEEE80211REQ_SCS_REPORT_CHAN_NUM];
};

struct ieee80211req_scs_interference_rpt_chan {
	uint8_t isrc_chan;
	uint16_t isrc_cca_intf_20;
	uint16_t isrc_cca_intf_40;
	uint16_t isrc_cca_intf_80;
};
struct ieee80211req_scs_interference_rpt {
	uint8_t isr_num;
	struct ieee80211req_scs_interference_rpt_chan isr_chans[IEEE80211REQ_SCS_REPORT_CHAN_NUM];
};

struct ieee80211req_scs_score_rpt_chan {
	uint8_t isrc_chan;
	uint8_t isrc_score;
};
struct ieee80211req_scs_score_rpt {
	uint8_t isr_num;
	struct ieee80211req_scs_score_rpt_chan isr_chans[IEEE80211REQ_SCS_REPORT_CHAN_NUM];
};

#define SCS_MAX_TXTIME_COMP_INDEX	8
#define SCS_MAX_RXTIME_COMP_INDEX	8
#define SCS_MAX_TDLSTIME_COMP_INDEX	8
/*
 * Restrictions:
 *   this structure must be kept in sync with ieee80211_scs
 */
enum qscs_cfg_param_e {
	SCS_SMPL_DWELL_TIME = 0,
	SCS_SAMPLE_INTV,
	SCS_THRSHLD_SMPL_PKTNUM,
	SCS_THRSHLD_SMPL_AIRTIME,
	SCS_THRSHLD_ATTEN_INC,
	SCS_THRSHLD_DFS_REENTRY,
	SCS_THRSHLD_DFS_REENTRY_MINRATE,
	SCS_THRSHLD_DFS_REENTRY_INTF,
	SCS_THRSHLD_LOADED,
	SCS_THRSHLD_AGING_NOR,
	SCS_THRSHLD_AGING_DFSREENT,
	SCS_ENABLE,
	SCS_DEBUG_ENABLE,
	SCS_SMPL_ENABLE,
	SCS_REPORT_ONLY,
	SCS_CCA_IDLE_THRSHLD,
	SCS_CCA_INTF_HI_THRSHLD,
	SCS_CCA_INTF_LO_THRSHLD,
	SCS_CCA_INTF_RATIO,
	SCS_CCA_INTF_DFS_MARGIN,
	SCS_PMBL_ERR_THRSHLD,
	SCS_CCA_SAMPLE_DUR,
	SCS_CCA_INTF_SMTH_NOXP,
	SCS_CCA_INTF_SMTH_XPED,
	SCS_RSSI_SMTH_UP,
	SCS_RSSI_SMTH_DOWN,
	SCS_CHAN_MTRC_MRGN,
	SCS_ATTEN_ADJUST,
	SCS_ATTEN_SW_ENABLE,
	SCS_PMBL_ERR_SMTH_FCTR,
	SCS_PMBL_ERR_RANGE,
	SCS_PMBL_ERR_MAPPED_INTF_RANGE,
	SCS_SP_WF,
	SCS_LP_WF,
	SCS_PMP_RPT_CCA_SMTH_FCTR,
	SCS_PMP_RX_TIME_SMTH_FCTR,
	SCS_PMP_TX_TIME_SMTH_FCTR,
	SCS_PMP_STATS_STABLE_PERCENT,
	SCS_PMP_STATS_STABLE_RANGE,
	SCS_PMP_STATS_CLEAR_INTERVAL,
	SCS_AS_RX_TIME_SMTH_FCTR,
	SCS_AS_TX_TIME_SMTH_FCTR,
	SCS_CCA_IDLE_SMTH_FCTR,
	SCS_TX_TIME_COMPENSTATION_START,
	SCS_TX_TIME_COMPENSTATION_END = SCS_TX_TIME_COMPENSTATION_START+SCS_MAX_TXTIME_COMP_INDEX-1,
	SCS_RX_TIME_COMPENSTATION_START,
	SCS_RX_TIME_COMPENSTATION_END = SCS_RX_TIME_COMPENSTATION_START+SCS_MAX_RXTIME_COMP_INDEX-1,
	SCS_TDLS_TIME_COMPENSTATION_START,
	SCS_TDLS_TIME_COMPENSTATION_END = SCS_TDLS_TIME_COMPENSTATION_START+SCS_MAX_TDLSTIME_COMP_INDEX-1,
	SCS_LEAVE_DFS_CHAN_MTRC_MRGN,
	SCS_CCA_THRESHOD_TYPE,
	SCS_PARAM_MAX,
};

struct ieee80211req_scs_param_rpt {
	uint32_t cfg_param;
	uint32_t signed_param_flag;
};

struct ieee80211req_scs {
	uint32_t is_op;
#define IEEE80211REQ_SCS_ID_UNKNOWN               0
#define IEEE80211REQ_SCS_FLAG_GET                 0x80000000
#define IEEE80211REQ_SCS_GET_CURRCHAN_RPT         (IEEE80211REQ_SCS_FLAG_GET | 1)
#define IEEE80211REQ_SCS_GET_INIT_RANKING_RPT     (IEEE80211REQ_SCS_FLAG_GET | 2)
#define IEEE80211REQ_SCS_GET_RANKING_RPT          (IEEE80211REQ_SCS_FLAG_GET | 3)
#define IEEE80211REQ_SCS_GET_PARAM_RPT            (IEEE80211REQ_SCS_FLAG_GET | 4)
#define IEEE80211REQ_SCS_GET_SCORE_RPT            (IEEE80211REQ_SCS_FLAG_GET | 5)
#define IEEE80211REQ_SCS_GET_INTERFERENCE_RPT     (IEEE80211REQ_SCS_FLAG_GET | 6)
	uint32_t *is_status;                  /* SCS specific reason for ioctl failure */
#define IEEE80211REQ_SCS_RESULT_OK                    0
#define IEEE80211REQ_SCS_RESULT_SYSCALL_ERR           1
#define IEEE80211REQ_SCS_RESULT_SCS_DISABLED          2
#define IEEE80211REQ_SCS_RESULT_NO_VAP_RUNNING        3
#define IEEE80211REQ_SCS_RESULT_NOT_EVALUATED         4        /* channel ranking not evaluated */
#define IEEE80211REQ_SCS_RESULT_TMP_UNAVAILABLE       5        /* when channel switch or param change */
#define IEEE80211REQ_SCS_RESULT_APMODE_ONLY           6
#define IEEE80211REQ_SCS_RESULT_AUTOCHAN_DISABLED     7
	uint8_t *is_data;
	int32_t is_data_len;
};

struct ieee80211_chan_power_table {
	uint8_t chan_ieee;
	int8_t maxpower_table[PWR_IDX_BF_MAX][PWR_IDX_SS_MAX][PWR_IDX_BW_MAX];
};

struct ieeee80211_dscp2ac {
	uint8_t dscp[IP_DSCP_NUM];
	uint8_t list_len;
	uint8_t ac;
};
/*
 * MAC ACL operations.
 */
enum {
	IEEE80211_MACCMD_POLICY_OPEN	= 0,	/* set policy: no ACL's */
	IEEE80211_MACCMD_POLICY_ALLOW	= 1,	/* set policy: allow traffic */
	IEEE80211_MACCMD_POLICY_DENY	= 2,	/* set policy: deny traffic */
	IEEE80211_MACCMD_FLUSH		= 3,	/* flush ACL database */
	IEEE80211_MACCMD_DETACH		= 4,	/* detach ACL policy */
};

/*
 * Set the active channel list.  Note this list is
 * intersected with the available channel list in
 * calculating the set of channels actually used in
 * scanning.
 */
struct ieee80211req_chanlist {
	uint8_t ic_channels[IEEE80211_CHAN_BYTES];
};

/*
 * Basic IEEE Channel info for wireless tools
 */
struct ieee80211_chan {
	uint16_t ic_freq;	/* Freq setting in Mhz */
	uint32_t ic_flags;	/* Channel flags */
	uint8_t ic_ieee;	/* IEEE channel number */
} __packed;

/*
 * Get the active channel list info.
 */
struct ieee80211req_chaninfo {
	uint32_t ic_nchans;
	struct ieee80211_chan ic_chans[IEEE80211_CHAN_MAX];
};

/*
 * Set the active channel list for 20Mhz, 40Mhz and 80Mhz
 */
struct ieee80211_active_chanlist {
	u_int8_t bw;
	u_int8_t channels[IEEE80211_CHAN_BYTES];
};

/*
 * Set or Get the inactive channel list
 */
struct ieee80211_inactive_chanlist {
	u_int8_t channels[IEEE80211_CHAN_MAX];
};

/*
 * Set or get the disabled channel list
 */
struct ieeee80211_disabled_chanlist {
	uint8_t chan[IEEE80211_CHAN_MAX];
	uint32_t list_len;
	uint8_t flag;	/*0: disable 1: enable*/
	uint8_t dir;	/*0: set 1: get*/
};

enum ieee80211_chan_control_dir
{
	SET_CHAN_DISABLED = 0,
	GET_CHAN_DISABLED = 1,
};
/*
 * Retrieve the WPA/RSN information element for an associated station.
 */
struct ieee80211req_wpaie {
	uint8_t	wpa_macaddr[IEEE80211_ADDR_LEN];
	uint8_t	wpa_ie[IEEE80211_MAX_OPT_IE];
	uint8_t	rsn_ie[IEEE80211_MAX_OPT_IE];
	uint8_t	osen_ie[IEEE80211_MAX_OPT_IE];
	uint8_t	wps_ie[IEEE80211_MAX_OPT_IE];
	uint8_t	qtn_pairing_ie[IEEE80211_MAX_OPT_IE];
#define QTN_PAIRING_IE_EXIST 1
#define QTN_PAIRING_IE_ABSENT 0
	uint8_t	has_pairing_ie;		/* Indicates whether Pairing IE exists in assoc req/resp */
};

/*
 * Retrieve per-node statistics.
 */
struct ieee80211req_sta_stats {
	union {
		/* NB: explicitly force 64-bit alignment */
		uint8_t macaddr[IEEE80211_ADDR_LEN];
		uint64_t pad;
	} is_u;
	struct ieee80211_nodestats is_stats;
};
/*
 * Retrieve STA Statistics(Radio measurement) information element for an associated station.
 */
struct ieee80211req_qtn_rmt_sta_stats {
	int status;
	struct ieee80211_ie_qtn_rm_sta_all rmt_sta_stats;
	struct ieee80211_ie_rm_sta_grp221	rmt_sta_stats_grp221;
};

struct ieee80211req_qtn_rmt_sta_stats_setpara {
	uint32_t flags;
	uint8_t macaddr[IEEE80211_ADDR_LEN];
};

struct ieee80211req_node_meas {
	uint8_t mac_addr[6];

	uint8_t type;
#define IOCTL_MEAS_TYPE_BASIC		0x0
#define IOCTL_MEAS_TYPE_CCA		0x1
#define IOCTL_MEAS_TYPE_RPI		0x2
#define IOCTL_MEAS_TYPE_CHAN_LOAD	0x3
#define IOCTL_MEAS_TYPE_NOISE_HIS	0x4
#define IOCTL_MEAS_TYPE_BEACON		0x5
#define IOCTL_MEAS_TYPE_FRAME		0x6
#define IOCTL_MEAS_TYPE_CAT		0x7
#define IOCTL_MEAS_TYPE_MUL_DIAG	0x8
#define IOCTL_MEAS_TYPE_LINK		0x9
#define IOCTL_MEAS_TYPE_NEIGHBOR	0xA

	struct _ioctl_basic {
		uint16_t start_offset_ms;
		uint16_t duration_ms;
		uint8_t channel;
	} ioctl_basic;
	struct _ioctl_cca {
		uint16_t start_offset_ms;
		uint16_t duration_ms;
		uint8_t channel;
	} ioctl_cca;
	struct _ioctl_rpi {
		uint16_t start_offset_ms;
		uint16_t duration_ms;
		uint8_t channel;
	} ioctl_rpi;
	struct _ioctl_chan_load {
		uint16_t duration_ms;
		uint8_t channel;
	} ioctl_chan_load;
	struct _ioctl_noise_his {
		uint16_t duration_ms;
		uint8_t channel;
	} ioctl_noise_his;
	struct _ioctl_beacon {
		uint8_t op_class;
		uint8_t channel;
		uint16_t duration_ms;
		uint8_t mode;
		uint8_t bssid[IEEE80211_ADDR_LEN];
	} ioctl_beacon;
	struct _ioctl_frame {
		uint8_t op_class;
		uint8_t channel;
		uint16_t duration_ms;
		uint8_t type;
		uint8_t mac_address[IEEE80211_ADDR_LEN];
	} ioctl_frame;
	struct _ioctl_tran_stream_cat {
		uint16_t duration_ms;
		uint8_t peer_sta[IEEE80211_ADDR_LEN];
		uint8_t tid;
		uint8_t bin0;
	} ioctl_tran_stream_cat;
	struct _ioctl_multicast_diag {
		uint16_t duration_ms;
		uint8_t group_mac[IEEE80211_ADDR_LEN];
	} ioctl_multicast_diag;
};

struct ieee80211req_node_tpc {
	uint8_t	mac_addr[6];
};

struct ieee80211req_node_info {
	uint8_t	req_type;
#define IOCTL_REQ_MEASUREMENT	0x0
#define IOCTL_REQ_TPC		0x1
	union {
		struct ieee80211req_node_meas	req_node_meas;
		struct ieee80211req_node_tpc	req_node_tpc;
	} u_req_info;
};

struct ieee80211_ioctl_neighbor_report_item {
	uint8_t bssid[IEEE80211_ADDR_LEN];
	uint32_t bssid_info;
	uint8_t operating_class;
	uint8_t channel;
	uint8_t phy_type;
};
#define IEEE80211_MAX_NEIGHBOR_REPORT_ITEM 3

struct ieee80211rep_node_meas_result {
	uint8_t	status;
#define IOCTL_MEAS_STATUS_SUCC		0
#define IOCTL_MEAS_STATUS_TIMEOUT	1
#define IOCTL_MEAS_STATUS_NODELEAVE	2
#define IOCTL_MEAS_STATUS_STOP		3

	uint8_t report_mode;
#define IOCTL_MEAS_REP_OK	(0)
#define IOCTL_MEAS_REP_LATE	(1 << 0)
#define IOCTL_MEAS_REP_INCAP	(1 << 1)
#define IOCTL_MEAS_REP_REFUSE	(1 << 2)
#define IOCTL_MEAS_REP_MASK	(0x07)

	union {
		uint8_t	basic;
		uint8_t	cca;
		uint8_t	rpi[8];
		uint8_t chan_load;
		struct {
			uint8_t antenna_id;
			uint8_t anpi;
			uint8_t ipi[11];
		} noise_his;
		struct {
			uint8_t reported_frame_info;
			uint8_t rcpi;
			uint8_t rsni;
			uint8_t bssid[IEEE80211_ADDR_LEN];
			uint8_t antenna_id;
			uint32_t parent_tsf;
		} beacon;
		struct {
			uint32_t sub_ele_report;
			uint8_t ta[IEEE80211_ADDR_LEN];
			uint8_t bssid[IEEE80211_ADDR_LEN];
			uint8_t phy_type;
			uint8_t avg_rcpi;
			uint8_t last_rsni;
			uint8_t last_rcpi;
			uint8_t antenna_id;
			uint16_t frame_count;
		} frame;
		struct {
			uint8_t reason;
			uint32_t tran_msdu_cnt;
			uint32_t msdu_discard_cnt;
			uint32_t msdu_fail_cnt;
			uint32_t msdu_mul_retry_cnt;
			uint32_t qos_lost_cnt;
			uint32_t avg_queue_delay;
			uint32_t avg_tran_delay;
			uint8_t bin0_range;
			uint32_t bins[6];
		} tran_stream_cat;
		struct {
			uint8_t reason;
			uint32_t mul_rec_msdu_cnt;
			uint16_t first_seq_num;
			uint16_t last_seq_num;
			uint16_t mul_rate;
		} multicast_diag;
		struct {
			struct {
				int8_t tx_power;
				int8_t link_margin;
			} tpc_report;
			uint8_t recv_antenna_id;
			uint8_t tran_antenna_id;
			uint8_t rcpi;
			uint8_t rsni;
		} link_measure;
		struct {
			uint8_t item_num;
			struct ieee80211_ioctl_neighbor_report_item item[IEEE80211_MAX_NEIGHBOR_REPORT_ITEM];
		} neighbor_report;
	} u_data;
};

struct ieee80211rep_node_tpc_result {
	uint8_t status;
	int8_t	tx_power;
	int8_t	link_margin;
};

union ieee80211rep_node_info {
	struct ieee80211rep_node_meas_result	meas_result;
	struct ieee80211rep_node_tpc_result	tpc_result;
};

/*
 * Station information block; the mac address is used
 * to retrieve other data like stats, unicast key, etc.
 */
struct ieee80211req_sta_info {
	uint16_t isi_len;		/* length (mult of 4) */
	uint16_t isi_freq;		/* MHz */
	uint16_t isi_flags;		/* channel flags */
	uint16_t isi_state;		/* state flags */
	uint8_t isi_authmode;		/* authentication algorithm */
	uint8_t isi_rssi;
	uint16_t isi_capinfo;		/* capabilities */
	uint8_t isi_athflags;		/* Atheros capabilities */
	uint8_t isi_erp;		/* ERP element */
	uint8_t isi_macaddr[IEEE80211_ADDR_LEN];
	uint8_t isi_nrates;		/* negotiated rates */
	uint8_t isi_rates[IEEE80211_RATE_MAXSIZE];
	uint8_t isi_txrate;		/* index to isi_rates[] */
	uint16_t isi_ie_len;		/* IE length */
	uint16_t isi_associd;		/* assoc response */
	uint16_t isi_txpower;		/* current tx power */
	uint16_t isi_vlan;		/* vlan tag */
	uint16_t isi_txseqs[17];	/* seq to be transmitted */
	uint16_t isi_rxseqs[17];	/* seq previous for qos frames*/
	uint16_t isi_inact;		/* inactivity timer */
	uint8_t isi_uapsd;		/* UAPSD queues */
	uint8_t isi_opmode;		/* sta operating mode */
	uint16_t isi_htcap;		/* HT capabilities */

	/* XXX frag state? */
	/* variable length IE data */
};

enum {
	IEEE80211_STA_OPMODE_NORMAL,
	IEEE80211_STA_OPMODE_XR
};

/*
 * Retrieve per-station information; to retrieve all
 * specify a mac address of ff:ff:ff:ff:ff:ff.
 */
struct ieee80211req_sta_req {
	union {
		/* NB: explicitly force 64-bit alignment */
		uint8_t macaddr[IEEE80211_ADDR_LEN];
		uint64_t pad;
	} is_u;
	struct ieee80211req_sta_info info[1];	/* variable length */
};

/*
 * Get/set per-station tx power cap.
 */
struct ieee80211req_sta_txpow {
	uint8_t	it_macaddr[IEEE80211_ADDR_LEN];
	uint8_t	it_txpow;
};

/*
 * WME parameters are set and return using i_val and i_len.
 * i_val holds the value itself.  i_len specifies the AC
 * and, as appropriate, then high bit specifies whether the
 * operation is to be applied to the BSS or ourself.
 */
#define	IEEE80211_WMEPARAM_SELF	0x0000		/* parameter applies to self */
#define	IEEE80211_WMEPARAM_BSS	0x8000		/* parameter applies to BSS */
#define	IEEE80211_WMEPARAM_VAL	0x7fff		/* parameter value */

/*
 * Scan result data returned for IEEE80211_IOC_SCAN_RESULTS.
 */
struct ieee80211req_scan_result {
	uint16_t isr_len;		/* length (mult of 4) */
	uint16_t isr_freq;		/* MHz */
	uint16_t isr_flags;		/* channel flags */
	uint8_t isr_noise;
	uint8_t isr_rssi;
	uint8_t isr_intval;		/* beacon interval */
	uint16_t isr_capinfo;		/* capabilities */
	uint8_t isr_erp;		/* ERP element */
	uint8_t isr_bssid[IEEE80211_ADDR_LEN];
	uint8_t isr_nrates;
	uint8_t isr_rates[IEEE80211_RATE_MAXSIZE];
	uint8_t isr_ssid_len;		/* SSID length */
	uint8_t isr_ie_len;		/* IE length */
	uint8_t isr_pad[5];
	/* variable length SSID followed by IE data */
};

#define IEEE80211_MAX_ASSOC_HISTORY	32

struct ieee80211_assoc_history {
	uint8_t  ah_macaddr_table[IEEE80211_MAX_ASSOC_HISTORY][IEEE80211_ADDR_LEN];
	uint32_t ah_timestamp[IEEE80211_MAX_ASSOC_HISTORY];
};

/*
 * Channel switch history record.
 */
#define CSW_MAX_RECORDS_MAX 32
struct ieee80211req_csw_record {
	uint32_t cnt;
	int32_t index;
	uint32_t channel[CSW_MAX_RECORDS_MAX];
	uint32_t timestamp[CSW_MAX_RECORDS_MAX];
	uint32_t reason[CSW_MAX_RECORDS_MAX];
	uint8_t csw_record_mac[CSW_MAX_RECORDS_MAX][IEEE80211_ADDR_LEN];
};

struct ieee80211req_radar_status {
	uint32_t channel;
	uint32_t flags;
	uint32_t ic_radardetected;
};

struct ieee80211req_disconn_info {
	uint32_t asso_sta_count;
	uint32_t disconn_count;
	uint32_t sequence;
	uint32_t up_time;
	uint32_t resetflag;
};

#define AP_SCAN_MAX_NUM_RATES 32
/* for qcsapi_get_results_AP_scan */
struct ieee80211_general_ap_scan_result {
	int32_t num_bitrates;
	int32_t bitrates[AP_SCAN_MAX_NUM_RATES];
	int32_t num_ap_results;
};

struct ieee80211_per_ap_scan_result {
	int8_t		ap_addr_mac[IEEE80211_ADDR_LEN];
	int8_t		ap_name_ssid[32 + 1];
	int32_t		ap_channel_ieee;
	int32_t		ap_max_bw;
	int32_t		ap_rssi;
	int32_t		ap_flags;
	int32_t		ap_htcap;
	int32_t		ap_vhtcap;
	int8_t		ap_qhop_role;
	uint32_t	ap_bestrate;
	int32_t		ap_num_genies;
	uint16_t	ap_beacon_intval;
	uint8_t		ap_dtim_intval;
	uint8_t		ap_is_ess;
	int8_t		ap_ie_buf[0];	/* just to remind there might be WPA/RSN/WSC IEs right behind*/
};

#define MAX_MACS_SIZE	1200 /* 200 macs */
/* Report results of get mac address of clients behind associated node */
struct ieee80211_mac_list {
	/**
	 * flags indicating
	 * bit 0 set means addresses are behind 4 addr node
	 * bit 1 set means results are truncated to fit to buffer
	 */
	uint32_t flags;
	/**
	 * num entries in the macaddr list below
	 */
	uint32_t num_entries;
	/**
	 * buffer to store mac addresses
	 */
	uint8_t macaddr[MAX_MACS_SIZE];
};

#ifdef __FreeBSD__
/*
 * FreeBSD-style ioctls.
 */
/* the first member must be matched with struct ifreq */
struct ieee80211req {
	char i_name[IFNAMSIZ];	/* if_name, e.g. "wi0" */
	uint16_t i_type;	/* req type */
	int16_t	i_val;		/* Index or simple value */
	int16_t	i_len;		/* Index or simple value */
	void *i_data;		/* Extra data */
};
#define	SIOCS80211		 _IOW('i', 234, struct ieee80211req)
#define	SIOCG80211		_IOWR('i', 235, struct ieee80211req)
#define	SIOCG80211STATS		_IOWR('i', 236, struct ifreq)
#define	SIOC80211IFCREATE	_IOWR('i', 237, struct ifreq)
#define	SIOC80211IFDESTROY	 _IOW('i', 238, struct ifreq)

#define IEEE80211_IOC_SSID		1
#define IEEE80211_IOC_NUMSSIDS		2
#define IEEE80211_IOC_WEP		3
#define	IEEE80211_WEP_NOSUP		-1
#define	IEEE80211_WEP_OFF		0
#define	IEEE80211_WEP_ON		1
#define	IEEE80211_WEP_MIXED		2
#define IEEE80211_IOC_WEPKEY		4
#define IEEE80211_IOC_NUMWEPKEYS	5
#define IEEE80211_IOC_WEPTXKEY		6
#define IEEE80211_IOC_AUTHMODE		7
#define IEEE80211_IOC_STATIONNAME	8
#define IEEE80211_IOC_CHANNEL		9
#define IEEE80211_IOC_POWERSAVE		10
#define	IEEE80211_POWERSAVE_NOSUP	-1
#define	IEEE80211_POWERSAVE_OFF		0
#define	IEEE80211_POWERSAVE_CAM		1
#define	IEEE80211_POWERSAVE_PSP		2
#define	IEEE80211_POWERSAVE_PSP_CAM	3
#define	IEEE80211_POWERSAVE_ON		IEEE80211_POWERSAVE_CAM
#define IEEE80211_IOC_POWERSAVESLEEP	11
#define	IEEE80211_IOC_RTSTHRESHOLD	12
#define IEEE80211_IOC_PROTMODE		13
#define	IEEE80211_PROTMODE_OFF		0
#define	IEEE80211_PROTMODE_CTS		1
#define	IEEE80211_PROTMODE_RTSCTS	2
#define	IEEE80211_IOC_TXPOWER		14	/* global tx power limit */
#define	IEEE80211_IOC_BSSID		15
#define	IEEE80211_IOC_ROAMING		16	/* roaming mode */
#define	IEEE80211_IOC_PRIVACY		17	/* privacy invoked */
#define	IEEE80211_IOC_DROPUNENCRYPTED	18	/* discard unencrypted frames */
#define	IEEE80211_IOC_WPAKEY		19
#define	IEEE80211_IOC_DELKEY		20
#define	IEEE80211_IOC_MLME		21
#define	IEEE80211_IOC_OPTIE		22	/* optional info. element */
#define	IEEE80211_IOC_SCAN_REQ		23
#define	IEEE80211_IOC_SCAN_RESULTS	24
#define	IEEE80211_IOC_COUNTERMEASURES	25	/* WPA/TKIP countermeasures */
#define	IEEE80211_IOC_WPA		26	/* WPA mode (0,1,2) */
#define	IEEE80211_IOC_CHANLIST		27	/* channel list */
#define	IEEE80211_IOC_WME		28	/* WME mode (on, off) */
#define	IEEE80211_IOC_HIDESSID		29	/* hide SSID mode (on, off) */
#define IEEE80211_IOC_APBRIDGE		30	/* AP inter-sta bridging */
#define	IEEE80211_IOC_MCASTCIPHER	31	/* multicast/default cipher */
#define	IEEE80211_IOC_MCASTKEYLEN	32	/* multicast key length */
#define	IEEE80211_IOC_UCASTCIPHERS	33	/* unicast cipher suites */
#define	IEEE80211_IOC_UCASTCIPHER	34	/* unicast cipher */
#define	IEEE80211_IOC_UCASTKEYLEN	35	/* unicast key length */
#define	IEEE80211_IOC_DRIVER_CAPS	36	/* driver capabilities */
#define	IEEE80211_IOC_KEYMGTALGS	37	/* key management algorithms */
#define	IEEE80211_IOC_RSNCAPS		38	/* RSN capabilities */
#define	IEEE80211_IOC_WPAIE		39	/* WPA information element */
#define	IEEE80211_IOC_STA_STATS		40	/* per-station statistics */
#define	IEEE80211_IOC_MACCMD		41	/* MAC ACL operation */
#define	IEEE80211_IOC_TXPOWMAX		43	/* max tx power for channel */
#define	IEEE80211_IOC_STA_TXPOW		44	/* per-station tx power limit */
#define	IEEE80211_IOC_STA_INFO		45	/* station/neighbor info */
#define	IEEE80211_IOC_WME_CWMIN		46	/* WME: ECWmin */
#define	IEEE80211_IOC_WME_CWMAX		47	/* WME: ECWmax */
#define	IEEE80211_IOC_WME_AIFS		48	/* WME: AIFSN */
#define	IEEE80211_IOC_WME_TXOPLIMIT	49	/* WME: txops limit */
#define	IEEE80211_IOC_WME_ACM		50	/* WME: ACM (bss only) */
#define	IEEE80211_IOC_WME_ACKPOLICY	51	/* WME: ACK policy (!bss only)*/
#define	IEEE80211_IOC_DTIM_PERIOD	52	/* DTIM period (beacons) */
#define	IEEE80211_IOC_BEACON_INTERVAL	53	/* beacon interval (ms) */
#define	IEEE80211_IOC_ADDMAC		54	/* add sta to MAC ACL table */
#define	IEEE80211_IOC_DELMAC		55	/* del sta from MAC ACL table */
#define	IEEE80211_IOC_FF		56	/* ATH fast frames (on, off) */
#define	IEEE80211_IOC_TURBOP		57	/* ATH turbo' (on, off) */
#define	IEEE80211_IOC_APPIEBUF		58	/* IE in the management frame */
#define	IEEE80211_IOC_FILTERFRAME	59	/* management frame filter */

/*
 * Scan result data returned for IEEE80211_IOC_SCAN_RESULTS.
 */
struct ieee80211req_scan_result {
	uint16_t isr_len;		/* length (mult of 4) */
	uint16_t isr_freq;		/* MHz */
	uint16_t isr_flags;		/* channel flags */
	uint8_t isr_noise;
	uint8_t isr_rssi;
	uint8_t isr_intval;		/* beacon interval */
	uint16_t isr_capinfo;		/* capabilities */
	uint8_t isr_erp;		/* ERP element */
	uint8_t isr_bssid[IEEE80211_ADDR_LEN];
	uint8_t isr_nrates;
	uint8_t isr_rates[IEEE80211_RATE_MAXSIZE];
	uint8_t isr_ssid_len;		/* SSID length */
	uint8_t isr_ie_len;		/* IE length */
	uint8_t isr_pad[5];
	/* variable length SSID followed by IE data */
};

#endif /* __FreeBSD__ */

#if defined(__linux__) || defined(MUC_BUILD) || defined(DSP_BUILD)
/*
 * Wireless Extensions API, private ioctl interfaces.
 *
 * NB: Even-numbered ioctl numbers have set semantics and are privileged!
 *     (regardless of the incorrect comment in wireless.h!)
 */
#ifdef __KERNEL__
#include <linux/if.h>
#endif
#define	IEEE80211_IOCTL_SETPARAM	(SIOCIWFIRSTPRIV+0)
#define	IEEE80211_IOCTL_GETPARAM	(SIOCIWFIRSTPRIV+1)
#define	IEEE80211_IOCTL_SETMODE		(SIOCIWFIRSTPRIV+2)
#define	IEEE80211_IOCTL_GETMODE		(SIOCIWFIRSTPRIV+3)
#define	IEEE80211_IOCTL_SETWMMPARAMS	(SIOCIWFIRSTPRIV+4)
#define	IEEE80211_IOCTL_GETWMMPARAMS	(SIOCIWFIRSTPRIV+5)
#define	IEEE80211_IOCTL_SETCHANLIST	(SIOCIWFIRSTPRIV+6)
#define	IEEE80211_IOCTL_GETCHANLIST	(SIOCIWFIRSTPRIV+7)
#define	IEEE80211_IOCTL_CHANSWITCH	(SIOCIWFIRSTPRIV+8)
#define	IEEE80211_IOCTL_GET_APPIEBUF	(SIOCIWFIRSTPRIV+9)
#define	IEEE80211_IOCTL_SET_APPIEBUF	(SIOCIWFIRSTPRIV+10)
#define	IEEE80211_IOCTL_FILTERFRAME	(SIOCIWFIRSTPRIV+12)
#define	IEEE80211_IOCTL_GETCHANINFO	(SIOCIWFIRSTPRIV+13)
#define	IEEE80211_IOCTL_SETOPTIE	(SIOCIWFIRSTPRIV+14)
#define	IEEE80211_IOCTL_GETOPTIE	(SIOCIWFIRSTPRIV+15)
#define	IEEE80211_IOCTL_SETMLME		(SIOCIWFIRSTPRIV+16)
#define	IEEE80211_IOCTL_RADAR		(SIOCIWFIRSTPRIV+17)
#define	IEEE80211_IOCTL_SETKEY		(SIOCIWFIRSTPRIV+18)
#define	IEEE80211_IOCTL_POSTEVENT	(SIOCIWFIRSTPRIV+19)
#define	IEEE80211_IOCTL_DELKEY		(SIOCIWFIRSTPRIV+20)
#define	IEEE80211_IOCTL_TXEAPOL		(SIOCIWFIRSTPRIV+21)
#define	IEEE80211_IOCTL_ADDMAC		(SIOCIWFIRSTPRIV+22)
#define	IEEE80211_IOCTL_STARTCCA	(SIOCIWFIRSTPRIV+23)
#define	IEEE80211_IOCTL_DELMAC		(SIOCIWFIRSTPRIV+24)
#define IEEE80211_IOCTL_GETSTASTATISTIC	(SIOCIWFIRSTPRIV+25)
#define	IEEE80211_IOCTL_WDSADDMAC	(SIOCIWFIRSTPRIV+26)
#define	IEEE80211_IOCTL_WDSDELMAC	(SIOCIWFIRSTPRIV+28)
#define IEEE80211_IOCTL_GETBLOCK	(SIOCIWFIRSTPRIV+29)
#define	IEEE80211_IOCTL_KICKMAC		(SIOCIWFIRSTPRIV+30)
#define	IEEE80211_IOCTL_DFSACTSCAN	(SIOCIWFIRSTPRIV+31)

#define IEEE80211_AMPDU_MIN_DENSITY	0
#define IEEE80211_AMPDU_MAX_DENSITY	7

#define IEEE80211_CCE_PREV_CHAN_SHIFT	8

enum {
	IEEE80211_PARAM_TURBO		= 1,	/* turbo mode */
	IEEE80211_PARAM_MODE		= 2,	/* phy mode (11a, 11b, etc.) */
	IEEE80211_PARAM_AUTHMODE	= 3,	/* authentication mode */
	IEEE80211_PARAM_PROTMODE	= 4,	/* 802.11g protection */
	IEEE80211_PARAM_MCASTCIPHER	= 5,	/* multicast/default cipher */
	IEEE80211_PARAM_MCASTKEYLEN	= 6,	/* multicast key length */
	IEEE80211_PARAM_UCASTCIPHERS	= 7,	/* unicast cipher suites */
	IEEE80211_PARAM_UCASTCIPHER	= 8,	/* unicast cipher */
	IEEE80211_PARAM_UCASTKEYLEN	= 9,	/* unicast key length */
	IEEE80211_PARAM_WPA		= 10,	/* WPA mode (0,1,2) */
	IEEE80211_PARAM_ROAMING		= 12,	/* roaming mode */
	IEEE80211_PARAM_PRIVACY		= 13,	/* privacy invoked */
	IEEE80211_PARAM_COUNTERMEASURES	= 14,	/* WPA/TKIP countermeasures */
	IEEE80211_PARAM_DROPUNENCRYPTED	= 15,	/* discard unencrypted frames */
	IEEE80211_PARAM_DRIVER_CAPS	= 16,	/* driver capabilities */
	IEEE80211_PARAM_MACCMD		= 17,	/* MAC ACL operation */
	IEEE80211_PARAM_WMM		= 18,	/* WMM mode (on, off) */
	IEEE80211_PARAM_HIDESSID	= 19,	/* hide SSID mode (on, off) */
	IEEE80211_PARAM_APBRIDGE	= 20,   /* AP inter-sta bridging */
	IEEE80211_PARAM_KEYMGTALGS	= 21,	/* key management algorithms */
	IEEE80211_PARAM_RSNCAPS		= 22,	/* RSN capabilities */
	IEEE80211_PARAM_INACT		= 23,	/* station inactivity timeout */
	IEEE80211_PARAM_INACT_AUTH	= 24,	/* station auth inact timeout */
	IEEE80211_PARAM_INACT_INIT	= 25,	/* station init inact timeout */
	IEEE80211_PARAM_ABOLT		= 26,	/* Atheros Adv. Capabilities */
	IEEE80211_PARAM_DTIM_PERIOD	= 28,	/* DTIM period (beacons) */
	IEEE80211_PARAM_BEACON_INTERVAL	= 29,	/* beacon interval (ms) */
	IEEE80211_PARAM_DOTH		= 30,	/* 11.h is on/off */
	IEEE80211_PARAM_PWRCONSTRAINT	= 31,	/* Current Channel Pwr Constraint */
	IEEE80211_PARAM_GENREASSOC	= 32,	/* Generate a reassociation request */
	IEEE80211_PARAM_COMPRESSION	= 33,	/* compression */
	IEEE80211_PARAM_FF		= 34,	/* fast frames support  */
	IEEE80211_PARAM_XR		= 35,	/* XR support */
	IEEE80211_PARAM_BURST		= 36,	/* burst mode */
	IEEE80211_PARAM_PUREG		= 37,	/* pure 11g (no 11b stations) */
	IEEE80211_PARAM_REPEATER	= 38,	/* simultaneous AP and STA mode */
	IEEE80211_PARAM_WDS		= 39,	/* Enable 4 address processing */
	IEEE80211_PARAM_BGSCAN		= 40,	/* bg scanning (on, off) */
	IEEE80211_PARAM_BGSCAN_IDLE	= 41,	/* bg scan idle threshold */
	IEEE80211_PARAM_BGSCAN_INTERVAL	= 42,	/* bg scan interval */
	IEEE80211_PARAM_MCAST_RATE	= 43,	/* Multicast Tx Rate */
	IEEE80211_PARAM_COVERAGE_CLASS	= 44,	/* coverage class */
	IEEE80211_PARAM_COUNTRY_IE	= 45,	/* enable country IE */
	IEEE80211_PARAM_SCANVALID	= 46,	/* scan cache valid threshold */
	IEEE80211_PARAM_ROAM_RSSI_11A	= 47,	/* rssi threshold in 11a */
	IEEE80211_PARAM_ROAM_RSSI_11B	= 48,	/* rssi threshold in 11b */
	IEEE80211_PARAM_ROAM_RSSI_11G	= 49,	/* rssi threshold in 11g */
	IEEE80211_PARAM_ROAM_RATE_11A	= 50,	/* tx rate threshold in 11a */
	IEEE80211_PARAM_ROAM_RATE_11B	= 51,	/* tx rate threshold in 11b */
	IEEE80211_PARAM_ROAM_RATE_11G	= 52,	/* tx rate threshold in 11g */
	IEEE80211_PARAM_UAPSDINFO	= 53,	/* value for qos info field */
	IEEE80211_PARAM_SLEEP		= 54,	/* force sleep/wake */
	IEEE80211_PARAM_QOSNULL		= 55,	/* force sleep/wake */
	IEEE80211_PARAM_PSPOLL		= 56,	/* force ps-poll generation (sta only) */
	IEEE80211_PARAM_EOSPDROP	= 57,	/* force uapsd EOSP drop (ap only) */
	IEEE80211_PARAM_MARKDFS		= 58,	/* mark a dfs interference channel when found */
	IEEE80211_PARAM_REGCLASS	= 59,	/* enable regclass ids in country IE */
	IEEE80211_PARAM_DROPUNENC_EAPOL	= 60,	/* drop unencrypted eapol frames */
	IEEE80211_PARAM_SHPREAMBLE	= 61,	/* Short Preamble */
	IEEE80211_PARAM_FIXED_TX_RATE = 62,	/* Set fixed TX rate          */
	IEEE80211_PARAM_MIMOMODE = 63,		/* Select antenna to use      */
	IEEE80211_PARAM_AGGREGATION	= 64,	/* Enable/disable aggregation */
	IEEE80211_PARAM_RETRY_COUNT = 65,	/* Set retry count            */
	IEEE80211_PARAM_VAP_DBG    = 66,		/* Set the VAP debug verbosity . */
	IEEE80211_PARAM_VCO_CALIB = 67,		/* Set VCO calibration */
	IEEE80211_PARAM_EXP_MAT_SEL = 68,	/* Select different exp mat */
	IEEE80211_PARAM_BW_SEL = 69,		/* Select BW */
	IEEE80211_PARAM_RG = 70,			/* Let software fill in the duration update*/
	IEEE80211_PARAM_BW_SEL_MUC = 71,	/* Let software fill in the duration update*/
	IEEE80211_PARAM_ACK_POLICY = 72,	/* 1 for ACK, zero for no ACK */
	IEEE80211_PARAM_LEGACY_MODE = 73,	/* 1 for legacy, zero for HT*/
	IEEE80211_PARAM_MAX_AGG_SUBFRM = 74,	/* Maximum number if subframes to allow for aggregation */
	IEEE80211_PARAM_ADD_WDS_MAC = 75,	/* Add MAC address for WDS peer */
	IEEE80211_PARAM_DEL_WDS_MAC = 76,	/* Delete MAC address for WDS peer */
	IEEE80211_PARAM_TXBF_CTRL = 77,		/* Control TX beamforming */
	IEEE80211_PARAM_TXBF_PERIOD = 78,	/* Set TX beamforming period */
	IEEE80211_PARAM_BSSID = 79,			/* Set BSSID */
	IEEE80211_PARAM_HTBA_SEQ_CTRL = 80, /* Control HT Block ACK */
	IEEE80211_PARAM_HTBA_SIZE_CTRL = 81, /* Control HT Block ACK */
	IEEE80211_PARAM_HTBA_TIME_CTRL = 82, /* Control HT Block ACK */
	IEEE80211_PARAM_HT_ADDBA = 83,		/* ADDBA control */
	IEEE80211_PARAM_HT_DELBA = 84,		/* DELBA control */
	IEEE80211_PARAM_CHANNEL_NOSCAN = 85, /* Disable the scanning for fixed channels */
	IEEE80211_PARAM_MUC_PROFILE = 86,	/* Control MuC profiling */
	IEEE80211_PARAM_MUC_PHY_STATS = 87,	/* Control MuC phy stats */
	IEEE80211_PARAM_MUC_SET_PARTNUM = 88,	/* set muc part num for cal */
	IEEE80211_PARAM_ENABLE_GAIN_ADAPT = 89,	/* turn on the anlg gain tuning */
	IEEE80211_PARAM_GET_RFCHIP_ID = 90,	/* Get RF chip frequency id */
	IEEE80211_PARAM_GET_RFCHIP_VERID = 91,	/* Get RF chip version id */
	IEEE80211_PARAM_ADD_WDS_MAC_DOWN = 92,	/* Add MAC address for WDS downlink peer */
	IEEE80211_PARAM_SHORT_GI = 93,		/* Set to 1 for turning on SGI */
	IEEE80211_PARAM_LINK_LOSS = 94,		/* Set to 1 for turning on Link Loss feature */
	IEEE80211_PARAM_BCN_MISS_THR = 95,	/* Set to 0 for default value (50 Beacons). */
	IEEE80211_PARAM_FORCE_SMPS = 96,	/* Force the SMPS mode to transition the mode (STA) - includes
						 * sending out the ACTION frame to the AP. */
	IEEE80211_PARAM_FORCEMICERROR = 97,	/* Force a MIC error - does loopback through the MUC back up to QDRV thence
						 * through the normal TKIP MIC error path. */
	IEEE80211_PARAM_ENABLECOUNTERMEASURES = 98, /* Enable/disable countermeasures */
	IEEE80211_PARAM_IMPLICITBA = 99,	/* Set the implicit BA flags in the QIE */
	IEEE80211_PARAM_CLIENT_REMOVE = 100,	/* Remove clients but DON'T deauth them */
	IEEE80211_PARAM_SHOWMEM = 101,		/* If debug build for MALLOC/FREE, show the summary view */
	IEEE80211_PARAM_SCANSTATUS = 102,	/* Get scanning state */
	IEEE80211_PARAM_GLOBAL_BA_CONTROL = 103, /* Set the global BA flags */
	IEEE80211_PARAM_NO_SSID_ASSOC = 104,	/* Enable/disable associations without SSIDs */
	IEEE80211_PARAM_FIXED_SGI = 105,	/* Choose between node based SGI or fixed SGI */
	IEEE80211_PARAM_CONFIG_TXPOWER = 106,	/* configure TX power for a band (start chan to stop chan) */
	IEEE80211_PARAM_SKB_LIST_MAX = 107,	/* Configure the max len of the skb list shared b/n drivers */
	IEEE80211_PARAM_VAP_STATS = 108,		/* Show VAP stats */
	IEEE80211_PARAM_RATE_CTRL_FLAGS = 109,  /* Configure flags to tweak rate control algorithm */
	IEEE80211_PARAM_LDPC = 110, /* Enabling/disabling LDPC */
	IEEE80211_PARAM_DFS_FAST_SWITCH = 111,  /* On detection of radar, select a non-DFS channel and switch immediately */
	IEEE80211_PARAM_11N_40_ONLY_MODE = 112, /* Support for 11n 40MHZ only mode */
	IEEE80211_PARAM_AMPDU_DENSITY = 113,	/* AMPDU DENSITY CONTROL */
	IEEE80211_PARAM_SCAN_NO_DFS = 114,	/* On detection of radar, avoid DFS channels; AP only */
	IEEE80211_PARAM_REGULATORY_REGION = 115, /* set the regulatory region */
	IEEE80211_PARAM_CONFIG_BB_INTR_DO_SRESET = 116, /* enable or disable sw reset for BB interrupt */
	IEEE80211_PARAM_CONFIG_MAC_INTR_DO_SRESET = 117, /* enable or disable sw reset for MAC interrupt */
	IEEE80211_PARAM_CONFIG_WDG_DO_SRESET = 118, /* enable or disable sw reset triggered by watchdog */
	IEEE80211_PARAM_TRIGGER_RESET = 119,	/* trigger reset for MAC/BB */
	IEEE80211_PARAM_INJECT_INVALID_FCS = 120, /* inject bad FCS to induce tx hang */
	IEEE80211_PARAM_CONFIG_WDG_SENSITIVITY = 121, /* higher value means less sensitive */
	IEEE80211_PARAM_SAMPLE_RATE = 122,	/* Set data sampling rate */
	IEEE80211_PARAM_MCS_CAP = 123,		/* Configure an MCS cap rate - for debugging */
	IEEE80211_PARAM_MAX_MGMT_FRAMES = 124,	/* Max number of mgmt frames not complete */
	IEEE80211_PARAM_MCS_ODD_EVEN = 125,	/* Configure the rate adapt algorithm to only use odd or even MCSs */
	IEEE80211_PARAM_BLACKLIST_GET = 126,	/* List blacklisted stations. */
	IEEE80211_PARAM_BA_MAX_WIN_SIZE = 128,  /* Maximum BA window size allowed on TX and RX */
	IEEE80211_PARAM_RESTRICTED_MODE = 129,	/* Enable or disable restricted mode */
	IEEE80211_PARAM_BB_MAC_RESET_MSGS = 130, /* Enable / disable display of BB amd MAC reset messages */
	IEEE80211_PARAM_PHY_STATS_MODE = 131,	/* Mode for get_phy_stats */
	IEEE80211_PARAM_BB_MAC_RESET_DONE_WAIT = 132, /* Set max wait for tx or rx before reset (secs) */
	IEEE80211_PARAM_MIN_DWELL_TIME_ACTIVE = 133,  /* min dwell time for an active channel */
	IEEE80211_PARAM_MIN_DWELL_TIME_PASSIVE = 134, /* min dwell time for a passive channel */
	IEEE80211_PARAM_MAX_DWELL_TIME_ACTIVE = 135,  /* max dwell time for an active channel */
	IEEE80211_PARAM_MAX_DWELL_TIME_PASSIVE = 136, /* max dwell time for a passive channel */
	IEEE80211_PARAM_TX_AGG_TIMEOUT = 137, /* Configure timeout for TX aggregation */
	IEEE80211_PARAM_LEGACY_RETRY_LIMIT = 138, /* Times to retry sending non-AMPDU packets (0-16) per rate */
	IEEE80211_PARAM_TRAINING_COUNT = 139,	/* Training count for rate retry algorithm (QoS NULL to STAs after assoc) */
	IEEE80211_PARAM_DYNAMIC_AC = 140,	/* Enable / disable dynamic 1 bit auto correlation algo */
	IEEE80211_PARAM_DUMP_TRIGGER = 141,	/* Request immediate dump */
	IEEE80211_PARAM_DUMP_TCM_FD = 142,	/* Dump TCM frame descriptors */
	IEEE80211_PARAM_RXCSR_ERR_ALLOW = 143,	/* allow or disallow errors packets passed to MuC */
	IEEE80211_PARAM_STOP_FLAGS = 144,	/* Alter flags where a debug halt would be performed on error conditions */
	IEEE80211_PARAM_CHECK_FLAGS = 145,	/* Alter flags for additional runtime checks */
	IEEE80211_PARAM_RX_CTRL_FILTER = 146,   /* Set the control packet filter on hal. */
	IEEE80211_PARAM_SCS = 147,		/* ACI/CCI Detection and Mitigation*/
	IEEE80211_PARAM_ALT_CHAN = 148,		/* set the chan to jump to if radar is detected */
	IEEE80211_PARAM_QTN_BCM_WAR = 149, /* Workaround for BCM receiver not accepting last aggr */
	IEEE80211_PARAM_GI_SELECT = 150,	/* Enable or disable dynamic GI selection */
	IEEE80211_PARAM_RADAR_NONOCCUPY_PERIOD = 151,	/* Specify non-occupancy period for radar */
	IEEE80211_PARAM_RADAR_NONOCCUPY_ACT_SCAN = 152,	/* non-occupancy expire scan/no-action */
	IEEE80211_PARAM_MC_LEGACY_RATE = 153, /* Legacy multicast rate table */
	IEEE80211_PARAM_LDPC_ALLOW_NON_QTN = 154, /* Allow non QTN nodes to use LDPC */
	IEEE80211_PARAM_FWD_UNKNOWN_MC = 155,	/* forward unknown IP multicast */
	IEEE80211_PARAM_BCST_4 = 156, /* Reliable (4 addr encapsulated) broadcast to all clients */
	IEEE80211_PARAM_AP_FWD_LNCB = 157, /* AP forward LNCB packets from the STA to other STAs */
	IEEE80211_PARAM_PPPC_SELECT = 158, /* Per packet power control */
	IEEE80211_PARAM_TEST_LNCB = 159, /* Test LNCB code - leaks, drops etc. */
	IEEE80211_PARAM_STBC = 160, /* Enabling/disabling STBC */
	IEEE80211_PARAM_RTS_CTS = 161, /* Enabling/disabling RTS-CTS */
	IEEE80211_PARAM_GET_DFS_CCE = 162,	/* Get most recent DFS Channel Change Event */
	IEEE80211_PARAM_GET_SCS_CCE = 163,	/* Get most recent SCS (ACI/CCI) Channel Change Event */
	IEEE80211_PARAM_GET_CH_INUSE = 164,	/* Enable printing of channels in Use at end of scan */
	IEEE80211_PARAM_RX_AGG_TIMEOUT = 165,	/* RX aggregation timeout value (ms) */
	IEEE80211_PARAM_FORCE_MUC_HALT = 166,	/* Force MUC halt debug code. */
	IEEE80211_PARAM_FORCE_ENABLE_TRIGGERS= 167,	/* Enable trace triggers */
	IEEE80211_PARAM_FORCE_MUC_TRACE = 168,	/* MuC trace force without halt */
	IEEE80211_PARAM_BK_BITMAP_MODE = 169,   /* back bit map mode set */
	IEEE80211_PARAM_PROBE_RES_RETRIES = 170,/* Controls probe response retries */
	IEEE80211_PARAM_MUC_FLAGS = 171,	/* MuC flags */
	IEEE80211_PARAM_HT_NSS_CAP = 172,	/* Set max spatial streams for HT mode */
	IEEE80211_PARAM_ASSOC_LIMIT = 173,	/* STA assoc limit */
	IEEE80211_PARAM_PWR_ADJUST_SCANCNT = 174,	/* Enable power Adjust if nearby stations don't associate */
	IEEE80211_PARAM_PWR_ADJUST = 175,	/* ioctl to adjust rx gain */
	IEEE80211_PARAM_PWR_ADJUST_AUTO = 176,	/* Enable auto RX gain adjust when associated */
	IEEE80211_PARAM_UNKNOWN_DEST_ARP = 177,	/* Send ARP requests for unknown destinations */
	IEEE80211_PARAM_UNKNOWN_DEST_FWD = 178,	/* Send unknown dest pkt to all bridge STAs */
	IEEE80211_PARAM_DBG_MODE_FLAGS = 179,	/* set/clear debug mode flags */
	IEEE80211_PARAM_ASSOC_HISTORY = 180,	/* record of remote nodes that have associated by MAC address */
	IEEE80211_PARAM_CSW_RECORD = 181,	/* get channel switch record data */
	IEEE80211_PARAM_RESTRICT_RTS = 182,     /* HW xretry failures before switching to RTS mode */
	IEEE80211_PARAM_RESTRICT_LIMIT = 183,   /* RTS xretry failures before starting restricted mode */
	IEEE80211_PARAM_AP_ISOLATE = 184,	/* set ap isolation mode */
	IEEE80211_PARAM_IOT_TWEAKS = 185,	/* mask to switch on / off IOT tweaks */
	IEEE80211_PARAM_SWRETRY_AGG_MAX = 186,	/* max sw retries for ampdus */
	IEEE80211_PARAM_SWRETRY_NOAGG_MAX = 187,/* max sw retries for non-agg mpdus */
	IEEE80211_PARAM_BSS_ASSOC_LIMIT = 188, /* STA assoc limit for a VAP */
	IEEE80211_PARAM_VSP_NOD_DEBUG = 190,	/* turn on/off NOD debugs for VSP */
	IEEE80211_PARAM_CCA_PRI = 191,		/* Primary CCA threshold */
	IEEE80211_PARAM_CCA_SEC = 192,		/* Secondary CCA threshold */
	IEEE80211_PARAM_DYN_AGG_TIMEOUT = 193,	/* Enable feature which try to prevent unnecessary waiting of aggregate before sending */
	IEEE80211_PARAM_HW_BONDING = 194,	/* HW bonding option */
	IEEE80211_PARAM_PS_CMD = 195,		/* Command to enable, disable, etc probe select for matrices */
	IEEE80211_PARAM_PWR_SAVE = 196,		/* Power save parameter ctrl */
	IEEE80211_PARAM_DBG_FD = 197,		/* Debug FD alloc/free */
	IEEE80211_PARAM_DISCONN_CNT = 198,	/* get count of disconnection event */
	IEEE80211_PARAM_FAST_REASSOC = 199,	/* Do a fast reassociation */
	IEEE80211_PARAM_SIFS_TIMING = 200,	/* SIFS timing */
	IEEE80211_PARAM_TEST_TRAFFIC = 201,	/* Test Traffic start|stop control */
	IEEE80211_PARAM_TX_AMSDU = 202,		/* Disable/enable AMSDU and/or Adaptive AMSDU for transmission to Quantenna clients */
	IEEE80211_PARAM_SCS_DFS_REENTRY_REQUEST = 203,	/* DFS re-entry request from SCS */
	IEEE80211_PARAM_QCAT_STATE = 204,	/* QCAT state information */
	IEEE80211_PARAM_RALG_DBG = 205,		/* Rate adaptation debugging */
	IEEE80211_PARAM_PPPC_STEP = 206,	/* PPPC step size control */
	IEEE80211_PARAM_QTN_BGSCAN_DWELL_TIME_ACTIVE = 207,  /* Quantenna bgscan dwell time for an active channel */
	IEEE80211_PARAM_QTN_BGSCAN_DWELL_TIME_PASSIVE = 208, /* Quantenna bgscan dwell time for a passive channel */
	IEEE80211_PARAM_QTN_BGSCAN_DEBUG = 209,	/* Quantenna background scan debugging */
	IEEE80211_PARAM_CONFIG_REGULATORY_TXPOWER = 210,	/* configure regulatory TX power for a band (start chan to stop chan) */
	IEEE80211_PARAM_SINGLE_AGG_QUEUING = 211,	/* Queue only AMPDU fd at a time on a given tid till all sw retries are done */
	IEEE80211_PARAM_CSA_FLAG = 212,         /* Channel switch announcement flag */
	IEEE80211_PARAM_BR_IP_ADDR = 213,
	IEEE80211_PARAM_REMAP_QOS = 214,	/* Command to enable, disable, qos remap feature, asked by customer */
	IEEE80211_PARAM_DEF_MATRIX = 215,	/* Use default expansion matrices */
	IEEE80211_PARAM_SCS_CCA_INTF = 216,	/* CCA interference for a channel */
	IEEE80211_PARAM_CONFIG_TPC_INTERVAL = 217,	/* periodical tpc request interval */
	IEEE80211_PARAM_TPC_QUERY = 218,	/* enable or disable tpc request periodically */
	IEEE80211_PARAM_TPC = 219,		/* tpc feature enable/disable flag */
	IEEE80211_PARAM_CACSTATUS = 220,	/* Get CAC status */
	IEEE80211_PARAM_RTSTHRESHOLD = 221,	/* Get/Set RTS Threshold */
	IEEE80211_PARAM_BA_THROT = 222,         /* Manual BA throttling */
	IEEE80211_PARAM_TX_QUEUING_ALG = 223,	/* MuC TX queuing algorithm */
	IEEE80211_PARAM_BEACON_ALLOW = 224,	/* To en/disable beacon rx when associated as STA*/
	IEEE80211_PARAM_1BIT_PKT_DETECT = 225,  /* enable/disable 1bit pkt detection */
	IEEE80211_PARAM_WME_THROT = 226,	/* Manual WME throttling */
	IEEE80211_PARAM_ENABLE_11AC = 227,	/* Enable-disable 11AC feature in Topaz */
	IEEE80211_PARAM_FIXED_11AC_TX_RATE = 228,	/* Set 11AC mcs */
	IEEE80211_PARAM_GENPCAP = 229,		/* WMAC tx/rx pcap ring buffer */
	IEEE80211_PARAM_CCA_DEBUG = 230,	/* Debug of CCA */
	IEEE80211_PARAM_STA_DFS	= 231,		/* Enable or disable station DFS */
	IEEE80211_PARAM_OCAC = 232,		/* Off-channel CAC */
	IEEE80211_PARAM_CCA_STATS_PERIOD = 233,	/* the period for updating CCA stats in MuC */
	IEEE80211_PARAM_AUC_TX = 234,		/* Control HW datapath transmission */
	IEEE80211_PARAM_RADAR_BW = 235,		/* Set radar filter mode */
	IEEE80211_PARAM_TDLS_DISC_INT = 236,	/* Set TDLS discovery interval */
	IEEE80211_PARAM_TDLS_PATH_SEL_WEIGHT = 237,	/* The weight of path selection algorithm, 0 means always to use TDLS link */
	IEEE80211_PARAM_DAC_DBG = 238,		/* dynamic ac debug */
	IEEE80211_PARAM_CARRIER_ID = 239,	/* Get/Set carrier ID */
	IEEE80211_PARAM_SWRETRY_SUSPEND_XMIT = 240,	/* Max sw retries when sending frames is suspended */
	IEEE80211_PARAM_DEACTIVE_CHAN_PRI = 241,/* Deactive channel as being used as primary channel */
	IEEE80211_PARAM_RESTRICT_RATE = 242,	/* Packets per second sent when in Tx restrict mode */
	IEEE80211_PARAM_AUC_RX_DBG = 243,	/* AuC rx debug command */
	IEEE80211_PARAM_RX_ACCELERATE = 244,	/* Enable/Disable Topaz MuC rx accelerate */
	IEEE80211_PARAM_RX_ACCEL_LOOKUP_SA = 245,	/* Enable/Disable lookup SA in FWT for rx accelerate */
	IEEE80211_PARAM_TX_MAXMPDU = 246,		/* Set Max MPDU size to be supported */
	/* FIXME 247 is obsolete and do not reuse */
	IEEE80211_PARAM_SPECIFIC_SCAN = 249,	/* Just perform specific SSID scan */
	/* FIXME 250 is obsolete and do not reuse */
	IEEE80211_PARAM_TRAINING_START = 251,	/* restart rate training to a particular node */
	IEEE80211_PARAM_AUC_TX_DBG = 252,	/* AuC tx debug command */
	IEEE80211_PARAM_AC_INHERITANCE = 253,	/* promote AC_BE to use aggresive medium contention */
	IEEE80211_PARAM_NODE_OPMODE = 254,	/* Set bandwidth and NSS used for a particular node */
	IEEE80211_PARAM_TACMAP = 255,		/* Config TID AC and priority at TAC_MAP, debug only */
	IEEE80211_PARAM_VAP_PRI = 256,		/* Config priority for VAP, used for TID priority at TAC_MAP */
	IEEE80211_PARAM_AUC_QOS_SCH = 257,	/* Tune QoS scheduling in AuC */
	IEEE80211_PARAM_TXBF_IOT = 258,         /* turn on/off TxBF IOT to non QTN node */
	IEEE80211_PARAM_CONGEST_IDX = 259,	/* Current channel congestion index */
	IEEE80211_PARAM_SPEC_COUNTRY_CODE = 260,	/* Set courntry code for EU region */
	IEEE80211_PARAM_AC_Q2Q_INHERITANCE = 261,	/* promote AC_BE to use aggresive medium contention - Q2Q case */
	IEEE80211_PARAM_1SS_AMSDU_SUPPORT = 262,	/* Enable-Disable AMSDU support for 1SS devies - phone and tablets */
	IEEE80211_PARAM_VAP_PRI_WME = 263,	/* Automatic adjusting WME bss param based on VAP priority */
	IEEE80211_PARAM_MICHAEL_ERR_CNT = 264,	/* total number of TKIP MIC errors */
	IEEE80211_PARAM_DUMP_CONFIG_TXPOWER = 265,	/* Dump configured txpower for all channels */
	IEEE80211_PARAM_EMI_POWER_SWITCHING = 266,	/* Enable/Disable EMI power switching */
	IEEE80211_PARAM_CONFIG_BW_TXPOWER = 267,	/* Configure the TX powers different bandwidths */
	IEEE80211_PARAM_SCAN_CANCEL = 268,		/* Cancel any ongoing scanning */
	IEEE80211_PARAM_VHT_NSS_CAP = 269,	/* Set max spatial streams for VHT mode */
	IEEE80211_PARAM_FIXED_BW = 270,		/* Configure fixed tx bandwidth without changing BSS bandwidth */
	IEEE80211_PARAM_SFS = 271,		/* Smart Feature Select commands */
	IEEE80211_PARAM_TUNEPD = 272,       /* Specify number of tunning packets to send for power detector tuning */
	IEEE80211_PARAM_TUNEPD_DONE = 273,              /* Specify number of tunning packets to send for power detector tuning */
	IEEE80211_PARAM_CONFIG_PMF = 274,       /* Enable/Disable 802.11w / PMF */
	IEEE80211_PARAM_AUTO_CCA_ENABLE = 275,	/* Enable/disable auto-cca-threshold feature */
	IEEE80211_PARAM_AUTO_CCA_PARAMS = 276,	/* Configure the threshold parameter  */
	IEEE80211_PARAM_AUTO_CCA_DEBUG = 277,	/* Configure the auto-cca debug flag */
	IEEE80211_PARAM_INTRA_BSS_ISOLATE = 278,/* Intra BSS isolation */
	IEEE80211_PARAM_BSS_ISOLATE = 279,      /* BSS isolation */
	IEEE80211_PARAM_BF_RX_STS = 280,	/* Set max BF sounding receive STS */
	IEEE80211_PARAM_WOWLAN = 281,
	IEEE80211_PARAM_WDS_MODE = 282,	/* WDS mode */
	IEEE80211_PARAM_EXTENDER_ROLE = 283, /* EXTENDER Device role */
	IEEE80211_PARAM_EXTENDER_MBS_BEST_RSSI = 284, /* MBS best rssi threshold */
	IEEE80211_PARAM_EXTENDER_RBS_BEST_RSSI = 285, /* RBS best rssi threshold */
	IEEE80211_PARAM_EXTENDER_MBS_WGT = 286, /* MBS RSSI weight */
	IEEE80211_PARAM_EXTENDER_RBS_WGT = 287, /* RBS RSSI weight */
	IEEE80211_PARAM_AIRFAIR = 288,              /* Set airtime fairness configuration */
	/* FIXME 289 is obsolete and do not reuse */
	IEEE80211_PARAM_RX_AMSDU_ENABLE = 290,      /* RX AMSDU: 0 - disable, 1 - enable, 2 - enable dynamically */
	IEEE80211_PARAM_DISASSOC_REASON = 291,	/* Get Disassoc reason */
	IEEE80211_PARAM_TX_QOS_SCHED = 292,	/* TX QoS hold-time table */
	IEEE80211_PARAM_RX_AMSDU_THRESHOLD_CCA = 293,	/* The threshold of cca intf for dynamic RX AMSDU */
	IEEE80211_PARAM_RX_AMSDU_THRESHOLD_PMBL = 294,	/* The threshold of pmbl error for dynamic RX AMSDU */
	IEEE80211_PARAM_RX_AMSDU_PMBL_WF_SP = 295,	/* The weight factor of short preamble error for calculating the pmbl error */
	IEEE80211_PARAM_RX_AMSDU_PMBL_WF_LP = 296,	/* The weight factor of long preamble error for calculating the pmbl error */
	IEEE80211_PARAM_PEER_RTS_MODE = 297,		/* Mode setting for peer RTS */
	IEEE80211_PARAM_DYN_WMM = 298,			/* Dynamic WMM enable */
	IEEE80211_PARAM_BA_SETUP_ENABLE = 299,	/* enable the BA according the rssi threshold, 0 - disable, 1 - enable */
	IEEE80211_PARAM_AGGRESSIVE_AGG = 300,	/* Compound aggressive agg params */
	IEEE80211_PARAM_BB_PARAM = 301,	/* Baseband param */
	IEEE80211_PARAM_VAP_TX_AMSDU = 302,     /* Enable/disable A-MSDU for VAP */
	IEEE80211_PARAM_PC_OVERRIDE = 303,              /* RSSI based Power-contraint override */
	IEEE80211_PARAM_NDPA_DUR = 304,         /* set vht NDPA duration field */
	IEEE80211_PARAM_SU_TXBF_PKT_CNT = 305,  /* set the pkt cnt per txbf interval to fire SU sounding to a node */
	IEEE80211_PARAM_MAX_AGG_SIZE = 306,	/* Maximum AMPDU size in bytes */
	IEEE80211_PARAM_TQEW_DESCR_LIMIT = 307,     /* Set/Get tqew descriptors limit */
	IEEE80211_PARAM_SCAN_TBL_LEN_MAX = 308,
	IEEE80211_PARAM_CS_THRESHOLD = 309,	/* Carrier Sense threshold */
	IEEE80211_PARAM_TDLS_PROHIBIT_PATH_SEL = 310,	/* Enable/Disable TDLS path selection */
	IEEE80211_PARAM_TDLS_MODE = 311,	/* TDLS path select mode */
	IEEE80211_PARAM_TDLS_STATUS = 312,	/* TDLS status, 0 disable, 1 enable */
	IEEE80211_PARAM_TDLS_TIMEOUT_TIME = 313,
	IEEE80211_PARAM_TDLS_TRAINING_PKT_CNT = 314,	/* TDLS training packet count */
	IEEE80211_PARAM_TDLS_PATH_SEL_PPS_THRSHLD = 315,	/* TDLS path select packet per second threshold */
	IEEE80211_PARAM_TDLS_PATH_SEL_RATE_THRSHLD = 316,	/* TDLS path select rate threshold */
	IEEE80211_PARAM_TDLS_VERBOSE = 317,	/* TDLS debug info level */
	IEEE80211_PARAM_TDLS_MIN_RSSI = 318,	/* TDLS mininum valid RSSI */
	IEEE80211_PARAM_TDLS_SWITCH_INTS = 319,	/* TDLS switch intervals */
	IEEE80211_PARAM_TDLS_RATE_WEIGHT = 320,	/* TDLS accumulated rate weight */
	IEEE80211_PARAM_TDLS_UAPSD_INDICAT_WND = 321,	/* TDLS path select rate threshold */
	IEEE80211_PARAM_TDLS_CS_PROHIBIT = 322,	/* Prohibit TDLS channel switch */
	IEEE80211_PARAM_TDLS_CS_MODE = 323,	/* Set TDLS channel switch mode */
	IEEE80211_PARAM_TDLS_OFF_CHAN = 324,	/* TDLS off channel */
	IEEE80211_PARAM_TDLS_OFF_CHAN_BW = 325,	/* TDLS off channel bandwidth */
	IEEE80211_PARAM_TDLS_NODE_LIFE_CYCLE = 326, /* TDLS node life cycle */
	IEEE80211_PARAM_NODEREF_DBG = 327,	/* show history of node reference debug info */
	IEEE80211_PARAM_SWFEAT_DISABLE = 329,	/* disable an optional software feature */
	IEEE80211_PARAM_11N_AMSDU_CTRL = 330,   /* ctrl TX AMSDU of IP ctrl packets for 11N STAs */
	IEEE80211_PARAM_CCA_FIXED = 331,
	IEEE80211_PARAM_CCA_SEC40 = 332,
	IEEE80211_PARAM_CS_THRESHOLD_DBM = 333,
	IEEE80211_PARAM_EXTENDER_VERBOSE = 334, /* EXTENDER Debug Level */
	IEEE80211_PARAM_FLUSH_SCAN_ENTRY = 335,	/* Flush scan entry */
	IEEE80211_PARAM_SCAN_OPCHAN = 336,	/* Scan operating channel periodically in STA mode */
	IEEE80211_PARAM_DUMP_PPPC_TX_SCALE_BASES = 337,	/* Dump the current PPPC tx scale bases */
	IEEE80211_PARAM_VHT_OPMODE_BW = 338, /* Controls peer transmitter's BW */
	IEEE80211_PARAM_HS2 = 339,		/* Enable/Disable HS2.0 */
	IEEE80211_PARAM_DGAF_CONTROL = 340,	/* Downstream Group-Addressed Forwarding (DGAF) */
	IEEE80211_PARAM_PROXY_ARP = 341,        /* Proxy ARP */
	IEEE80211_PARAM_GLOBAL_FIXED_TX_SCALE_INDEX = 342,	/* Set global fixed tx scale index, regardless pppc probe index and tx scale bases */
	IEEE80211_PARAM_RATE_TRAIN_DBG = 343,			/* Rate training */
	IEEE80211_PARAM_NDPA_LEGACY_FORMAT = 344,	/* Configure PHY format for NDPA frame */
	IEEE80211_PARAM_QTN_HAL_PM_CORRUPT_DEBUG = 345,	/* flag to enable debug qtn packet memory corruption */
	IEEE80211_PARAM_UPDATE_MU_GRP = 346,	/* Update MU group/position */
	IEEE80211_PARAM_FIXED_11AC_MU_TX_RATE = 347,	/* Set 11AC MU fixed mcs */
	IEEE80211_PARAM_MU_DEBUG_LEVEL = 348,	/* Set 11AC MU debug level */
	IEEE80211_PARAM_MU_ENABLE = 349,	/* Enable/disable MU transmission */
	IEEE80211_PARAM_INST_MU_GRP_QMAT = 350,	/* Install qmat for mu group */
	IEEE80211_PARAM_DELE_MU_GRP_QMAT = 351,	/* Delete/disable qmat in mu group */
	IEEE80211_PARAM_GET_MU_GRP = 352,	/* Retrieve MU group and Q matrix info */
	IEEE80211_PARAM_EN_MU_GRP_QMAT = 353,	/* Enable qmat in mu group */
	IEEE80211_PARAM_MU_DEBUG_FLAG = 354,	/* Set or clear MU debug flag */
	IEEE80211_PARAM_DSP_DEBUG_LEVEL = 355,	/* DSP debug verbocity level */
	IEEE80211_PARAM_DSP_DEBUG_FLAG = 356,	/* Set DSP debug flag */
	IEEE80211_PARAM_SET_CRC_ERR = 357,	/* Enables/disables CRC error to be passed to packet memory*/
	IEEE80211_PARAM_MU_SWITCH_USR_POS = 358, /* Switch MU user_pos for debugging MU interference */
	IEEE80211_PARAM_SET_GRP_SND_PERIOD = 359, /* Sets group select sounding period */
	IEEE80211_PARAM_SET_PREC_SND_PERIOD = 360, /* Sets precoding sounding period */
	IEEE80211_PARAM_INST_1SS_DEF_MAT_ENABLE = 361,		/* Enable install 1ss default matrix feature */
	IEEE80211_PARAM_INST_1SS_DEF_MAT_THRESHOLD = 362,	/* Configure the threshold for install 1ss default matrix */
	IEEE80211_PARAM_SCAN_RESULTS_CHECK_INV = 363,	/* interval to check scan results */
	IEEE80211_PARAM_TDLS_OVER_QHOP_ENABLE = 364,	/* Enable TDLS over qhop */
	IEEE80211_PARAM_DSP_PRECODING_ALGORITHM = 365, /*select precoding algorithm, projection(1) or BD(2)*/
	IEEE80211_PARAM_DSP_RANKING_ALGORITHM = 366, /*select ranking algorithm, projection(1) or BD(2)*/
	IEEE80211_PARAM_DIS_MU_GRP_QMAT = 367, /* Disable QMat for MU group */
	IEEE80211_PARAM_GET_MU_GRP_QMAT = 368, /* Get QMat status */
	IEEE80211_PARAM_MU_USE_EQ = 369, /* Equalizer status */
	IEEE80211_PARAM_INITIATE_TXPOWER_TABLE = 370,	/* Initiate TX power table for a band with one single value */
	IEEE80211_PARAM_L2_EXT_FILTER = 371,        /* External L2 Filter */
	IEEE80211_PARAM_L2_EXT_FILTER_PORT = 372,        /* External L2 Filter port */
	IEEE80211_PARAM_MU_AIRTIME_PADDING = 373,	/* Airtime padding for MU/SU Tx decision */
	IEEE80211_PARAM_MU_AMSDU_SIZE = 374,        /* Set Fixed MU AMSDU size */
	IEEE80211_PARAM_SDFS = 375,		/* Seamless DFS, same as PARAM_OCAC */
	IEEE80211_PARAM_DSP_MU_RANK_CRITERIA = 376, /* select mu ranking criteria */
	IEEE80211_PARAM_ENABLE_RX_OPTIM_STATS = 378,        /* Enable RX optim stats */
	IEEE80211_PARAM_SET_UNICAST_QUEUE_NUM = 379,     /* Set Max congest queue num for unicast */
	IEEE80211_PARAM_MRC_ENABLE = 380,        /* Set Management Frame Rate Control feature */
	IEEE80211_PARAM_VCO_LOCK_DETECT_MODE = 381,	/* Get/Set lock detect functionality enabled/disabled */
	IEEE80211_PARAM_OBSS_EXEMPT_REQ = 382,  /* OBSS scan exemption request*/
	IEEE80211_PARAM_OBSS_TRIGG_SCAN_INT = 383,  /* OBSS scan exemption request*/
	IEEE80211_PARAM_PREF_BAND = 384,	/* Preferred band on dual band mode */
	IEEE80211_PARAM_BW_2_4GHZ = 385,	/* Bandwidth in 2.4ghz band */
	IEEE80211_PARAM_ALLOW_VHT_TKIP = 386,	/* allow VHT even only TKIP is set as cipher, for WFA testbed */
	IEEE80211_PARAM_AUTO_CS_ENABLE = 387,	/* Enable/disable auto-cs-threshold feature */
	IEEE80211_PARAM_AUTO_CS_PARAMS = 388,	/* Configure the threshold parameter  */
	IEEE80211_PARAM_QTN_BGSCAN_DURATION_ACTIVE = 389,  /* Quantenna bgscan duration for an active channel */
	IEEE80211_PARAM_QTN_BGSCAN_DURATION_PASSIVE_FAST = 390, /* Quantenna bgscan duration for a passive channel */
	IEEE80211_PARAM_QTN_BGSCAN_DURATION_PASSIVE_NORMAL = 391, /* Quantenna bgscan duration for a passive channel */
	IEEE80211_PARAM_QTN_BGSCAN_DURATION_PASSIVE_SLOW = 392, /* Quantenna bgscan duration for a passive channel */
	IEEE80211_PARAM_QTN_BGSCAN_THRSHLD_PASSIVE_FAST = 393, /* Quantenna bgscan fat threshold for passive fast mode */
	IEEE80211_PARAM_QTN_BGSCAN_THRSHLD_PASSIVE_NORMAL = 394, /* Quantenna bgscan fat threshold for passive normal mode */
	IEEE80211_PARAM_QTN_BLOCK_BSS = 395, /* Block any association request for specified BSS */
	IEEE80211_PARAM_VHT_2_4GHZ = 396,	/* Quantenna 2.4G band feature -- VHT support */
	IEEE80211_PARAM_PHY_MODE = 397,		/* Hardware phy mode */
	IEEE80211_PARAM_BEACONING_SCHEME = 398,	/* the mapping between 8 VAPs and 4 HW event queues for beacon */
	IEEE80211_PARAM_STA_BMPS = 399,	/* enable/disable STA BMPS */
	IEEE80211_PARAM_40MHZ_INTOLERANT = 400,	/* 20/40 coexistence - 40 MHz intolerant */
	IEEE80211_PARAM_ANTENNA_USAGE = 401,	/* how many antennas should be used */
	IEEE80211_PARAM_DISABLE_TX_BA = 402,	/* enable/disable TX Block Ack establishment */
	IEEE80211_PARAM_DECLINE_RX_BA = 403,	/* permit/decline RX Block Ack establishment */
	IEEE80211_PARAM_VAP_STATE = 404,	/* Enable or disable a VAP */
	IEEE80211_PARAM_TX_AIRTIME_CONTROL = 405, /* start or stop tx airtime accumulaton */
	IEEE80211_PARAM_OSEN = 406,
	IEEE80211_PARAM_OBSS_SCAN = 407,	/* Enable or disable OBSS scan */
	IEEE80211_PARAM_SHORT_SLOT = 408,	/* short slot */
	IEEE80211_PARAM_SET_RTS_BW_DYN = 409,   /* set RTS bw signal bw and dynamic flag */
	IEEE80211_PARAM_SET_CTS_BW = 410,   /* force the CTS BW by setting secondary 20/40 channel CCA busy */
	IEEE80211_PARAM_VHT_MCS_CAP = 411,	/* Set MCS capability for VHT mode, for WFA testbed */
	IEEE80211_PARAM_VHT_OPMODE_NOTIF = 412,	/* Override OpMode Notification IE, for WFA testbed */
	IEEE80211_PARAM_FIRST_STA_IN_MU_SOUNDING = 413, /* select STA which will be first in mu sounding */
	IEEE80211_PARAM_USE_NON_HT_DUPLICATE_MU = 414, /* Allows usage Non-HT duplicate for MU NDPA and Report_Poll using BW signal TA */
	IEEE80211_PARAM_BG_PROTECT = 415,	/* 802.11g protection */
	IEEE80211_PARAM_SET_MUC_BW = 416,	/* Set muc bandwidth */
	IEEE80211_PARAM_11N_PROTECT = 417,	/* 802.11n protection */
	IEEE80211_PARAM_SET_MU_RANK_TOLERANCE = 418, /* MU rank tolerance */
	IEEE80211_PARAM_MU_NDPA_BW_SIGNALING_SUPPORT = 420, /* support of receiving NDPA with bandwidth signalling TA */
	IEEE80211_PARAM_RESTRICT_WLAN_IP = 421,	/* Block all IP packets from wifi to bridge interfaces */
	IEEE80211_PARAM_MC_TO_UC = 422,		/* Convert L2 multicast to unicast */
	IEEE80211_PARAM_HOSTAP_STARTED = 424,   /* hostapd state */
	IEEE80211_PARAM_WPA_STARTED = 425,	/* wpa_supplicant state */
	IEEE80211_PARAM_MUC_SYS_DEBUG = 427, /* system debug */
	IEEE80211_PARAM_EP_STATUS = 428,	/* get the EP STATUS */
	IEEE80211_PARAM_EXTENDER_MBS_RSSI_MARGIN = 429,	/* MBS RSSI margin */
	IEEE80211_PARAM_MAX_BCAST_PPS = 430,	/* Restrict the number of broadcast pkts allowed to be processed per second */
	IEEE80211_PARAM_OFF_CHAN_SUSPEND = 431,	/* suspend/resume all off-channel mechanisms globally */
	IEEE80211_PARAM_BSS_GROUP_ID = 432,	/* Assigns VAP (SSID) a logical group id */
	IEEE80211_PARAM_BSS_ASSOC_RESERVE = 433,	/* Reserve associations for specified group */
	IEEE80211_PARAM_MAX_BOOT_CAC_DURATION = 434,	/* Max boot CAC duration in seconds */
	IEEE80211_PARAM_RX_BAR_SYNC = 435,	/* sync rx reorder window on receiving BAR */
	IEEE80211_PARAM_GET_REG_DOMAIN_IS_EU = 436,	/* Check if regulatory region falls under EU domain*/
	IEEE80211_PARAM_AUC_TX_AGG_DURATION = 437,
	IEEE80211_PARAM_GET_CHAN_AVAILABILITY_STATUS = 438, /* Channel availability status */
	IEEE80211_PARAM_STOP_ICAC = 439,
	IEEE80211_PARAM_STA_DFS_STRICT_MODE = 440,	/* STA DFS - strict mode operation */
	IEEE80211_PARAM_STA_DFS_STRICT_MEASUREMENT_IN_CAC = 441, /* STA DFS - Send Measurement report if radar found during CAC */
	IEEE80211_PARAM_STA_DFS_STRICT_TX_CHAN_CLOSE_TIME = 442, /*  STA DFS - Configure channel tx close time when radar detected */
	IEEE80211_PARAM_NEIGHBORHOOD_THRSHD = 443, /* Set the threshold for neighborhood density type */
	IEEE80211_PARAM_NEIGHBORHOOD_TYPE = 444, /* Get the neighborhood density type */
	IEEE80211_PARAM_NEIGHBORHOOD_COUNT = 445,/* Get the neighbor count */
	IEEE80211_PARAM_MU_TXBF_PKT_CNT = 446, /* set the pkt cnt per txbf interval to fire mu sounding to a node */
	IEEE80211_PARAM_DFS_CSA_CNT = 447,	/* set CSA count for reason of IEEE80211_CSW_REASON_DFS */
	IEEE80211_PARAM_IS_WEATHER_CHANNEL = 448, /* check if it's a weather channel */
	IEEE80211_PARAM_GET_CCA_STATS = 458, /* get CCA stats */
	IEEE80211_PARAM_OPMODE_BW_SW_EN = 459, /* enable/disable dynamic peer BW using opmode action */
	IEEE80211_PARAM_LEGACY_SIFS_TIMING = 460, /* write/read legacy sifs timing register */
	IEEE80211_PARAM_WEATHERCHAN_CAC_ALLOWED = 461, /* control whether weather channels CAC is allowed or not */
	IEEE80211_PARAM_BEACON_HANG_TIMEOUT = 462,	/* Software beacon hang checking timeout, in ms */
	IEEE80211_PARAM_BB_DEAFNESS_WAR_EN = 463, /* control whether WAR for BB deafness fast recovery is enabled or not */
	IEEE80211_PARAM_VOPT = 464,	/* enable/disable V optimization */
	IEEE80211_PARAM_VMODE = 465,		/* disable/enable v test mode */
	IEEE80211_PARAM_VAP_TX_AMSDU_11N = 466,     /* Enable/disable A-MSDU for 11n nodes */
	IEEE80211_PARAM_DYNAMIC_SIFS_TIMING = 468, /* set/get SIFS timing */
};

#define IEEE80211_OFFCHAN_SUSPEND_MASK		0x80000000
#define IEEE80211_OFFCHAN_SUSPEND_MASK_S	31
#define IEEE80211_OFFCHAN_TIMEOUT_MASK		0x7FFFFFFF
#define IEEE80211_OFFCHAN_TIMEOUT_DEFAULT	1 /* second*/
#define IEEE80211_OFFCHAN_TIMEOUT_MAX		60 /* second*/
#define IEEE80211_OFFCHAN_TIMEOUT_MIN		1 /* second*/
#define IEEE80211_OFFCHAN_TIMEOUT_AUTH		5 /* second*/
#define IEEE80211_OFFCHAN_TIMEOUT_EAPOL		8 /* second*/

#define	SIOCG80211STATS			(SIOCDEVPRIVATE+2)
/* NB: require in+out parameters so cannot use wireless extensions, yech */
#define	IEEE80211_IOCTL_GETKEY		(SIOCDEVPRIVATE+3)
#define	IEEE80211_IOCTL_GETWPAIE	(SIOCDEVPRIVATE+4)
#define	IEEE80211_IOCTL_STA_STATS	(SIOCDEVPRIVATE+5)
#define	IEEE80211_IOCTL_STA_INFO	(SIOCDEVPRIVATE+6)
#define	SIOC80211IFCREATE		(SIOCDEVPRIVATE+7)
#define	SIOC80211IFDESTROY		(SIOCDEVPRIVATE+8)
#define	IEEE80211_IOCTL_SCAN_RESULTS	(SIOCDEVPRIVATE+9)
#define SIOCR80211STATS                 (SIOCDEVPRIVATE+0xA) /* This define always has to sync up with SIOCRDEVSTATS in /linux/sockios.h */
#define IEEE80211_IOCTL_GET_ASSOC_TBL	(SIOCDEVPRIVATE+0xB)
#define IEEE80211_IOCTL_GET_RATES	(SIOCDEVPRIVATE+0xC)
#define IEEE80211_IOCTL_SET_RATES	(SIOCDEVPRIVATE+0xD)
#define IEEE80211_IOCTL_EXT		(SIOCDEVPRIVATE+0xF) /* This command is used to support sub-ioctls */

/*
 * ioctl command IEEE80211_IOCTL_EXT is used to support sub-ioctls.
 * The following lists the sub-ioctl numbers
 *
 */
#define SIOCDEV_SUBIO_BASE		(0)
#define SIOCDEV_SUBIO_RST_QUEUE		(SIOCDEV_SUBIO_BASE + 1)
#define SIOCDEV_SUBIO_RADAR_STATUS	(SIOCDEV_SUBIO_BASE + 2)
#define SIOCDEV_SUBIO_GET_PHY_STATS	(SIOCDEV_SUBIO_BASE + 3)
#define SIOCDEV_SUBIO_DISCONN_INFO	(SIOCDEV_SUBIO_BASE + 4)
#define SIOCDEV_SUBIO_SET_BRCM_IOCTL	(SIOCDEV_SUBIO_BASE + 5)
#define SIOCDEV_SUBIO_SCS	        (SIOCDEV_SUBIO_BASE + 6)
#define SIOCDEV_SUBIO_SET_SOC_ADDR_IOCTL	(SIOCDEV_SUBIO_BASE + 7) /* Command to set the SOC addr of the STB to VAP for recording */
#define SIOCDEV_SUBIO_SET_TDLS_OPER	(SIOCDEV_SUBIO_BASE + 8)	/* Set TDLS Operation */
#define SIOCDEV_SUBIO_WAIT_SCAN_TIMEOUT	(SIOCDEV_SUBIO_BASE + 9)
#define SIOCDEV_SUBIO_AP_SCAN_RESULTS	(SIOCDEV_SUBIO_BASE + 10)
#define SIOCDEV_SUBIO_GET_11H_11K_NODE_INFO	(SIOCDEV_SUBIO_BASE + 11)
#define SIOCDEV_SUBIO_GET_DSCP2AC_MAP	(SIOCDEV_SUBIO_BASE + 12)
#define SIOCDEV_SUBIO_SET_DSCP2AC_MAP	(SIOCDEV_SUBIO_BASE + 13)
#define SIOCDEV_SUBIO_SET_MARK_DFS_CHAN	(SIOCDEV_SUBIO_BASE + 14)
#define SIOCDEV_SUBIO_WOWLAN		(SIOCDEV_SUBIO_BASE + 15)
#define SIOCDEV_SUBIO_GET_STA_AUTH	(SIOCDEV_SUBIO_BASE + 16)
#define SIOCDEV_SUBIO_GET_STA_VENDOR	(SIOCDEV_SUBIO_BASE + 17)
#define SIOCDEV_SUBIO_GET_STA_TPUT_CAPS	(SIOCDEV_SUBIO_BASE + 18)
#define SIOCDEV_SUBIO_GET_SWFEAT_MAP	(SIOCDEV_SUBIO_BASE + 19)
#define SIOCDEV_SUBIO_DI_DFS_CHANNELS	(SIOCDEV_SUBIO_BASE + 20) /* Deactive DFS channels */
#define SIOCDEV_SUBIO_SET_ACTIVE_CHANNEL_LIST (SIOCDEV_SUBIO_BASE + 21)
#define SIOCDEV_SUBIO_PRINT_SWFEAT_MAP	(SIOCDEV_SUBIO_BASE + 22)
#define SIOCDEV_SUBIO_SEND_ACTION_FRAME (SIOCDEV_SUBIO_BASE + 23)
#define SIOCDEV_SUBIO_GET_DRIVER_CAPABILITY (SIOCDEV_SUBIO_BASE + 24)
#define SIOCDEV_SUBIO_SET_AP_INFO	(SIOCDEV_SUBIO_BASE + 25)
#define SIOCDEV_SUBIO_GET_LINK_QUALITY_MAX	(SIOCDEV_SUBIO_BASE + 26)
#define SIOCDEV_SUBIO_SET_CHANNEL_POWER_TABLE	(SIOCDEV_SUBIO_BASE + 27)
#define SIOCDEV_SUBIO_SET_WEATHER_CHAN	(SIOCDEV_SUBIO_BASE + 28)
#define SIOCDEV_SUBIO_GET_CHANNEL_POWER_TABLE	(SIOCDEV_SUBIO_BASE + 29)
#define SIOCDEV_SUBIO_SETGET_CHAN_DISABLED	(SIOCDEV_SUBIO_BASE + 30)
#define SIOCDEV_SUBIO_SET_SEC_CHAN		(SIOCDEV_SUBIO_BASE + 31)
#define SIOCDEV_SUBIO_GET_SEC_CHAN		(SIOCDEV_SUBIO_BASE + 32)
#define SIOCDEV_SUBIO_SET_DSCP2TID_MAP		(SIOCDEV_SUBIO_BASE + 33)
#define SIOCDEV_SUBIO_GET_DSCP2TID_MAP		(SIOCDEV_SUBIO_BASE + 34)
#define SIOCDEV_SUBIO_GET_TX_AIRTIME		(SIOCDEV_SUBIO_BASE + 35)
#define SIOCDEV_SUBIO_GET_CHAN_PRI_INACT	(SIOCDEV_SUBIO_BASE + 36)
#define SIOCDEV_SUBIO_GET_SUPP_CHAN		(SIOCDEV_SUBIO_BASE + 37)
#define SIOCDEV_SUBIO_GET_CLIENT_MACS		(SIOCDEV_SUBIO_BASE + 38)
#define SIOCDEV_SUBIO_SAMPLE_ALL_DATA		(SIOCDEV_SUBIO_BASE + 39)
#define SIOCDEV_SUBIO_GET_ASSOC_DATA		(SIOCDEV_SUBIO_BASE + 40)
#define SIOCDEV_SUBIO_GET_INTERFACE_WMMAC_STATS	(SIOCDEV_SUBIO_BASE + 41)

enum L2_EXT_FILTER_PORT {
	L2_EXT_FILTER_EMAC_0_PORT = 0,
	L2_EXT_FILTER_EMAC_1_PORT = 1,
	L2_EXT_FILTER_PCIE_PORT = 2
};

#ifdef CONFIG_TOPAZ_PCIE_TARGET
	#define L2_EXT_FILTER_DEF_PORT L2_EXT_FILTER_PCIE_PORT
#else
	#define L2_EXT_FILTER_DEF_PORT L2_EXT_FILTER_EMAC_0_PORT
#endif

struct ieee80211_clone_params {
	char icp_name[IFNAMSIZ];		/* device name */
	uint16_t icp_opmode;			/* operating mode */
	uint16_t icp_flags;			/* see below */
#define	IEEE80211_CLONE_BSSID	0x0001		/* allocate unique mac/bssid */
#define	IEEE80211_NO_STABEACONS	0x0002		/* Do not setup the station beacon timers */
};

enum power_table_sel {
	PWR_TABLE_SEL_BOOTCFG_ONLY = 0,	/* Search for power table in bootcfg only */
	PWR_TABLE_SEL_BOOTCFG_PRIOR,	/* Search for power table in bootcfg at first, if not find, then search /etc/ */
	PWR_TABLE_SEL_IMAGE_PRIOR,	/* Search for power table in /etc/ at first, if not find, then search bootcfg */
	PWR_TABLE_SEL_IMAGE_ONLY,	/* Search for power table in /etc/ only */
	PWR_TABLE_SEL_MAX = PWR_TABLE_SEL_IMAGE_ONLY,
};

/* APPIEBUF related definitions */
/* Management frame type to which application IE is added */
enum {
	IEEE80211_APPIE_FRAME_BEACON		= 0,
	IEEE80211_APPIE_FRAME_PROBE_REQ		= 1,
	IEEE80211_APPIE_FRAME_PROBE_RESP	= 2,
	IEEE80211_APPIE_FRAME_ASSOC_REQ		= 3,
	IEEE80211_APPIE_FRAME_ASSOC_RESP	= 4,
	IEEE80211_APPIE_FRAME_TDLS_ACT		= 5,
	IEEE80211_APPIE_NUM_OF_FRAME		= 6
};

/* the beaconing schemes - the mapping between 8 VAPs and 4 HW TX queues for beacon */
enum {
	/*
	 * Scheme 0 - default
	 * VAP0/VAP4 - HW queue0
	 * VAP1/VAP5 - HW queue1
	 * VAP2/VAP6 - HW queue2
	 * VAP3/VAP7 - HW queue3
	 */
	QTN_BEACONING_SCHEME_0 = 0,
	/*
	 * Scheme 1:
	 * VAP0/VAP1 - HW queue0
	 * VAP2/VAP3 - HW queue1
	 * VAP4/VAP5 - HW queue2
	 * VAP6/VAP7 - HW queue3
	 */
	QTN_BEACONING_SCHEME_1 = 1
};

/*
 * This enum must be kept in sync with tdls_operation_string.
 * enum ieee80211_tdls_operation - values for tdls_oper callbacks
 * @IEEE80211_TDLS_DISCOVERY_REQ: Send a TDLS discovery request
 * @IEEE80211_TDLS_SETUP: Setup TDLS link
 * @IEEE80211_TDLS_TEARDOWN: Teardown a TDLS link which is already established
 * @IEEE80211_TDLS_ENABLE_LINK: Enable TDLS link
 * @IEEE80211_TDLS_DISABLE_LINK: Disable TDLS link
 * @IEEE80211_TDLS_ENABLE: Enable TDLS function
 * @IEEE80211_TDLS_DISABLE: Disable TDLS function
 * @IEEE80211_TDLS_PTI_REQ: Send a TDLS Peer Traffic Indication Frame
 */
enum ieee80211_tdls_operation {
	IEEE80211_TDLS_DISCOVERY_REQ	= 0,
	IEEE80211_TDLS_SETUP			= 1,
	IEEE80211_TDLS_TEARDOWN			= 2,
	IEEE80211_TDLS_ENABLE_LINK		= 3,
	IEEE80211_TDLS_DISABLE_LINK		= 4,
	IEEE80211_TDLS_ENABLE			= 5,
	IEEE80211_TDLS_DISABLE			= 6,
	IEEE80211_TDLS_PTI_REQ			= 7,
	IEEE80211_TDLS_SWITCH_CHAN		= 8,
};

enum ieee80211_tdls_event {
	IEEE80211_EVENT_TDLS,
	IEEE80211_EVENT_STATION_LOW_ACK
};

struct ieee80211_tdls_event_data {
	char name[32];
	uint8_t index;
	uint8_t sub_index;
	uint8_t peer_mac[IEEE80211_ADDR_LEN];
	uint8_t value[0];
} __packed;

struct ieee80211_tdls_oper_data {
	uint8_t dest_mac[IEEE80211_ADDR_LEN];
	uint8_t oper;
} __packed;

struct ieee80211_tdls_action_data {
	uint8_t	dest_mac[IEEE80211_ADDR_LEN];	/* Destination address of tdls action */
	uint8_t	action;		/* TDLS action frame type */
	uint16_t status;	/* Statu code */
	uint8_t	dtoken;		/* Dialog token */
	uint32_t ie_buflen;	/* Subsequent IEs length*/
	uint8_t	ie_buf[0];	/* Subsequent IEs */
} __packed;

struct ieee80211req_getset_appiebuf {
	uint32_t app_frmtype;	/* management frame type for which buffer is added */
	uint32_t app_buflen;	/* application-supplied buffer length */
#define F_QTN_IEEE80211_PAIRING_IE 0x1
	uint8_t	flags;		/* flags here is used to check whether QTN pairing IE exists */
	uint8_t	app_buf[0];	/* application-supplied IE(s) */
};

/* Action frame payload */
struct action_frame_payload {
	u_int16_t	length;                 /* action frame payload length */
	u_int8_t	data[0];                /* action frame payload data */
}__packed;

/* Structure used to send action frame from hostapd */
struct app_action_frame_buf {
	u_int8_t	cat;			/* action frame category */
	u_int8_t	action;			/* action frame action */
	u_int8_t	dst_mac_addr[IEEE80211_ADDR_LEN];
	struct action_frame_payload frm_payload;
}__packed;

struct app_ie {
	u_int8_t id;
	u_int16_t len;
	union {
		struct {
			u_int8_t interworking;
			u_int8_t an_type;
			u_int8_t hessid[IEEE80211_ADDR_LEN];
		}__packed interw;
	}u;
}__packed;

struct qtn_cca_args
{
	uint32_t cca_channel;
	uint32_t duration;
};

/* Flags ORed by application to set filter for receiving management frames */
enum {
	IEEE80211_FILTER_TYPE_BEACON		= 1<<0,
	IEEE80211_FILTER_TYPE_PROBE_REQ		= 1<<1,
	IEEE80211_FILTER_TYPE_PROBE_RESP	= 1<<2,
	IEEE80211_FILTER_TYPE_ASSOC_REQ		= 1<<3,
	IEEE80211_FILTER_TYPE_ASSOC_RESP	= 1<<4,
	IEEE80211_FILTER_TYPE_AUTH		= 1<<5,
	IEEE80211_FILTER_TYPE_DEAUTH		= 1<<6,
	IEEE80211_FILTER_TYPE_DISASSOC		= 1<<7,
	IEEE80211_FILTER_TYPE_ACTION		= 1<<8,
	IEEE80211_FILTER_TYPE_ALL		= 0x1FF	/* used to check the valid filter bits */
};

struct ieee80211req_set_filter {
	uint32_t app_filterype;		/* management frame filter type */
};

/* Tx Restrict */
#define IEEE80211_TX_RESTRICT_RTS_MIN		2
#define IEEE80211_TX_RESTRICT_RTS_DEF		6
#define IEEE80211_TX_RESTRICT_LIMIT_MIN		2
#define IEEE80211_TX_RESTRICT_LIMIT_DEF		12
#define IEEE80211_TX_RESTRICT_RATE		5

/* Compatibility fix bitmap for various vendor peer */
#define VENDOR_FIX_BRCM_DHCP			0x01
#define VENDOR_FIX_BRCM_REPLACE_IGMP_SRCMAC	0x02
#define VENDOR_FIX_BRCM_REPLACE_IP_SRCMAC	0x04
#define VENDOR_FIX_BRCM_DROP_STA_IGMPQUERY	0x08
#define VENDOR_FIX_BRCM_AP_GEN_IGMPQUERY	0x10

enum vendor_fix_idx {
	VENDOR_FIX_IDX_BRCM_DHCP = 1,
	VENDOR_FIX_IDX_BRCM_IGMP = 2,
	VENDOR_FIX_IDX_MAX = VENDOR_FIX_IDX_BRCM_IGMP,
};

#define IEEE80211_TDLS_OVER_QHOP_ENABLE_MIN 0
#define IEEE80211_TDLS_OVER_QHOP_ENABLE_MAX 1
#define IEEE80211_TDLS_TIMEOUT_TIME_MIN	5
#define IEEE80211_TDLS_TIMEOUT_TIME_MAX	3600
#define IEEE80211_TDLS_LINK_WEIGHT_MIN	0
#define IEEE80211_TDLS_LINK_WEIGHT_MAX	10
#define IEEE80211_TDLS_TRAINING_PKT_CNT_MIN	16
#define IEEE80211_TDLS_TRAINING_PKT_CNT_MAX	8192
#define IEEE80211_TDLS_DISC_INTERVAL_MIN	60
#define IEEE80211_TDLS_DISC_INTERVAL_MAX	3600
#define IEEE80211_TDLS_PATH_SEL_PPS_THRSHLD_MIN	8
#define IEEE80211_TDLS_PATH_SEL_PPS_THRSHLD_MAX	64
#define IEEE80211_TDLS_PATH_SEL_RATE_THRSHLD_MIN	0
#define IEEE80211_TDLS_PATH_SEL_RATE_THRSHLD_MAX	1000
#define IEEE80211_TDLS_VERBOSE_MIN		0
#define IEEE80211_TDLS_VERBOSE_MAX		2
#define IEEE80211_TDLS_VALID_RSSI_MIN		(-1200)
#define IEEE80211_TDLS_VALID_RSSI_MAX		0
#define IEEE80211_TDLS_SWITCH_INTS_MIN		2
#define IEEE80211_TDLS_SWITCH_INTS_MAX		10
#define IEEE80211_TDLS_RATE_WEIGHT_MIN		0
#define IEEE80211_TDLS_RATE_WEIGHT_MAX		10

#define IEEE80211_TDLS_MODE_MIN			0
#define IEEE80211_TDLS_MODE_MAX			1
#define IEEE80211_TDLS_INDICATION_WINDOWS_MIN	1
#define IEEE80211_TDLS_INDICATION_WINDOWS_MAX	20
#define IEEE80211_TDLS_CS_PROHIBIT_MIN	0
#define IEEE80211_TDLS_CS_PROHIBIT_MAX	2
#define IEEE80211_TDLS_CS_OFFCHAN_MIN	0
#define IEEE80211_TDLS_CS_OFFCHAN_MAX	255
#define IEEE80211_TDLS_CS_OFFCHAN_BW_MIN	0
#define IEEE80211_TDLS_CS_OFFCHAN_BW_MAX	160
#define IEEE80211_TDLS_NODE_LIFE_CYCLE_MIN	5
#define IEEE80211_TDLS_NODE_LIFE_CYCLE_MAX	1000
#define IEEE80211_TDLS_CHAN_SWITCH_INTV_MIN	100
struct ieee80211req_wowlan {
	uint32_t is_op;
	uint8_t *is_data;
	int32_t is_data_len;
};

#define IEEE80211_AUTHDESCR_KEYMGMT_NONE		0x00
#define IEEE80211_AUTHDESCR_KEYMGMT_EAP			0x01
#define IEEE80211_AUTHDESCR_KEYMGMT_PSK			0x02
#define IEEE80211_AUTHDESCR_KEYMGMT_WEP			0x03

#define IEEE80211_AUTHDESCR_KEYPROTO_NONE		0x00
#define IEEE80211_AUTHDESCR_KEYPROTO_WPA		0x01
#define IEEE80211_AUTHDESCR_KEYPROTO_RSN		0x02

#define IEEE80211_AUTHDESCR_ALGO_POS			0x00
#define IEEE80211_AUTHDESCR_KEYMGMT_POS			0x01
#define IEEE80211_AUTHDESCR_KEYPROTO_POS		0x02
#define IEEE80211_AUTHDESCR_CIPHER_POS			0x03


struct ieee80211req_auth_description {
	uint8_t macaddr[IEEE80211_ADDR_LEN];
	uint32_t description;
};

enum ieee80211_extender_role {
	IEEE80211_EXTENDER_ROLE_NONE = 0x00,
	IEEE80211_EXTENDER_ROLE_MBS = 0x01,
	IEEE80211_EXTENDER_ROLE_RBS = 0x02
};

#define WDS_EXT_RECEIVED_MBS_IE		0
#define WDS_EXT_RECEIVED_RBS_IE		1
#define WDS_EXT_LINK_STATUS_UPDATE	2
#define WDS_EXT_RBS_OUT_OF_BRR		3
#define WDS_EXT_RBS_SET_CHANNEL		4
#define WDS_EXT_CLEANUP_WDS_LINK	5
#define WDS_EXT_STA_UPDATE_EXT_INFO	6

#define IEEE80211_MAX_EXT_EVENT_DATA_LEN	256

#define IEEE80211_EXTENDER_ROLE_MIN	0
#define IEEE80211_EXTENDER_ROLE_MAX	2
#define IEEE80211_EXTENDER_MIN_RSSI	0
#define IEEE80211_EXTENDER_MAX_RSSI	70
#define	IEEE80211_EXTENDER_MIN_WGT	0
#define	IEEE80211_EXTENDER_MAX_WGT	10
#define	IEEE80211_EXTENDER_MIN_VERBOSE	0
#define	IEEE80211_EXTENDER_MAX_VERBOSE	2
#define IEEE80211_EXTENDER_MIN_INTERVAL	30
#define IEEE80211_EXTENDER_MAX_INTERVAL	300
#define IEEE80211_EXTENDER_MIN_ROAMING	0
#define IEEE80211_EXTENDER_MAX_ROAMING	1
#define IEEE80211_EXTENDER_MIN_MARGIN	0
#define IEEE80211_EXTENDER_MAX_MARGIN	12

/**
 * Structure contains data of wds extender event.
 * @name will always be "QTN-WDS-EXT"
 * @cmd message type.
 * @mac specify wds peer mac address
 * @link_status specify the wds link state.
 * @ie_len when the message contains an wds extender IE, ie_len is larger than 0.
 */
struct qtn_wds_ext_event_data {
	char name[12];
	uint8_t cmd;
	uint8_t mac[IEEE80211_ADDR_LEN];
	uint8_t extender_role;
	uint8_t link_status;
	uint8_t channel;
	uint8_t bandwidth;
	uint8_t ssid[IEEE80211_NWID_LEN + 1];
	uint8_t ie_len;
	uint8_t wds_extender_ie[0];
}__packed;

struct ieee80211req_interface_wmmac_stats {
#define WMM_AC_NUM 4
	/**
	 * Number of dropped data packets failed to transmit through
	 * wireless media for each traffic category(TC).
	 */
	uint32_t tx_wifi_drop[WMM_AC_NUM];
	/**
	 * Number of sent data packets that transmit through
	 * wireless media for each traffic category(TC).
	 */
	uint32_t tx_wifi_sent[WMM_AC_NUM];
};

#endif /* __linux__ */

#pragma pack()

#endif /* _NET80211_IEEE80211_IOCTL_H_ */
