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