1 /******************************************************************************
2  * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
3  *
4  * This program is distributed in the hope that it will be useful, but WITHOUT
5  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
7  * more details.
8  *
9  * You should have received a copy of the GNU General Public License along with
10  * this program; if not, write to the Free Software Foundation, Inc.,
11  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
12  *
13  * The full GNU General Public License is included in this distribution in the
14  * file called LICENSE.
15  *
16  * Contact Information:
17  * wlanfae <wlanfae@realtek.com>
18 ******************************************************************************/
19 #ifndef _BATYPE_H_
20 #define _BATYPE_H_
21 
22 #define		TOTAL_TXBA_NUM	16
23 #define	TOTAL_RXBA_NUM	16
24 
25 #define	BA_SETUP_TIMEOUT	200
26 #define	BA_INACT_TIMEOUT	60000
27 
28 #define	BA_POLICY_DELAYED		0
29 #define	BA_POLICY_IMMEDIATE	1
30 
31 #define	ADDBA_STATUS_SUCCESS			0
32 #define	ADDBA_STATUS_REFUSED		37
33 #define	ADDBA_STATUS_INVALID_PARAM	38
34 
35 #define	DELBA_REASON_QSTA_LEAVING	36
36 #define	DELBA_REASON_END_BA			37
37 #define	DELBA_REASON_UNKNOWN_BA	38
38 #define	DELBA_REASON_TIMEOUT			39
39 union sequence_control {
40 	u16 ShortData;
41 	struct {
42 		u16	FragNum:4;
43 		u16	SeqNum:12;
44 	} field;
45 };
46 
47 union ba_param_set {
48 	u8 charData[2];
49 	u16 shortData;
50 	struct {
51 		u16 AMSDU_Support:1;
52 		u16 BAPolicy:1;
53 		u16 TID:4;
54 		u16 BufferSize:10;
55 	} field;
56 };
57 
58 union delba_param_set {
59 	u8 charData[2];
60 	u16 shortData;
61 	struct {
62 		u16 Reserved:11;
63 		u16 Initiator:1;
64 		u16 TID:4;
65 	} field;
66 };
67 
68 struct ba_record {
69 	struct timer_list		Timer;
70 	u8				bValid;
71 	u8				DialogToken;
72 	union ba_param_set BaParamSet;
73 	u16				BaTimeoutValue;
74 	union sequence_control BaStartSeqCtrl;
75 };
76 
77 #endif
78