# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/lmac/src/sta/sta_mgmt.h File Reference

UMAC Station Management definitions. More...

`#include "rwnx_config.h"`
`#include "co_list.h"`
`#include "mac.h"`
`#include "mm_task.h"`
`#include "tdls_task.h"`
`#include "mm_timer.h"`
`#include "rxu_cntrl.h"`
`#include "bam.h"`

Go to the source code of this file.

## Data Structures
struct | sta_capa_info
| Station capability information. More...
struct | sta_mgmt_sec_info
| Station Information related to Security. More...
struct | sta_pol_tbl_cntl
| Information related to the used policy table. More...
struct | sta_mgmt_ba_info
| Information about RX and TX Block Ack for one TID. More...
struct | ba_agmt
| BA agreement structure - one for every possible TID, valid if params non 0. More...
struct | tdls_info_tag
| Information related to an established TDLS link. More...
struct | sta_info_tag
| STA Info Table. More...
struct | sta_info_env_tag
| STA management module environment. More...
## Defines
#define | STA_MGMT_PROT_HW_MASK
| Protection Configuration Management.
#define | VIF_TO_BCMC_IDX(idx) (BROADCAST_STA_IDX_MIN + (idx))
| Macro giving the BCMC station index for the VIF index passed as parameter.
#define | STA_REF_BSSID_AID ((uint8_t)-1)
| Specific AID value indicating that STA is the reference BSSID, in case we are connected to a nonTransmitted BSSID.
#define | STA_CAPA(sta, type) (((sta)->info.capa_flags & STA_##type##_CAPA) != 0)
| Test whether the specified capability is supported by the STA.
#define | STA_CAPA_SET(sta, type) ((sta)->info.capa_flags |= STA_##type##_CAPA)
| Set the specified STA capability.
#define | STA_CAPA_CLR(sta, type) ((sta)->info.capa_flags &= ~STA_##type##_CAPA)
| Clear the specified STA capability.
## Enumerations
enum | { BROADCAST_STA_IDX_MIN = NX_REMOTE_STA_MAX, BROADCAST_STA_IDX_MAX = NX_REMOTE_STA_MAX + NX_VIRT_DEV_MAX - 1, STA_MAX, INVALID_STA_IDX = 0xFF }
| Station indexes. More...
enum | sta_mgmt_key_type { STA_MGMT_KEY_TYPE_PAIRWISE = 0, STA_MGMT_KEY_TYPE_GROUP, STA_MGMT_KEY_TYPE_MAX }
| Definitions of key types.
enum | sta_mgmt_port_state { STA_MGMT_PORT_CLOSED = 0, STA_MGMT_PORT_CONTROLED, STA_MGMT_PORT_OPEN }
| Logical port state. More...
enum | sta_mgmt_pol_upd { STA_MGMT_POL_UPD_RATE, STA_MGMT_POL_UPD_PROT, STA_MGMT_POL_UPD_PPDU_TX, STA_MGMT_POL_UPD_BW, STA_MGMT_POL_UPD_TX_POWER, STA_MGMT_POL_TRIAL_RATE, STA_MGMT_POL_UPD_BSS_COLOR, STA_MGMT_POL_UPD_MAX }
| Policy Table update bit field indexes. More...
enum | sta_ps_traffic { PS_TRAFFIC_HOST = CO_BIT(0), PS_TRAFFIC_INT = CO_BIT(1), PS_TRAFFIC = (PS_TRAFFIC_HOST | PS_TRAFFIC_INT), UAPSD_TRAFFIC_HOST = CO_BIT(2), UAPSD_TRAFFIC_INT = CO_BIT(3), UAPSD_TRAFFIC = (UAPSD_TRAFFIC_HOST | UAPSD_TRAFFIC_INT) }
| PS traffic type. More...
enum | sta_ps_sp { NO_SERVICE_PERIOD = 0, PS_SERVICE_PERIOD = CO_BIT(0), UAPSD_SERVICE_PERIOD_INT = CO_BIT(1), UAPSD_SERVICE_PERIOD_HOST = CO_BIT(2), UAPSD_SERVICE_PERIOD = (UAPSD_SERVICE_PERIOD_INT | UAPSD_SERVICE_PERIOD_HOST), ANY_SERVICE_PERIOD_INT = (PS_SERVICE_PERIOD | UAPSD_SERVICE_PERIOD_INT), BCN_SERVICE_PERIOD = CO_BIT(3) }
| PS service period. More...
enum | { PORT_CLOSED = 0, PORT_CONTROLED, PORT_OPEN }
| logical port state More...
## Functions
__INLINE uint8_t | sta_mgmt_get_port_state (uint8_t sta_idx)
| Retrieve the port state for the given STA index.
__INLINE uint16_t | sta_mgmt_get_port_ethertype (uint8_t sta_idx)
| Retrieve the control protocol used by the STA.
void | sta_mgmt_init (void)
| Initialize all the entries of the station table.
uint8_t | sta_mgmt_register (struct mm_sta_add_req const *param, uint8_t *sta_idx)
| Allocates new station entry, initializes it and fills it with information passed as parameters.
void | sta_mgmt_unregister (uint8_t sta_idx)
| Deletes the station table and free all the resources allocated for this station.
void | sta_mgmt_add_key (struct mm_key_add_req const *param, uint8_t hw_key_idx)
| Add a key for a STA.
void | sta_mgmt_del_key (struct sta_info_tag *sta)
| Delete a key for a STA.
__INLINE uint8_t | sta_mgmt_get_tx_bam_idx (uint8_t sta_idx, uint8_t tid)
| Return if a TX Block Ack agreement exists for the provided [STAID, TID] tuple.
__INLINE uint8_t | sta_mgmt_get_rx_bam_idx (uint8_t sta_idx, uint8_t tid)
| Return if a RX Block Ack agreement exists for the provided [STAID, TID] tuple.
__INLINE uint8_t | sta_mgmt_ba_tx_cnt_get (uint8_t sta_idx, uint8_t tid)
| Get the number of packets currently in the TX path for a given STA/TID pair.
__INLINE void | sta_mgmt_ba_tx_cnt_inc (uint8_t sta_idx, uint8_t tid)
| Increment the number of packets currently in the TX path for a given STA/TID pair.
__INLINE void | sta_mgmt_ba_tx_cnt_dec (uint8_t sta_idx, uint8_t tid)
| Decrement the number of packets currently in the TX path for a given STA/TID pair.
__INLINE uint32_t | sta_mgmt_get_add_ba_time (uint8_t sta_idx, uint8_t tid)
| Return the last time a BlockAck agreement was established for this STA/TID.
__INLINE void | sta_mgmt_set_add_ba_time (uint8_t sta_idx, uint8_t tid, uint32_t time)
| Set the last time a BlockAck agreement was established for this STA/TID.
__INLINE uint16_t | sta_mgmt_get_tx_ssn_and_inc (uint8_t sta_idx, uint8_t tid)
| Return the next SN for this STA/TID pair and increase it for the next time.
__INLINE uint16_t | sta_mgmt_get_tx_ssn (uint8_t sta_idx, uint8_t tid)
| Return the next SN to be used for this STA/TID pair.
__INLINE bool | sta_mgmt_is_in_ps (uint8_t sta_idx)
| Return the PS state of a given station.
__INLINE bool | sta_mgmt_is_valid (uint8_t sta_idx)
| Return the validity state of a specific station index, i.e it indicates if the given station is currently registered or not.
__INLINE struct mac_addr * | sta_mgmt_get_peer_addr (uint8_t sta_idx)
| Retrieve the peer STA MAC Address matching with the provided STA Index.
__INLINE uint8_t | sta_mgmt_get_vif_idx (uint8_t sta_idx)
| Return the VIF index whose the STA depends on.
__INLINE void | sta_mgmt_set_tx_ssn (uint8_t sta_idx, uint8_t tid, uint16_t ssn)
| Set the Start Sequence Number of the BA agreement for this STA/TID pair.
__INLINE uint8_t | sta_mgmt_get_tx_buff_size (uint8_t sta_idx, uint8_t tid)
| Get the maximum number of MPDUs that can be put in an A-MPDU for this STA-TID pair.
__INLINE void | sta_mgmt_set_tx_buff_size (uint8_t sta_idx, uint8_t tid, uint8_t buff_size)
| Set the maximum number of MPDUs that can be put in an A-MPDU for this STA-TID pair.
int | sta_mgmt_send_postponed_frame (struct vif_info_tag *vif, struct sta_info_tag *sta, int limit)
| Go through list of postponed internal frames and try again to push these frames.
## Variables
struct sta_info_env_tag | sta_info_env
| STA management environment variable.
struct sta_info_tag | sta_info_tab [STA_MAX]
| STA information table.

## Detailed Description

UMAC Station Management definitions.

Copyright (C) RivieraWaves 2011-2019

Definition in file sta_mgmt.h.