/space/home/slher/rel/Beken/v6_4_5/macsw/ip/umac/src/bam/bam.h File Reference

Functions and structures used by the UMAC ME BAM (Block ACK Manager) module. More...

#include "co_status.h"
#include "mac.h"
#include "mac_frame.h"
#include "ke_task.h"

Go to the source code of this file.

Data Structures

struct  bam_addba_req
 ADDBA Request frame Action field format (see IEEE 802.11-2012, section 8.5.5.2). More...
struct  bam_addba_rsp
 ADDBA Response frame Action field format (see IEEE 802.11-2012, section 8.5.5.3). More...
struct  bam_delba
 DELBA frame Action field format (see IEEE 802.11-2012, section 8.5.5.4). More...
struct  bam_baw
 Per RA/TID Data for AMPDU TX. More...
struct  bam_env_tag
 Declaration of BAM environment. More...

Defines

#define BAM_IDX_MAX   (NX_MAX_BA_TX + NX_REORD)
 Maximum index of the task instance.
#define BAM_FIRST_RX_IDX   0
 First BAM index for RX BA agreements.
#define BAM_NB_RX_IDX   NX_REORD
 Number of available RX BA agreements.
#define BAM_FIRST_TX_IDX   BAM_NB_RX_IDX
 First BAM index for TX BA agreements.
#define BAM_NB_TX_IDX   NX_MAX_BA_TX
 Number of available TX BA agreements.
#define BAM_INVALID_TASK_IDX   (BAM_IDX_MAX + 1)
 Invalid index of the task instances - 1 instance for manager.
#define BAM_BA_AGG_TX_CNT_THRES   2
 TX packet count for a STA/TID above which we establish a BlockAck agreement.
#define BAM_RESPONSE_TO_DURATION   500
 Maximal time before considering that BA_ADD_REQ won't receive any response.
#define BAM_INACTIVITY_TO_DURATION   2000
 Maximal time between two consequent packet before considering a BA AGG can be deleted (in number of TU).
#define BAM_ADDBA_REQ_INTERVAL   1000000
 Minimal time between sending two consequent ADDBA Req if error detected on the first one (in us) - 1s.
#define BAM_MAX_TX_WIN_SIZE   64
 Maximum size of the transmit window.
#define BAM_DELBA_MAX_TRY   3
 Maximum number of tentatives to send DELBA.
#define BAM_BA_PARAM_GET(ba_param, field)
 Get field from Block Ack Parameter field.
#define BAM_DELBA_PARAM_GET(delba_param, field)
 Get field from DELBA Parameter field.
ADDBA Request Offsets - From Action Category



#define BAM_ADDBAREQ_BA_PARAM_OFFSET   (3)
 ADDBA Request Offset.
#define BAM_ADDBAREQ_BA_TIMEOUT_OFFSET   (5)
 ADDBA Request Offset.
#define BAM_ADDBAREQ_BA_SSC_OFFSET   (7)
 ADDBA Request Offset.
ADDBA Response Offsets - From Action Category



#define BAM_ADDBARSP_STATUS_OFFSET   (3)
 ADDBA Response Offset.
#define BAM_ADDBARSP_BA_PARAM_OFFSET   (5)
 ADDBA Response Offset.
#define BAM_ADDBARSP_BA_TIMEOUT_OFFSET   (7)
 ADDBA Response Offset.
DELBA Offsets - From Action Category



#define BAM_DELBA_PARAM_OFFSET   (2)
 DELBA Offset.
#define BAM_DELBA_REASON_OFFSET   (4)
 DELBA Offset.
Action Frames Lengths



#define BAM_ADDBAREQ_LENGTH   (9)
 BlockAck action frame length.
#define BAM_ADDBARSP_LENGTH   (9)
 BlockAck action frame length.
#define BAM_DELBA_LENGTH   (6)
 BlockAck action frame length.
Block Ack Parameter Set Offsets and Masks



#define BAM_BA_PARAM_AMSDU_SUP_OFFSET   (0)
 BlockAck parameter set definition.
#define BAM_BA_PARAM_AMSDU_SUP_MASK   (0x0001)
 BlockAck parameter set definition.
#define BAM_BA_PARAM_BA_POL_OFFSET   (1)
 BlockAck parameter set definition.
#define BAM_BA_PARAM_BA_POL_MASK   (0x0002)
 BlockAck parameter set definition.
#define BAM_BA_PARAM_TID_OFFSET   (2)
 BlockAck parameter set definition.
#define BAM_BA_PARAM_TID_MASK   (0x003C)
 BlockAck parameter set definition.
#define BAM_BA_PARAM_BUFF_SIZE_OFFSET   (6)
 BlockAck parameter set definition.
#define BAM_BA_PARAM_BUFF_SIZE_MASK   (0xFFC0)
 BlockAck parameter set definition.
DELBA Parameters Offsets and Masks



#define BAM_DELBA_PARAM_INITIATOR_OFFSET   (11)
 DELBA parameter definition.
#define BAM_DELBA_PARAM_INITIATOR_MASK   (0x0800)
 DELBA parameter definition.
