Patent Description:
A wireless local area network (WLAN) may be formed by one or more access points (APs) that provide a shared wireless medium for use by a number of client devices or stations (STAs). Each AP, which may correspond to a Basic Service Set (BSS), may periodically broadcast beacon frames to enable any STAs within wireless range of the AP to establish and maintain a communication link with the WLAN. WLANs that operate in accordance with the IEEE <NUM> family of standards are commonly referred to as Wi-Fi networks. Since multiple devices share a wireless medium, a wireless communication device is not always the source or target of wireless communications on the wireless medium.

When the wireless communication device is not listening to or transmitting over the wireless medium, one or more portions of the wireless communication device may enter a power save mode to conserve power. The wireless communication device may delay entering the power save mode to prevent the wireless communication device from being in the power save mode when the AP may attempt to transmit packets or frames to the wireless communication device. Increasing the amount of time that the wireless communication device is not in the power save mode increases power consumption of the wireless communication device.

<CIT> discloses systems and methods to coordinate a power save delay between a station (STA) and an access point (AP. ) The STA may be configured to transmit information regarding a power save delay duration to the AP. The STA may then inform the AP that it will be entering power save mode and delay entering the power save mode for a specified period of time corresponding to the power save delay duration, thus providing a buffer period to allow the AP to complete the delivery of any frames that may already be in the hardware queue. The teachings of <CIT> provide for transmitting to a wireless access point a sleep status indicator for a wireless transceiver. These teachings then provide for delaying having that wireless transceiver enter a sleep mode of operation until at least a predetermined period of time following transmission of the wireless transceiver sleep status indicator. These teachings also provide for determining a need to slow down a rate of receiving data from the wireless access point via the wireless transceiver. In this case the aforementioned sleep status indicator is transmitted in response to determining that need to slow down the rate of receiving data from the wireless access point.

One innovative aspect of the subject matter described in this disclosure is implemented as a method of wireless communication according to claim <NUM>.

Another innovative aspect of the subject matter described in this disclosure is implemented as a wireless communication device according to claim <NUM>.

Another innovative aspect of the subject matter described in this disclosure is implemented as a computer program according to claim <NUM>.

The following description is directed to certain implementations for the purposes of describing the innovative aspects of this disclosure. However, a person having ordinary skill in the art will readily recognize that the teachings herein can be applied in a multitude of different ways. The described implementations may be implemented in any device, system or network that is capable of transmitting and receiving RF signals according to any of the IEEE <NUM> standards, or any of the IEEE <NUM> standards, the Bluetooth® standard, code division multiple access (CDMA), frequency division multiple access (FDMA), time division multiple access (TDMA), Global System for Mobile communications (GSM), GSM/General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Terrestrial Trunked Radio (TETRA), Wideband-CDMA (W-CDMA), Evolution Data Optimized (EV-DO), 1xEV-DO, EV-DO Rev A, EV-DO Rev B, High Speed Packet Access (HSPA), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), Evolved High Speed Packet Access (HSPA+), Long Term Evolution (LTE), AMPS, or other known signals that are used to communicate within a wireless, cellular or internet of things (IOT) network, such as a system utilizing <NUM>, <NUM> or <NUM>, or further implementations thereof, technology.

Implementations of the subject matter described in this disclosure may be used for adjusting a time period used to delay a STA from entering a power save mode. When a STA is not transmitting or receiving wireless communications, the STA may enter a power save mode to conserve power consumption. The STA may indicate to one or more APs within range of the STA that the STA is to enter the power save mode. In some implementations, the STA may transmit, to the AP over a wireless channel, a frame indicating an intention of the STA to enter the power save mode. In some instances, the frame may be any management frame or action frame including one or more elements, subelements, fields, or subfields suitable for carrying an indication of the STA's intention to enter the power save mode. In some other instances, the frame may be a specific type of frame such as (but not limited to) a Notification frame that carries the indication of the STA's intention to enter the power save mode. The STA enters the power save mode by placing one or more device components (such as front end components of the wireless interface) into a low power state. While in the power save mode, the STA may not be able to receive or successfully decode downlink (DL) data transmitted on the wireless channel. In some instances, the AP may be configured to terminate or suspend downlink transmissions based on receiving or obtaining the STA's intention of the STA to enter the power save mode, for example, to reduce packet loss or to avoid re-transmissions of data frames that were not received or successfully decoded by the STA. In some other instances, the STA may expect the AP to terminate or suspend downlink transmissions based on receiving or obtaining the intention to enter the power save mode. In some implementations, the STA may be configured to enter the power save mode in response to receiving, from the AP, an acknowledgement of the STA's intention to enter the power save mode. In some instances, the acknowledgement may be an ACK frame. In some other instances, the acknowledgement may be a Notification frame.

In some instances, the AP may attempt to send one or more packets to the STA after sending an acknowledgement of the STA's intention to enter the power save mode. Such packets sent by the AP and not received by the STA while the STA is in the power save mode may be referred to herein as "leaked" packets, and the AP sending such packets may be referred to herein as a "leaky" AP. The time period by which the STA delays entering the power save mode after sending the intention to enter the power save mode to the AP may be referred to herein as a "leak guard.

In some instances, leaked packets may be transmitted to the STA at or near the beginning of the STA's power save mode. For example, the AP may spend a certain duration of time to configure itself to not send packets to the STA after receiving the indication. As a result, one or more packets may be sent by the AP to the STA before such configuration is completed. Delaying the STA from entering the power save mode by a period of time associated with the leak guard may allow the STA to remain awake and receive or obtain the one or more packets transmitted by the AP after receiving the indication.

In some implementations, power savings may be achieved by adjusting the leak guard based on previous communications with the AP. For example, a STA may determine whether one or more leaked packets exist during a power save mode, and may adjust the leak guard in response to determining whether or not one or more leaked packets existed. If no leaked packets are identified, the STA may turn off or reduce the leak guard (such as from <NUM> milliseconds (ms) to less than <NUM> or <NUM>). If the existence or the possibility of one or more leaked packets is identified, the STA may set the leak guard to a predefined value (such as <NUM>) to prevent leaked packets during the wireless communication device's next entry into the power save mode.

Particular implementations of the subject matter described in this disclosure can be implemented to realize one or more of the following potential advantages. When the period of time associated with the leak guard is reduced (or eliminated), power consumption of the STA may be reduced (such as by allowing the STA to spend more time in the power save mode). For example, if the period of time associated with the leak guard is reduced from <NUM> to <NUM> (or <NUM>), the STA may conserve power by entering the power save mode <NUM> or <NUM> earlier than when using a leak guard of <NUM> or <NUM>, respectively. In this manner, the STA may not consume power listening to the wireless medium, which requires device components to remain in an active state, and may instead enter the power save mode. If the STA is battery powered, conserving power may extend the operating time of the STA between battery charges. Selective use or adjustment of the leak guard may increase throughput of the wireless medium by preventing (or at least reducing the occurrence of) leaked packets. For example, if an AP attempts to transmit packets to a STA in a power save mode, the AP may wait for an acknowledgement (ACK) from the STA indicating that the packets were received before transmitting additional packets to the STA. Failure to receive the ACK from the STA can drive the rate adaptation algorithm in the AP to lower the MCS (Modulation & Coding Scheme) of the subsequent packets and therefore impact the overall throughput of the link.

When the STA is in the power save mode, the STA does not receive the transmitted packets, and thus does not send an ACK to the AP. In some instances, the AP may use the absence of ACK frames received from the STA as an indication to perform rate control (such as lowering the MCS or otherwise slowing the rate at which packets are sent to the STA) and attempt to resend the packets to the STA. If the STA remains in the power save mode during transmission of the resent packets, the AP may not receive any ACKs for the resent packets. The AP may further reduce the rate at which packets are sent to the STA, and resend the packets to the STA. In this manner, the AP may slow or stall communications on the wireless medium by continuously occupying the wireless medium in an attempt to deliver the packets to the STA (without receiving ACKs). When the STA delays entry into the power save mode by the period of time associated with the leak guard (such as in response to the transmission of leaked packets by the AP), the STA may be awake to receive or obtain the resent packets. The STA may send one or more ACKs to the AP confirming reception of the resent packets, thereby obviating (or at least relaxing) the need for the AP to slow communications on the wireless medium. In this way, implementations of the subject matter disclosed herein may increase throughput on the wireless medium.

