TX_SWDESC
[TX]

Definition and management of Tx SW descriptors. More...

Collaboration diagram for TX_SWDESC:

Data Structures

struct  txl_buffer_control
 Control descriptor containing information about the transmission rates to use, the Beamforming/HTC/STBC flags, etc. More...
struct  hostdesc
 Descriptor filled by the Host. More...
struct  umacdesc
 Descriptor filled by the UMAC. More...
struct  lmacdesc
 Descriptor filled by the LMAC. More...
struct  txdesc
 LMAC Tx Descriptor. More...
struct  txdesc_api
 Description of the TX API. More...
struct  txdesc_host
 Descriptor used for Host/Emb TX frame information exchange. More...

Defines

#define DELIMITER_LEN   4
 AMDPU delimiter length in bytes.

Enumerations

enum  tx_swdesc_umac_flags {
  TX_SWDESC_UMAC_BEAMFORM_BIT = CO_BIT(0), TX_SWDESC_UMAC_TRIAL_BEAMFORM_BIT = CO_BIT(1), TX_SWDESC_UMAC_TRIAL_STBC_BIT = CO_BIT(2), TX_SWDESC_UMAC_HTC_BIT = CO_BIT(3),
  TX_SWDESC_UMAC_TRIAL_HTC_BIT = CO_BIT(4)
}

Variables

struct txdesc txdesc_array0 [RW_USER_MAX *NX_TXDESC_CNT0]
 Descriptors for the BK queue.
struct txdesc txdesc_array1 [RW_USER_MAX *NX_TXDESC_CNT1]
 Descriptors for the BE queue.
struct txdesc txdesc_array2 [RW_USER_MAX *NX_TXDESC_CNT2]
 Descriptors for the VI queue.
struct txdesc txdesc_array3 [RW_USER_MAX *NX_TXDESC_CNT3]
 Descriptors for the VO queue.
struct txdesc txdesc_array4 [NX_TXDESC_CNT4]
 Descriptors for the BCN queue.
struct txdesc *const txdesc_array_per_q [NX_TXQ_CNT]
 Array of pointer to the different TX descriptor pools.
struct txdesctxdesc_array [NX_TXQ_CNT][RW_USER_MAX]
 Array of pointer to the different TX descriptor pools.
struct tx_hw_desc *const tx_hw_desc [NX_TXQ_CNT]
 Array of pointer to the different TX HW descriptor pools.
const int nx_txdesc_cnt []
 NX_FULLY_HOSTED.
const int nx_txuser_cnt []
 Maximum number of users per queue.
struct txdesctxdesc_array [NX_TXQ_CNT][RW_USER_MAX]
 Pointer to the TX descriptors arrays.
const int nx_txdesc_cnt [NX_TXQ_CNT]
 Number of TX descriptors per queue.
const int nx_txuser_cnt [NX_TXQ_CNT]
 Maximum number of users per queue.

External API



void tx_txdesc_init (void)
 Initializes the Tx descriptor pool.
