118056f34SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 218056f34SGreg Kroah-Hartman /* 394a79942SLarry Finger * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. 494a79942SLarry Finger * 518056f34SGreg Kroah-Hartman * Contact Information: wlanfae <wlanfae@realtek.com> 618056f34SGreg Kroah-Hartman */ 794a79942SLarry Finger #ifndef _BATYPE_H_ 894a79942SLarry Finger #define _BATYPE_H_ 994a79942SLarry Finger 1094a79942SLarry Finger #define BA_SETUP_TIMEOUT 200 1194a79942SLarry Finger 1294a79942SLarry Finger #define BA_POLICY_DELAYED 0 1394a79942SLarry Finger #define BA_POLICY_IMMEDIATE 1 1494a79942SLarry Finger 1594a79942SLarry Finger #define ADDBA_STATUS_SUCCESS 0 1694a79942SLarry Finger #define ADDBA_STATUS_REFUSED 37 1794a79942SLarry Finger #define ADDBA_STATUS_INVALID_PARAM 38 1894a79942SLarry Finger 1994a79942SLarry Finger #define DELBA_REASON_END_BA 37 2094a79942SLarry Finger #define DELBA_REASON_UNKNOWN_BA 38 2194a79942SLarry Finger #define DELBA_REASON_TIMEOUT 39 227baf9546SLarry Finger union sequence_control { 23c3f1bca8SWilliam Durand u16 short_data; 24831cb9dbSLarry Finger struct { 25a6a3dd37SWilliam Durand u16 frag_num:4; 26cedbc3acSWilliam Durand u16 seq_num:12; 2794a79942SLarry Finger } field; 287baf9546SLarry Finger }; 2994a79942SLarry Finger 306857f367SLarry Finger union ba_param_set { 31424e6a16SWilliam Durand u8 char_data[2]; 32113030ceSWilliam Durand u16 short_data; 3394a79942SLarry Finger struct { 34a6850f14SWilliam Durand u16 amsdu_support:1; 354320b7bdSWilliam Durand u16 ba_policy:1; 36bfe3388fSWilliam Durand u16 tid:4; 37a6d242d4SWilliam Durand u16 buffer_size:10; 3894a79942SLarry Finger } field; 396857f367SLarry Finger }; 4094a79942SLarry Finger 41f198db0cSLarry Finger union delba_param_set { 42ca3301b8SWilliam Durand u8 char_data[2]; 43d6afdc53SWilliam Durand u16 short_data; 4494a79942SLarry Finger struct { 45248a73b1SWilliam Durand u16 reserved:11; 46b3d5b115SWilliam Durand u16 initiator:1; 4753c72c4cSWilliam Durand u16 tid:4; 4894a79942SLarry Finger } field; 49f198db0cSLarry Finger }; 5094a79942SLarry Finger 518cf33316SLarry Finger struct ba_record { 52a318d0b1SWilliam Durand struct timer_list timer; 53ba05a619SWilliam Durand u8 b_valid; 54142867eaSWilliam Durand u8 dialog_token; 55ffa3d0a1SWilliam Durand union ba_param_set ba_param_set; 56092bc4e7SWilliam Durand u16 ba_timeout_value; 57*34fea352SWilliam Durand union sequence_control ba_start_seq_ctrl; 588cf33316SLarry Finger }; 5994a79942SLarry Finger 6094a79942SLarry Finger #endif 61