LMAC TX aggregation related definitions. More...
#include "co_int.h"#include "mac.h"#include "co_status.h"#include "co_list.h"#include "tx_swdesc.h"#include "ke_event.h"#include "hal_machw.h"#include "sta_mgmt.h"Go to the source code of this file.
Data Structures | |
| struct | tx_agg_desc |
| Aggregation descriptor, containing AMPDU THD, BAR descriptor, BAR payload and Policy Table. More... | |
Functions | |
External API | |
| __INLINE bool | is_mpdu_agg (struct txdesc *txdesc) |
| Return boolean corresponding to MPDU being aggregatable or not. | |
| __INLINE bool | is_mpdu_first (struct txdesc *txdesc) |
| Return boolean corresponding to MPDU being first in an AMPDU or not. | |
| __INLINE bool | is_mpdu_interm (struct txdesc *txdesc) |
| Return boolean corresponding to MPDU being intermediate in an AMPDU or not. | |
| __INLINE bool | is_mpdu_last (struct txdesc *txdesc) |
| Return boolean corresponding to MPDU being last in an AMPDU or not. | |
| __INLINE bool | is_mpdu_unpos (struct txdesc *txdesc) |
| Return boolean corresponding to MPDU having no position in an AMPDU yet (inherent check for aggregatable too). | |
| __INLINE void | set_mpdu_pos (struct txdesc *txdesc, uint32_t pos) |
| Set position of MPDU inside an AMPDU. | |
| __INLINE uint16_t | txl_mpdu_subframe_len (struct tx_hd *thd) |
| Calculate AMPDU subframe length for an MPDU (without blank delimiters). | |
| __INLINE bool | is_in_mumimo_ppdu (struct txdesc *txdesc) |
| Return a boolean indicating if the MPDU is part of a MU-MIMO PPDU. | |
| __INLINE bool | is_primary_user (struct txdesc *txdesc) |
| Return a boolean indicating if the MPDU is part of the A-MPDU sent on the primary HW queue. | |
| __INLINE bool | is_mumimo_group_id (uint8_t group_id) |
| Return a boolean indicating if the GroupID passed as parameter is a MU-MIMO one. | |
| __INLINE uint8_t | get_group_id (struct txdesc *txdesc) |
| Return the MU-MIMO GroupId from the TX descriptor. | |
| __INLINE uint8_t | get_user_pos (struct txdesc *txdesc) |
| Return the MU-MIMO User Position from the TX descriptor. | |
| __INLINE struct tx_agg_desc * | txl_agg_desc_alloc (uint8_t access_category) |
| Get a free aggregation descriptor structure from the free pool. | |
| __INLINE void | txl_agg_desc_free (struct tx_agg_desc *agg_desc) |
| Free a used aggregation descriptor structure. | |
| void | txl_agg_init (void) |
| Initializes the TX aggregation module. | |
| void | txl_agg_reset (void) |
| Reset the TX aggregation module. | |
| int | txl_agg_push_mpdu (struct txdesc *txdesc, uint8_t ac) |
| Try and aggregate txdesc, several checks are made, when they fail the MPDU goes on to be downloaded as a normal singleton MPDU. | |
| void | txl_agg_finish (uint8_t ac) |
Terminates the non MU-MIMO A-MPDU under construction This function can be called in several cases:
| |
| void | txl_agg_bw_drop_handle (uint8_t access_category) |
| Handler of the HW BW drop mechanism interrupt Based on the actual BW of transmission, this function cuts the A-MPDU under transmission and chains the following MPDUs as singleton. | |
| void | txl_agg_check (uint8_t access_category) |
| Check if there is an A-MPDU under construction and if the TX queue is empty. | |
| void | txl_agg_set_ampdu_protection (uint32_t *rc) |
| Add Self-CTS protection to the A-MPDU. | |
| void | txl_agg_check_rtscts_retry_limit (struct tx_hd *a_thd, uint8_t access_category) |
| Check if the current A-MPDU header descriptor indicates that the RTS/CTS retry limit has been reached. | |
| void | txl_agg_check_saved_agg_desc (uint8_t access_category) |
| Check if an A-MPDU descriptor is currently saved and free it. | |
| void | txl_agg_mumimo_close (uint8_t ac) |
| Terminates the MU-MIMO PPDU. | |
| void | txl_agg_sec_transmit_trigger (void) |
| Process secondary user events of the MACTX IRQ. | |
| uint16_t | txl_agg_mpdu_nb_delims (struct tx_hd *thd, uint16_t mmss_bytes) |
| Calculate number of blank delimiters to ensure MMSS after a THD This number will be set in the THD of the NEXT txdesc in AMPDU. | |
| void | txl_agg_release (struct tx_agg_desc *agg_desc) |
| Release all AMPDU related space: BA, BAR, aggregate control and its AMPDU THD. | |
| struct tx_hd * | txl_agg_change_to_singleton (struct txdesc *txdesc, bool he_tb) |
| Transform a MPDU part of an A-MPDU into a singleton MPDU. | |
Variables | |
| struct co_list | tx_agg_desc_pool [] |
| Per-ac pools of free aggregation descriptors. | |
LMAC TX aggregation related definitions.
Copyright (C) RivieraWaves 2011-2019
Definition in file txl_agg.h.
1.6.1