__INLINE bool is_int_frame (struct txdesc *txdesc)
 Return a boolean indicating if a MPDU is split accross several host buffers (e.g.
__INLINE bool is_mpdu_split (struct txdesc *txdesc)
 Return a boolean indicating if a MPDU is split across several host buffers (e.g.
__INLINE bool is_qos_data (struct txdesc *txdesc)
 Return boolean corresponding to MPDU being first in an AMPDU or not.
__INLINE bool is_htc_sglt_allowed (struct txdesc *txdesc)
 Return if a frame pointed by the given TX descriptor can include a +HTC if transmitted as a singleton MPDU.
__INLINE struct txdesctx_desc_next (struct txdesc *txdesc)
 Return the TX descriptor following the one passed as parameter.

Detailed Description

Definition and management of Tx SW descriptors.


Enumeration Type Documentation

Enumerator:
TX_SWDESC_UMAC_BEAMFORM_BIT 

Singleton frame can be transmitted using beamforming.

TX_SWDESC_UMAC_TRIAL_BEAMFORM_BIT 

Singleton trial frame can be transmitted using beamforming.

TX_SWDESC_UMAC_TRIAL_STBC_BIT 

Trial frame can be transmitted using STBC.

TX_SWDESC_UMAC_HTC_BIT 

Singleton frame can be transmitted with +HTC field.

TX_SWDESC_UMAC_TRIAL_HTC_BIT 

Singleton trial frame can be transmitted with +HTC field.

Definition at line 57 of file tx_swdesc.h.


Function Documentation

__INLINE bool is_htc_sglt_allowed ( struct txdesc txdesc  ) 

Return if a frame pointed by the given TX descriptor can include a +HTC if transmitted as a singleton MPDU.

Parameters:
[in] txdesc TX Descriptor to be checked
Returns:
true if the frame could include a +HTC when sent as a singleton MPDU, false otherwise

Definition at line 369 of file tx_swdesc.h.

References umacdesc::buf_control, hostdesc::flags, txdesc::host, txl_buffer_control::tx_flags, TX_SWDESC_UMAC_HTC_BIT, TX_SWDESC_UMAC_TRIAL_HTC_BIT, TXU_CNTRL_RC_TRIAL, and txdesc::umac.

Referenced by txl_hwdesc_config_post().

__INLINE bool is_int_frame ( struct txdesc txdesc  ) 

Return a boolean indicating if a MPDU is split accross several host buffers (e.g.

A-MSDU)

Parameters:
[in] txdesc Txdesc pointer to access its packet count.
Returns:
Boolean True if MPDU is split and false otherwise

Definition at line 324 of file tx_swdesc.h.

References txdesc::host, and hostdesc::packet_addr.

Referenced by txl_cfm_flush(), txl_cfm_flush_desc(), txl_frame_exchange_done(), txl_payload_handle(), and txl_payload_transfer().

__INLINE bool is_mpdu_split ( struct txdesc txdesc  ) 

Return a boolean indicating if a MPDU is split across several host buffers (e.g.

A-MSDU)

Parameters:
[in] txdesc Txdesc pointer to access its packet count.
Returns:
Boolean True if MPDU is split and false otherwise

Definition at line 342 of file tx_swdesc.h.

References txdesc::host, and hostdesc::packet_cnt.

Referenced by bam_check_tx_baw(), txl_buffer_is_amsdu_multi_buf(), txl_buffer_is_amsdu_single_buf(), and txl_buffer_update_thd().

__INLINE bool is_qos_data ( struct txdesc txdesc  ) 

Return boolean corresponding to MPDU being first in an AMPDU or not.

Parameters:
[in] txdesc Txdesc pointer to access its flags elements.
Returns:
Boolean True if MPDU is first in the AMPDU and false otherwise

Definition at line 355 of file tx_swdesc.h.

References txdesc::host, and hostdesc::tid.

Referenced by txl_payload_handle().

__INLINE struct txdesc* tx_desc_next ( struct txdesc txdesc  )  [read]

Return the TX descriptor following the one passed as parameter.

Parameters:
[in] txdesc Tx descriptor pointer.
Returns:
The pointer to the next TX descriptor

Definition at line 393 of file tx_swdesc.h.

References co_list_next(), and txdesc::list_hdr.

Referenced by txl_mumimo_convert(), and txl_transmit_prep().

void tx_txdesc_init ( void   ) 

Initializes the Tx descriptor pool.


Variable Documentation

const int nx_txdesc_cnt[]
Initial value:

NX_FULLY_HOSTED.

Number of TX descriptors per queue.

Definition at line 78 of file tx_swdesc.c.

Referenced by bam_create_ba_agg(), and mm_ba_add_req_handler().

const int nx_txuser_cnt[]
Initial value:
{
    RW_USER_MAX,
    RW_USER_MAX,
    RW_USER_MAX,
    RW_USER_MAX,

    1,

}

Maximum number of users per queue.

Definition at line 89 of file tx_swdesc.c.

Referenced by ipc_emb_tx_q_has_data().

struct tx_hw_desc* const tx_hw_desc[NX_TXQ_CNT]
Initial value:

Array of pointer to the different TX HW descriptor pools.

Definition at line 66 of file tx_swdesc.c.

struct txdesc* txdesc_array[NX_TXQ_CNT][RW_USER_MAX]

Array of pointer to the different TX descriptor pools.

Pointer to the TX descriptors arrays.

Definition at line 63 of file tx_swdesc.c.

struct txdesc* const txdesc_array_per_q[NX_TXQ_CNT]
Initial value:

Array of pointer to the different TX descriptor pools.

Definition at line 51 of file tx_swdesc.c.


Generated on 14 Jan 2020 for Ceva-RW WLAN FullMAC SW documentation by  doxygen 1.6.1