<FIG> shows a block diagram of an example wireless system <NUM>. The wireless system <NUM> is shown to include a wireless access point (AP) <NUM> and a number of wireless stations (STAs) 120a-120i. For simplicity, one AP <NUM> is shown in <FIG>. The AP <NUM> may form a wireless local area network (WLAN) that allows the AP <NUM>, the STAs 120a-120i, and other wireless devices (not shown for simplicity) to communicate with each other over a wireless medium. The wireless medium, which may be divided into a number of channels or into a number of resource units (RUs), may facilitate wireless communications between the AP <NUM>, the STAs 120a-120i, and other wireless devices connected to the WLAN. In some implementations, the STAs 120a-120i can communicate with each other using peer-to-peer communications (such as without the presence or involvement of the AP <NUM>). The AP <NUM> may be assigned a unique medium access control (MAC) address that is programmed therein by, for example, the manufacturer of the AP. Similarly, each of the STAs 120a-120i also may be assigned a unique MAC address.

In some implementations, the wireless system <NUM> may correspond to a multiple-input multiple-output (MIMO) wireless network and may support single-user MIMO (SU-MIMO) and multi-user (MU-MIMO) communications. In some implementations, the wireless system <NUM> may support orthogonal frequency-division multiple access (OFDMA) communications. Further, although the WLAN is depicted in <FIG> as an infrastructure Basic Service Set (BSS), in some other implementations, the WLAN may be an Independent Basic Service Set (IBSS), an Extended Service Set (ESS), an ad-hoc network, or a peer-to-peer (P2P) network (such as operating according to one or more Wi-Fi Direct protocols).

The STAs 120a-120i may be any suitable Wi-Fi enabled wireless devices including, for example, cell phones, personal digital assistants (PDAs), tablet devices, laptop computers, or the like. The STAs 120a-120i also may be referred to as a user equipment (UE), a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, a remote device, a mobile subscriber station, an access terminal, a mobile terminal, a wireless terminal, a remote terminal, a handset, a user agent, a mobile client, a client, or some other suitable terminology.

The AP <NUM> may be any suitable device that allows one or more wireless devices (such as the STAs 120a-120i) to connect to another network (such as a local area network (LAN), wide area network (WAN), metropolitan area network (MAN), or the Internet). In some implementations, a system controller <NUM> may facilitate communications between the AP <NUM> and other networks or systems. In some implementations, the system controller <NUM> may facilitate communications between the AP <NUM> and one or more other APs (not shown for simplicity) that may be associated with other wireless networks. In addition, or in the alternative, the AP <NUM> may exchange signals and information with one or more other APs using wireless communications.

The AP <NUM> periodically may broadcast beacon frames to enable the STAs 120a-120i and other wireless devices within wireless range of the AP <NUM> to establish and maintain a communication link with the AP <NUM>. The beacon frames, which may indicate downlink (DL) data transmissions to the STAs 120a-120i and solicit or schedule uplink (UL) data transmissions from the STAs 120a-120i, are typically broadcast according to a target beacon transmission time (TBTT) schedule. The broadcasted beacon frames may include a timing synchronization function (TSF) value of the AP <NUM>. The STAs 120a-120i may synchronize their own local TSF values with the broadcasted TSF value, for example, so that all of the STAs 120a-120i are synchronized with each other and with the AP <NUM>.

In some implementations, each of the STAs 120a-120i and the AP <NUM> may include an interface (such as one or more transceivers), a processing system (such as one or more processing resources (such as processors or Application-Specific Integrated Circuits (ASICs)) and one or more memory resources), and a power source (such as a battery). The one or more transceivers may include Wi-Fi transceivers, Bluetooth transceivers, cellular transceivers, or other suitable radio frequency (RF) transceivers (not shown for simplicity) to transmit and receive wireless communication signals. In some implementations, each transceiver may communicate with other wireless devices in distinct frequency bands or using distinct communication protocols. The memory resources may include a non-transitory computer-readable medium (such as one or more nonvolatile memory elements, such as EPROM, EEPROM, Flash memory, a hard drive, etc.) that stores instructions for performing one or more operations described with respect to <FIG>.

<FIG> shows an example wireless station (STA) <NUM>. The STA <NUM> may be one implementation of at least one of the STAs 120a-120i of <FIG>. The STA <NUM> may include one or more transceivers <NUM>, one or more processors <NUM>, a memory <NUM>, and one or more antennas ANT1-ANTn. In some implementations, the STA <NUM> also may include a user interface <NUM>. The transceiver <NUM> may include one or more transceivers coupled to the one or more antennas ANT1-ANTn, either directly or through an antenna selection circuit (not shown for simplicity). A transceiver <NUM> may be used to transmit signals to and receive signals from other wireless devices including, for example, a number of APs and a number of other STAs. Although not shown in <FIG> for simplicity, each of the one or more transceivers <NUM> may include any number of transmit chains to process and transmit signals to other wireless devices via antennas ANT1-ANTn and may include any number of receive chains to process signals received from antennas ANT1-ANTn. Thus, the STA <NUM> may be configured for MIMO communications and OFDMA communications in some implementations. The MIMO communications may include SU-MIMO communications and MU-MIMO communications. In some implementations, the STA <NUM> may use multiple antennas ANT1-ANTn to provide antenna diversity. Antenna diversity may include polarization diversity, pattern diversity, and spatial diversity. An example transceiver is described below with reference to <FIG>.

The one or more processors <NUM> may be any suitable one or more processors capable of executing scripts or instructions of one or more software programs stored in the STA <NUM> (such as within the memory <NUM>). In some implementations, the one or more processors <NUM> may be or include one or more microprocessors providing the processor functionality and external memory providing at least a portion of machine-readable media. In other implementations, the one or more processors <NUM> may be or include an Application Specific Integrated Circuit (ASIC) with the processor, the bus interface, the user interface, and at least a portion of the machine-readable media integrated into a single chip. In some other implementations, the one or more processors <NUM> may be or include one or more Field Programmable Gate Arrays (FPGAs) or Programmable Logic Devices (PLDs).

The user interface <NUM>, which may be coupled to the one or more processors <NUM>, may be or represent a number of suitable user input devices such as, for example, a speaker, a microphone, a display device, a keyboard, a touch screen, and so on. In some implementations, the user interface <NUM> may allow a user to control a number of operations of the STA <NUM>, to interact with one or more applications executable by the STA <NUM>, and other suitable functions.

In some implementations, the memory <NUM> may include a database <NUM> that may store one or more identifiers of leaky APs. For example, the database <NUM> may store a BSS identifier (BSSID) associated with a leaky AP. In another example, the database <NUM> may store a MAC address of the leaky AP or another suitable identifier.

The memory <NUM> also may be or include a non-transitory computer-readable storage medium (such as one or more nonvolatile memory elements, such as EPROM, EEPROM, Flash memory, a hard drive, and so on) that may store computer-executable instructions <NUM> to perform all or a portion of one or more operations described in this disclosure.

An interface <NUM> of the STA <NUM> may refer to the one or more transceivers <NUM> coupled to the one or more antennas ANT1-ANTn. In some implementations, the interface <NUM> of the STA <NUM> also may refer to the one or more antennas ANT1-ANTn coupled to the one or more transceivers <NUM>. The interface <NUM> is configured to obtain packets from an AP and provide packets to the AP while the STA <NUM> communicates with the AP. A processing system <NUM> of the STA <NUM> may refer to the one or more processors <NUM>. In some implementations, the processing system <NUM> also may refer to the memory <NUM> (such as the media storing instructions <NUM>).

While the one or more transceivers <NUM>, the memory <NUM>, and the optional user interface <NUM> are depicted as being coupled via the one or more processors <NUM> in <FIG>, the components of the STA <NUM> may be coupled in any suitable manner. For example, the one or more transceivers <NUM>, the one or more processors <NUM>, and the memory <NUM> may be coupled directly to one another via one or more buses.

<FIG> shows a block diagram of an example transceiver <NUM> of a STA. In some implementations, the transceiver <NUM> may be one example of the one or more transceivers <NUM> of <FIG>. The transceiver <NUM> may include a physical layer (PHY) <NUM> and a MAC layer <NUM>. The PHY <NUM> may be coupled to the one or more antennas ANT1-ANTn to transmit and receive packets to and from another wireless device. The PHY <NUM> also may be configured to process packets at the physical layer. For example, the PHY <NUM> may perform scrambling, encoding, puncturing, padding, parsing, interleaving, modulating, or digital to analog conversion (DAC) for packets to be transmitted. In another example, the PHY <NUM> may perform analog to digital conversion (ADC), MIMO equalization, de-interleaving, spatial combination, decoding, or descrambling for packets received from another wireless device. While not shown in <FIG>, the PHY <NUM> may include or be coupled to one or more radios used to transmit and receive signals via the one or more antennas ANT1-ANTn. For example, the PHY <NUM> may be configured to perform baseband digital processing operations, and the one or more radios may be configured to perform baseband analog processing operations for received packets or packets to be transmitted via the one or more antennas ANT1-ANTn.

