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.

Some wireless networks employ multiple access mechanisms, such as an orthogonal frequency division multiple access (OFDMA) mechanism, to allow multiple STAs to transmit or receive data on a shared wireless medium at the same time. In wireless networks employing OFDMA, the available frequency spectrum may be divided into a plurality of resource units (RUs) each including a number of different frequency subcarriers, and different RUs may be allocated or assigned to different STAs at a given point in time to allow the STAs to concurrently transmit uplink (UL) data to the AP. Because each of the STAs may have different amounts of queued UL data, it would be desirable for the AP to have an accurate estimate of how much queued UL data each of the identified STAs has, for example, so that the AP may schedule UL transmissions from the identified STAs accordingly. <CIT> discloses a method for transmitting a physical layer protocol data unit (PPDU) and a device using the same. The device receives a trigger frame for requesting a transmission of a response PPDU and transmits the response PPDU. A duration of the response PPDU is calculated based on a duration of the trigger frame.

One innovative aspect of the subject matter described in this disclosure can be implemented as a method for wireless communication. The method is performed by an apparatus of an access point (AP), and may include selecting a packet duration for uplink (UL) transmissions from a station (STA); transmitting a trigger frame soliciting UL data from the STA and indicating the selected packet duration; receiving an UL packet of the selected packet duration from the STA; and selectively adjusting the packet duration for subsequent UL transmissions from the STA based on one or more of an amount of data carried in the UL packet, an amount of padding inserted into the UL packet by the STA, or an amount of UL data queued in the STA. In some implementations, the method also may include transmitting an indication of the adjusted packet duration to the STA. In some instances, the UL packet may be a high-efficiency (HE) trigger-based (TB) physical layer convergence procedure (PLCP) protocol data unit (PPDU). In some other instances, the UL packet may include at least one medium access control (MAC) protocol data unit (MPDU).

The UL packet includes an indication of the amount of UL data queued in the STA. In some instances, the indication may be carried in a Quality-of-Service (QoS) control field of the UL packet. In some other instances, the indication may be carried in one or more fields of any suitable frame or packet transmitted to the AP.

Selectively adjusting the packet duration includes decreasing the packet duration when the amount of padding inserted into the UL packet by the STA is greater than a value while at least some UL data is queued in the STA. In some other implementations, selectively adjusting the packet duration may include decreasing the packet duration when a size or duration of one or more aggregated frames carried in the UL packet is less than a value. In some other implementations, selectively adjusting the packet duration may include decreasing the packet duration when the amount of data carried in the UL packet is less than the amount of UL data queued in the STA and at least a portion of one or more data fields contained in the UL packet do not carry queued UL data from the STA. In some other implementations, selectively adjusting the packet duration may include estimating a maximum amount of data that the STA is capable of embedding in the UL packet based at least in part on the amount of data carried in the UL packet, and adjusting the packet duration based on the estimated maximum amount of data.

In some implementations, selecting the packet duration for UL transmissions may be based at least in part on estimating the amount of data that the STA has queued for UL transmissions. In some instances, the amount of UL data queued in the STA may be based at least in part on UL queue size information provided by the STA prior to transmission of the trigger frame.

Another innovative aspect of the subject matter described in this disclosure can be implemented in an apparatus of an access point (AP). The apparatus includes means for selecting a packet duration for uplink (UL) transmissions from a station (STA); means for transmitting a trigger frame soliciting UL data from the STA and indicating the selected packet duration; means for receiving an UL packet of the selected packet duration from the STA; and means for selectively adjusting the packet duration for subsequent UL transmissions from the STA based on one or more of an amount of data carried in the UL packet, an amount of padding inserted into the UL packet by the STA, or an amount of UL data queued in the STA. In some implementations, the apparatus also may include means for transmitting an indication of the adjusted packet duration to the STA. In some instances, the UL packet may be a high-efficiency (HE) trigger-based (TB) physical layer convergence procedure (PLCP) protocol data unit (PPDU). In some other instances, the UL packet may include at least one medium access control (MAC) protocol data unit (MPDU).

In some implementations, the UL packet may include an indication of the amount of UL data queued in the STA. In some instances, the indication may be carried in a Quality-of-Service (QoS) control field of the UL packet. In some other instances, the indication may be carried in one or more fields of any suitable frame or packet transmitted to the AP.

In some implementations, the means for selectively adjusting the packet duration may be configured to decrease the packet duration when the amount of padding inserted into the UL packet by the STA is greater than a value while at least some UL data is queued in the STA. In some other implementations, the means for selectively adjusting the packet duration may be configured to decrease the packet duration when a size or duration of one or more aggregated frames carried in the UL packet is less than a value. In some other implementations, the means for selectively adjusting the packet duration may be configured to decrease the packet duration when the amount of data carried in the UL packet is less than the amount of UL data queued in the STA and at least a portion of one or more data fields contained in the UL packet do not carry queued UL data from the STA. In some other implementations, the means for selectively adjusting the packet duration may be configured to estimate a maximum amount of data that the STA is capable of embedding in the UL packet based at least in part on the amount of data carried in the UL packet, and to adjust the packet duration based on the estimated maximum amount of data.

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 selectively adjusting the length or duration of uplink (UL) packets transmitted to an access point (AP) from one or more stations (STAs, or other wireless devices). In some implementations, the AP may select the packet duration for UL transmissions based at least in part on capability information of STAs that are associated with the AP. In some instances, the capability information may indicate one or more hardware or software constraints that limit the rate at which the STA can construct one or more medium access control (MAC) protocol data units (MPDU) or fill the payloads of the MPDUs with queued UL data. In some other implementations, the AP may obtain or estimate an amount of data that a STA has queued for UL transmission, and may select the packet duration for UL transmissions based at least in part on the obtained or estimated amount of queued UL data in the STA. The AP may transmit a trigger frame that solicits UL data from the STA and that indicates the selected packet duration. The STA may receive the trigger frame, and transmit an UL packet of the selected duration to the AP. If the STA is unable to fill a payload of the UL packet with enough queued UL data to comply with the packet duration selected by the AP, the STA may insert padding (such as null data or null delimiter bytes) into the payload until the UL packet is of the length or duration selected by the AP.

The AP may receive the UL packet from the STA, and may determine one or more of an amount of data carried in the UL packet, an amount of padding inserted into the UL packet by the STA, or an amount of UL data queued in the STA. In some instances, the AP may determine the amount of UL data queued in the STA based on UL queue size information carried in the UL packet. In some implementations, the AP may selectively adjust the packet duration for subsequent UL transmissions from the STA based on one or more of the amount of data contained in the UL packet, the amount of padding inserted into the UL packet, or the amount of UL data queued in the STA.

