192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond/*
292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * All rights reserved.
492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
592b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * This program is free software; you can redistribute it and/or modify
692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * it under the terms of the GNU General Public License as published by
792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * the Free Software Foundation; either version 2 of the License, or
892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * (at your option) any later version.
992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
1092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * This program is distributed in the hope that it will be useful,
1192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * but WITHOUT ANY WARRANTY; without even the implied warranty of
1292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * GNU General Public License for more details.
1492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
1592b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * You should have received a copy of the GNU General Public License along
1692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * with this program; if not, write to the Free Software Foundation, Inc.,
1792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
1992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
2092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * File: datarate.h
2192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
2292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * Purpose: Handles the auto fallback & data rates functions
2392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
2492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * Author: Lyndon Chen
2592b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
2692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond * Date: July 16, 2002
2792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond *
2892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond */
2992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#ifndef __DATARATE_H__
3092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define __DATARATE_H__
3192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
3292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond/*---------------------  Export Definitions -------------------------*/
3392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
3492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define FALLBACK_PKT_COLLECT_TR_H  50   // pkts
3592b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define FALLBACK_PKT_COLLECT_TR_L  10   // pkts
3692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define FALLBACK_POLL_SECOND       5    // 5 sec
3792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define FALLBACK_RECOVER_SECOND    30   // 30 sec
3892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define FALLBACK_THRESHOLD         15   // percent
3992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define UPGRADE_THRESHOLD          5    // percent
4092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define UPGRADE_CNT_THRD           3    // times
4192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RETRY_TIMES_THRD_H         2    // times
4292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RETRY_TIMES_THRD_L         1    // times
4392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
4492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
4592b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_1M         0
4692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_2M         1
4792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_5M         2
4892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_11M        3
4992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_6M         4
5092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_9M         5
5192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_12M        6
5292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_18M        7
5392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_24M        8
5492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_36M        9
5592b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_48M       10
5692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_54M       11
5792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define RATE_AUTO      12
5892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond#define MAX_RATE       12
5992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
6092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond/*---------------------  Export Classes  ----------------------------*/
6192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
6292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond/*---------------------  Export Variables  --------------------------*/
6392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
6492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
6592b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond/*---------------------  Export Types  ------------------------------*/
6692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
6792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
6892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond/*---------------------  Export Functions  --------------------------*/
6992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
7092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
7192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
728611a29ab967bc197494db19d31994d1b5a26fdcAndres Morevoid
7392b96797118e5836294a6d42a5a8e10b86f50e3fForest BondRATEvParseMaxRate(
748611a29ab967bc197494db19d31994d1b5a26fdcAndres More     void *pDeviceHandler,
75592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     PWLAN_IE_SUPP_RATES pItemRates,
76592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     PWLAN_IE_SUPP_RATES pItemExtRates,
77592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     BOOL bUpdateBasicRate,
786f8c13c7dbe0d51e62bdb1aa11c1c38a8f8e3133Andres More     PWORD pwMaxBasicRate,
796f8c13c7dbe0d51e62bdb1aa11c1c38a8f8e3133Andres More     PWORD pwMaxSuppRate,
806f8c13c7dbe0d51e62bdb1aa11c1c38a8f8e3133Andres More     PWORD pwSuppRate,
816f8c13c7dbe0d51e62bdb1aa11c1c38a8f8e3133Andres More     PBYTE pbyTopCCKRate,
826f8c13c7dbe0d51e62bdb1aa11c1c38a8f8e3133Andres More     PBYTE pbyTopOFDMRate
8392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond    );
8492b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
858611a29ab967bc197494db19d31994d1b5a26fdcAndres Morevoid
8692b96797118e5836294a6d42a5a8e10b86f50e3fForest BondRATEvTxRateFallBack(
878611a29ab967bc197494db19d31994d1b5a26fdcAndres More     void *pDeviceHandler,
88592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     PKnownNodeDB psNodeDBTable
8992b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond    );
9092b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
9192b96797118e5836294a6d42a5a8e10b86f50e3fForest BondBYTE
9292b96797118e5836294a6d42a5a8e10b86f50e3fForest BondRATEuSetIE(
93592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     PWLAN_IE_SUPP_RATES pSrcRates,
94592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     PWLAN_IE_SUPP_RATES pDstRates,
95cc856e61ee4ffb150ff352e3d6940978a2f819e8Andres More     unsigned int                uRateLen
9692b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond    );
9792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
9892b96797118e5836294a6d42a5a8e10b86f50e3fForest BondWORD
9992b96797118e5836294a6d42a5a8e10b86f50e3fForest BondRATEwGetRateIdx(
100592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     BYTE byRate
10192b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond    );
10292b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
10392b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
10492b96797118e5836294a6d42a5a8e10b86f50e3fForest BondBYTE
10592b96797118e5836294a6d42a5a8e10b86f50e3fForest BondDATARATEbyGetRateIdx(
106592ccfebb3d7ae6d2fa367b97f080790befa3c6cAndres More     BYTE byRate
10792b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond    );
10892b96797118e5836294a6d42a5a8e10b86f50e3fForest Bond
109e7b07d1d8936e06f88dbe227401ce659c2f9dee5Andres More#endif /* __DATARATE_H__ */
110