1 #ifndef _TSTYPE_H_
2 #define _TSTYPE_H_
3 #include "rtl819x_Qos.h"
4 #define TS_SETUP_TIMEOUT	60  // In millisecond
5 #define TS_INACT_TIMEOUT	60
6 #define TS_ADDBA_DELAY		60
7 
8 #define TOTAL_TS_NUM		16
9 #define TCLAS_NUM		4
10 
11 // This define the Tx/Rx directions
12 typedef enum _TR_SELECT {
13 	TX_DIR = 0,
14 	RX_DIR = 1,
15 } TR_SELECT, *PTR_SELECT;
16 
17 typedef struct _TS_COMMON_INFO{
18 	struct list_head		List;
19 	struct timer_list		SetupTimer;
20 	struct timer_list		InactTimer;
21 	u8				Addr[6];
22 	TSPEC_BODY			TSpec;
23 	QOS_TCLAS			TClass[TCLAS_NUM];
24 	u8				TClasProc;
25 	u8				TClasNum;
26 } TS_COMMON_INFO, *PTS_COMMON_INFO;
27 
28 typedef struct _TX_TS_RECORD{
29 	TS_COMMON_INFO		TsCommonInfo;
30 	u16				TxCurSeq;
31 	BA_RECORD			TxPendingBARecord;  	// For BA Originator
32 	BA_RECORD			TxAdmittedBARecord;	// For BA Originator
33 //	QOS_DL_RECORD		DLRecord;
34 	u8				bAddBaReqInProgress;
35 	u8				bAddBaReqDelayed;
36 	u8				bUsingBa;
37 	struct timer_list		TsAddBaTimer;
38 	u8				num;
39 } TX_TS_RECORD, *PTX_TS_RECORD;
40 
41 typedef struct _RX_TS_RECORD {
42 	TS_COMMON_INFO		TsCommonInfo;
43 	u16				RxIndicateSeq;
44 	u16				RxTimeoutIndicateSeq;
45 	struct list_head		RxPendingPktList;
46 	struct timer_list		RxPktPendingTimer;
47 	BA_RECORD			RxAdmittedBARecord;	 // For BA Recepient
48 	u16				RxLastSeqNum;
49 	u8				RxLastFragNum;
50 	u8				num;
51 //	QOS_DL_RECORD		DLRecord;
52 } RX_TS_RECORD, *PRX_TS_RECORD;
53 
54 
55 #endif
56 
57