Particular implementations of the subject matter described in this disclosure can be implemented to realize one or more of the following potential advantages. When a STA inserts padding (rather than queued UL data) into an UL packet to comply with the packet duration selected by the AP, airtime may be wasted and the wireless medium may be under-utilized. By selectively adjusting the packet duration for UL transmissions based on the amount of queued UL data that the STA is capable of embedding in UL packets, the AP may reduce or even eliminate the amount of padding inserted into UL packets by the STA to comply with the packet duration selected by the AP, thereby potentially increasing medium utilization. Also, by reducing the amount of padding inserted into a respective UL packet by the STA, the AP may trigger additional data or communications in the respective UL packet, for example, rather than waiting to trigger the additional data or communications in subsequent UL packets. Thus, by selectively adjusting the packet duration for UL transmissions based on the amount of queued UL data that the STA is capable of embedding in UL packets, the AP may increase medium utilization and reduce transmission latencies, for example, as compared with conventional techniques that do not adjust the length or duration of UL packets.

<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 MAC address that is programmed therein by, for example, the manufacturer of the access point. 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> may periodically 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 bacon 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 stations STAs 120a-120i and the AP <NUM> may include one or more transceivers, one or more processing resources (such as processors or Application-Specific Integrated Circuits (ASICs)), 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>, <FIG>, <FIG>, <FIG>, <FIG>, and <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>, a processor <NUM>, a user interface <NUM>, a memory <NUM>, and a number of antennas ANT1-ANTn. The transceivers <NUM> may be coupled to antennas ANT1-ANTn, either directly or through an antenna selection circuit (not shown for simplicity). The transceivers <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, the 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. 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.

The processor <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 processor <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 processor <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 processor <NUM> may be or include one or more Field Programmable Gate Arrays (FPGAs) or Programmable Logic Devices (PLDs).

The user interface <NUM>, which is coupled to the processor <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 STA <NUM> may include a satellite positioning system (SPS) receiver <NUM>. The SPS receiver <NUM>, which is coupled to the processor <NUM>, may be used to acquire and receive signals transmitted from one or more satellites or satellite systems via an antenna (not shown for simplicity). Signals received by the SPS receiver <NUM> may be used to determine (or at least assist with the determination of) a location of the STA <NUM>.

The memory <NUM> may include a device database <NUM> that may store location data, configuration information, data rates, a medium access control (MAC) address, timing information, modulation and coding schemes (MCSs), traffic indication (TID) queue sizes, ranging capabilities, and other suitable information about (or pertaining to) the STA <NUM>. The device database <NUM> also may store profile information for a number of other wireless devices. The profile information for a given wireless device may include, for example, a service set identification (SSID) for the wireless device, a Basic Service Set Identifier (BSSID), operating channels, TSF values, beacon intervals, ranging schedules, channel state information (CSI), received signal strength indicator (RSSI) values, goodput values, and connection history with the STA <NUM>. In some implementations, the profile information for a given wireless device also may include clock offset values, carrier frequency offset values, and ranging capabilities.

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.

<FIG> shows an example access point (AP) <NUM>. The AP <NUM> may be one implementation of the AP <NUM> of <FIG>. The AP <NUM> may include one or more transceivers <NUM>, a processor <NUM>, a memory <NUM>, a network interface <NUM>, and a number of antennas ANT1-ANTn. The transceivers <NUM> may be coupled to the antennas ANT1-ANTn, either directly or through an antenna selection circuit (not shown for simplicity). The transceivers <NUM> may be used to transmit signals to and receive signals from other wireless devices including, for example, one or more of the STAs 120a-120i of <FIG> and other APs. Although not shown in <FIG> for simplicity, the transceivers <NUM> may include any number of transmit chains to process and transmit signals to other wireless devices via the antennas ANT1-ANTn, and may include any number of receive chains to process signals received from the antennas ANT1-ANTn. Thus, the AP <NUM> may be configured for MIMO communications and OFDMA communications. The MIMO communications may include SU-MIMO communications and MU-MIMO communications. In some implementations, the AP <NUM> may use multiple antennas ANT1-ANTn to provide antenna diversity. Antenna diversity may include polarization diversity, pattern diversity, and spatial diversity.

The network interface <NUM>, which is coupled to the processor <NUM>, may be used to communicate with the system controller <NUM> of <FIG>. The network interface <NUM> also may allow the AP <NUM> to communicate, either directly or via one or more intervening networks, with other wireless systems, with other APs, with one or more back-haul networks, or any combination thereof.

The memory <NUM> may include a device database <NUM> that may store location data, configuration information, data rates, the MAC address, timing information, MCSs, ranging capabilities, and other suitable information about (or pertaining to) the AP <NUM>. The device database <NUM> also may store profile information for a number of other wireless devices (such as one or more of the stations 120a-120i of <FIG>). The profile information for a given wireless device may include, for example, an SSID for the wireless device, a BSSID, operating channels, CSI, received signal strength indicator (RSSI) values, goodput values, and connection history with the AP <NUM>. In some implementations, the profile information for a given wireless device also may include TID queue sizes, a preferred packet duration for trigger-based UL transmissions, and a maximum amount of queued UL data that the wireless device is able to insert into TB PPBUs.

<FIG> shows a timing diagram <NUM> depicting an example operation <NUM> for adjusting a packet duration for triggered uplink (UL) transmissions from one or more STAs <NUM> to an AP <NUM>. The AP <NUM> may be any suitable AP including, for example, the AP <NUM> of <FIG> or the AP <NUM> of <FIG>. Each of the one or more STAs <NUM> may be any suitable wireless station including, for example, the stations 120a-120i of <FIG> or the STA <NUM> of <FIG>. Although only one STA <NUM> is shown in <FIG> for simplicity, the example operation <NUM> of <FIG> may be performed with any suitable number of STAs. As such, any reference herein to more than one STA <NUM> may refer to the STA <NUM> of <FIG> and to one or more other STAs (not shown for simplicity) that are triggered for UL transmissions by the AP <NUM>. In some implementations, the AP <NUM> may operate or control a BSS, and the one or more STAs <NUM> may be associated with the AP <NUM> and belong to the BSS.