The MAC <NUM> is configured to process packets to be provided to the PHY <NUM> for transmission and process packets obtained from the PHY <NUM>. For example, the MAC <NUM> may be configured to packetize information of the wireless communication device (such as the STA <NUM> in <FIG>) to provide to the PHY <NUM> for transmission to another wireless device (such as an AP). The MAC <NUM> also may be configured to order and format packets for transmission (such as by including MAC headers including MAC sequence numbers to the packet payloads). In another example, the MAC <NUM> may be configured to obtain information for the wireless communication device from packets obtained from the PHY <NUM>. For example, the MAC <NUM> may process the MAC headers included in the decoded packets obtained from the PHY <NUM>.

The MAC <NUM> includes a receive (Rx) protocol control unit (PCU) <NUM> and a reorder buffer <NUM>. In some implementations, the MAC <NUM> also may include a direct memory access (DMA) Rx unit (DRU) <NUM> to provide information from the obtained packets to a system bus (such as to provide the information to a device memory). In some implementations, the transmit portion of the MAC <NUM> may include a queue control unit (QCU) <NUM>, a distributed coordination function (DCF) control unit (DCU) <NUM>, and a transmit (Tx) PCU <NUM>. While the Rx PCU <NUM> and the Tx PCU <NUM> are shown as separate components, the MAC <NUM> may include a PCU including both the Rx PCU <NUM> and the Tx PCU <NUM>.

The Rx PCU <NUM> may obtain frames from the PHY <NUM>. In some implementations, the Rx PCU may obtain a physical bitstream from the PHY <NUM>, decrypt each frame from the obtained bitstream, and provide at least portions of the decrypted frames to the DRU <NUM>. For example, the bitstream may include one or more PHY protocol data units (PPDUs), and the Rx PCU may process each PPDU to obtain one or more MAC sequence numbers of the MAC protocol data units (MPDUs) in the PPDU. The device may use the obtained MAC sequence numbers to determine whether an AP attempted to transmit packets to the device when the device is in a power save mode. As used herein, a packet may refer to a MPDU or any other suitable data unit. For example, a leaked packet may refer to a MPDU attempted to be transmitted to the wireless communication device when the wireless communication device is in a power save mode.

The reorder buffer <NUM> may be configured to obtain decoded packets from the Rx PCU <NUM> and reorder the decoded packets from the order they were obtained. In some implementations, packets may be received out of order. For example, a PPDU may skip one or more MPDUs, and the skipped MPDUs may be included in a subsequent PPDU. In this manner, the reorder buffer <NUM> may be configured to reorder the packets based on the MAC sequence numbers. The reorder buffer <NUM> also may be configured to provide the reordered packets to a DRU <NUM> or directly to memory (such as a memory <NUM> or other suitable memory via a system bus). If a packet is missing in the reorder buffer <NUM>, subsequent packets may be kept in the reorder buffer <NUM> (and not provided to the DRU <NUM> or a memory) until the reorder buffer <NUM> obtains the missing packet. In this manner, the reorder buffer <NUM> is not empty if all packets with smaller sequence numbers than a received packet with the largest sequence number are not yet obtained.

The Rx PCU <NUM> may be configured so that one or more sequence numbers of packets in a PPDU may be obtained from the Rx PCU <NUM>. In some implementations, the reorder buffer <NUM> includes a plurality of registers used to obtain a sequence number from the Rx PCU <NUM>. For example, nine registers of the reorder buffer may be used to obtain the largest sequence number of a last received PPDU before the wireless communication device indicates that it is to enter a power save mode to the AP. In this manner, when the reorder buffer <NUM> obtains packets after the wireless communication device wakes from the power save mode, the stored largest sequence number may be used by the reorder buffer <NUM> as a reference to determine if any sequence numbers have been skipped (such as if the difference between the largest sequence number stored in the registers and the smallest sequence number obtained after the device wakes from the power save mode is greater than one). One or more skipped sequence numbers may indicate one or more missing packets that may have been leaked. In some implementations, the Rx PCU <NUM> may provide a smallest sequence number of a first PPDU received after waking from the power save mode (or other sequence numbers from the first PPDU or subsequent PPDUs during a BA window). One or more obtained sequence numbers from the Rx PCU <NUM> may be included in a type-length-value (TLV) encoded message, which may be provided to a processing system of the wireless communication device.

In some implementations, the decoded packets (which may be reordered) may be received from the reorder buffer <NUM> to the DRU <NUM> and provided to a processing system (such as the processor <NUM> or the memory <NUM> in <FIG>). The DRU <NUM> may be configured to provide the packet information to a memory via a system bus, and the information may be accessed from the memory by one or more processors. In some other implementations, the reorder buffer <NUM> may provide packet information directly to a memory via a system bus. In this manner, the packet information may not flow from the reorder buffer <NUM> to the DRU <NUM>, but rather from the reorder buffer <NUM> to memory or other portions of the wireless communication device.

For the transmit side of the MAC <NUM>, the QCU <NUM> may include one or more QCUs configured to manage the DMA of frame data from the system bus, to obtain the frame data from the device (such as from a system bus), to determine when a frame is available for transmission, and to provide data frames to the DCU <NUM> for transmission to another wireless device. The DCU <NUM> may include one or more DCUs configured to obtain the data frames from the QCU <NUM>, to manage DCF channel access procedures for the data frames on behalf of the QCU <NUM>, and to provide the data frames to the Tx PCU <NUM> using the DCF channel access procedures. In some implementations, the MAC <NUM> includes a DCU that corresponds to each QCU. For example, if the MAC <NUM> includes <NUM> QCUs, the MAC <NUM> may include <NUM> DCUs. If the MAC <NUM> includes multiple DCUs, the MAC <NUM> may include arbitration logic (not shown) to combine the outputs from the multiple DCUs into an input to the Tx PCU <NUM>. The Tx PCU <NUM> may be configured to encrypt each frame and provide the encrypted frames to the PHY <NUM> for transmission to another wireless device. A combined PCU (including the Rx PCU <NUM> and the Tx PCU <NUM>) also may be configured to process obtained responses to a transmitted frame (such as an acknowledgement (ACK), including a block ACK (BA), an error indication, or other suitable information elements) and reporting transmission attempt results to the DCU <NUM> configured to determine access to the wireless medium.

As discussed, MAC sequence numbers may be used to determine whether one or more packets were leaked when the wireless communication device was in the power save mode. In some implementations, a retry indication also may be used to determine whether one or more packets were leaked when the wireless communication device was in the power save mode. The MAC sequence numbers and the retry indication may be included in a PPDU obtained from an AP (or another suitable wireless device). In some implementations, the transceiver <NUM> is configured to obtain one or more of a largest MAC sequence number or a smallest MAC sequence number from a PPDU. For example, the one or more sequence numbers may be obtained from the Rx PCU <NUM> after being decoded by the Rx PCU <NUM>. The transceiver <NUM> also may be configured to generate a message including the smallest sequence number and the largest sequence number. In one example, the message may be a TLV encoded message including the sequence numbers. The TLV encoded message also may include retry field information obtained from a PPDU (such as from a MAC header of the PPDU).

<FIG> shows an example PPDU <NUM> usable for communication between an AP and one or more STAs. For example, the example PPDU <NUM> may be used for communication between an AP <NUM> and one or more STAs 120a - 120i in <FIG>. Each PPDU <NUM> includes a PHY preamble <NUM> and a PHY service data unit (PSDU) <NUM>. Each PSDU <NUM> may represent (or "carry") one or more MPDUs <NUM>. For example, each PSDU <NUM> may carry an aggregated MPDU (A-MPDU) <NUM> that includes an aggregation of multiple A-MPDU subframes <NUM>. Each A-MPDU subframe <NUM> may include a MPDU <NUM> that includes a MAC delimiter <NUM> and a MAC header <NUM> prior to the accompanying frame body <NUM>, which includes the data portion ("payload" or "frame body") of the MPDU <NUM>. Each MPDU <NUM> also may include a frame check sequence (FCS) field <NUM> for error detection. In some instances, the FCS field <NUM> may include cyclic redundancy check (CRC)) and padding <NUM>. The frame body <NUM> may carry one or more MAC service data units (MSDUs). For example, the frame body <NUM> may carry an aggregated MSDU (A-MSDU) <NUM> including multiple A-MSDU subframes <NUM>. Each A-MSDU subframe <NUM> may include a MSDU <NUM> that includes a subframe header <NUM>, followed by a frame body <NUM>, followed by padding <NUM>.

