rtl819x_BA.h
#ifndef _BATYPE_H_
#define _BATYPE_H_
#define TOTAL_TXBA_NUM 16
#define TOTAL_RXBA_NUM 16
#define BA_SETUP_TIMEOUT 200
#define BA_INACT_TIMEOUT 60000
#define BA_POLICY_DELAYED 0
#define BA_POLICY_IMMEDIATE 1
#define ADDBA_STATUS_SUCCESS 0
#define ADDBA_STATUS_REFUSED 37
#define ADDBA_STATUS_INVALID_PARAM 38
#define DELBA_REASON_QSTA_LEAVING 36
#define DELBA_REASON_END_BA 37
#define DELBA_REASON_UNKNOWN_BA 38
#define DELBA_REASON_TIMEOUT 39
/* whether need define BA Action frames here?
struct ieee80211_ADDBA_Req{
struct ieee80211_header_data header;
u8 category;
u8
} __attribute__ ((packed));
*/
//Is this need?I put here just to make it easier to define structure BA_RECORD //WB
typedef union _SEQUENCE_CONTROL{
u16 ShortData;
struct
{
u16 FragNum:4;
u16 SeqNum:12;
}field;
}SEQUENCE_CONTROL, *PSEQUENCE_CONTROL;
typedef union _BA_PARAM_SET {
u8 charData[2];
u16 shortData;
struct {
u16 AMSDU_Support:1;
u16 BAPolicy:1;
u16 TID:4;
u16 BufferSize:10;
} field;
} BA_PARAM_SET, *PBA_PARAM_SET;
typedef union _DELBA_PARAM_SET {
u8 charData[2];
u16 shortData;
struct {
u16 Reserved:11;
u16 Initiator:1;
u16 TID:4;
} field;
} DELBA_PARAM_SET, *PDELBA_PARAM_SET;
typedef struct _BA_RECORD {
struct timer_list Timer;
u8 bValid;
u8 DialogToken;
BA_PARAM_SET BaParamSet;
u16 BaTimeoutValue;
SEQUENCE_CONTROL BaStartSeqCtrl;
} BA_RECORD, *PBA_RECORD;
#endif //end _BATYPE_H_