At or before time t<NUM>, the AP <NUM> may estimate an amount of data (such as in bytes) that the STA <NUM> has queued (or "buffered") for UL transmission to the AP <NUM>. As used herein, the estimated amount of queued UL data also may be referred to as an "uplink (UL) queue depth estimate" or an "UL traffic identifier (TID) queue depth estimate. " In some implementations, the AP <NUM> may estimate the amount of queued UL data in the STA <NUM> based on information contained in a quality of service (QoS) control ("queue size") field of one or more UL packets previously received from the STA <NUM>. In some other implementations, the AP <NUM> may estimate the amount of queued UL data at the STA <NUM> based on a Buffer Status Report provided by the STA <NUM> in response to a Buffer Status Report Poll (BSRP) transmitted by the AP <NUM> to the STA <NUM>.

At or before time t<NUM>, the AP <NUM> may select a packet duration for UL transmissions from the STA <NUM> (and for other STAs triggered for UL transmissions to the AP <NUM>). In some implementations, the AP <NUM> may select the packet duration based on the estimated amount of queued UL data at the STA <NUM>, an estimated sustainable PHY rate of the STA <NUM>, or both. Techniques for estimating the sustainable PHY rate of a wireless communication device such as a STA are well-known in the art, and therefore not repeated herein. Selecting the UL packet duration based on the estimated amount of queued UL data at the STA <NUM> may increase the likelihood that the STA is able to fill the payloads of one or more packets with similar amounts of queued UL data. As a non-limiting example, if the estimated amount of UL data at the STA <NUM> is equivalent to a packet length of more than of <NUM> milliseconds (ms), the AP <NUM> may select a UL packet duration of <NUM>, for example, to increase the likelihood that the STA is able to fill the packet payload with queued UL data. As another non-limiting example, if the estimated amount of UL data at the STA <NUM> is equivalent to a packet length of <NUM> (or a hundred or so microseconds less), the AP <NUM> may select a UL packet duration of approximately <NUM>, for example, so that the STA <NUM> can fill the payloads of four UL packets with its queued UL data, evenly. For UL data to be transmitted using MU-MIMO communications, the AP <NUM> may select a number of spatial streams (NSS) to be used by each STA <NUM> triggered for UL transmissions to the AP <NUM>. For UL data to be transmitted using OFDMA communications, the AP <NUM> may allocate one or more unique resource units (RUs) to each STA <NUM> that is triggered for UL transmissions to the AP <NUM>.

Selecting the UL packet duration based on the estimated sustainable PHY rate of the STA <NUM> may increase the likelihood that the STA can insert queued UL data into the payloads of UL packets (and transmit the UL packets) with sufficient speed to meet the selected UL packet duration. As a non-limiting example, if the estimated sustainable PHY rate of the STA <NUM> is insufficient for the STA <NUM> to construct and embed MPDUs carrying a certain amount (or more) of queued UL data into an UL PPDU of the selected duration, the AP <NUM> may decrease the UL packet duration. The STA <NUM> may be more likely to fill the payloads of subsequent UL packets with queued UL data, rather than padding, which may improve throughput and efficiency metrics of a wireless medium or wireless network.

At time t<NUM>, the AP <NUM> may transmit a trigger frame soliciting UL data from one or more of the STAs <NUM>. The trigger frame may identify the one or more STAs <NUM> for UL transmissions, may indicate the selected packet duration, may indicate the MCS to be used by the identified STAs <NUM>, may indicate the number of spatial streams to be used by the identified STAs <NUM>, and may allocate one or more unique RUs to each of the identified STAs <NUM>. In some implementations, the trigger frame may be a high-efficiency (HE) trigger-based (TB) physical layer convergence procedure (PLCP) protocol data unit (PPDU). In some other implementations, the trigger frame may be an extremely high throughput (EHT) PPDU.

At time tA, the STA receives the trigger frame and decodes the information contained therein. At time tB, the STA transmits an UL packet to the AP <NUM> using the one or more RUs allocated by the AP <NUM>. In some implementations, the UL packet may be a HE TB PPDU containing a number of data frames such as medium access control (MAC) protocol data units (MPDUs). In some other implementations, the UL packet may be an EHT TB PPDU containing a number of data frames such as MPDUs. Each of the MPDUs may include a MAC header containing a QoS Control field, and may include a payload containing at least a portion of the UL data queued in the STA. The QoS Control field may indicate an updated UL queue size for the STA. In some implementations, the STA may aggregate each of the MPDUs into a single aggregated MPDU (A-MPDU) contained in the UL packet (such as a HE TB PPDU or an EHT TB PPDU).

In some implementations, the AP <NUM> and the STA may negotiate a MPDU window size for each TID, for example, during establishment of a block acknowledgement (BA) policy between the AP <NUM> and the STA. For example, the negotiated MPDU window size may be <NUM> MPDUs, <NUM> MPDUs, <NUM> MPDUs, or any other suitable number of MPDUs. For purposes of discussion herein, the negotiated MPDU window size may be referred to as a "TID MPDU aggregation limit" or an "aggregation limit.

In some implementations, the STA may not be able to insert enough of its queued UL data into the UL packet to meet the packet duration selected by the AP <NUM>, and may insert padding (rather than UL data) into one or more of the MPDUs so that the resulting UL packet is of the duration selected by the AP <NUM>. For example, due to hardware or software constraints, the STA may not be able to construct MPDUs at a rate sufficient to completely fill the payloads of the MPDUs with its queued UL data. In addition, or in the alternative, the STA may construct the UL packet with smaller-than-expected MPDUs (such as with MPDUs having a duration less than the negotiated TID MPDU window size). For example, the STA may aggregate a number of MPDUs of a particular length corresponding to the negotiated TID MPDU aggregation limit and, once the STA reaches the aggregation limit, the STA may insert padding into the remaining or unused portions of the payload of one or more MPDUs, for example, so that the resulting UL packet is of the duration indicated in the trigger frame.

At time ts, the AP <NUM> may receive the UL packet (such as a HE TB PPDU or an EHT TB PPDU) from the STA. For the example of <FIG>, the UL packet may contain padding, even though the STA has enough queued UL data to fill the entire UL packet. As such, the amount of UL data contained in the UL packet may be less than the TID queue size reported by the STA (such as in a Buffer Status Report), less than the amount of queued UL data estimated by the AP <NUM>, or both. Just after time ts, the AP <NUM> may transmit a multi-STA block acknowledgement ("multi-STA BA") frame to acknowledge reception of the UL packets.

At time t<NUM>, the AP <NUM> may determine the amount of data contained in the UL packet, the amount of padding contained in the UL packet, the number of aggregated frames contained in the UL packet, and the amount of UL data queued in the STA. In some implementations, the AP <NUM> may determine the amount of UL data queued in the STA based on information contained in the received UL packet (such as the queue size indicated in the QoS control field of the UL packet).

