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 _TSTYPE_H_
20#define _TSTYPE_H_
21#include "rtl819x_Qos.h"
22#define TS_SETUP_TIMEOUT	60
23#define TS_INACT_TIMEOUT	60
24#define TS_ADDBA_DELAY		60
25
26#define TOTAL_TS_NUM		16
27#define TCLAS_NUM		4
28
29enum tr_select {
30	TX_DIR = 0,
31	RX_DIR = 1,
32};
33
34struct ts_common_info {
35	struct list_head		List;
36	struct timer_list		SetupTimer;
37	struct timer_list		InactTimer;
38	u8				Addr[6];
39	union tspec_body TSpec;
40	union qos_tclas TClass[TCLAS_NUM];
41	u8				TClasProc;
42	u8				TClasNum;
43};
44
45struct tx_ts_record {
46	struct ts_common_info TsCommonInfo;
47	u16				TxCurSeq;
48	struct ba_record TxPendingBARecord;
49	struct ba_record TxAdmittedBARecord;
50	u8				bAddBaReqInProgress;
51	u8				bAddBaReqDelayed;
52	u8				bUsingBa;
53	u8				bDisable_AddBa;
54	struct timer_list		TsAddBaTimer;
55	u8				num;
56};
57
58struct rx_ts_record {
59	struct ts_common_info TsCommonInfo;
60	u16				RxIndicateSeq;
61	u16				RxTimeoutIndicateSeq;
62	struct list_head		RxPendingPktList;
63	struct timer_list		RxPktPendingTimer;
64	struct ba_record RxAdmittedBARecord;
65	u16				RxLastSeqNum;
66	u8				RxLastFragNum;
67	u8				num;
68};
69
70void _setup_timer(struct timer_list *, void *, unsigned long);
71
72
73#endif
74