wifi.h revision d181ee37267db42d63b1bd58d5b4af7756219933
1/******************************************************************************
2 *
3 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 ******************************************************************************/
15#ifndef _WIFI_H_
16#define _WIFI_H_
17
18#define P80211CAPTURE_VERSION	0x80211001
19
20/*  This value is tested by WiFi 11n Test Plan 5.2.3.
21 *  This test verifies the WLAN NIC can update the NAV through sending
22 *  the CTS with large duration.
23 */
24#define	WiFiNavUpperUs		30000	/*  30 ms */
25
26#define SetToDs(pbuf)	\
27	(*(__le16 *)(pbuf) |= cpu_to_le16(IEEE80211_FCTL_TODS))
28
29#define SetFrDs(pbuf)	\
30	(*(__le16 *)(pbuf) |= cpu_to_le16(IEEE80211_FCTL_FROMDS))
31
32#define _ASOCREQ_IE_OFFSET_		4	/*  excluding wlan_hdr */
33#define	_ASOCRSP_IE_OFFSET_		6
34#define _REASOCREQ_IE_OFFSET_		10
35#define _REASOCRSP_IE_OFFSET_		6
36#define _PROBEREQ_IE_OFFSET_		0
37#define	_PROBERSP_IE_OFFSET_		12
38#define _AUTH_IE_OFFSET_		6
39#define _DEAUTH_IE_OFFSET_		0
40#define _BEACON_IE_OFFSET_		12
41#define _PUBLIC_ACTION_IE_OFFSET_	8
42
43#define _FIXED_IE_LENGTH_		_BEACON_IE_OFFSET_
44
45
46#define	EID_BSSIntolerantChlReport	73
47
48/* ---------------------------------------------------------------------------
49					Below is the fixed elements...
50-----------------------------------------------------------------------------*/
51#define _AUTH_ALGM_NUM_		2
52#define _AUTH_SEQ_NUM_		2
53#define _BEACON_ITERVAL_	2
54#define _CAPABILITY_		2
55#define _CURRENT_APADDR_	6
56#define _LISTEN_INTERVAL_	2
57#define _ASOC_ID_		2
58#define _STATUS_CODE_		2
59#define _TIMESTAMP_		8
60
61/*-----------------------------------------------------------------------------
62				Below is the definition for WMM
63------------------------------------------------------------------------------*/
64#define _WMM_IE_Length_				7  /*  for WMM STA */
65#define _WMM_Para_Element_Length_		24
66
67
68/*-----------------------------------------------------------------------------
69				Below is the definition for 802.11n
70------------------------------------------------------------------------------*/
71
72/* struct rtw_ieee80211_ht_cap - HT additional information
73 *
74 * This structure refers to "HT information element" as
75 * described in 802.11n draft section 7.3.2.53
76 */
77struct ieee80211_ht_addt_info {
78	unsigned char	control_chan;
79	unsigned char	ht_param;
80	unsigned short	operation_mode;
81	unsigned short	stbc_param;
82	unsigned char	basic_set[16];
83} __packed;
84
85struct HT_caps_element {
86	union {
87		struct {
88			unsigned short	HT_caps_info;
89			unsigned char	AMPDU_para;
90			unsigned char	MCS_rate[16];
91			unsigned short	HT_ext_caps;
92			unsigned int	Beamforming_caps;
93			unsigned char	ASEL_caps;
94		} HT_cap_element;
95		unsigned char HT_cap[26];
96	} u;
97} __packed;
98
99struct HT_info_element {
100	unsigned char	primary_channel;
101	unsigned char	infos[5];
102	unsigned char	MCS_rate[16];
103}  __packed;
104
105struct AC_param {
106	unsigned char		ACI_AIFSN;
107	unsigned char		CW;
108	unsigned short	TXOP_limit;
109}  __packed;
110
111struct WMM_para_element {
112	unsigned char		QoS_info;
113	unsigned char		reserved;
114	struct AC_param	ac_param[4];
115}  __packed;
116
117struct ADDBA_request {
118	unsigned char		dialog_token;
119	unsigned short	BA_para_set;
120	unsigned short	BA_timeout_value;
121	unsigned short	BA_starting_seqctrl;
122}  __packed;
123
124
125/*	===============WPS Section=============== */
126/*	WPS attribute ID */
127#define WPS_ATTR_VER1				0x104A
128#define WPS_ATTR_SIMPLE_CONF_STATE		0x1044
129#define WPS_ATTR_RESP_TYPE			0x103B
130#define WPS_ATTR_UUID_E				0x1047
131#define WPS_ATTR_MANUFACTURER			0x1021
132#define WPS_ATTR_MODEL_NAME			0x1023
133#define WPS_ATTR_MODEL_NUMBER			0x1024
134#define WPS_ATTR_SERIAL_NUMBER			0x1042
135#define WPS_ATTR_PRIMARY_DEV_TYPE		0x1054
136#define WPS_ATTR_SEC_DEV_TYPE_LIST		0x1055
137#define WPS_ATTR_DEVICE_NAME			0x1011
138#define WPS_ATTR_CONF_METHOD			0x1008
139#define WPS_ATTR_RF_BANDS			0x103C
140#define WPS_ATTR_DEVICE_PWID			0x1012
141#define WPS_ATTR_REQUEST_TYPE			0x103A
142#define WPS_ATTR_ASSOCIATION_STATE		0x1002
143#define WPS_ATTR_CONFIG_ERROR			0x1009
144#define WPS_ATTR_VENDOR_EXT			0x1049
145#define WPS_ATTR_SELECTED_REGISTRAR		0x1041
146
147/*	WPS Configuration Method */
148#define	WPS_CM_NONE					0x0000
149#define	WPS_CM_LABEL					0x0004
150#define	WPS_CM_DISPLYA					0x0008
151#define	WPS_CM_EXTERNAL_NFC_TOKEN			0x0010
152#define	WPS_CM_INTEGRATED_NFC_TOKEN			0x0020
153#define	WPS_CM_NFC_INTERFACE				0x0040
154#define	WPS_CM_PUSH_BUTTON				0x0080
155#define	WPS_CM_KEYPAD					0x0100
156#define	WPS_CM_SW_PUHS_BUTTON				0x0280
157#define	WPS_CM_HW_PUHS_BUTTON				0x0480
158#define	WPS_CM_SW_DISPLAY_PIN				0x2008
159#define	WPS_CM_LCD_DISPLAY_PIN				0x4008
160
161#endif /*  _WIFI_H_ */
162