At time ts, the AP <NUM> may adjust the packet duration for UL transmissions based on one or more of the amount of data contained in the UL packet, the amount of padding contained in the UL packet, the number of aggregated frames contained in the UL packet, or the determined amount of UL data queued in the STA. In some implementations, the AP <NUM> also may consider one or more of an average frame length, the number of triggered STAs, or an estimated sustainable PHY rate of each of the triggered STAs when adjusting the packet duration for UL transmissions.

The AP <NUM> may determine (on a per-STA basis) one or more parameters for determining whether a particular STA is underserving the AP's selected UL resource assignment (such as the number of spatial streams (NSS) for UL MU-MIMO transmissions or an RU allocation for UL OFDMA transmissions). In some implementations, the AP <NUM> may determine one or more of the number of data bytes in the UL packet (denoted as "PPDU_RX_DATA_BYTES_STAi"), the number of MPDUs (denoted as "PPDU_NUM_RX_DATA_MPDU_STAi"), or the average MPDU length (denoted as PPDU_AVG_MPDU_LEN_STAi).

The AP <NUM> may calculate the average received MPDU length according to the following equation: <MAT>.

The AP <NUM> also may determine an estimated queue size (or depth) in bytes (denoted as "PPDU_QS_BYTES_STAi"). As discussed, the STA <NUM> may indicate its queue size in the QoS control field of the UL packet. The AP <NUM> also may determine a number of received null delimiter bytes in the UL packet (denoted as "PPDU_RX_NULL_DELIM_BYTES_STAi"), which may indicate the amount of padding contained in the UL packet.

The AP <NUM> may use the aforementioned parameters to determine whether the STA is underserving the AP <NUM> for a given UL packet. For example, the AP <NUM> may determine that the STA is underserving the AP <NUM> if an amount of data contained in the UL packet is less than the determined amount of UL data queued in the STA prior to the transmission of the UL packet, if an amount of padding contained in the UL packet is greater than an average length of the number of aggregated data frames contained in the UL packet by a first value (such as a first threshold value selected or configured by the AP <NUM>), if the determined amount of UL data queued in the STA prior to the transmission of the UL packet is greater than the average frame length of the UL packet by at least a second value (such as a second threshold value selected or configured by the AP <NUM>), or any combination thereof. In some implementations, the AP <NUM> may determine that the STA is underserving the AP <NUM> for an UL packet if one or more of the following Conditions <NUM>-<NUM> are true for the UL packet: <MAT> <MAT> and <MAT> where C1 and C2 are constants and may be equal to <NUM>.

In some implementations, the AP <NUM> may adjust the constants C1 or C2 according to a desired sensitivity to false positives when the AP <NUM> is identifying underserving STAs. As a non-limiting example, Condition <NUM> may be true when the UL packet contains enough padding to have fit at least one additional MPDU having the average received MPDU length into the UL packet payload, and Condition <NUM> may be true when a difference between the estimated queue size and the amount of data received in the UL packet is greater than a certain multiple of the average received MPDU length. The AP <NUM> may determine whether one or more of Conditions <NUM>-<NUM> are true during reception of the UL packet, after reception of the UL packet, or both.

In response to determining that the STA is underserving the AP <NUM>, the AP <NUM> may estimate a maximum amount of data that the STA is able to include in a subsequent UL packet based on the amount of data contained in the current UL packet. In some implementations, the AP <NUM> may, in response to determining that a STA is underserving the AP <NUM>, decrease the selected packet duration (such as to increase the likelihood that the STA is able to fill the payloads of UL packets). For purposes of discussion herein, the estimated maximum amount of data for a STAi may be referred to as "Estimated_Max_PPDU_Bytes_STAi" or "estimated potential upper bound. " In some implementations, the AP <NUM> may set the estimated potential upper bound to the number of received data bytes, and may set a weighted moving average for the estimated potential upper bound equal to: <MAT> where Estimated_Max_PPDU_Bytes_STA_iprev represents a previous iteration of the moving average for the estimated potential upper bound, and α is an adjustable value (such as <MAT>).

In some implementations, the AP <NUM> may, in response to determining that the STA is not underserving the AP <NUM>, set the weighted moving average for the estimated potential upper bound equal to: <MAT> , where Temp<NUM> is equal to the higher of Estimated_Max_PPDU_Bytes_STAi_prev and Number of received data bytes.

In addition, or in the alternative, the AP <NUM> may select a minimum amount of data that the STA is to include in each UL packet. For example, the AP <NUM> may set a minimum value of the weighted moving average for the estimated potential upper bound, such as to an adjustable minimum byte value (<NUM>* <NUM> bytes=<NUM>,<NUM> minimum) that the STA may be expected to support. In this manner, the AP <NUM> may increase a sensitivity to false detections of underserving STAs due to an incorrect Queue Size report from the STA.

The AP <NUM> also may update the estimated potential upper bound if the AP <NUM> determines that a total number of bytes contained in a given UL packet is higher than the estimated potential upper bound. For example, the AP <NUM> may set the estimated potential upper bound to the total number of contained bytes, rather than calculating the corresponding iteration for the weighted average of the estimated potential upper bound.

In addition, or in the alternative, the AP <NUM> may periodically increase the estimated potential upper bound to account for instances where the UL performance for the STA improves over time (such as when transitioning out of a power-saving mode) as well as to decrease false detections of underserving STAs. For example, for every N trigger frames that the AP <NUM> transmits, the AP <NUM> may increase the estimated potential upper bound by a multiple of the average MPDU size (in bytes) for the UL packets already received at the AP <NUM>. As a non-limiting example, N may be equal to <NUM>. In addition, or in the alternative, the AP <NUM> may periodically increase the selected packet duration for a time period.

In some implementations, the AP <NUM> may repeat one or more of the above determinations for one or more additional UL packets (not shown in <FIG> for simplicity) and track the results over time. In this manner, the AP <NUM> may augment (or "refine," "enhance," or "modify") the queue depth that the STA reported in the UL packet (from time t<NUM>) based on the STA's historical UL performance discussed above. For purposes of discussion herein, the reported queue depth (in bytes) may be referred to as "Reported_Queue_Size_Bytes_STAi" or "reported queue depth.

In some implementations, the AP <NUM> may determine an expected number of response bytes that the STA will include in an upcoming UL packet based on the above determinations. The expected number of response bytes may be referred to herein as "Expected_PPDU_Response_Bytes_STAi. " For example, the AP <NUM> may set the expected number of response bytes equal to the lower of the estimated potential upper bound and the reported queue depth.

