Tx confirmation module. More...
#include <stddef.h>#include "txl_cntrl.h"#include "txl_cfm.h"#include "ke_event.h"#include "mac_frame.h"#include "dbg.h"#include "txl_agg.h"#include "txl_buffer.h"#include "txl_frame.h"#include "co_utils.h"#include "ps.h"#include "mm.h"#include "rxl_hwdesc.h"#include "macif.h"#include "me_utils.h"#include "txu_cntrl.h"#include "bfr.h"Go to the source code of this file.
Functions | |
| static uint8_t | txl_ba_ac_get (struct rxdesc *rxdesc) |
| Recover the access category value corresponding to a received BA frame by extracting the TID from its payload. | |
| static bool | txl_decode_compressed_ba (struct rxdesc *badesc, struct tx_agg_desc *agg_desc) |
| This function checks if the received compressed BA content matches the A-MPDU it acknowledges, i.e if TA and TID correspond to the respective parameters of the A-MPDU we sent. | |
| static bool | txl_is_ba_valid (struct tx_agg_desc *agg_desc, struct rxdesc *badesc) |
| This function checks if the received BA contains acknowledgment information for the A-MPDU we transmitted. | |
| static bool | txl_comp_sn (uint16_t sn1, uint16_t sn2) |
| Returns true if the first SN is the min of two sequence numbers. | |
| static uint32_t | txl_ba_extract_ack (struct txdesc *txdesc, struct tx_agg_desc *agg_desc, int *agg_ok) |
| Extract the ACK status of an MPDU from a BA frame bitmap. | |
| void | txl_cfm_init (void) |
| Initializes the CFM and BA queues. | |
| void | txl_cfm_push (struct txdesc *txdesc, uint32_t status, uint8_t access_category) |
| Push a Tx descriptor in the CFM queue. | |
| void | txl_ba_push (struct rxdesc *rxdesc) |
| Push a Rx descriptor containing a BA frame in the appropriate aggregate descriptor on the right AC. | |
| void | txl_cfm_evt (int access_category) |
| Background event handler of the Tx confirmation module. | |
| void | txl_cfm_flush_desc (uint8_t access_category, struct txdesc *txdesc, uint32_t status) |
| Immediately confirm the descriptor passed as parameter. | |
| void | txl_cfm_flush (uint8_t access_category, struct co_list *list, uint32_t status) |
| Immediately confirm all the descriptors of the list passed as parameter. | |
Variables | |
| struct txl_cfm_env_tag | txl_cfm_env |
| Tx Confirmation context variable. | |
| const uint32_t | txl_cfm_evt_bit [NX_TXQ_CNT] |
| Table mapping the TX confirmation event bit to the queue index. | |
Tx confirmation module.
Copyright (C) RivieraWaves 2011-2019
Definition in file txl_cfm.c.
| static uint8_t txl_ba_ac_get | ( | struct rxdesc * | rxdesc | ) | [static] |
Recover the access category value corresponding to a received BA frame by extracting the TID from its payload.
| [in] | rxdesc | Pointer to Rx descriptor for BA frame for which AC is determined |
Definition at line 80 of file txl_cfm.c.
References rx_dmadesc::hd, IMM_RSP_AC_MSK, IMM_RSP_AC_OFT, rxl_dmadesc_get(), and rx_hd::statinfo.
Referenced by txl_ba_push().
| static uint32_t txl_ba_extract_ack | ( | struct txdesc * | txdesc, | |
| struct tx_agg_desc * | agg_desc, | |||
| int * | agg_ok | |||
| ) | [static] |
Extract the ACK status of an MPDU from a BA frame bitmap.
| [in] | txdesc | Pointer to Tx SW descriptor of the MPDU whose status will be extracted |
| [in] | agg_desc | Pointer to the A-MPDU descriptor |
| [out] | agg_ok | Variable to be incremented if the MPDU is confirmed |
Definition at line 226 of file txl_cfm.c.
References BA_FRAME_RECEIVED_BIT, ba_ssc_bitmap::bitmap, FRAME_SUCCESSFUL_TX_BIT, txdesc::host, hostdesc::sn, ba_ssc_bitmap::ssc, tx_agg_desc::ssc_bitmap, and txl_comp_sn().
Referenced by txl_cfm_evt().
| static bool txl_comp_sn | ( | uint16_t | sn1, | |
| uint16_t | sn2 | |||
| ) | [static] |
Returns true if the first SN is the min of two sequence numbers.
| [in] | sn1 | First sequence number to be compared |
| [in] | sn2 | Second sequence number to be compared |
Definition at line 209 of file txl_cfm.c.
Referenced by txl_ba_extract_ack().
| static bool txl_decode_compressed_ba | ( | struct rxdesc * | badesc, | |
| struct tx_agg_desc * | agg_desc | |||
| ) | [static] |
This function checks if the received compressed BA content matches the A-MPDU it acknowledges, i.e if TA and TID correspond to the respective parameters of the A-MPDU we sent.
| [in] | badesc | Pointer to Rx descriptor of BA frame |
| [in] | agg_desc | Pointer to the A-MPDU descriptor |
Definition at line 114 of file txl_cfm.c.
References ba_comp_frame::ba_cntrl, rx_pbd::datastartptr, rx_hd::first_pbd_ptr, rx_hd::frmlen, rx_dmadesc::hd, HW2CPU, RX_HD_ADDRMIS, rxl_dmadesc_get(), tx_agg_desc::ssc_bitmap, ba_comp_frame::ssc_bitmap, tx_agg_desc::ssc_bitmap_tab, rx_hd::statinfo, and tx_agg_desc::tid.
Referenced by txl_is_ba_valid().
| static bool txl_is_ba_valid | ( | struct tx_agg_desc * | agg_desc, | |
| struct rxdesc * | badesc | |||
| ) | [static] |
This function checks if the received BA contains acknowledgment information for the A-MPDU we transmitted.
| [in] | agg_desc | A-MPDU descriptor (contains all required information) |
| [in] | badesc | BA frame descriptor |
Definition at line 159 of file txl_cfm.c.
References ASSERT_REC_VAL, ba_base::ba_cntrl, rx_pbd::datastartptr, rx_hd::first_pbd_ptr, rx_dmadesc::hd, HW2CPU, KEY_IDX_MSK, KEY_IDX_OFT, KEY_IDX_VALID_BIT, MM_KEY_TO_STA, MM_SEC_DEFAULT_KEY_COUNT, rxl_dmadesc_get(), tx_agg_desc::sta_idx, rx_hd::statinfo, and txl_decode_compressed_ba().
Referenced by txl_ba_push().
1.6.1