Reference Manual

Table Of Contents
RS9116 n-Link Linux and Android Technical Reference Manual
Version 2.0
August 2019
92
Max PSP: In this mode, the module wakes up at the end of sleep period (Listen or DTIM interval) and
retrieves pending Rx packets from the Access Point by sending a PS-POLL packet. It also transmits any
packets received from the Host processor and then goes back to sleep. The parameters listed below are
used by the module to decide the period of sleep during power save, in the same order of priority:
a. <listen_interval_duration>
b. <dtim_interval_duration>
c. <num_beacons_per_listen_interval>
d. <num_dtims_per_sleep>
Periodic UAPSD: This mode is enabled by the set_uapsd_params command only if the
<uapsd_wakeup_period> parameter is assigned with a non-zero value. For this mode, the wakeup period
can be assigned with a value ranging between 10 and 100 milliseconds. If it is supported by the Access Point,
then in this mode, the module wakes up at the end of each sleep period and transmits pending data or a
QoS Null packet in order to retrieve the data from the Access Point. The sleep period is governed by the
parameter set which is using commands like set_ps_params command (see the list under Max PSP above)
and also set_uapsd_params command. The sleep period has the minimum of the values programmed using
the above two commands. If the Access Point does not support UAPSD, the module tries to mimic this mode
by waking up at the end of the sleep period and transmits pending data and a PS_POLL packet to retrieve
the data from the Access Point.
Transmit based UAPSD: If <uapsd_wakeup_period> parameter is set to 0 in the set_uapsd_params
command, the Transmit based UAPSD mode is enabled. In ULP mode, the Transmit based UAPSD mode can
be used only when the signal-based handshake is enabled (and not in packet-based handshake mode). In
this mode, the module wakes up from sleep when the Host sends a packet to be transmitted and then
retrieves the pending packets from the Access Point by transmitting the packet. The module also wakes up if
there is no packet transmitted for the sleep duration programmed in the set_ps_params command. If the
Access Point does not support UAPSD, the module mimics this mode by waking up whenever there is a
packet to be transmitted.
It generally transmits the packet and then retrieves the pending data from the Access Point by sending a
PS_POLL packet.
15.4 Power save Parameters
The input parameters of the set_ps_params command are explained below.
<ps_en>: This parameter is used to enable (1) or disable (0) power save mode.
<sleep_type>: This parameter is used to select the sleep mode between LP (1) and ULP (2) modes.
<tx_threshold>: If a non-zero value is assigned, this parameter is used to set a threshold for the Transmit
throughput computed during the <monitor_interval> period so that the module can decide to enter
(throughput threshold) or exit (throughput > threshold) the power save mode. The value is in Mbps and
Supported TX threshold is 0 to 10Mbps
<rx_threshold>: If a non-zero value is assigned, this parameter is used to set a threshold for the Receive
throughput computed during the <monitor_interval> period so that the module can decide to enter
(throughput threshold) or exit (throughput > threshold) the power save mode. The value is in Mbps and
Supported RX threshold is 0 to 10Mbps
<tx_hysteresis>: The decision to enter or exit power save mode based on the Transmit throughput alone
can result in frequent switching between the power save and non-power save modes. If this is not beneficial,
the <tx_hysteresis> parameter can used to make the module re-enter the power save mode only when the
throughput falls below the difference between the <tx_threshold> and <tx_hysteresis> values. The value is
in Mbps and minimum value is 0 Mbps. This parameter should be assigned a value which is less than the
value assigned to the <tx_threshold> parameter.
<rx_hysteresis>: The decision to enter or exit power save mode based on the Receive throughput which
alone can result in frequent switching between the power save and non-power save modes. If this is not
beneficial, the <rx_hysteresis> parameter can be used to make the module re-enter the power save mode
only when the throughput falls below the difference between the <rx_threshold> and <rx_hysteresis>