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

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

#include "bam.h"
#include "bam_task.h"
#include "mac_frame.h"
#include "me_mgmtframe.h"
#include "mm_task.h"
#include "ke_timer.h"
#include "sta_mgmt.h"
#include "vif_mgmt.h"
#include "txu_cntrl.h"
#include "txl_cfm.h"
#include "ps.h"
#include "mfp.h"
#include "tpc.h"

Go to the source code of this file.

Functions

static uint16_t bam_time_get (void)
 Read and returns the current BAM time (used for lifetime expiry computation).
static bool bam_time_cmp (uint16_t time1, uint16_t time2)
 Compare BAM timer absolute expiration time.
static bool bam_time_past (uint32_t time)
 Check if a BAM time is in the past or not.
static unsigned int bam_baw_index_compute (struct bam_baw *baw, unsigned int offset)
 Compute the index of a BaW element from its offset.
static unsigned int bam_baw_index_compute_opt (struct bam_baw *baw, unsigned int offset)
 Compute the index of a BaW element from its offset.
static int8_t bam_move_baw (struct bam_baw *baw)
 Move the BaW to the next unconfirmed packet.
static void bam_set_baw_state (struct bam_baw *baw, uint16_t sn, uint8_t state)
 Set the state of a sequence number in the given BaW.
static int8_t bam_check_tx_baw (struct txdesc *txdesc, uint8_t bam_idx, bool success)
 Check and update the state of the BaW after transmission of a frame This function verifies if the frame should be retried or not.
static uint8_t bam_create_ba_agg (uint8_t sta_idx, uint8_t tid, uint16_t ssn)
 Initiate the creation of a TX BlockAck agreement.
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

static struct bam_baw bam_baws [5]
 BaW array.
struct bam_env_tag bam_env [BAM_IDX_MAX]
 BAM module environment definition.

Detailed Description

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

Copyright (C) RivieraWaves 2011-2019

Definition in file bam.c.


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