Definition and management of Tx SW descriptors. More...
|
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 txdesc * | txdesc_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 txdesc * | txdesc_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 txdesc * | tx_desc_next (struct txdesc *txdesc) |
| Return the TX descriptor following the one passed as parameter. | |
Definition and management of Tx SW descriptors.
| enum tx_swdesc_umac_flags |
Definition at line 57 of file tx_swdesc.h.
| __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.
| [in] | txdesc | TX Descriptor to be checked |
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)
| [in] | txdesc | Txdesc pointer to access its packet count. |
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)
| [in] | txdesc | Txdesc pointer to access its packet count. |
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.
| [in] | txdesc | Txdesc pointer to access its flags elements. |
Definition at line 355 of file tx_swdesc.h.
References txdesc::host, and hostdesc::tid.
Referenced by txl_payload_handle().
Return the TX descriptor following the one passed as parameter.
| [in] | txdesc | Tx descriptor pointer. |
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.
| const int nx_txdesc_cnt[] |
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[] |
{
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] |
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] |
Array of pointer to the different TX descriptor pools.
Definition at line 51 of file tx_swdesc.c.
1.6.1