blob: b8fed556928cd458c5a189aad3018a3e8ca3328a [file] [log] [blame]
Larry Finger94a79942011-08-23 19:00:42 -05001/******************************************************************************
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
Larry Finger39b2a4a2011-07-19 19:31:37 -050029enum tr_select {
Larry Finger94a79942011-08-23 19:00:42 -050030 TX_DIR = 0,
31 RX_DIR = 1,
Larry Finger39b2a4a2011-07-19 19:31:37 -050032};
Larry Finger94a79942011-08-23 19:00:42 -050033
Larry Finger74724de2011-07-18 20:19:19 -050034struct ts_common_info {
Larry Finger94a79942011-08-23 19:00:42 -050035 struct list_head List;
36 struct timer_list SetupTimer;
37 struct timer_list InactTimer;
Mateusz Kulikowski06c11102015-05-31 20:19:21 +020038 u8 Addr[ETH_ALEN];
Larry Fingered306e42011-07-19 10:25:55 -050039 union tspec_body TSpec;
Larry Finger626f9512011-07-19 10:27:46 -050040 union qos_tclas TClass[TCLAS_NUM];
Larry Finger94a79942011-08-23 19:00:42 -050041 u8 TClasProc;
42 u8 TClasNum;
Larry Finger74724de2011-07-18 20:19:19 -050043};
Larry Finger94a79942011-08-23 19:00:42 -050044
Larry Finger60554f22011-07-18 20:10:03 -050045struct tx_ts_record {
Larry Finger74724de2011-07-18 20:19:19 -050046 struct ts_common_info TsCommonInfo;
Larry Finger94a79942011-08-23 19:00:42 -050047 u16 TxCurSeq;
Larry Finger8cf33312011-07-18 21:03:22 -050048 struct ba_record TxPendingBARecord;
49 struct ba_record TxAdmittedBARecord;
Larry Finger94a79942011-08-23 19:00:42 -050050 u8 bAddBaReqInProgress;
51 u8 bAddBaReqDelayed;
52 u8 bUsingBa;
53 u8 bDisable_AddBa;
54 struct timer_list TsAddBaTimer;
55 u8 num;
Larry Finger60554f22011-07-18 20:10:03 -050056};
Larry Finger94a79942011-08-23 19:00:42 -050057
Larry Finger2c47ae22011-07-18 20:11:56 -050058struct rx_ts_record {
Larry Finger74724de2011-07-18 20:19:19 -050059 struct ts_common_info TsCommonInfo;
Larry Finger94a79942011-08-23 19:00:42 -050060 u16 RxIndicateSeq;
61 u16 RxTimeoutIndicateSeq;
62 struct list_head RxPendingPktList;
63 struct timer_list RxPktPendingTimer;
Larry Finger8cf33312011-07-18 21:03:22 -050064 struct ba_record RxAdmittedBARecord;
Larry Finger94a79942011-08-23 19:00:42 -050065 u16 RxLastSeqNum;
66 u8 RxLastFragNum;
67 u8 num;
Larry Finger2c47ae22011-07-18 20:11:56 -050068};
Larry Finger94a79942011-08-23 19:00:42 -050069
Larry Fingerf88ec6c2011-08-25 11:48:18 -050070
Larry Finger94a79942011-08-23 19:00:42 -050071
72#endif