The MAC delimiter <NUM> may serve as a marker of the start of the associated MPDU <NUM>, and may indicate the length of the associated MPDU <NUM>. The MAC header <NUM> may include multiple fields containing information that defines or indicates characteristics or attributes of data encapsulated within the frame body <NUM>. The MAC header <NUM> includes a duration field indicating a duration extending from the end of the PPDU until at least the end of an ACK or BA of the PPDU that is to be transmitted by the receiving wireless communication device. The use of the duration field serves to reserve the wireless medium for the indicated duration, and enables the receiving device to establish its network allocation vector (NAV). The MAC header <NUM> also includes one or more fields indicating addresses for the data encapsulated within the frame body <NUM>. For example, the MAC header <NUM> may include a combination of a source address, a transmitter address, a receiver address or a destination address. The MAC header <NUM> may further include a frame control field containing control information. The frame control field may specify a frame type, for example, a data frame, a control frame, or a management frame.

In some implementations, the MAC header <NUM> includes a MAC sequence number associated with the MPDU <NUM>. For example, a MAC sequence control field of the MAC header <NUM> may include an octet of values for indicating a MAC sequence number for the associated MPDU <NUM>. The AP may assign MAC sequence numbers in sequence to the MPDUs <NUM>. In this manner, if the STA obtains a first MAC sequence number and a second MAC sequence number that is not in sequence (such as a MAC sequence number missing between the first and second sequence numbers), the STA may determine that one or more MPDUs are missing from the AP.

In addition, the MAC header <NUM> may include an indication as to whether the AP is to retry sending packets to a STA. For example, a frame control field of the MAC header <NUM> may include a retry field. The retry field may be one bit in length. The retry field may be set to <NUM> to indicate that the AP is to retry sending packets previously sent by the AP (such as leaked packets not obtained by the STA in a power save mode or other packets for which the AP did not receive an ACK). The retry field may be set to <NUM> to indicate that the AP does not have any packets to retry sending. In this manner, if the STA obtains a PPDU that includes a retry field set to <NUM> after waking from power save mode, the STA may determine that one or more MPDUs were leaked by the AP when the STA was in the power save mode.

A leaky AP may perform various operations when the STA wakes from power save mode. In some implementations, the STA may use one or more of the various operations to determine whether the AP leaked packets while the STA was in the power save mode. In some instances, the STA may use MAC sequence numbers provided in PPDUs received by the STA to determine whether the AP is leaky. In some other instances, the STA may use the retry field included PPDUs received by the STA to determine whether the AP is leaky.

<FIG> shows an example timing diagram <NUM> of wireless communications associated with an AP leaking packets when a STA is in a power save mode. At the start of a block acknowledgement (BA) window <NUM>, the STA power state <NUM> is an active mode. While in the active mode, the STA listens to the wireless medium and contends for access to the wireless medium. The STA receives or obtains a last PPDU from the AP before the STA is to enter a power save mode, with the PPDU including a number of packets and having a duration starting at <NUM> and ending at <NUM>. In the example of <FIG>, the received or obtained packets <NUM> include sequence numbers <NUM> having values between <NUM> and <NUM> (inclusive), which may be indicated in a MAC header for each MPDU of the PPDU. After the end of the PPDU (<NUM>), the STA informs the AP that the STA is to enter the power save mode (<NUM>). In some instances, the STA sends a message with a header including a power management (PM) field set to <NUM> to indicate entry into the power save mode. The STA enters the power save mode (<NUM>). In some instances, the STA's MAC may be configured to perform a power down sequence of one or more components that prevent the STA from listening to the wireless medium via one or more radios during the power save mode. In the example of <FIG>, the leak guard may be <NUM>.

When the STA is in the power save mode (such as indicated by the STA power state <NUM>), the AP may attempt to transmit leaked packets <NUM> including sequence numbers <NUM> having values between <NUM> and <NUM> (inclusive) to the STA. For example, due to software bugs, poor channel conditions, or communication lags between the AP's PHY and MAC layers, the AP may transmit a PPDU intended for the STA when the STA is in the power save mode even though the STA informed the AP that the STA was entering the power save mode. At <NUM>, the STA exits the power save mode. In some instances, the STA's MAC may perform a power up sequence of the components previously powered down when waking from the power save mode. As used herein, exiting a power save mode also may be referred to as waking from the power save mode. At <NUM>, the STA informs the AP that the STA has exited the power save mode. In some instances, the STA sends a message with a header including a PM field set to <NUM> to indicate exit from the power save mode.

The STA receives or obtains a first PPDU from the AP after waking from the power save mode, with the start of the PPDU at <NUM> and the end of the PPDU at <NUM>. During transmission of the first PPDU, the AP also transmits the retry packets <NUM>, which were originally leaked when the STA was in the power save mode (<NUM>). In some implementations, a retry field of a MAC header of the PPDU indicates whether a MPDU is a retry packet <NUM>. In this manner, the STA may determine whether one or more of the packets are retry packets <NUM> based on the respective retry fields. In some implementations, the STA may determine whether the AP leaked the packets based on a retry field in the first PPDU (such as described below with reference to <FIG>). The AP also may transmit new packets <NUM> in the first PPDU. In the example of <FIG>, the retry packets <NUM> are associated with sequence numbers having values between <NUM> and <NUM>, inclusive, and the new packets <NUM> are associated with sequence numbers having values between <NUM> and <NUM>, inclusive.

As shown, the sequence numbers of packets received or obtained by the STA are in sequence before and after the power save mode. However, the packets received by the STA may be out-of-order. In some instances, the AP may retransmit the leaked packets in a subsequent PPDU after the STA wakes from the power save mode, as illustrated in the example of <FIG>.

<FIG> shows another example timing diagram <NUM> of wireless communications associated with an AP leaking packets when a STA is in power save mode. The operations associated with the timing diagram <NUM> of <FIG> may be the same as the operations associated with the timing diagram <NUM> of <FIG> before the STA enters the power save mode (<NUM>). That is, the STA receives or obtains the last PPDU with packets <NUM> having sequence numbers <NUM> and may provide a message to the AP that includes a PM field set to <NUM> before entering the power save mode (as indicated by the STA power state <NUM>). When the STA is in the power save mode, the AP leaks packets <NUM> including sequence numbers <NUM> having values between <NUM> and <NUM>, inclusive. The STA exits the power save mode (<NUM>), and the STA indicates to the AP that the STA has exited the power save mode (<NUM>). The STA receives or obtains a first PPDU from the AP after exiting the power save mode, with the PPDU starting at <NUM> and ending at <NUM>. The first PPDU in the example timing diagram <NUM> includes all new packets <NUM> including sequence numbers <NUM> having values between <NUM> and <NUM>, inclusive, and does not include any retry packets. For example, the AP leaked packets <NUM> with sequence numbers <NUM>-<NUM>, and the first PPDU obtained after the STA exited the power save mode includes new packets <NUM> with sequence numbers <NUM>-<NUM>.

The AP may send additional PPDUs before the end of the BA window (<NUM>). The AP may retry sending the leaked packets in one or more of the subsequent PPDUs before the end of the BA window. As shown in the timing diagram <NUM>, the STA receives or obtains a subsequent PPDU before the end of the BA window (<NUM>), with the start of the PPDU at <NUM> and the end of the PPDU at <NUM>. The subsequent PPDU may include one or more of the leaked packets as retry packets <NUM>. In the example of <FIG>, the retry packets <NUM> are associated with sequence numbers <NUM> having values between <NUM> and <NUM>, inclusive. As discussed, a packet may be indicated as a retry packet by a retry field of a MAC header of a MPDU. In some instances, a retry packet obtained in a subsequent PPDU may be a leaked packet. However, the retry packet may be a packet that was sent but not received before the STA entered the power save mode (such as because of wireless medium conditions causing the STA to not receive the packet or correctly decode the packet).

In this manner, whether a packet in a subsequent PPDU is associated with a leaked packet may be based on an indication that the packet is a retry packet (such as based on the retry field) and the sequence number of the packet. For example, as shown in the timing diagram <NUM> of <FIG>, the largest sequence number in the last PPDU received before entering the power save mode is <NUM>. For another example, as shown in the timing diagram <NUM> of <FIG>, the smallest sequence number in the first PPDU received after exiting the power save mode is <NUM>. The difference between the sequence numbers being greater than one (<NUM> - <NUM> equals <NUM>) may indicate that one or more packets may have been leaked by the AP. In some implementations, the STA may not determine that the AP leaked one or more packets until the STA identifies the largest sequence number in the last PPDU (such as <NUM> in the example) and the smallest sequence number in the first PPDU (such as <NUM> in the example). For example, the STA may obtain a sequence number from one or more of the retry packets <NUM>, and the STA may determine that the sequence number is between the smallest and largest sequence numbers to determine that the AP leaked one or more packets. Determining whether an AP is leaky based on information in one or more subsequent PPDUs is described below with reference to <FIG>.

In some other implementations, the AP may not attempt to resend leaked packets. In some instances, the STA may not obtain retry packets from the AP, and the STA may not determine that the AP is leaky based on the sequence numbers of obtained packets.