In addition, or in the alternative, the AP <NUM> may periodically probe the STA and set the expected number of response bytes equal to the lower of: <MAT> and where C3 is a tunable value representing a number of additional MPDUs that the AP <NUM> determines to allocate for the STA in the UL packet,
Average_PPDU_MPDU_SIZE_STAi represents an average length (in bytes) for some number of recently received MPDUs in UL packets from STAi, and Reported_Queue_Size_Bytes_STAi represents a most recent queue size estimate received from the STA, such as in the QoS Control field, a Buffer Status Report (BSR), or any other suitable method of delivery. In this manner, the AP <NUM> may refine the estimate of the expected maximum number of bytes that the STA may deliver to the AP <NUM> in an upcoming UL packet, adjusted for unexpected padding due to possibly unknown limitations of the STA. After time ts, the AP <NUM> may transmit a subsequent adjusted trigger frame (not shown in <FIG> for simplicity) that indicates the updated estimated potential upper bound.

In some implementations, the subsequent trigger frame may further contain an indication of the selected maximum amount of data mentioned above, the selected minimum amount of data mentioned above, or both. In some aspects, the subsequent trigger frame also may indicate additional parameters for UL transmissions, such as an estimated Modulation and Coding Scheme (MCS), a selection between a UL-MU-MIMO mode and a UL-OFDMA mode, an UL packet duration, a set of STAs, a NSS, a frequency domain resource unit (RU) allocation, among other parameters.

<FIG> shows a timing diagram illustrating another example operation <NUM> for wireless communication. The operation <NUM> is depicted between an AP <NUM> and a STA <NUM>. The AP <NUM> may be any suitable AP including, for example, the AP <NUM> of <FIG> or the AP <NUM> of <FIG>. Each of the STAs may be any suitable wireless station including, for example, the stations 120a-120i of <FIG> or the STA <NUM> of <FIG>. Although only one STA <NUM> is shown in <FIG> for simplicity, the example operation of <FIG> may be performed with any suitable number of STAs. In some implementations, the AP <NUM> may operate or control a BSS, and the one or more STAs may be associated with the AP <NUM> and belong to the BSS.

In some implementations, the AP <NUM> may obtain or estimate the amount of UL data queued in the STA <NUM> (<NUM>). In some instances, the AP <NUM> may receive UL queue size information in one or more previously received UL packets from the STA <NUM>. In some other instances, the AP <NUM> may receive UL queue size information in one or more BSRs provided by the STA <NUM>. In some other implementations, the AP <NUM> may not obtain or estimate the amount of UL data queued in the STA <NUM> prior to selecting the packet duration for UL transmissions from the STA <NUM>. For example, an AP operating in a wireless network that utilizes multi-user orthogonal frequency division multiple access (MU-OFDMA) techniques for UL transmissions may not need, or may not consider, the UL queue size of STA <NUM> (or the UL queue sizes of other triggered STAs) when selecting the duration of UL packets.

The AP <NUM> may select a packet duration for UL transmissions from STAs associated with the AP <NUM> (<NUM>). In some instances, the AP <NUM> may select the packet duration based on the obtained amount of queued UL data in the STA <NUM>, on the estimated amount of queued UL data in the STA <NUM>, on an estimated sustainable PHY rate of the STA <NUM>, or on any other suitable parameter or metric from which the amount of data that the STA <NUM> is capable of embedding in an UL packet can be determined or derived.

The AP <NUM> may transmit a trigger frame that solicits UL data from one or more STAs, and that indicates the packet duration selected by the AP <NUM> (<NUM>). The trigger frame also may identify the one or more STAs for UL transmissions, may indicate the MCS to be used by the one or more identified STAs, may indicate the number of spatial streams to be used by the one or more identified STAs, and may allocate RUs to the one or more identified STAs for UL transmissions.

The STA <NUM> receives the trigger frame, decodes the information contained therein, and determines the packet duration selected by the AP <NUM> (<NUM>). The STA <NUM> transmits an UL packet of the selected packet duration to the AP <NUM> (<NUM>). In some implementations, the UL packet may be a HE TB PPDU containing one or more data frames such as medium access control (MAC) protocol data units (MPDUs). In some other implementations, the UL packet may be an EHT TB PPDU containing one or more data frames such as MPDUs. Each of the MPDUs may include a MAC header containing a QoS Control field, and may include a payload containing at least a portion of the UL data queued in the STA <NUM>. The QoS Control field may indicate an updated UL queue size for the STA <NUM>. In some implementations, the STA <NUM> may aggregate each of the MPDUs into a single aggregated MPDU (A-MPDU) contained in the UL packet.

If the STA <NUM> is not able to insert enough of its queued UL data into the UL packet to meet the packet duration selected by the AP <NUM>, the STA <NUM> may insert padding (rather than UL data) into one or more of the MPDUs until the resulting UL packet is of the duration selected by the AP <NUM>. For example, due to hardware or software constraints, the STA <NUM> may not be able to construct MPDUs quickly enough to completely fill the payloads of the MPDUs with queued UL data. In addition, or in the alternative, the STA <NUM> may construct the UL packet with smaller-than-expected MPDUs (such as with MPDUs having a duration less than the negotiated TID MPDU window size). For example, the STA <NUM> may aggregate a number of MPDUs of a particular length corresponding to the negotiated TID MPDU aggregation limit and, once the STA <NUM> reaches the aggregation limit, the STA <NUM> may insert padding into the remaining or unused portions of the payload of one or more MPDUs, for example, so that the resulting UL packet is of the duration indicated in the trigger frame.

The AP <NUM> may receive the UL packet (such as an HE TB PPDU or an EHT TB PPDU) from the STA <NUM>. For the example of <FIG>, the UL packet may contain padding, even though the STA <NUM> has enough queued UL data to fill the entire UL packet. As such, the amount of UL data contained in the UL packet may be less than the TID queue size reported by the STA <NUM>, less than the amount of queued UL data estimated by the AP <NUM>, or both. The AP <NUM> may acknowledge reception of the UL packet from the STA <NUM> using ACK, frames, BA frames, M-STA BA frames, or any other suitable message (<NUM>).

The AP <NUM> may determine the amount of data contained in the UL packet, the amount of padding contained in the UL packet, the number of aggregated frames contained in the UL packet, and the amount of UL data queued in the STA <NUM> (<NUM>). In some implementations, the AP <NUM> may determine the amount of UL data queued in the STA <NUM> based on information contained in the received UL packet (such as the queue size indicated in the QoS control field of the UL packet).

