# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/lmac/src/tx/txl/txl_cntrl.h File Reference

LMAC TxPath 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 | txl_agg_build_tag
| Structure containing the information about the current A-MPDU being built. More...
struct | txl_mumimo_build_info_tag
| Structure containing the information about the MU-MIMO PPDU being built. More...
struct | txl_list
| Structure of a per-AC Tx list. More...
struct | txl_cntrl_env_tag
| Context of the Tx Control block. More...
## Defines
#define | TX_AC0_TIMEOUT 5000000
| AC0 queue timeout.
#define | TX_AC1_TIMEOUT 2000000
| AC1 queue timeout.
#define | TX_AC2_TIMEOUT 400000
| AC2 queue timeout.
#define | TX_AC3_TIMEOUT 200000
| AC3 queue timeout.
#define | TX_BCN_TIMEOUT 50000
| BCN queue timeout.
#define | TX_AC2LLI(ac) ((ac) + IPC_DMA_LLI_DATA_AC0_TX)
| Conversion from Access Category to corresponding DMA LLI.
#define | TX_LLI2AC(idx) ((idx) - IPC_DMA_LLI_DATA_AC0_TX)
| Conversion from DMA LLI to corresponding Access Category.
#define | TX_AC2TIMER(ac) ((ac) + HAL_AC0_TIMER)
| Conversion from Access Category to corresponding TX timer.
#define | TX_LLICTRL(ac, irqenable)
| Conversion from Access Category to corresponding bridge DMA control field.
#define | AC_BCN AC_MAX
| Index of the beacon queue.
#define | TX_NTX_2_ANTENNA_SET(ntx) ((CO_BIT((ntx) + 1) - 1) << ANTENNA_SET_PT_OFT)
| Default TX antenna mask.
#define | MU_USER_MASK (CO_BIT(RW_USER_MAX) - 1)
| Default TX antenna mask.
## Enumerations
enum | { THD_CHK_STATE, BAR_THD_CHK_STATE }
| Tx trigger descriptor status check states. More...
enum | { AGG_FORMATTED = 0x01, AGG_DOWNLOADED = 0x02, AGG_ALLOC = 0x04, AGG_FIRST_DOWNLOADED = 0x08, AGG_DONE = 0x10, AGG_BA_RECEIVED = 0x20, AGG_BA_VALID = 0x40, AGG_INT = 0x80, AGG_MU = 0x100, AGG_TB = 0x200 }
| Aggregation process status bits. More...
enum | { SU_PACKET, MU_PACKET, MU_PAUSED, MU_RESTART_CHECK }
| Status of a packet pushed for aggregation, when MU-MIMO is enabled. More...
## Functions
External API
__INLINE bool | txl_sleep_check (void)
| Get the status of TX path, i.e if some packets are currently queued for transmission.
__INLINE uint16_t | txl_get_seq_ctrl (void)
| Get the current sequence control field to be used for non-QoS frames.
void | txl_cntrl_init (void)
| Initialize the LMAC TX path.
void | txl_reset (void)
| TX path reset function.
bool | txl_cntrl_tx_check (struct vif_info_tag *vif)
| Check if a packet can be transmitted on a given VIF.
bool | txl_cntrl_push (struct txdesc *txdesc, uint8_t access_category)
| Push a Tx descriptor in an RA/TID queue.
bool | txl_cntrl_push_int (struct txdesc *txdesc, uint8_t access_category)
| Push an internal frame Tx descriptor for transmission.
void | txl_transmit_trigger (void)
| Function to be called on transmission trigger IRQ.
void | txl_prot_trigger (void)
| Function to be called on TX protocol trigger IRQ (e.g.
void | txl_cntrl_dma_isr (void)
| Perform operations on payloads that have been transfered from host memory.
void | txl_cntrl_halt_ac (uint8_t access_category)
| Halt the MAC DMA of the specified queue.
void | txl_cntrl_flush_ac (uint8_t access_category, uint32_t status)
| Flush all the descriptors of the queue passed as parameter.
void | txl_current_desc_get (int access_category, struct tx_hd **thd)
| This function returns the pointer to the first TX Header descriptor chained to the MAC HW queue passed as parameter.
void | txl_cntrl_inc_pck_cnt (void)
| This function increments the TX path packet counter.
bool | txl_payload_alloc (struct txdesc *txdesc, uint8_t access_category, uint8_t user_idx)
| Prepare the transfer of payload from host memory to emb memory.
void | txl_cntrl_newhead (uint32_t desc, uint8_t access_category)
| NX_FULLY_HOSTED.
void | txl_frame_exchange_chain (struct tx_hd *first_thd, struct tx_hd *last_thd, uint8_t access_category)
| Chain a new frame exchange to the MAC HW.
void | txl_free_done_mpdu (struct txdesc *txdesc, uint8_t access_category, uint8_t user_idx)
| Free a MPDU that is marked as transmitted by the HW, and launch the download of a subsequent MPDU.
void | txl_check_done_amsdu_subframe (struct txdesc *txdesc, uint8_t access_category, uint8_t user_idx)
| Check transmission status of A-MSDU sub-frames.
## Variables
const uint32_t | txl_prep_evt_bit [NX_TXQ_CNT]
| Table mapping the TX prepare event bit to the queue index.
struct txl_cntrl_env_tag | txl_cntrl_env
| Tx Control context variable.

## Detailed Description

LMAC TxPath definitions.

Copyright (C) RivieraWaves 2011-2019

Definition in file txl_cntrl.h.