28#define THIS_FILE_ID OAM_FILE_ID_HMAC_BLOCKACK_H
34#define HMAC_TX_BUF_BITMAP_LOG2_WORD_SIZE 5
36#define HMAC_TX_BUF_BITMAP_WORD_SIZE 32
38#define HMAC_TX_BUF_BITMAP_WORD_MASK (HMAC_TX_BUF_BITMAP_WORD_SIZE - 1)
41#define HMAC_BA_BMP_SIZE 64
44#define hmac_ba_bit_isset(_bm, _n) (((_n) < (HMAC_BA_BMP_SIZE)) && \
45 (((_bm)[(_n) >> 5] & (1 << ((_n) & 31))) != 0))
48#define hmac_baw_within(_start, _bawsz, _seqno) \
49 ((((osal_u32)((_seqno) - (_start))) & 4095) < (_bawsz))
52#define HMAC_BA_RX_VO_TIMEOUT 40
53#define HMAC_BA_RX_VI_TIMEOUT 100
54#define HMAC_BA_RX_BE_TIMEOUT 60
55#define HMAC_BA_RX_BK_TIMEOUT 100
57#define HMAC_BA_SEQNO_MASK 0x0FFF
58#define hmac_ba_seqno_sub(_seq1, _seq2) ((osal_u32)((_seq1) - (_seq2)) & HMAC_BA_SEQNO_MASK)
59#define hmac_ba_seqno_add(_seq1, _seq2) ((osal_u32)((_seq1) + (_seq2)) & HMAC_BA_SEQNO_MASK)
61#define WLAN_RX_RESET_BA_THREHOLD 32
244 is_tods = mac_hdr_get_to_ds((
osal_u8 *)frame_hdr);
245 is_from_ds = mac_hdr_get_from_ds((
osal_u8 *)frame_hdr);
247 tid = mac_get_tid_value((
osal_u8 *)frame_hdr, is_4addr);
361 oal_del_lut_index(ba_lut_index_table, lut_index);
389#ifdef _PRE_WLAN_FEATURE_AMPDU_TX_HW
#define HMAC_BA_MAX_SEQNO_BY_TWO
Definition dmac_ext_if_hcm.h:53
#define HMAC_BA_BETWEEN_SEQLO_SEQHI
Definition dmac_ext_if_hcm.h:58
#define HMAC_BA_GREATER_THAN_SEQHI
Definition dmac_ext_if_hcm.h:57
#define OAL_INLINE
Definition driver_soc_common.h:47
void osal_spin_lock(osal_spinlock *lock)
Lock the spinlock.
Definition osal_spinlock.c:38
void osal_spin_unlock(osal_spinlock *lock)
release the spin_lock.
Definition osal_spinlock.c:66
OAL_STATIC OAL_INLINE oal_bool_enum_uint8 hmac_ba_seqno_gt(osal_u16 seq1, osal_u16 seq2)
Definition hmac_blockack.h:147
OAL_STATIC OAL_INLINE oal_bool_enum_uint8 hmac_ba_rx_seqno_lt(osal_u16 seq1, osal_u16 seq2)
Definition hmac_blockack.h:105
osal_void hmac_reorder_ba_rx_buffer_bar_etc(hmac_ba_rx_stru *rx_ba, osal_u16 start_seq_num, hmac_vap_stru *hmac_vap)
OAL_STATIC OAL_INLINE osal_void hmac_ba_update_rx_bitmap(hmac_user_stru *hmac_user, mac_ieee80211_frame_stru *frame_hdr)
Definition hmac_blockack.h:234
osal_u32 hmac_ba_filter_serv_etc(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, mac_rx_ctl_stru *cb_ctrl, oal_netbuf_head_stru *netbuf_header, oal_bool_enum_uint8 *is_ba_buf)
OAL_STATIC OAL_INLINE oal_bool_enum_uint8 hmac_ba_seqno_lt(osal_u16 seq1, osal_u16 seq2)
Definition hmac_blockack.h:132
osal_u32 hmac_ba_filter_serv(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, const dmac_rx_ctl_stru *cb_ctrl, const mac_ieee80211_frame_stru *frame_hdr, hmac_ba_rx_stru **ba_rx_hdl)
osal_u8 hmac_mgmt_check_set_rx_ba_ok_etc(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, hmac_ba_rx_stru *ba_rx_info, hmac_device_stru *hmac_device, hmac_tid_stru *tid_info)
#define hmac_ba_seqno_sub(_seq1, _seq2)
Definition hmac_blockack.h:58
osal_u32 hmac_ba_reset_rx_handle_etc(hmac_device_stru *hmac_device, hmac_user_stru *hmac_user, osal_u8 tid, oal_bool_enum_uint8 is_aging)
osal_u32 hmac_ba_timeout_fn_etc(osal_void *p_arg)
OAL_STATIC OAL_INLINE hmac_rx_buf_stru * hmac_remove_frame_from_reorder_q(hmac_ba_rx_stru *ba_rx_hdl, osal_u16 seq_num)
Definition hmac_blockack.h:304
OAL_STATIC OAL_INLINE osal_u8 hmac_ba_get_lut_index(osal_u8 *ba_lut_index_table, osal_u16 start, osal_u16 stop)
Definition hmac_blockack.h:353
OAL_STATIC OAL_INLINE osal_void hmac_ba_clear_rx_bitmap(hmac_ba_rx_stru *ba_rx_hdl)
Definition hmac_blockack.h:220
#define hmac_baw_within(_start, _bawsz, _seqno)
Definition hmac_blockack.h:48
#define HMAC_TX_BUF_BITMAP_WORD_MASK
Definition hmac_blockack.h:38
OAL_STATIC OAL_INLINE oal_bool_enum_uint8 hmac_ba_rx_seqno_leq(osal_u16 seq1, osal_u16 seq2)
Definition hmac_blockack.h:158
OAL_STATIC OAL_INLINE osal_u8 hmac_ba_seqno_bound_chk(osal_u16 seq_lo, osal_u16 seq_hi, osal_u16 seq)
Definition hmac_blockack.h:278
#define hmac_ba_bit_isset(_bm, _n)
Definition hmac_blockack.h:44
#define HMAC_TX_BUF_BITMAP_LOG2_WORD_SIZE
Definition hmac_blockack.h:34
OAL_STATIC OAL_INLINE oal_bool_enum_uint8 hmac_ba_rx_seqno_geq(osal_u16 seq1, osal_u16 seq2)
Definition hmac_blockack.h:174
OAL_STATIC OAL_INLINE osal_void hmac_ba_addto_rx_bitmap(hmac_ba_rx_stru *ba_rx_hdl, osal_u16 seqno)
Definition hmac_blockack.h:204
osal_void hmac_up_rx_bar_etc(hmac_vap_stru *hmac_vap, dmac_rx_ctl_stru *rx_ctl, oal_netbuf_stru *netbuf)
#define hmac_ba_seqno_add(_seq1, _seq2)
Definition hmac_blockack.h:59
OAL_STATIC OAL_INLINE oal_bool_enum_uint8 hmac_ba_rx_seqno_gt(osal_u16 seq1, osal_u16 seq2)
Definition hmac_blockack.h:121
OAL_STATIC OAL_INLINE oal_bool_enum_uint8 hmac_ba_isset(hmac_ba_rx_stru *ba_rx_hdl, osal_u16 seqno)
Definition hmac_blockack.h:184
#define HMAC_BA_BMP_SIZE
Definition hmac_blockack.h:41
osal_void hmac_clear_tx_nonqos_seq_num(const hmac_vap_stru *hmac_vap)
osal_void hmac_ba_reset_tx_handle(hmac_vap_stru *hmac_vap, osal_u16 user_id, osal_u8 tid)
osal_u32 hmac_ba_check_rx_aggr(const hmac_vap_stru *hmac_vap, const mac_ieee80211_frame_stru *frame_hdr)
OAL_STATIC OAL_INLINE hmac_rx_buf_stru * hmac_get_frame_from_reorder_q(hmac_ba_rx_stru *ba_rx_hdl, osal_u16 seq_num)
Definition hmac_blockack.h:335
OAL_STATIC OAL_INLINE osal_void hmac_ba_del_lut_index(osal_u8 *ba_lut_index_table, osal_u8 lut_index)
Definition hmac_blockack.h:359
osal_void hmac_clear_tx_qos_seq_num(const hmac_user_stru *hmac_user)
osal_u16 seq_num
Definition mac_frame_rom.h:7
@ HMAC_BA_COMPLETE
Definition mac_user_ext.h:85
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
@ OAL_FALSE
Definition oal_types_device_rom.h:41
@ OAL_TRUE
Definition oal_types_device_rom.h:42
#define OAL_PTR_NULL
Definition oal_types_device_rom.h:30
unsigned char osal_u8
Definition osal_types.h:11
#define OSAL_FALSE
Definition osal_types.h:56
void osal_void
Definition osal_types.h:29
#define OSAL_TRUE
Definition osal_types.h:57
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
#define OAL_STATIC
Definition soc_wifi_service_api.c:30
Definition dmac_ext_if_device_rom.h:81
Definition mac_user_ext.h:433
osal_u32 rx_buf_bitmap[2]
Definition mac_user_ext.h:450
osal_spinlock ba_lock
Definition mac_user_ext.h:434
osal_u16 ba_status
Definition mac_user_ext.h:441
hmac_rx_buf_stru re_order_list[WLAN_AMPDU_RX_BUFFER_SIZE]
Definition mac_user_ext.h:458
osal_u16 baw_start
Definition mac_user_ext.h:435
osal_u16 baw_head
Definition mac_user_ext.h:452
Definition mac_device_ext.h:856
Definition mac_user_ext.h:388
osal_u16 seq_num
Definition mac_user_ext.h:391
oal_bool_enum_uint8 in_use
Definition mac_user_ext.h:389
Definition mac_user_ext.h:463
hmac_ba_rx_stru * ba_rx_info
Definition mac_user_ext.h:487
Definition mac_user_ext.h:519
hmac_tid_stru tx_tid_queue[WLAN_TID_MAX_NUM]
Definition mac_user_ext.h:657
Definition mac_vap_ext.h:2019
Definition hal_common_ops_device_rom.h:1104
Definition mac_frame_common_rom.h:575
Definition hal_common_ops_device_rom.h:978
Definition oal_skbuff.h:73
Definition oal_skbuff.h:82
#define MAC_RX_BA_LUT_BMAP_LEN
Definition wlan_spec_hh503.h:197
#define WLAN_AMPDU_RX_BUFFER_SIZE
Definition wlan_spec_hh503.h:193
#define HAL_MAX_RX_BA_LUT_SIZE
Definition wlan_spec_hh503_rom.h:81
osal_u8 oal_get_lut_index(osal_u8 *lut_index_table, osal_u8 bmap_len, osal_u16 max_lut_size, osal_u16 start, osal_u16 stop)