<FIG> shows another example timing diagram <NUM> of wireless communications associated with an AP leaking packets when a STA is in a power save mode. The operations performed in the timing diagram <NUM> may be the same as the operations performed in the timing diagram <NUM> of <FIG> before the STA enters the power save mode (<NUM>). That is, the STA receives or obtains the last PPDU with packets <NUM> having sequence numbers <NUM>, and may provide a message to the AP that includes a PM field set to <NUM> before entering the power save mode (as indicated by the STA power state <NUM>). When the STA is in the power save mode, the AP leaks packets <NUM> including sequence numbers <NUM> having values between <NUM> and <NUM>, inclusive. The STA exits the power save mode (<NUM>), and the STA indicates to the AP that the STA has exited the power save mode (<NUM>). The STA receives or obtains a first PPDU from the AP after exiting the power save mode, with the PPDU starting at <NUM> and ending at <NUM>. The first PPDU in the example timing diagram <NUM> includes all new packets <NUM> including sequence numbers <NUM> having values between <NUM> and <NUM>, inclusive, and does not include any retry packets. For example, the AP leaked packets <NUM> with sequence numbers <NUM>-<NUM>, and the first PPDU obtained after the STA exited the power save mode includes new packets with sequence numbers <NUM>-<NUM>.

In contrast to the timing diagram <NUM> in <FIG>, the timing diagram <NUM> of <FIG> indicates that the STA does not receive or obtain a subsequent PPDU including one or more retry packets before the end of the BA window (<NUM>). In another example, the STA may receive or obtain another PPDU that does not include retry packets with a sequence number between the largest sequence number in a MPDU carried in the last PPDU received before entering the power save mode and the smallest sequence number obtained in a MPDU carried in the first PPDU received after exiting the power save mode. In some implementations when a retry packet with a sequence number between the largest sequence number and the smallest sequence number is not received or otherwise obtained during the BA window, adjusting the leak guard may be based on the number of times after waking from the power save mode that the difference in the sequence numbers is greater than one. For example, the STA may adjust the leak guard or determine that an AP is leaky based on the difference between the largest sequence number in a PPDU received before a power save mode and a smallest sequence number in a PPDU received after the power save mode being greater than one occurring a threshold number of times. In one example, the STA may determine the difference to be greater than one for a threshold number N of consecutive instances of the STA waking from a power save mode (with the integer N being configurable), and may adjust the leak guard based on the configured value of N. In some instances, the STA may increase the leak guard by a relatively large amount when the configured value of N is relatively high, and may increase the leak guard by a relatively small amount when the configured value of N is relatively low.

In the example timing diagrams <NUM>, <NUM>, and <NUM> of <FIG>, <FIG>, and <FIG>, respectively, the packets are received or obtained in order by the STA. That is, none of the packets transmitted by the AP are received or obtained out of order except for a retry packet associated with a leaked packet (such as in <FIG>). In some other instances, the STA may receive or obtain packets out of order.

<FIG> shows another example timing diagram <NUM> of wireless communications associated with an AP leaking packets when a STA is in a power save mode. In the example timing diagram <NUM>, some intermediate packets may not be obtained before the STA receives or obtains subsequent packets. For example, the AP may transmit packets out of order, with one or more intermediate packets to be included in one or more subsequent PPDUs.

In the example timing diagram <NUM>, the BA window begins at <NUM>. A last PPDU before the STA enters a power save mode (indicated by STA power save state <NUM>) is obtained, with the start of the PPDU at <NUM> and the end of the PPDU at <NUM>. The PPDU includes obtained packets <NUM> with sequence numbers <NUM> having values of <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>. As shown, the obtained packets <NUM> do not include packets with sequence numbers <NUM> or <NUM>. For example, the packets may be transmitted by the AP in a subsequent PPDU.

The STA indicates to the AP that the STA is to enter the power save mode (<NUM>), and the STA enters the power save mode (<NUM>) before receiving or obtaining the missing packets. In this manner, the AP may transmit the missing packets when the STA is in the power save mode. For example, the AP may transmit a PPDU including the out of order leaked packets <NUM> (with sequence numbers "<NUM>" and "<NUM>") and the subsequent leaked packets <NUM> including sequence numbers <NUM> having values between <NUM> and <NUM>, inclusive.

At <NUM>, the STA exits from the power save mode. At <NUM>, the STA indicates to the AP that the STA has exited the power save mode. The STA receives or obtains a first PPDU from the AP after waking from the power save mode, with the start of the PPDU at <NUM> and the end of the PPDU at <NUM>. During transmission of the first PPDU, the AP also transmits the retry packets <NUM> associated with sequence numbers <NUM>, which were originally leaked when the STA was in the power save mode (<NUM>). The AP also may transmit new packets <NUM> in the first PPDU before the end of the BA window (<NUM>).

While the example timing diagram <NUM> in <FIG> illustrates leaked packets <NUM> being retransmitted by the AP when the STA is in an active mode, in some other implementations, the AP may not retransmit the leaked packets <NUM>, or may transmit only leaked packets that were out of order. As such, adjusting the leak guard or determining whether an AP is leaky when packets are received or obtained by the STA out of order may not be accurately determined using retry field indication and sequence numbers from obtained packets. In some instances, the STA may delay entering into a power save mode until all of the out of order packets are obtained. For example, the reorder buffer of the STA's MAC may be configured to withhold obtained packets from the DRU until all previous packets are obtained based on the sequence numbers. If an intermediate packet is missing, the reorder buffer may include the one or more subsequent packets that have been obtained. To delay entry into the power save mode until all out of order packets are obtained, the STA may be configured to enter the power save mode only when the reorder buffer is empty. In this manner, the operations for adjusting the leak guard or for determining whether an AP leaked one or more packets may be independent of whether the packets obtained by the STA are out of order (or not out of order).

As discussed, a wireless communication device (such as a STA or other suitable device) may be configured to adjust a time period to delay entering a power save mode to prevent an AP from leaking packets when the STA is in the power save mode. The flowcharts in <FIG>, <FIG> illustrate example operations for adjusting the leak guard. While some example operations are illustrated, additional or different operations may be performed (or performed in a different order) for adjusting the leak guard. In addition, although one or more operations may be described with reference to the STA <NUM> of <FIG>, in some other implementations, other suitable wireless communication devices may perform some or all of the operations disclosed herein.

<FIG> shows an illustrative flowchart depicting an example operation <NUM> for wireless communications that support adjusting a time period to delay entering a power save mode. In some implementations, the operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively.

At <NUM>, the wireless communication device adjusts a time period associated with delaying entry into a power save mode. As discussed, the time period by which the STA delays entering the power save mode may be referred to herein as a leak guard. The adjusted time delay may be between <NUM> and <NUM>. In some instances, adjusting the time period or leak guard may include switching between two time periods (which may be associated with turning off and turning on the leak guard). In some other instances, adjusting the time period or leak guard may include increasing or decreasing the leak guard to values between and including <NUM> and a maximum value (such as <NUM> or <NUM>). In this manner, the time period for delaying entry into the power save mode may be associated with the wireless communication device remaining awake to prevent the AP from transmitting to the wireless communication device while the wireless communication device is in the power save mode.

At <NUM>, the wireless communication device provides, to the AP, an indication that the wireless communication device is entering the power save mode. In some implementations, the interface <NUM> of the STA <NUM> may provide, to the AP, a frame with the PM field set to <NUM> before entering the power save mode.

At <NUM>, the wireless communication device enters the power save mode upon expiration of at least the adjusted time period after providing the indication to the AP. In some implementations, the processing system <NUM> delays the STA's entry into the power save mode until expiration of at least the adjusted time delay after providing the frame with the PM field set to <NUM> to the AP. In this manner, the STA <NUM> is prevented from entering the power save mode before expiration of the adjusted time delay, thereby keeping the STA <NUM> awake to receive transmissions from the AP.

Determining when and how to adjust the leak guard may be based on whether the AP leaked packets during a previous instance of the power save mode by the STA <NUM>. In some implementations, the STA <NUM> may adjust the leak guard based on one or more operations indicating whether (or not) the AP leaked one or more packets when the STA <NUM> was previously in a power save mode. Whether the AP attempted to transmit to the STA <NUM> while the STA <NUM> was previously in the power save mode may be determined using information included in or carried by one or more PPDUs obtained by the STA after waking from the power save mode. For example, if the time period is <NUM> (such as the leak guard being turned off), the STA <NUM> may enter the power save mode as soon as providing the indication to enter the power save mode to the AP. For another example, if the time period is <NUM>, the STA <NUM> waits at least <NUM> after providing the indication to the AP before entering the power save mode.

<FIG> shows an illustrative flowchart depicting another example operation <NUM> for wireless communications that support adjusting the time period to delay entering the power save mode. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed after entering the power save mode at <NUM> in <FIG>.

