Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[pandora-kernel.git] / drivers / staging / rtl8192su / ieee80211 / rtl819x_BA.h
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
40 typedef union _SEQUENCE_CONTROL{
41         u16 ShortData;
42         struct
43         {
44                 u16     FragNum:4;
45                 u16     SeqNum:12;
46         }field;
47 }SEQUENCE_CONTROL, *PSEQUENCE_CONTROL;
48
49 typedef union _BA_PARAM_SET {
50         u8 charData[2];
51         u16 shortData;
52         struct {
53                 u16 AMSDU_Support:1;
54                 u16 BAPolicy:1;
55                 u16 TID:4;
56                 u16 BufferSize:10;
57         } field;
58 } BA_PARAM_SET, *PBA_PARAM_SET;
59
60 typedef union _DELBA_PARAM_SET {
61         u8 charData[2];
62         u16 shortData;
63         struct {
64                 u16 Reserved:11;
65                 u16 Initiator:1;
66                 u16 TID:4;
67         } field;
68 } DELBA_PARAM_SET, *PDELBA_PARAM_SET;
69
70 typedef struct _BA_RECORD {
71         struct timer_list               Timer;
72         u8                              bValid;
73         u8                              DialogToken;
74         BA_PARAM_SET            BaParamSet;
75         u16                             BaTimeoutValue;
76         SEQUENCE_CONTROL        BaStartSeqCtrl;
77 } BA_RECORD, *PBA_RECORD;
78
79 #endif