# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/lmac/src/ps/ps.c File Reference

Power-Save mode implementation. More...

`#include "ps.h"`
`#include "mac_ie.h"`
`#include "sta_mgmt.h"`
`#include "vif_mgmt.h"`
`#include "mm.h"`
`#include "co_utils.h"`
`#include "co_status.h"`
`#include "dbg.h"`
`#include "txl_frame.h"`
`#include "phy.h"`
`#include "tpc.h"`
`#include "td.h"`

Go to the source code of this file.

## Defines
#define | PS_TX_ERROR_MAX (3)
| Maximum number of TX attempts for a NULL frame indicating PS mode change.
## Functions
static uint8_t | ps_send_pspoll (struct vif_info_tag *vif)
| Sends PS Poll frame to peer AP.
static bool | ps_check_tx_status (struct vif_info_tag *vif, uint32_t status, cfm_func_ptr cfm)
| Checks if NULL frame indicating a PS mode change has been acknowledged by the peer AP.
static void | ps_enable_cfm (void *env, uint32_t status)
| Callback associated to frame sent to inform that interface will enter PS.
static void | ps_disable_cfm (void *env, uint32_t status)
| Callback associated to frame sent to inform that interface left PS.
static void | ps_dpsm_update (bool pause)
| Updates Dynamic Power Save mode status.
static void | ps_uapsd_timer_handle (void *env)
| Callback function for UAPSD timer.
void | ps_init (void)
| Initialize all the entries of the station table.
void | ps_set_mode (uint8_t mode, ke_task_id_t taskid)
| Set the Power-save mode as requested by the upper layers.
bool | ps_check_tim (uint32_t a_tim, uint16_t aid)
| Check if TIM Information Element received from either an AP or a peer Mesh STA if buffered frame targeting us are announced.
void | ps_check_beacon (uint32_t tim, uint16_t len, struct vif_info_tag *vif)
| Checks the TIM IE in the beacon to know if the station has to wait for individually or group addressed traffic following this beacon.
void | ps_check_frame (uint8_t *frame, uint32_t statinfo, struct vif_info_tag *vif)
| Checks the more data bit in the data or management frame passed as parameter and behave accordingly.
bool | ps_check_tx_frame (uint8_t staid, uint8_t tid)
| Check if the frame is a UAPSD trigger frame.
void | ps_uapsd_set (struct vif_info_tag *vif, uint8_t hw_queue, bool uapsd)
| Enable/disable the UAPSD for the HW queue and VIF passed as parameters.
void | ps_traffic_status_update (uint8_t vif_index, uint8_t new_status)
| Handle update of Traffic status generated by the Traffic Detection module.
void | ps_p2p_absence_update (struct vif_info_tag *vif, bool absent)
| Update P2P GO presence status update in order to send a trigger frame when an absence period is over after an interrupted Service Period.
void | ps_check_tx_trigger_sent (struct hostdesc *hostdesc, uint32_t tx_status)
| Re-enable WAIT EOSP status after UAPSD trigger frame transmission.
## Variables
struct ps_env_tag | ps_env
| PS context used to store information related to PS module.

## Detailed Description

Power-Save mode implementation.

Copyright (C) RivieraWaves 2011-2019

Definition in file ps.c.