For example, at <NUM>, the wireless communication device wakes from the power save mode. At <NUM>, the wireless communication device obtains one or more PPDUs from the AP after waking from the power save mode. The one or more PPDU indicate whether the AP attempted to transmit to the wireless communication device while the wireless communication device was in the power save mode. In some instances, the indication of whether the AP attempted to transmit to the wireless communication device while the wireless communication device was in the power save mode may be included in a retry field in a header of at least one of the one or more PPDUs obtained from the AP. In some other instances, the retry field may indicate that one or more MPDUs are being resent by the AP.

<FIG> shows an illustrative flowchart depicting an example operation <NUM> for wireless communications that support providing indications of power save mode to an AP. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be associated with entering the power save mode at <NUM> in <FIG>.

For example, at <NUM>, the wireless communication device transmits, to the AP, a frame with a power management field carrying a power management (PM) bit set to <NUM> before entering the power save mode. At <NUM>, the wireless communication device transmits, to the AP, a frame with the power management field carrying a PM bit set to <NUM> after waking from the power save mode. In this way, the AP may be informed when the wireless communication device is entering into the power save mode (such as indicated by the PM bit set to <NUM>), and may be informed when the wireless communication device is exiting from the power save mode (such as indicated by the PM bit set to <NUM>).

<FIG> shows an illustrative flowchart depicting an example operation <NUM> for wireless communications that support adjusting the time period for delaying entry into the power save mode based on sequence numbers of one or more PPDUs. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed after entering the power save mode at <NUM> in <FIG>.

For example, at <NUM>, the wireless communication device obtains, from a reorder buffer of the wireless communication device, the largest sequence number of a MPDU carried in the last PPDU obtained from the AP before entering the power save mode. At <NUM>, the wireless communication device obtains, from an Rx PCU of the wireless communication device, the smallest sequence number of a MPDU carried in a first PPDU obtained from the AP after waking from the power save mode. In some instances, the adjusted time delay may be associated with or based on a difference between the smallest sequence number and the largest sequence number indicating that the MPDU carried in the last PPDU and the MPDU from the first PPDU are not consecutively obtained or received MPDUs.

<FIG> shows an illustrative flowchart depicting another example operation <NUM> for wireless communications that support adjusting the time period for delaying entry into the power save mode based on sequence numbers of one or more PPDUs. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed after obtaining the smallest sequence number of the MPDU carried in the first PPDU at <NUM> in <FIG>. For example, at <NUM>, the wireless communication device obtains, from the Rx PCU, a first sequence number of a MPDU carried in a second PPDU obtained by the interface subsequent to obtaining the first PPDU. In some instances, the adjusted time delay may be associated with or based on the first sequence number being between the smallest sequence number and the largest sequence number.

<FIG> shows an illustrative flowchart depicting another example operation <NUM> for wireless communications that support adjusting the time period for delaying entry into the power save mode based on sequence numbers of one or more PPDUs. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed after entering the power save mode at <NUM> in <FIG>. For example, at <NUM>, the wireless communication device obtains a third PPDU from the AP subsequent to obtaining the first PPDU. In some instances, the third PPDU is obtained after an end of a block acknowledgement (BA) window associated with the first PPDU, the second PPDU is obtained before the end of the BA window, and the adjusted time delay is not associated with sequence numbers of MPDUs in the third PPDU being between the smallest sequence number and the largest sequence number.

<FIG> shows an illustrative flowchart depicting an example operation <NUM> for wireless communications that support entering and exiting power save mode. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed after entering the power save mode at <NUM> in <FIG>.

For example, at <NUM>, the wireless communication device enters into and wakes from the power save mode multiple times. At <NUM>, for each time the wireless communication device wakes from the power save mode, the wireless communication device obtains, from the reorder buffer, the largest sequence number of a MPDU carried in the last PPDU obtained by the interface before the wireless communication device enters the power save mode. At <NUM>, for each time the wireless communication device wakes from the power save mode, the wireless communication device obtains, from the Rx PCU, the smallest sequence number of a MPDU carried in a first PPDU obtained by the interface after the wireless communication device wakes from the power save mode.

In some implementations, for a threshold number of consecutive times the wireless communication device wakes from the power save mode, the adjusted time delay is associated with a difference between the smallest sequence number and the largest sequence number indicating that the MPDU carried in the last PPDU and the MPDU from the first PPDU are not consecutively obtained or received MPDUs. In some instances, obtaining the largest sequence number and the smallest sequence number includes obtaining a type-length-value (TLV) encoded message including the largest sequence number, the smallest sequence number, and retry field information.

<FIG> shows an illustrative flowchart depicting an example operation <NUM> for wireless communications that support delaying entering power save mode. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed in conjunction with entering the power save mode at <NUM> in <FIG>. For example, at <NUM>, the wireless communication device may not enter the power save mode until the reorder buffer (which is configured to receive or obtain PPDUs from the AP) is empty.

<FIG> shows an illustrative flowchart depicting an example operation <NUM> for wireless communications that support entering and exiting power save mode. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed after entering the power save mode at <NUM> in <FIG>. For example, at <NUM>, the wireless communication device may periodically evaluate whether the AP attempts to transmit to the wireless communication device while the wireless communication device is in the power save mode.

<FIG> shows an illustrative flowchart depicting another example operation <NUM> for wireless communications that support entering and exiting power save mode. The operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation <NUM> may be performed in conjunction with the operation <NUM> of <FIG>.

For example, at <NUM>, the wireless communication device may obtain a header of a packet transmitted over a wireless communication medium. At <NUM>, the wireless communication device may enter the power save mode after processing the header. In some instances, a recipient address in the header does not match an address of the wireless communication device, and a length of time of the power save mode is associated with an amount of time the wireless communication medium is occupied during transmission of the packet. At <NUM>, the wireless communication device may wake from the power save mode after the length of time of the power save mode. In some implementations, a recipient address in the header does not match an address of the wireless communication device, and a length of time of the power save mode is associated with an amount of time the wireless communication medium is occupied during transmission of the packet. In some instances, adjusting the time period may include disabling or enabling entering the power save mode by the wireless communication device.

<FIG> shows an illustrative flowchart depicting an example operation <NUM> for wireless communications that support adjusting a time period to delay entering a power save mode based on a first PPDU obtained after waking from a power save mode. In some implementations, the operation <NUM> may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively.

At <NUM>, the wireless communication device wakes from a power save mode. In some implementations, the processing system <NUM> of the STA <NUM> causes the STA <NUM> to wake from the power save mode. At <NUM>, the wireless communication device provides an indication, to the AP, that the device is in an active mode (and thus awake from the power save mode). In some implementations, the interface <NUM> of the STA <NUM> provides a frame with the PM field set to <NUM> to the AP to indicate that the STA <NUM> is awake from the power save mode. At <NUM>, the wireless communication device receives or obtains one or more PPDUs after waking from the power save mode.

In some implementations, the indication of whether the AP attempted to transmit to the wireless communication device while the wireless communication device is in the power save mode may be provided in or carried by one or more PPDUs received or obtained from the AP. In some instances, the indication of whether the AP attempted to transmit to the wireless communication device while the wireless communication device was in the power save mode may be included in a retry field in a header of at least one of the one or more PPDUs obtained from the AP. In some other instances, the retry field may indicate that MPDUs are being resent by the AP.

<FIG> shows an illustrative flowchart depicting another example operation 2000A for wireless communications that support entering and exiting power save mode. The operation 2000A may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation 2000A may be an example of adjusting the leak guard based on the first PPDU of the one or more PPDUs obtained at <NUM>.

At <NUM>, the wireless communication device obtains a first PPDU after waking from the power save mode. For example, the interface <NUM> of the STA <NUM> receives or obtains the first PPDU from the AP. At <NUM>, the wireless communication device identifies one or more retry fields in the first PPDU. The first PPDU includes one or more MPDUs. In some implementations, the Rx PCU <NUM> of <FIG> of the wireless communication device decodes the PPDU to identify MAC headers of the one or more MPDUs and to identify the retry fields in the MAC headers. At <NUM>, the wireless communication device determines whether a retry field indicates that a MPDU is being resent. For example, the retry field information from the Rx PCU <NUM> may be encoded into a message obtained by the processing system <NUM> of the STA <NUM>. The processing system <NUM> may determine whether any of the retry fields in the PPDU are set to <NUM> to indicate that the associated MPDU is being resent by the AP.

The indication of an MPDU being resent by the AP in the first PPDU after the wireless communication device wakes from the power save mode may indicate whether the AP is leaky. In some implementations, a retry field set to <NUM> in the first PPDU may indicate that the AP is resending a leaked packet. In some instances, the AP may resend a packet based on a link quality between the AP and the wireless communication device. For example, the AP may transmit a packet before the wireless communication device enters the power save mode, and the received signal strength of the packet may not be sufficient for the wireless communication device to successfully obtain and decode the packet.

