0001
0002
0003
0004
0005
0006
0007 #ifndef _BATYPE_H_
0008 #define _BATYPE_H_
0009
0010 #define BA_SETUP_TIMEOUT 200
0011
0012 #define BA_POLICY_DELAYED 0
0013 #define BA_POLICY_IMMEDIATE 1
0014
0015 #define ADDBA_STATUS_SUCCESS 0
0016 #define ADDBA_STATUS_REFUSED 37
0017 #define ADDBA_STATUS_INVALID_PARAM 38
0018
0019 #define DELBA_REASON_END_BA 37
0020 #define DELBA_REASON_UNKNOWN_BA 38
0021 #define DELBA_REASON_TIMEOUT 39
0022 union sequence_control {
0023 u16 short_data;
0024 struct {
0025 u16 frag_num:4;
0026 u16 seq_num:12;
0027 } field;
0028 };
0029
0030 union ba_param_set {
0031 u8 char_data[2];
0032 u16 short_data;
0033 struct {
0034 u16 amsdu_support:1;
0035 u16 ba_policy:1;
0036 u16 tid:4;
0037 u16 buffer_size:10;
0038 } field;
0039 };
0040
0041 union delba_param_set {
0042 u8 char_data[2];
0043 u16 short_data;
0044 struct {
0045 u16 reserved:11;
0046 u16 initiator:1;
0047 u16 tid:4;
0048 } field;
0049 };
0050
0051 struct ba_record {
0052 struct timer_list timer;
0053 u8 b_valid;
0054 u8 dialog_token;
0055 union ba_param_set ba_param_set;
0056 u16 ba_timeout_value;
0057 union sequence_control ba_start_seq_ctrl;
0058 };
0059
0060 #endif