The AP <NUM> may selectively adjust the packet duration for subsequent UL transmissions based on one or more of the amount of data contained in the UL packet, the amount of padding inserted into the UL packet by the STA, the number of aggregated frames contained in the UL packet, or the determined amount of UL data queued in the STA <NUM> (<NUM>). In some implementations, the AP <NUM> also may consider one or more of an average frame length, the number of triggered STAs, or an estimated sustainable PHY rate of each of the triggered STAs when adjusting the packet duration for UL transmissions.

In some implementations, the AP may transmit a second trigger frame that solicits UL data from one or more STAs, and that indicates the adjusted packet duration (<NUM>). The second trigger frame also may identify the one or more STAs for UL transmissions, may indicate the MCS to be used by the one or more identified STAs, may indicate the number of spatial streams to be used by the one or more identified STAs, and may allocate RUs to the one or more identified STAs for UL transmissions.

In some implementations, the STA <NUM> receives the second trigger frame, decodes the information contained therein, and determines the adjusted packet duration indicated by the AP <NUM> (<NUM>). The STA <NUM> transmits an UL packet of the adjusted packet duration to the AP <NUM> based on receiving the second trigger frame (<NUM>). In some implementations, the UL packet may be a HE TB PPDU containing one or more data frames such as MPDUs. In some other implementations, the UL packet may be an EHT TB PPDU containing one or more data frames such as MPDUs. Each of the MPDUs may include a MAC header containing a QoS Control field, and may include a payload containing at least a portion of the UL data queued in the STA <NUM>. The QoS Control field may indicate an updated UL queue size for the STA <NUM>. In some implementations, the STA <NUM> may aggregate each of the MPDUs into a single A-MPDU contained in the UL packet.

In some implementations, the AP <NUM> may periodically increase the selected packet duration for a time period. In some other implementations, the AP <NUM> may repeat one or more of the above determinations for one or more additional UL packets (not shown in <FIG> for simplicity) and track the results over time. In this manner, the AP <NUM> may augment (or "refine," "enhance," or "modify") the queue depth that the STA <NUM> reported in the UL packet (from time t<NUM>) based on the STA's historical UL performance discussed above.

<FIG> shows an example trigger frame <NUM>. The trigger frame <NUM> may be used as one or more of the trigger frames described with respect to <FIG> and <FIG>. The trigger frame <NUM> is shown to contain a frame control field <NUM>, a duration field <NUM>, a receiver address (RA) field <NUM>, a transmitter address (TA) field <NUM>, a Common Info field <NUM>, a number of User Info fields <NUM>(<NUM>)-<NUM>(n), an optional Padding field <NUM>, and a frame check sequence (FCS) field <NUM>. In some implementations, the trigger frame <NUM> may be an UL OFDMA mode (RUs) trigger frame. In some other implementations, the trigger frame <NUM> may be an UL MU-MIMO mode (NSS) trigger frame.

The frame control field <NUM> contains a Type field 501A and a Sub-type field 501B. The Type field 501A may store a value to indicate that the trigger frame <NUM> is a control frame, and the Sub-type field 501B may store a value indicating a type of the trigger frame <NUM>. The duration field <NUM> may store information indicating a duration or length of the trigger frame <NUM>. The RA field <NUM> may store the address of a receiving device, such as the STA <NUM> of <FIG> or the STA <NUM> of <FIG>. The TA field <NUM> may store the address of a transmitting device, such as the AP <NUM> of <FIG> or the AP <NUM> of <FIG>. The Common Info field <NUM> may store information common to one or more receiving devices. Each of the User Info fields <NUM>(<NUM>)-<NUM>(n) may store information for a particular receiving device containing, for example, the AID of the receiving device. The Padding field <NUM> may extend a length of the trigger frame <NUM>, for example, to give a receiving device additional time to generate a response. The FCS field <NUM> may store a frame check sequence (such as for error detection).

In some implementations for which an AP solicits UL data transmissions from one or more STAs using the trigger frame <NUM>, the selected duration of UL packets may be carried in the Common Info field <NUM> of the trigger frame <NUM> (such as in an UL length subfield of the Common Info field <NUM>). In some other implementations for which the AP solicits UL data transmissions from one or more STAs using control information carried in a DL data transmission (rather than soliciting UL data transmissions using a trigger frame), the selected duration of UL packets may be carried in the control information of the DL data transmission. For example, when the AP solicits UL data transmissions from one or more STAs using triggered response scheduling (TRS) information carried in an A-Control subfield of the Control Information subfield of an HE variant Control field, the selected duration of UL packets may be carried in the UL Data Symbols subfield of the A-Control subfield.

In some implementations, the trigger frame <NUM> may allocate resources for and solicit one or more UL packet transmissions from a receiving device, such as the STA <NUM> of <FIG> or the STA <NUM> of <FIG>. For example, the duration field <NUM> may indicate an estimated time for a receiving device to transmit an UL packet. Additional parameters for the solicited UL packet may be indicated in one or more subfields (not shown) of the Common Info field <NUM>. For example, when the UL packet is a HE TB PPDU, the additional parameters may include a value of a L-SIG Length field, a bandwidth in a HE-SIG-A, a guard interval (GI), a HE-LTF type, a LTF mode, a number of HE-LTF symbols, among other parameters. Additional parameters for the solicited UL packet may be indicated using one or more subfields of the User Info fields <NUM>(<NUM>)-<NUM>(n). Example parameters include a code type (such as low-density parity-check, LDCP), a Modulation and Coding Scheme (MCS), a Dual Carrier Modulation (DCM), a number of spatial streams (SS), a number of contiguous RUs, and an expected receive signal power.

In some aspects, the trigger frame <NUM> may allocate dedicated RUs to associated STAs identified by AID values stored in corresponding ones of the User Info fields <NUM>(<NUM>)-<NUM>(n). In other aspects, the trigger frame <NUM> may allocate random RUs to one or more groups of STAs using pre-defined AID values stored in the User Info fields <NUM>(<NUM>)-<NUM>(n). For example, the AP may indicate a size (a number of bits) of the RUs, a location (a bandwidth) of the RUs, or a selected BSS to which random RUs are allocated. In some aspects, one or more subfields in the User Info fields <NUM>(<NUM>)-<NUM>(n) may indicate parameters for MPDUs contained in an A-MPDU carried in an UL packet from a receiving device. Example parameters include a number of MPDUs that may be contained in the A-MPDU, a maximum number of traffic identifiers (TIDs) that may be aggregated in the A-MPDU, and a lowest QoS access category (AC).