#define BAM_DELBA_PARAM_TID_OFFSET   (12)
 DELBA parameter definition.
#define BAM_DELBA_PARAM_TID_MASK   (0xF000)
 DELBA parameter definition.
BA/BAR Control Offsets and Masks



#define BAM_BA_CTRL_POLICY_OFFSET   (0)
 BA/BAR control definition.
#define BAM_BA_CTRL_POLICY_MASK   (0x0001)
 BA/BAR control definition.
#define BAM_BA_CTRL_MULTI_TID_OFFSET   (1)
 BA/BAR control definition.
#define BAM_BA_CTRL_MULTI_TID_MASK   (0x0002)
 BA/BAR control definition.
#define BAM_BA_CTRL_COMP_BITMAP_OFFSET   (2)
 BA/BAR control definition.
#define BAM_BA_CTRL_COMP_BITMAP_MASK   (0x0004)
 BA/BAR control definition.
#define BAM_BA_CTRL_COMP_BITMAP_OFFSET   (2)
 BA/BAR control definition.
#define BAM_BA_CTRL_COMP_BITMAP_MASK   (0x0004)
 BA/BAR control definition.
#define BAM_BA_CTRL_TID_INFO_OFFSET   (11)
 BA/BAR control definition.
#define BAM_BA_CTRL_TID_INFO_MASK   (0xF000)
 BA/BAR control definition.
Basic SSC Offsets and Masks



#define BAM_BASIC_SSC_FN_OFFSET   (0)
 Basic SSC definition.
#define BAM_BASIC_SSC_FN_MASK   (0x000F)
 Basic SSC definition.
#define BAM_BASIC_SSC_SSN_OFFSET   (4)
 Basic SSC definition.
#define BAM_BASIC_SSC_SSN_MASK   (0xFFF0)
 Basic SSC definition.

Typedefs

typedef unsigned int(* bam_baw_index_func_ptr )(struct bam_baw *, unsigned int)
 Pointer to BaW index computation function.

Enumerations

enum  bam_ba_type { BA_RESPONDER = 0, BA_ORIGINATOR, BA_DEV_NONE }
 

Block Ack device type.

More...
enum  bam_ba_policy { BAM_BA_POL_IMMEDIATE = 1, BAM_BA_POL_DELAYED }
 

Block Ack Policy Values.

More...
enum  bam_pkt_policy { BAM_PKT_POL_SINGLETON = 0, BAM_PKT_POL_AMPDU }
 

Packet policy values.


enum  bam_baw_state { BAW_FREE, BAW_PENDING, BAW_CONFIRMED }
 

Enum listing the possible states of a BAW element.

More...

Functions

__INLINE uint16_t bam_build_baparamset (struct bam_env_tag *bam_env)
 Used to build the BA parameter field.
void bam_init (void)
 Initialize the BAM context.
void bam_param_sta_info_tab_reset (uint16_t bam_idx)
 Reset the BA parameters in the station info table.
uint16_t bam_alloc_new_task (bool tx)
 Allocate the BAM task.
void bam_delete_ba_agg (uint8_t bam_idx)
 Delete a provided BlockAck agreement.
void bam_delete_all_ba_agg (uint8_t sta_idx)
 Delete all Block Ack agreements linked to the specified staid.
void bam_start_inactivity_timer (uint16_t bam_task_idx)
 start the BAM_INACTIVITY_TIMEOUT_IND timer
void bam_send_mm_ba_add_req (uint16_t sta_idx, uint16_t bam_idx)
 Send MM_BAADD_REQ to LMAC.
void bam_send_mm_ba_del_req (uint16_t sta_idx, uint16_t bam_idx)
 Send Send MM_BADEL_REQ to LMAC.
void bam_send_air_action_frame (uint8_t sta_idx, struct bam_env_tag *bam_env, uint8_t action, uint8_t dialog_token, uint16_t param, uint16_t status_code, void(*cfm_func)(void *, uint32_t))
 Send BA action frame to peer.
void bam_check_ba_agg (struct txdesc *txdesc)
 Check if a BlockAck agreement is currently active for the RA/TID for which the packet is sent.
int8_t bam_tx_cfm (struct txdesc *txdesc, bool success)
 Handles status of a transmission under BA.
void bam_baw_init (struct bam_env_tag *bam_env)
 Initialize the transmission window structure.
int8_t bam_flush_baw (struct bam_baw *baw)
 Flush the transmission window.
void bam_rx_active (uint8_t sta_idx, uint8_t tid)
 Reset the last activity time of a BlockAck agreement.
void bam_send_del_ba_agg (uint8_t sta_idx, uint8_t tid)
 Send DELBA action frame to delete a BA agreement active only on the peer.

Variables

struct bam_env_tag bam_env [BAM_IDX_MAX]
 BAM module environment declaration.

Detailed Description

Functions and structures used by the UMAC ME BAM (Block ACK Manager) module.

Copyright (C) RivieraWaves 2011-2019

Definition in file bam.h.


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