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 12typedef enum _TR_SELECT { 13 TX_DIR = 0, 14 RX_DIR = 1, 15} TR_SELECT, *PTR_SELECT; 16 17typedef 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 28typedef 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 41typedef 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