<FIG> shows an example medium access control (MAC) protocol data unit (MPDU) <NUM>. The MPDU <NUM> may be used as one or more of the MPDUs described with respect to <FIG> and <FIG>. The MPDU <NUM> also may be referred to herein as a PSDU, a MAC frame, or both. The MPDU <NUM> may be one of a number of data frames contained in a data field of an UL packet, such as a PPDU. In some implementations, the MPDU <NUM> may be contained in a data field of an UL packet (not shown). For example, a STA (such as one or more of the STAs of <FIG>, the STA <NUM> of <FIG>, the STA <NUM> of <FIG>, or the STA <NUM> of <FIG>), may transmit the UL packet to an AP (such as the AP <NUM> <FIG>, the AP <NUM> of <FIG>, the AP <NUM> of <FIG>, or the AP <NUM> of <FIG>), in response to a trigger frame, such as the trigger frame <NUM> of <FIG>.

The MPDU <NUM> is shown to contain a frame control field <NUM>, a duration/ID field <NUM>, an Address <NUM> field <NUM>, an Address <NUM> field <NUM>, an Address <NUM> field <NUM>, a sequence control field <NUM>, an address <NUM> field <NUM>, a quality of service (QoS) control field <NUM>, an HT control field <NUM>, a frame body <NUM>, and an FCS field <NUM>. Fields <NUM>-<NUM> may be referred to herein as a MAC header of the MPDU <NUM>.

The frame control field <NUM> may indicate certain parameters for the MPDU <NUM>, such as a protocol version, a type, and a subtype. The duration/ID field <NUM> may indicate a duration value, an identifier (such as an AID), or both. The Address <NUM> field <NUM>, the Address <NUM> field <NUM>, the Address <NUM> field <NUM>, and the Address <NUM> field <NUM> may contain individual or group addresses for all or a portion of the MPDU <NUM>, such as a basic service set identifier (BSSID), a source address (SA), a destination address (DA), a transmitting STA address (TA), or a receiving STA address (RA). The sequence control field <NUM> may indicate a sequence number, a fragment number, or both, corresponding to the MPDU <NUM>. The HT control field <NUM> may contain control information for the MPDU <NUM>. The frame body <NUM> may contain information specific to a frame type, a subtype, or both, for the MPDU <NUM>. The FCS field <NUM> may contain information for validating or interpreting all or a portion of the MPDU <NUM>.

The QoS control field <NUM> may identify a traffic category (TC) or a traffic stream (TS) for the MPDU <NUM> as well as additional information related to, for example, QoS information, A-MPDU information, or mesh information for the MPDU <NUM>. The information contained in the QoS control field <NUM> may vary based on a type or a subtype of the MPDU <NUM>.

<FIG> shows an example Quality of Service (QoS) control field <NUM>. The QoS control field <NUM> may be one implementation of the QoS control field <NUM> of the MPDU <NUM>. In some implementations, the corresponding MPDU <NUM> may be a contention free (CF) acknowledgment frame. In some aspects, the MPDU <NUM> may be transmitted by a non-AP STA, such as the STA <NUM> of <FIG> or the STA <NUM> of <FIG>. In some implementations, the STA transmitting the corresponding MPDU <NUM> may not be operating in a non-mesh BSS as a buffer STA or a sleep STA according to certain power-save modes, such as Tunneled direct-link setup (TDLS) peer unscheduled automatic power save delivery (U-APSD) (TPU).

The QoS control field <NUM> is shown to contain five sub-fields (over <NUM> bits). In some implementations, bits <NUM>-<NUM> may be a TID subfield that identifies a traffic category (TC) or a traffic stream (TS) to which all or a portion of the MSDU or A-MSDU of the corresponding MPDU <NUM> belongs. In some implementations, bit <NUM> may be set to <NUM>. In some implementations, bits <NUM>-<NUM> may be an Ack Policy subfield that indicates an acknowledgement policy to be followed upon delivery of the corresponding MPDU <NUM>. In some implementations, bit <NUM> may be an "A-MSDU Present" subfield indicating the presence of an A-MSDU. For example, if the MPDU <NUM> is contained in an A-MSDU, bit <NUM> may be set to <NUM>.

Finally, bits <NUM>-<NUM> may be a queue size subfield indicating an amount of buffered traffic that the STA has for a given TC or TS. An AP that receives the MPDU <NUM> may use information contained in the queue size subfield (bits <NUM>-<NUM>) to determine a transmission opportunity (TXOP) duration assigned to the STA. In some aspects, the queue size subfield may be for UL single-user (SU) and UL OFDMA transmissions. In some implementations, a value in the queue size subfield may represent a total size (in bytes) that the STA has buffered (in a delivery queue) for (all or a portion of) MSDUs and A-MSDUs with TID values equal to the corresponding TID. As mentioned above, the STA may indicate an updated UL queue size for the STA in the queue size subfield. In some implementations, the corresponding TID value may be indicated in the TID subfield (bits <NUM>-<NUM>) of the QoS control field <NUM>. In some aspects, the total size may be rounded up to the nearest multiple of a number of octets (such as <NUM>) and expressed in units of the number of octets. In some aspects, the total size may include the MSDU or A-MSDU of the corresponding QoS control field <NUM>, the corresponding MPDU <NUM>, or both. In some other aspects, the total size may exclude the MSDU or A-MSDU of the corresponding QoS control field <NUM>, the corresponding MPDU <NUM>, or both.

<FIG> shows an illustrative flow chart depicting an example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an access point (AP) or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. At block <NUM>, the AP selects a packet duration for uplink (UL) transmissions from a STA. At block <NUM>, the AP transmits a trigger frame soliciting UL data from the STA and indicating the selected packet duration. At block <NUM>, the AP receives an UL packet of the selected packet duration from the STA. At block <NUM>, the AP selectively adjusts the packet duration for subsequent UL transmissions from the STA based on one or more of an amount of data carried in the UL packet, an amount of padding inserted into the UL packet by the STA, or an amount of UL data queued in the STA.

In some implementations, the AP may estimate the amount of queued UL data in the STA based on information contained in a QoS control field of one or more UL packets previously received from the STA. In some other implementations, the AP may estimate the amount of queued UL data in the STA based on a BSR provided by the STA (such as in response to a BSR Poll (BSRP) frame). In some instances, the UL packet may be an HE TB PPDU. In some other instances, the UL packet may be an EHT TB PPDU. In some other instances, the UL packet may include at least one MPDU.