If a retry field indicates that an MPDU is being resent, the wireless communication device may determine whether a link quality between the AP and the wireless communication device is less than a threshold, at <NUM>. In some instances, the wireless communication device can use one or more of the received signal strength indicator (RSSI) of the transmitted packet, the modulation and coding scheme (MCS) used to transmit the packet, the packet error rate (PER), channel state information (CSI), or the bandwidth of the wireless medium to determine the link quality. If the link quality is less than the threshold, the wireless communication device sets the time period to delay entering a power save mode to a first value, at <NUM>. Conversely, if the link quality is not less than the threshold, the wireless communication device sets the time period to a second value, at <NUM>. In some instances, the processing system may adjust the leak guard between the first and second values based on the RSSI being greater than or less than a configured threshold.

In some implementations, the first value may be associated with the AP not being leaky, and the second value may be associated with the AP being leaky. When the AP is not leaky, the wireless communication device may not delay entering the power save mode. When the AP is leaky, the wireless communication device may delay entering the power save mode to prevent missing leaked packets transmitted by the AP. In some instances, the first value may be <NUM> and the second value may be <NUM>. The first and second values may be any suitable time periods as long as the first value is less than the second value.

In some other implementations, the time period may be increased or decreased by an amount rather than setting the time period to the first value or the second value. In this manner, the leak guard may be increased or decreased to a specific time period associated with preventing the AP from leaking packets.

If none of the retry fields indicate that a MPDU is being resent at <NUM>, the wireless communication device determines a difference between a largest sequence number from a last PPDU obtained before entering the power save mode and the smallest sequence number from the first PPDU obtained after waking from the power save mode, at <NUM>. In some instances, the wireless communication device may obtain the largest sequence number from the last PPDU obtained before entering the power save mode, and may obtain the smallest sequence number from the first PPDU obtained after waking from the power save mode. For example, the Rx PCU <NUM> may decode the sequence numbers from the MAC sequence control field of the MAC headers in the first PPDU to obtain the smallest sequence number from the first PPDU, and the reorder buffer <NUM> may obtain the largest sequence number from the last PPDU. The largest and smallest sequence numbers obtained from the first PPDU may be encoded into a message (such as a TLV encoded message).

In some implementations, a TLV encoded message including the smallest sequence number, the largest sequence number, and the retry field information may be created for each PPDU obtained by the interface <NUM>. In this manner, the interface <NUM> may obtain the last PPDU before entering the power save mode, and the Rx PCU <NUM> may decode the sequence numbers from the MAC sequence control field of the MAC headers in the last PPDU. The largest sequence number and the smallest sequence number may be included in the TLV encoded message associated with the last PPDU. The processing system <NUM> may obtain the largest sequence number of the MPDU carried in the last PPDU obtained before entering the power save mode from the reorder buffer. In some instances, the processing system <NUM> may be configured to store the largest sequence number while the STA <NUM> is in the power save mode.

At <NUM>, the wireless communication device determines whether the difference between the largest sequence number of the MPDU carried in the last PPDU and the smallest sequence number of the MPDU carried in the first PPDU is greater than <NUM>. If the difference is not greater than <NUM>, which may indicate that another sequence number does not exist between the largest sequence number of the MPDU carried in the last PPDU and the smallest sequence number of the MPDU carried in the first PPDU, the wireless communication device may set the time period to the first value, at <NUM>.

Conversely, if the difference is greater than <NUM>, which may indicate that another sequence number exists between the largest sequence number carried in the last PPDU and the smallest sequence number carried in the first PPDU, the wireless communication device may determine whether another PPDU is to be obtained before the end of the BA window, at <NUM>. If there is not another PPDU to be obtained before the end of the BA window, the wireless communication device may set the time period to the first value, at <NUM>. Conversely, if there is another PPDU to be obtained before the end of the BA window, the operation 2000A proceeds to <NUM> of <FIG>.

<FIG> shows an illustrative flowchart depicting another example operation 2000B for wireless communications that support entering and exiting power save mode. The operation 2000B may be performed by an apparatus of a wireless communication device operating as or within a network node, such as one of the STAs 120a-120i or <NUM> described with reference to <FIG> and <FIG>, respectively. In some implementations, the operation 2000B may continue from the operation 2000A of <FIG>, in particular the "yes" branch of determination step <NUM> of <FIG>.

At <NUM>, the wireless communication device receives or obtains a next PPDU from the AP. For example, the interface <NUM> of the STA <NUM> may obtain a second PPDU after obtaining the first PPDU. At <NUM>, the wireless communication device may identify one or more retry fields in the PPDU. For example, the Rx PCU <NUM> may decode the second PPDU to identify one or more retry fields in the MAC headers. At <NUM>, the wireless communication device determines whether any of the retry fields indicate that a MPDU is being resent. If one or more of the retry fields indicate that a MPDU is being resent, the wireless communication device obtains a sequence number from the PPDU, at <NUM>. The wireless communication device determines whether the obtained sequence number is between the largest sequence number carried in the last PPDU obtained before entering the power save mode and the smallest sequence number carried in the first PPDU obtained after waking from the power save mode, at <NUM>. If the obtained sequence number is between the largest and smallest sequence numbers, which may indicate that the AP is leaky, the wireless communication device determines whether the link quality is less than the threshold, at <NUM>.

If the link quality is less than the threshold, which may indicate that the packet was resent because of poor link quality rather than a leaky AP, the wireless communication device may set the time period to the first value, at <NUM>. If the link quality is not less than the threshold, which may indicate that the packet was resent due to a leaky AP, the wireless communication device may set the time period to the second value, at <NUM>.

If the obtained sequence number is not between the largest and smallest sequence numbers at <NUM>, or if none of the retry fields indicate that a MPDU is being resent at <NUM>, the wireless communication device may determine whether there are any additional PPDUs to be obtained before the end of the BA window, at <NUM>. If there are not any additional PPDUs to be obtained before the end of the BA window, the wireless communication device sets the time period to the first value at <NUM>. In some implementations, the device listens for additional PPDUs until the end of the BA window. The AP does not attempt to resend leaked packets after the BA window.

At end of the BA window, the wireless communication device may ensure that the leak guard is set to the first value (such as <NUM>). The wireless communication device may receive or obtain a third PPDU subsequent to obtaining the first PPDU and a second PPDU obtained before the end of the BA window. In some instances, the third PPDU is obtained after the end of the BA window associated with the first PPDU (such as during a different BA window). The wireless communication device does not check the retry fields or the sequence numbers of the third PPDU to determine whether the AP is leaky. In this manner, a determination that the AP is leaky is not based on or associated with sequence numbers of MPDUs in the third PPDU being between the smallest sequence number and the largest sequence number used to determine the difference in block <NUM> in <FIG>.

Although not shown for simplicity in <FIG>, the wireless communication device may prevent entry into the power save mode when the reorder buffer <NUM> is not empty. As discussed, a non-empty state of the reorder buffer <NUM> may indicate that one or more preceding packets were missing (such as depicted in the example of <FIG>). In some implementations, if the reorder buffer <NUM> is configured to store packets until all preceding packets are obtained and provided to the DRU <NUM>, an empty state of the reorder buffer <NUM> may indicate that none of the packets preceding the packet having the largest sequence number in the last PPDU obtained before entering the power save mode are missing. In some instances, the wireless communication device also may not enter the power save mode in response to a determination that its receive chain is idle. In this manner, the wireless communication device may determine that the reorder buffer <NUM> is empty and that its receive chains are idle before entering the power save mode.

In some implementations, the wireless communication device may record or store an identifier of the AP if the AP is determined to be leaky. For example, if the time period is set to the second value at <NUM> or at <NUM>, the processing system <NUM> of the STA <NUM> may store the BSSID of the AP in the database <NUM> of the STA <NUM>. In this manner, the STA <NUM> can identify APs that have attempted to transmit to the STA <NUM> while the STA <NUM> was in the power save mode. In some instances, storage of an AP's BSSID in the database <NUM> of a respective STA may indicate that the AP is leaky, and an absence of the AP's BSSID in the database <NUM> of the respective STA may indicate that the AP is not leaky. In some other instances, storage of an AP's BSSID in the database <NUM> of a respective STA may indicate a relatively high likelihood that the AP is leaky, and an absence of the AP's BSSID in the database <NUM> of the respective STA may indicate a relatively low likelihood that the AP is leaky. An indication that the AP is not leaky may be associated with adjusting a leak guard associated with the respective STA.

