# /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.