194a79942SLarry Finger /****************************************************************************** 294a79942SLarry Finger * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. 394a79942SLarry Finger * 494a79942SLarry Finger * This program is distributed in the hope that it will be useful, but WITHOUT 594a79942SLarry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 694a79942SLarry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 794a79942SLarry Finger * more details. 894a79942SLarry Finger * 994a79942SLarry Finger * You should have received a copy of the GNU General Public License along with 1094a79942SLarry Finger * this program; if not, write to the Free Software Foundation, Inc., 1194a79942SLarry Finger * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 1294a79942SLarry Finger * 1394a79942SLarry Finger * The full GNU General Public License is included in this distribution in the 1494a79942SLarry Finger * file called LICENSE. 1594a79942SLarry Finger * 1694a79942SLarry Finger * Contact Information: 1794a79942SLarry Finger * wlanfae <wlanfae@realtek.com> 1894a79942SLarry Finger ******************************************************************************/ 1994a79942SLarry Finger #ifndef _BATYPE_H_ 2094a79942SLarry Finger #define _BATYPE_H_ 2194a79942SLarry Finger 2294a79942SLarry Finger #define TOTAL_TXBA_NUM 16 2394a79942SLarry Finger #define TOTAL_RXBA_NUM 16 2494a79942SLarry Finger 2594a79942SLarry Finger #define BA_SETUP_TIMEOUT 200 2694a79942SLarry Finger #define BA_INACT_TIMEOUT 60000 2794a79942SLarry Finger 2894a79942SLarry Finger #define BA_POLICY_DELAYED 0 2994a79942SLarry Finger #define BA_POLICY_IMMEDIATE 1 3094a79942SLarry Finger 3194a79942SLarry Finger #define ADDBA_STATUS_SUCCESS 0 3294a79942SLarry Finger #define ADDBA_STATUS_REFUSED 37 3394a79942SLarry Finger #define ADDBA_STATUS_INVALID_PARAM 38 3494a79942SLarry Finger 3594a79942SLarry Finger #define DELBA_REASON_QSTA_LEAVING 36 3694a79942SLarry Finger #define DELBA_REASON_END_BA 37 3794a79942SLarry Finger #define DELBA_REASON_UNKNOWN_BA 38 3894a79942SLarry Finger #define DELBA_REASON_TIMEOUT 39 3994a79942SLarry Finger typedef union _SEQUENCE_CONTROL{ 4094a79942SLarry Finger u16 ShortData; 4194a79942SLarry Finger struct 4294a79942SLarry Finger { 4394a79942SLarry Finger u16 FragNum:4; 4494a79942SLarry Finger u16 SeqNum:12; 4594a79942SLarry Finger }field; 4694a79942SLarry Finger }SEQUENCE_CONTROL, *PSEQUENCE_CONTROL; 4794a79942SLarry Finger 4894a79942SLarry Finger typedef union _BA_PARAM_SET { 4994a79942SLarry Finger u8 charData[2]; 5094a79942SLarry Finger u16 shortData; 5194a79942SLarry Finger struct { 5294a79942SLarry Finger u16 AMSDU_Support:1; 5394a79942SLarry Finger u16 BAPolicy:1; 5494a79942SLarry Finger u16 TID:4; 5594a79942SLarry Finger u16 BufferSize:10; 5694a79942SLarry Finger } field; 5794a79942SLarry Finger } BA_PARAM_SET, *PBA_PARAM_SET; 5894a79942SLarry Finger 5994a79942SLarry Finger typedef union _DELBA_PARAM_SET { 6094a79942SLarry Finger u8 charData[2]; 6194a79942SLarry Finger u16 shortData; 6294a79942SLarry Finger struct { 6394a79942SLarry Finger u16 Reserved:11; 6494a79942SLarry Finger u16 Initiator:1; 6594a79942SLarry Finger u16 TID:4; 6694a79942SLarry Finger } field; 6794a79942SLarry Finger } DELBA_PARAM_SET, *PDELBA_PARAM_SET; 6894a79942SLarry Finger 698cf33316SLarry Finger struct ba_record { 7094a79942SLarry Finger struct timer_list Timer; 7194a79942SLarry Finger u8 bValid; 7294a79942SLarry Finger u8 DialogToken; 7394a79942SLarry Finger BA_PARAM_SET BaParamSet; 7494a79942SLarry Finger u16 BaTimeoutValue; 7594a79942SLarry Finger SEQUENCE_CONTROL BaStartSeqCtrl; 768cf33316SLarry Finger }; 7794a79942SLarry Finger 7894a79942SLarry Finger #endif 79