The operations described with reference to <FIG> are based on the reception of PPDUs addressed to the STA <NUM>. In some other implementations, the operations described with reference to <FIG> also may be used to prevent entering the power save mode based on packet power save. Packet power save (PPS) refers to one or more operations in which the STA <NUM> receives a packet over the wireless medium, determines that the packet is not addressed to the STA <NUM> based on information included in the packet header, and places selected components of the STA <NUM> into a low power state for a remainder of the time that the packet transmission occupies the wireless medium. In some instances, the STA <NUM> may be considered to be in an active mode based on signaling protocols even though the selected components are placed into the low power state such that the STA <NUM> is prevented from receiving or processing packets. As used herein, placing components into the low power state for PPS may be referred to as a nap state.

For example, when receiving or obtaining a legacy or high throughput (HT) MPDU, the STA <NUM> may obtain a header including the MPDU's MAC receive address, decode the MAC receive address, and determine that the decoded MAC receive address does not match the address of the STA <NUM>. The STA <NUM> may place selected components into a low power state while the packet is being transmitted over the wireless medium. When receiving or obtaining an HT A-MPDU, the STA <NUM> may place the selected components into the low power state based on a cyclic redundancy check fail from a first delimiter, or may place the selected components into the low power state based on a mismatch between the RA field of the HT A-MPDU and the STA's MAC address.

When receiving or obtaining a very high throughput (VHT) SU packet, the STA <NUM> may place the selected components into the low power state based on a partial association identifier (AID) mismatch and a failed first delimiter CRC, or may place the selected components into the low power state based on a mismatch between the RA field of the VHT SU packet and the STA's MAC address. When receiving or obtaining a VHT MU packet, the STA <NUM> may place the selected components into the low power state based on a group ID mismatch and a failed first delimiter CRC, or may place the selected components into the low power state based on a mismatch between the RA field of the VHT MU packet and the STA's MAC address.

When receiving or obtaining a high-efficiency (HE) single-user (SU) packet, the STA <NUM> may place the selected components into the low power state based on a BSS mismatch and a failed first delimiter CRC, or may place the selected components into the low power state based on a mismatch between the RA field of the HE SU packet and the STA's MAC address. When receiving or obtaining an HE MU packet, the STA <NUM> may place the selected components into the low power state based on a BSS mismatch, based on a STA ID mismatch, based on a failed first delimiter CRC, or based on a mismatch between the RA field of the HE MU packet and the STA's MAC address. In this manner, the STA <NUM> may conserve power while the wireless medium is occupied with traffic not intended for the STA <NUM>.

<FIG> shows an example timing diagram <NUM> of wireless communications that supports nap states. As shown, a STA is within wireless range of a first AP <NUM> and a second AP <NUM>. The STA may have PPS disabled (<NUM>) or enabled (<NUM>). The STA is not associated with a BSS of the first AP <NUM>, and is associated with a BSS of the second AP <NUM>. The first AP <NUM> transmits a first packet <NUM> on the wireless communication medium at time t<NUM>. If the STA has PPS disabled (<NUM>), the STA is in an active mode to listen for and receive or obtain the first packet <NUM> between times t<NUM> and t<NUM>. If the STA has PPS enabled (<NUM>), the STA is in an active mode to obtain the packet header <NUM> of the first packet <NUM> between times t<NUM> and t<NUM>. The STA determines that the first packet <NUM> is not intended for the STA, and enters a nap state <NUM> at time t<NUM>. The STA may remain in the nap state <NUM> until time t<NUM>. In this manner, the STA conserves power when the STA does not need to listen to the wireless medium. If the second AP <NUM> does not transmit to the STA when the STA is in the nap state <NUM> based on PPS being enabled, the STA conserves power without missing any packets transmitted from the second AP <NUM>.

As shown in the example timing diagram <NUM>, the second AP <NUM> transmits a third packet <NUM> during transmission of a second packet <NUM> by the first AP <NUM>. For example, the first AP <NUM> begins to transmit the second packet <NUM> at time t<NUM>. During transmission of the second packet <NUM>, the second AP <NUM> begins to transmit the third packet <NUM> at time t<NUM>. If the STA has PPS disabled (<NUM>), the STA receives or obtains the second packet <NUM> between times t<NUM> and t<NUM>, and also receives or obtains the third packet <NUM> between times t<NUM> and t<NUM> since the STA did not enter a nap state based on the second packet <NUM>. If the STA has PPS enabled (<NUM>), the STA obtains the packet header <NUM> of the second packet <NUM> between times t<NUM> and t<NUM>. The STA determines that the second packet <NUM> is not intended for the STA, and enters a nap state <NUM> at time t<NUM>. The STA may remain in the nap state <NUM> until time t<NUM>, for example, such that the STA is unable to receive or obtain the third packet <NUM> transmitted from the second AP <NUM>. Thus, the STA misses the third packet <NUM> transmitted from the second AP <NUM>. In some implementations, the number of missed packets resulting from an enabled PPS may increase as congestion on the wireless medium increases. In this way, the operations associated with determining a leaky AP or adjusting a leak guard also may be used to determine or adjust when the STA is to enter a nap state associated with PPS.

As discussed, the nap state associated with PPS may be different than the power save mode associated with a leaky AP. For example, fewer components of the STA may be placed into a low power state when entering a nap state to reduce the amount of time associated with waking from the nap state. The operations disclosed herein associated with adjusting a leak guard also may be used to adjust when a STA is to enter a nap state. For example, adjusting a leak guard may refer to enabling or disabling PPS to allow or prevent a STA from entering the nap state. For example, a STA with PPS enabled may obtain the largest sequence number of one packet before entering a nap state, and obtain the smallest sequence number of another packet after exiting the nap state. The STA may determine whether a packet received or obtained after the nap state includes a retry field set to <NUM>, or may determine a difference between the largest sequence number and the smallest sequence number. If the retry field is set to <NUM> and the difference is greater than <NUM>, which may indicate that the second AP <NUM> leaked one or more packets (such as based on obtaining a retry packet missed when the STA was in the nap state), the STA may disable PPS. If the second AP <NUM> does not transmit a packet that is missed by the STA when the STA is in a nap state, the STA may enable PPS.

As discussed, entering a "power save mode" with reference to a PPS enabled device may refer to the device entering a nap state. In using the operations <NUM> or <NUM> in <FIG> and <FIG> to determine whether to enable or disable PPS, block <NUM> or block <NUM> (entitled "set the time period to the first value") being reached may indicate that the STA is to enable PPS. Block <NUM> or block <NUM> (entitled "set the time period to the second value") being reached may indicate that the STA is to disable PPS. In this manner, the wireless communication device may determine whether a device may have missed one or more packets from an AP when the device is in the nap state, and the wireless communication device may enable or disable PPS accordingly. As discussed, the wireless communication device periodically may determine (such as every <NUM> seconds) whether any packets are missed when PPS is enabled or otherwise update whether PPS is to be enabled or disabled by performing the operations described with reference to <FIG> and <FIG>. For example, the wireless communication device may periodically enable PPS and determine whether PPS should remain enabled or should be disabled. In some instances, the wireless communication device may enable PPS every <NUM> seconds to determine whether PPS is to remain enabled or is to be disabled. In some other instances, if the wireless communication device disables PPS within a certain time period after enabling PPS more than a configured number of times, the wireless communication device may increase the duration of time between disabling and enabling PPS. In this way, if the wireless communication device operates in a persistently congested environment that causes PPS-enabled devices to miss packets, the wireless communication device may disable PPS until the congestion decreases by at least an amount, which may increase throughput of the wireless medium.

The hardware and data processing apparatus used to implement the various illustrative logics, logical blocks, modules and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose single- or multi-chip processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, or any conventional processor, controller, microcontroller, or state machine. A processor also may be implemented as a combination of computing devices such as, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. In some implementations, particular processes and methods may be performed by circuitry that is specific to a given function.

Various modifications to the implementations described in this disclosure may be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other implementations without departing from the scope of this disclosure. Thus, the claims are not intended to be limited to the implementations shown herein, but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein.

Certain features that are described in this specification in the context of separate implementations also can be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also can be implemented in multiple implementations separately or in any suitable subcombination.

Claim 1:
A method performed by an apparatus of a wireless communication device (<NUM>), comprising:
adjusting (<NUM>) a time period associated with delaying entry into a power save mode, wherein the time period is associated with the wireless communication device remaining awake to prevent an access point, AP, from transmitting to the wireless communication device while the wireless communication device is in the power save mode;
providing, (<NUM>), to the AP, an indication that the wireless communication device is entering the power save mode;
entering (<NUM>) the power save mode upon expiration of at least the adjusted time period after providing the indication to the AP; characterized by:
waking (<NUM>) from the power save mode; and
obtaining (<NUM>) one or more physical layer protocol data units, PPDUs, from the AP after waking from the power save mode, the one or more PPDUs indicating whether the AP attempted to transmit to the wireless communication device while the wireless communication device was in the power save mode.