xref: /linux/drivers/staging/rtl8192e/rtl819x_BA.h (revision 8be98d2f2a0a262f8bf8a0bc1fdf522b3c7aab17)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
4  *
5  * Contact Information: wlanfae <wlanfae@realtek.com>
6  */
7 #ifndef _BATYPE_H_
8 #define _BATYPE_H_
9 
10 #define	BA_SETUP_TIMEOUT	200
11 
12 #define	BA_POLICY_DELAYED		0
13 #define	BA_POLICY_IMMEDIATE	1
14 
15 #define	ADDBA_STATUS_SUCCESS			0
16 #define	ADDBA_STATUS_REFUSED		37
17 #define	ADDBA_STATUS_INVALID_PARAM	38
18 
19 #define	DELBA_REASON_END_BA			37
20 #define	DELBA_REASON_UNKNOWN_BA	38
21 #define	DELBA_REASON_TIMEOUT			39
22 union sequence_control {
23 	u16 short_data;
24 	struct {
25 		u16	frag_num:4;
26 		u16	seq_num:12;
27 	} field;
28 };
29 
30 union ba_param_set {
31 	u8 char_data[2];
32 	u16 short_data;
33 	struct {
34 		u16 amsdu_support:1;
35 		u16 ba_policy:1;
36 		u16 tid:4;
37 		u16 buffer_size:10;
38 	} field;
39 };
40 
41 union delba_param_set {
42 	u8 char_data[2];
43 	u16 short_data;
44 	struct {
45 		u16 reserved:11;
46 		u16 initiator:1;
47 		u16 tid:4;
48 	} field;
49 };
50 
51 struct ba_record {
52 	struct timer_list timer;
53 	u8 b_valid;
54 	u8 dialog_token;
55 	union ba_param_set ba_param_set;
56 	u16 ba_timeout_value;
57 	union sequence_control ba_start_seq_ctrl;
58 };
59 
60 #endif
61