In some implementations, the UL packet may include an indication of the amount of UL data queued in the STA. In some instances, the indication may be carried in a Quality-of-Service (QoS) Control field of the UL packet. In some other instances, the indication may be carried in one or more fields of any suitable frame or packet transmitted to the AP.

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an access point (AP) or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be performed after the AP selectively adjusts the packet duration in block <NUM> of <FIG>. At block <NUM>, the AP transmits an indication of the adjusted packet duration to the STA. In some instances, the indication of the adjusted packet duration may be transmitted to the STA in one or more subsequent trigger frames. In some other instances, the indication of the adjusted packet duration may be transmitted to the STA in another suitable action frame, management frame, or control frame.

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an AP or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be performed after the AP selectively adjusts the packet duration in block <NUM> of <FIG>. In some other implementations, the operation <NUM> may be performed before or after (or at the same or similar time) the AP transmits the indication of the adjusted packet duration in block <NUM> of <FIG>. At block <NUM>, the AP periodically increases the selected packet duration for a time period.

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an AP or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be performed after the AP selectively adjusts the packet duration in block <NUM> of <FIG>. In some other implementations, the operation <NUM> may be performed before or after (or at the same or similar time) the AP transmits the indication of the adjusted packet duration in block <NUM> of <FIG>. In yet some other implementations, the operation <NUM> may be performed before or after (or at the same or similar time) the AP periodically increases the selected packet duration in block <NUM> of <FIG>. At block <NUM>, the AP determines a weighted moving average of the estimated maximum amount of data that the STA is able to include in a given packet. At block <NUM>, the AP selects a minimum amount of data that the STA is to include in each UL packet based on the determined weighted moving average. At block <NUM>, the AP transmits an indication of the selected minimum amount of data to the STA.

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an AP or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be one example of selectively adjusting the packet duration in block <NUM> of <FIG>. In some implementations, the operation <NUM> may be performed before or after the AP transmits the indication of the adjusted packet duration in block <NUM> of <FIG>. In some other implementations, the operation <NUM> may be performed before or after the AP periodically increases the selected packet duration in block <NUM> of <FIG>. In yet some other implementations, the operation <NUM> may be performed before or after (or at the same or similar time as) the operation <NUM> <FIG>. At block <NUM>, the AP decreases the packet duration when the amount of padding inserted into the UL packet by the STA is greater than a value (such as a threshold value selected or configured by the AP <NUM>) while at least some UL data is queued in the STA.

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an AP or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be one example of selectively adjusting the packet duration in block <NUM> of <FIG>. In some implementations, the operation <NUM> may be performed before or after the AP transmits the indication of the adjusted packet duration in block <NUM> of <FIG>. In some other implementations, the operation <NUM> may be performed before or after the AP periodically increases the selected packet duration in block <NUM> of <FIG>. In yet some other implementations, the operation <NUM> may be performed before or after (or at the same or similar time) the operation <NUM> <FIG>. At block <NUM>, the AP decreases the packet duration when a size or duration of one or more aggregated frames carried in the UL packet is less than a value (such as a threshold value selected or configured by the AP <NUM>).

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an AP or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be one example of selectively adjusting the packet duration in block <NUM> of <FIG>. In some implementations, the operation <NUM> may be performed before or after the AP transmits the indication of the adjusted packet duration in block <NUM> of <FIG>. In some other implementations, the operation <NUM> may be performed before or after the AP periodically increases the selected packet duration in block <NUM> of <FIG>. In yet some other implementations, the operation <NUM> may be performed before or after (or at the same or similar time) the operation <NUM> <FIG>. At block <NUM>, the AP decreases the packet duration when the amount of data carried in the UL packet is less than the amount of UL data queued in the STA and at least a portion of one or more data fields contained in the UL packet do not carry queued UL data from the STA.

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an AP or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be one example of selectively adjusting the packet duration in block <NUM> of <FIG>. In some implementations, the operation <NUM> may be performed before or after the AP transmits the indication of the adjusted packet duration in block <NUM> of <FIG>. In some other implementations, the operation <NUM> may be performed before or after the AP periodically increases the selected packet duration in block <NUM> of <FIG>. In yet some other implementations, the operation <NUM> may be performed before or after (or at the same or similar time) the operation <NUM> <FIG>. At block <NUM>, the AP estimates a maximum amount of data that the STA is capable of embedding in the UL packet based at least in part on the amount of data carried in the UL packet. At block <NUM>, the AP adjusts the packet duration based on the estimated maximum amount of data.

<FIG> shows an illustrative flow chart depicting another example operation <NUM> for wireless communications that supports adjusting packet durations. The operation <NUM> may be performed by a wireless communication device such as an AP or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be performed after estimating a maximum amount of data that the STA is capable of embedding in block <NUM> of <FIG>. At block <NUM>, the AP determines a weighted moving average of the estimated maximum amount of data that the STA is able to include in a given packet. At block <NUM>, the AP selects a minimum amount of data that the STA is to include in each UL packet based on the determined weighted moving average. In this way, the AP may select an amount of queued UL data that the STA is capable of inserting into UL packets.

<FIG> shows an illustrative flow chart depicting an example operation <NUM> for wireless communications that supports adjusting packet durations. The example operation <NUM> may be performed by a wireless communication device such as an access point (AP) or an apparatus of an AP. In some implementations, the operation <NUM> may be performed by the AP <NUM> of <FIG> or the AP <NUM> of <FIG>, <FIG>, and <FIG>. In some other implementations, the operation <NUM> may be performed by another suitable AP. In some implementations, the operation <NUM> may be performed after determining that the STA is underserving the AP. At block <NUM>, the AP estimates a maximum amount of data that the STA is able to include in a given packet based on an amount of data contained in the UL packet. At block <NUM>, the AP determines a weighted moving average of the estimated maximum amount of data that the STA is able to include in the given packet. At block <NUM>, the AP selects a minimum amount of data that the STA is to include in each UL packet. At block <NUM>, the AP transmits an indication of the selected maximum amount of data and the selected minimum amount of data to the STA.

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.

Claim 1:
A method of wireless communications performed by an apparatus of an access point, AP, comprising:
selecting (<NUM>) a packet duration for uplink, UL, transmissions from a station, STA;
transmitting (<NUM>) a trigger frame soliciting UL data from the STA and indicating the selected packet duration;
receiving (<NUM>) an UL packet of the selected packet duration from the STA; and
selectively (<NUM>) adjusting the packet duration for subsequent UL transmissions from the STA based on one or more of an amount of data carried in the UL packet, an amount of padding inserted into the UL packet by the STA, or an amount of UL data queued in the STA, wherein selectively adjusting the packet duration comprises decreasing (<NUM>) the packet duration when the amount of padding inserted into the UL packet by the STA is greater than a value while at least some UL data is queued in the STA.