Patent Description:
Aspects of the present disclosure relate to wireless communications, and more particularly, to techniques for user equipments (UEs) to shape acknowledgments (ACKs) for downlink (DL) data bursts.

NR is designed to better support mobile broadband Internet access by improving spectral efficiency, lowering costs, improving services, making use of new spectrum, and better integrating with other open standards using OFDMA with a cyclic prefix (CP) on a downlink (DL) and on an uplink (UL).

<CIT> describes aspects of network side buffer management.

The appended drawings illustrate only certain aspects of this disclosure, the description may admit to other effective aspects.

Aspects of the present disclosure provide apparatus, methods, processing systems, and computer readable mediums for user equipments (UEs) to shape acknowledgments (ACKs) in response to downlink (DL) data bursts. In an example, the DL data bursts may occur during a satellite communication.

According to aspects of the present disclosure, an example of an ACK shaping algorithm (e.g., as executed by a UE) works on a token based logic. A token size can be determined based on a configured DL data rate for the UE. For example, a UE may be configured with a DL data rate of <NUM> gigabits per second (Gbps), equivalent to <NUM> kilobytes per millisecond (KB/ms), and tokens may be generated at a rate sufficient to acknowledge quantities of data of <NUM> KB/ms. When there are transport control protocol (TCP) ACKs pending for an uplink (UL) transmission, then a token bucket algorithm may be employed. Following a token bucket algorithm, the UE may send the ACKs when sufficient tokens are pending for the UL transmission or, if there are not sufficient tokens, the UE keeps acquiring tokens until there are sufficient tokens to send the ACKs. If there are no TCP ACKs pending for the UL transmission, then the number of outstanding tokens is <NUM>. A UE (e.g., a radio front end of the UE) may start building tokens after a first arrival of a TCP ACK for the UL transmission.

In aspects of the present disclosure, a UE may use an ACK shaping algorithm to send TCP ACKs in an UL in a smooth manner over time, which eases buffering requirements as well as scaling easily with changing size of a TCP transmit window.

As will be described in more detail herein, UL transport protocol ACK shaping may include obtaining, by an application protocol AP TCP layer of a communication protocol stack of the UE, a burst of TCP packets that convey packet data convergence protocol (PDCP) protocol data units (PDUs). The UL transport protocol ACK shaping may include determining, based on an amount of data used to acknowledge the TCP packets, a first number of first ACK tokens to transmit in a first transmission time interval (TTI) in response to the TCP packets, where each of the first ACK tokens corresponds to first data in one or more of the TCP packets in the burst. The UL transport protocol ACK shaping may include transmit the first number of first ACK tokens in the first TTI. The UL transport protocol ACK shaping may include transmitting one second ACK token in a second TTI subsequent to the first TTI where the second ACK token corresponds to second data in one or more of the TCP packets in the burst.

The following description provides examples for UEs to shape ACKs in response to DL data bursts. Changes may be made in the function and arrangement of elements discussed. In addition, the disclosure is intended to cover such an apparatus or method that is practiced using other structure, functionality, or structure and functionality in addition to, or other than, the various aspects of the disclosure set forth herein. The word "example" is used herein to mean "serving as an example, instance, or illustration. " Any aspect described herein as "example" is not necessarily to be construed as preferred or advantageous over other aspects.

The techniques described herein may be used for various wireless networks and radio technologies. While aspects may be described herein using terminology commonly associated with <NUM>, <NUM>, and/or new radio (e.g., <NUM> new radio (NR)) wireless technologies, aspects of the present disclosure can be applied in other generation-based communication systems.

For example, the wireless communication network <NUM> may be a NR system (e.g., a <NUM> NR network). As shown in <FIG>, the wireless communication network <NUM> may be in communication with a core network <NUM>. The core network <NUM> may in communication with one or more base station (BSs) 110a-z (each also individually referred to herein as a BS <NUM> or collectively as BSs <NUM>) and/or user equipments (UEs) 120a-y (each also individually referred to herein as a UE <NUM> or collectively as UEs <NUM>) in the wireless communication network <NUM> via one or more interfaces.

A BS <NUM> may provide communication coverage for a particular geographic area, sometimes referred to as a "cell", which may be stationary or may move according to a location of a mobile BS <NUM>. In some examples, the BSs <NUM> may be interconnected to one another and/or to one or more other BSs or network nodes (not shown) in the wireless communication network <NUM> through various types of backhaul interfaces (e.g., a direct physical connection, a wireless connection, a virtual network, or the like) using any suitable transport network. A BS <NUM> may support one or multiple cells. The BSs <NUM> communicate with UEs <NUM>.

According to certain aspects, the BSs <NUM> and UEs <NUM> may be configured for uplink (UL) and downlink (DL) transmissions. The BS 110a may serve as a link between the UE 110a and a transport protocol server. The UE 110a may be configured to perform UL transport protocol acknowledgement (ACK) shaping and/or DL data shaping. As shown in <FIG>, the UE 120a includes an ACK-shaping module <NUM>. The ACK-shaping module <NUM> may be configured to obtain a burst of transmission control protocol (TCP) packets conveying packet data convergence protocol (PDCP) protocol data units (PDUs) by an application protocol (AP) TCP layer of a communication protocol stack of the UE; determine, based on an amount of data used to acknowledge the TCP packets received as PDCP PDUs, a first number of first ACK tokens to transmit in a first transmission time interval (TTI) in response to the TCP packets where each of the ACK tokens corresponds to first data in one or more of the TCP packets in the burst; transmit the first number of first ACK tokens in the first TTI; and transmit one second ACK token in a second TTI subsequent to the first TTI where the second ACK token corresponds to second data in one or more of the TCP packets in the burst, in accordance with aspects of the present disclosure.

The wireless communication network <NUM> may also include relay stations (e.g., relay station 110r), also referred to as relays or the like, that receive a transmission of data and/or other information from an upstream station (e.g., a BS 110a or a UE 120r) and sends a transmission of the data and/or other information to a downstream station (e.g., a UE <NUM> or a BS <NUM>), or that relays transmissions between UEs <NUM>, to facilitate communication between the wireless devices.

In aspects, the network controller <NUM> may be in communication with a core network <NUM>.

<FIG> illustrates example components of a BS 110a and a UE 120a (e.g., the wireless communication network <NUM> of <FIG>), which may be used to implement aspects of the present disclosure.

At the BS 110a, a transmit processor <NUM> may receive data from a data source <NUM> and control information from a controller/processor <NUM>. The control information may be for a physical broadcast channel (PBCH), a physical control format indicator channel (PCFICH), a physical hybrid ARQ indicator channel (PHICH), physical downlink control channel (PDCCH), a group common PDCCH (GC PDCCH), etc. The data may be for a physical downlink shared channel (PDSCH), etc. A medium access control (MAC)-control element (MAC-CE) is a MAC layer communication structure that may be used for control command exchange between wireless nodes. The MAC-CE may be carried in a shared channel such as a physical downlink shared channel (PDSCH), a physical uplink shared channel (PUSCH), or a physical sidelink shared channel (PSSCH).

The processor <NUM> may process (e.g., encode and symbol map) data and control information to obtain data symbols and control symbols, respectively. The transmit processor <NUM> may also generate reference symbols, such as for a primary synchronization signal (PSS), a secondary synchronization signal (SSS), a PBCH demodulation reference signal (DMRS), and a channel state information reference signal (CSI-RS). A transmit (TX) multiple-input multiple-output (MIMO) processor <NUM> may perform spatial processing (e.g., precoding) on the data symbols, the control symbols, and/or the reference symbols, if applicable, and may provide output symbol streams to modulators (MODs) in transceivers 232a-232t. Each MOD in transceivers 232a-232t may process a respective output symbol stream (e.g., for OFDM, etc.) to obtain an output sample stream. Each MOD in transceivers 232a-232t may further process (e.g., convert to analog, amplify, filter, and upconvert) the output sample stream to obtain a downlink signal. Downlink signals from MODs in transceivers 232a-232t may be transmitted via antennas 234a-234t, respectively.

At the UE 120a, antennas 252a-252r may receive downlink signals from the BS 110a and may provide received signals to demodulators (DEMODs) in transceivers 254a-254r, respectively. Each DEMOD in transceivers 254a-254r may condition (e.g., filter, amplify, downconvert, and digitize) a respective received signal to obtain input samples. Each DEMOD in transceivers 254a-254r may further process the input samples (e.g., for OFDM, etc.) to obtain received symbols. A MIMO detector <NUM> may obtain received symbols from all the DEMODs in transceivers 254a-254r, perform MIMO detection on the received symbols if applicable, and provide detected symbols. A receive processor <NUM> may process (e.g., demodulate, deinterleave, and decode) the detected symbols, provide decoded data for the UE 120a to a data sink <NUM>, and provide decoded control information to a controller/processor <NUM>.

On the uplink, at the UE 120a, a transmit processor <NUM> may receive and process data (e.g., for the PUSCH) from a data source <NUM> and control information (e.g., for a physical uplink control channel (PUCCH) from the controller/processor <NUM>. The symbols from the transmit processor <NUM> may be precoded by a TX MIMO processor <NUM> if applicable, further processed by the DEMODs in transceivers 254a-254r (e.g., for SC-FDM, etc.), and transmitted to the BS 110a. At the BS 110a, the uplink signals from the UE 120a may be received by the antennas <NUM>, processed by the MODs in transceivers 232a-232t, detected by a MIMO detector <NUM> if applicable, and further processed by a receive processor <NUM> to obtain decoded data and control information sent by the UE 120a.

A scheduler <NUM> may schedule UEs for data transmission on the downlink and/or the uplink.

Antennas <NUM>, processors <NUM>, <NUM>, <NUM>, and/or controller/processor <NUM> of the UE 120a and/or antennas <NUM>, processors <NUM>, <NUM>, <NUM>, and/or controller/processor <NUM> of the BS 110a may be used to perform the various techniques and methods described herein. As shown in <FIG>, the controller/processor <NUM> of the UE 120a has an ACK-shaping module <NUM> that may be configured for shaping the delivery of ACKs for UL transmission, according to certain aspects described herein. Although shown at the controller/processor, other components of the UE 120a may be used to perform the operations described herein.

Each subframe may include a variable number of slots (e.g., <NUM>, <NUM>, <NUM>, <NUM>, <NUM>,. slots) depending on the SCS. Each slot may include a variable number of symbol periods (e.g., <NUM>, <NUM>, or <NUM> symbols) depending on the SCS. A sub-slot structure may refer to a transmit time interval having a duration less than a slot (e.g., <NUM>, <NUM>, or <NUM> symbols). Each symbol in a slot may be configured for a link direction (e.g., DL, UL, or flexible) for data transmission and the link direction for each subframe may be dynamically switched.

<FIG> illustrates a block diagram of a transport protocol system <NUM> including a UE <NUM> (e.g., such as the UE 120a illustrated in <FIG>), a BS <NUM> (e.g., such as the BS 110a illustrated in <FIG>), and a transport protocol server <NUM>. As shown in <FIG>, the UE <NUM> may include a transport protocol host <NUM> (e.g., a TCP stack at the UE <NUM>). The transport protocol host <NUM> may control and convert signals transmitted and received by the UE <NUM> for a transport protocol. The UE <NUM> also includes a modem <NUM> (e.g., for signaling at a packet data convergence protocol layer). The BS <NUM> may provide a link between the UE <NUM> and the transport protocol server <NUM>. The transport protocol host <NUM> and the transport protocol server <NUM> may be endpoints for the transport protocol.

In some examples, the transport protocol is a TCP. TCP is a protocol of an Internet protocol (IP) suite. TCP is sometimes referred to as TCP/IP. TCP may provide a stream of ordered and error-checked octets (bytes) between applications running on hosts communicating via a network. TCP may be bi-directional (e.g., both uplink and downlink). TCP may be used in multi-subscriber identity module (MSIM) scenarios, also referred to as concurrent radio access technology (RAT) where one hardware (e.g., one modem) is used for multiple subscriptions (e.g., for multiple operators) any may have to perform tune-away between subscriptions to search for pages or other mobility procedures. In some examples, TCP uses a sliding window flow control protocol, wherein in each TCP segment (e.g., packet), the receiving (e.g., the transport protocol host <NUM> on the downlink) specifies in an amount of additionally received data (in bytes) corresponding to the ACK sequence number, as well as additional data it is willing to buffer for the connection (e.g., in a receive window). The sending host (e.g., the transport protocol server <NUM>) can send only up to that amount of data before it waits for an ACK and a window update from the receiving host.

Some TCP implementations include four phases of congestion control: slow-start, congestion avoidance, fast retransmit, and fast recovery. For congestion avoidance, ACKs for data sent and/or lack of ACKs, are used by senders to infer network conditions between the TCP sender and receiver. Coupled with timers, TCP senders and receivers can alter the behavior of the flow of data. Enhancing TCP to reliably handle loss, minimize errors, manage congestion and go fast in very high-speed environments are ongoing areas of research and standards development. As a result, there are a number of TCP congestion avoidance algorithm variations.

Throughput issues may arise when the instantaneous transport protocol ACKing rate on the UL or the DL is high. In some cases, modems (e.g., such as the modem <NUM>) transmit transport protocol ACKs at a high rate, allowing a transport protocol sender (e.g., such as the transport protocol server <NUM>) to issue a large amount of data (e.g., a spike or burst of packets), which in turn may create buffer overflow at a bottleneck (e.g., such as at the BS <NUM>).

UL transport protocol ACK bursting (e.g., high ACK rate) may be caused by various scenarios. In an example, UL transport protocol ACK bursting may occur when the UE <NUM> (e.g., at the layer <NUM>) prioritizes transmission of ACKs over other data. In this scenario, when an UL grant is delayed, the transport protocol ACK buffer builds and the UE <NUM> transmits all of the buffered ACKs at once-in a burst. In another example, UL transport protocol ACK bursting may occur in response to a downlink data burst. For example, when recovering a hole or holes (e.g., at the radio link control (RLC) the RLC protocol may deliver a large burst of data to the transport layer, leading to a burst of transport protocol ACKs from the host. In such a scenario, the issue may be exacerbated in MSIM scenarios where RLC recovery may be more frequent due to tune away from a serving cell. In another example, UL transport protocol ACK bursting may occur when the WLAN (wireless local area network) station, in the case of a mobile hotspot, incurs delay in accessing the WLAN medium. Once the WLAN station accesses the data, the WLAN station sends a burst of transport protocol ACKs to the UE <NUM>, which in turn bursts it on WWAN. In yet another example, UL transport protocol ACK bursting may occur when a host scheduler schedules a task with some delay. Once the task runs, large amounts of transport protocol data is processed and corresponding UL transport protocol ACKs are created and transmitted. In yet another example, UL transport protocol ACK bursting may occur when delays are implemented in modem accumulation and/or aggregation timers.

The examples described above are merely illustrative of certain scenarios that may lead to UL transport protocol ACK bursting. The description is not intended to be limited to these examples; other scenarios can be lead to UL transport protocol ACK bursting and may be addressed by the techniques described herein, for UL transport protocol ACK shaping and/or DL data shaping, in more detail below. Because UL transport protocol ACK bursting can be caused by a variety of scenarios, it may not be simple/possible to eliminate all sources causing UL transport protocol ACK bursting.

On the DL, the UE <NUM> (e.g., at the L2) may accumulate large amounts of data due to reordering. The transfer speed between the modem (at the UE <NUM>) and the host (at the UE <NUM>) can vastly exceed that of the air interface between the UE <NUM> and the BS <NUM> and/or sending host, such as due to speed of double data rate (DDR))/ direct memory access (DMA). This can create issues for the host (at the UE <NUM>). For example, the host handles the data and delivers a large number of ACKs (issue of ACK bursting). The host may not be ready for this and can incur delay or packet loss when processing such large burst. The host CPU may become overloaded by the high rate of the burst.

In some aspects of the present disclosure, when the UE <NUM> experiences an error (e.g., a block error, when a block error rate (BLER) is greater than <NUM>) in receiving a packet, then data received after the error may accumulate in a PDCP reordering window (ROW) while the UE <NUM> requests and waits for a retransmission of the packet. If the UE <NUM> successfully receives a retransmission of the packet, then the PDCP part of a receive protocol stack of the UE <NUM> delivers all of the accumulated packets to higher layers of the UE <NUM>, and the higher layers may deliver ACKs for all of the accumulated packets for transmission from the UE <NUM>. The transmit protocol stack transmits the ACKs in sequence, causing a delay in delivery of the ACKs for packets received after the packet which the UE <NUM> received in error.

ACK shaping may allow the UE <NUM> to control the rate or amount of UL transport protocol ACKs transmitted in a TTI (e.g., in an UL slot, such as a PUSCH slot) and/or the rate or amount of data units (transport protocol data only, or all data) transmitted to the host per unit of time.

There may be no single optimal UL transport protocol ACK rate for all scenarios. For example, a UE <NUM> may release (i.e., transmit) some minimum amount of ACKs in order to keep a BS <NUM> buffer replenished, that is, to maintain a level of throughput; however, the UE <NUM> may not know how much buffer the BS <NUM> has for the UE <NUM>, or if the buffer is shared with other UEs. Also, the buffer occupancy may vary over time. Additionally, there may be no throughput increase by building a bigger buffer at the BS <NUM>. When the UE <NUM> transmits less than the minimum amount of ACKs, the sending host may become window-limited. However, when the UE <NUM> transmits too many ACKs, the BS <NUM> buffer may overflow, and the sending host DL data rate may drop.

<FIG> is an example transmission timeline <NUM> of a UE (e.g., a UE 120a as shown in <FIG>). In the example transmission timeline, the UE is configured with packet reordering timer (Treordering) of <NUM>. That is, a layer <NUM> of a receive protocol stack of the UE can hold PDCP packets up to <NUM> before reporting an error to a higher protocol layer. The UE is also configured with a DL data rate of <NUM> Gbps and a token rate of <NUM> KB/ms. The UE may have an error receiving a packet, and a PDCP ROW build up is started, e.g., due to a BLER being greater than <NUM>. After <NUM>, at the UE has a successful recovery of the error (e.g., the UE receives a retransmission of the packet with which the UE had the error), and <NUM> MB of data is pushed to an AP layer. All PDCP packets are released in-sequence to the AP TCP stack. The AP provides all the TCP ACK for DL 12MB data in a few ms. With a current token bucket algorithm of <NUM> KB/ms, the UE uses 12MB/<NUM> = <NUM> to send all of the ACKs. Already, the error in receiving the DL packets induced <NUM> delay in DL. Due to ACK shaping (e.g., transmitting ACKs for <NUM> KB/ms), an additional <NUM> delay is added overall.

<FIG> is an example transmission timeline <NUM> of a UE (e.g., UE 120a, shown in <FIG>). In the example transmission timeline, the UE is configured with a packet reordering timer (Treordering) of <NUM>. The UE is also configured with a DL data rate of <NUM> Gbps and a token rate of <NUM> KB/ms. The UE may have an error receiving a packet, and a PDCP ROW build up is started, e.g., due to a BLER being greater than <NUM>. After <NUM>, the UE has a successful recovery of the error (e.g., the UE receives a retransmission of the packet with which the UE had the error), and <NUM> MB of data is pushed to an AP layer. All PDCP packets are released in-sequence to the AP TCP stack. The AP provides all the TCP ACK for DL 15MB data in a few ms. With a current token bucket algorithm of <NUM> KB/ms, the UE uses 15MB/<NUM> = <NUM> to send all of the ACKs. Already, the error in receiving the DL packets induced <NUM> delay in DL. Due to ACK shaping (e.g., transmitting ACKs for <NUM> KB/ms), an additional <NUM> delay is added overall.

ACK shaping as described above may smooth a burst of ACKs on the UL to ensure smooth buffering at the network (e.g., at a BS receiving the ACKs), but DL inactivity and/or burstiness may cause a further increase in TCP round-trip time (RTT).

<FIG> is an example transmission timeline <NUM> of a UE (e.g., UE 120a, shown in <FIG>). In the example transmission timeline, the UE is configured with a packet reordering timer (Treordering) of <NUM>. The UE is also configured with a DL data rate of <NUM> Gbps and a token rate of <NUM> KB/ms. The UE may have an error receiving a packet, and a PDCP ROW build up is started, e.g., due to a BLER being greater than <NUM>. After <NUM>, the UE has a successful recovery of the error (e.g., the UE receives a retransmission of the packet with which the UE had the error), and <NUM> MB of data is pushed to an AP layer. As there has been no active traffic with the ROW building up, various components (e.g., a peripheral component interconnect express (PCIe) link) of the UE (e.g., components in a wireless modem of the UE) might go into non-active state (e.g., LPM_L0 state, where LPM_L0 is a least active state of four states, LPM_L0, LPM_L1, LPM_L2, and LPM_L3 for a PCIe link) along with a modem host interface (MHI) driver. The PCIe link and MHI driver may have a warm up delay to return to an active state. The amount of delay may be based on the non-active and active state. For example, a warm up to the LPM_LO for LPM_L2 may be <NUM> and warm up to the LPM_L0 state for LPM_L3 may be <NUM>. All PDCP packets are released in-sequence to the AP TCP stack. The AP provides all the TCP ACKs for DL <NUM> MB data in a few ms. In an example, the UE is capable of draining data at a rate of <NUM> Gbps, which is equivalent to <NUM> MB/ms, and thus it takes the UE <NUM> to send all of the ACKs.

Aspects of the present disclosure provide techniques for user equipments (UEs) to shape acknowledgments (ACKs) in response to downlink (DL) data bursts. A UE may, after arrival of a DL data burst, send a first number of ACK tokens in a first transmission time interval (TTI) and then send one ACK token in later TTIs.

An ACK shaping algorithm may operate on a token based logic. In some systems, the ACK shaping algorithm may be executed to send <NUM> token per millisecond. The techniques described herein may allow "frontloading" where in a first TTI (e.g., first milliseconds), the ACK shaping algorithm may be configured to send multiple ACKs, and then additional ACKs may be sent in later TTIs (e.g., every further <NUM> milliseconds). The techniques described herein are dynamic, and the frontloading may send varying amounts of ACKs in a first few milliseconds. The techniques described herein may use dummy traffic to awaken a link and reduce warm up delay.

<FIG> is a flow diagram illustrating example operations <NUM> for wireless communication, in accordance with certain aspects of the present disclosure. The operations <NUM> may be performed, for example, by a UE (e.g., such as the UE 120a in the wireless communication network <NUM> of <FIG>) during DL transmission. Operations <NUM> may be implemented as software components that are executed and run on one or more processors (e.g., a controller/processor <NUM> of <FIG>). Further, the transmission and reception of signals by the UE in operations <NUM> may be enabled, for example, by one or more antennas (e.g., antennas <NUM> of <FIG>). In certain aspects, the transmission and/or reception of signals by the UE may be implemented via a bus interface of one or more processors (e.g., the controller/processor <NUM> of <FIG>) obtaining and/or outputting signals.

At <NUM>, the UE obtains a burst of transmission control protocol (TCP) packets conveying packet data convergence protocol (PDCP) protocol data units (PDUs) by an application protocol TCP layer of a communication protocol stack of the UE.

At <NUM>, the UE determines, based on an amount of data used to acknowledge (ACK) the burst of TCP packets, a first number of a first plurality of ACK tokens to transmit in a first transmission time interval (TTI). The first plurality of ACK tokens corresponds to first data in one or more TCP packets of the burst of TCP packets.

At <NUM>, the UE transmits the first plurality of ACK tokens in the first TTI.

At <NUM>, the UE transmits a single ACK token in a second TTI subsequent to the first TTI. The single ACK token corresponds to second data in one or more TCP packets of the burst of TCP packets.

According to the invention, determining the first number of the first ACK tokens includes determining a minimum of a first threshold number of ACK tokens and a quotient of one-half of the amount of data divided by a size of each ACK token. In some such aspects, the threshold is ten. In some other such aspects, the UE performing operations <NUM> receives a configuration indicating the first threshold number of ACK tokens.

In certain aspects, determining a second number of a second plurality of ACK tokens includes a quotient of a remainder of the amount of data used to ACK the burst of TCP packets divided by a size of each ACK token. The second plurality of ACK tokens corresponds to third data in a one or more TCP packets of the burst of TCP packets. A single ACK token of the second plurality of ACK tokens in transmitted in each TTI, subsequent the second TTI.

In certain aspects, determining the first number of the first plurality of ACK tokens is further based on an average time spent in a DL PDCP ROW by the TCP packets in the burst of TCP packets.

In certain aspects, the UE performing operations <NUM> determines, based on the amount of data used to acknowledge the TCP packets, a third number of a third plurality of ACK tokens to transmit in a third TTI. The third TTI is subsequent to the first TTI and before the second TTI. Each of the third plurality of ACK tokens corresponds to fourth data in one or more TCP packets of the burst of TCP packets. The UE transmits the third plurality of ACK tokens in the third TTI. In some such aspects, determining the third number of the third plurality of ACK tokens includes determining a minimum of a second threshold number of ACK tokens, wherein the second threshold number is different than the first threshold number and a quotient of one-half a remainder of the amount of data divided by a size of each ACK token. In some other such aspects, the threshold is five.

In certain aspects, the burst of TCP packets includes packets flushed from a re-ordering buffer within a threshold period.

In certain aspects, the UE performing operations <NUM>, before obtaining the burst of TCP packets, sends dummy traffic from the application protocol TCP layer to an application processor in response to a determination that at least one of: an amount of data in a reordering buffer is above a threshold quantity of data, no downlink traffic has been received within a threshold duration, a reordering timer will expire within a threshold duration, an accumulation timer will expire within a threshold duration, or a combination thereof. In some such aspects, the dummy traffic includes a flow control command. In some other such aspects, the dummy traffic includes a DL burst marker.

In aspects of the present disclosure, a UE receiving packets may experience a PDCP reordering window build up due to an error in receiving a packet. After a successful recovery of the error, a burst of DL packets may be pushed to an application protocol layer. Whenever there is a flush or burst of DL data, an ACK shaping algorithm as described herein will acquire a non-zero number of tokens to start transmitting. The number of tokens to transmit in a first TTI may depend on how much data is flushed or the size of/burst in a DL. For example, <NUM> MB is flushed to the AP of the UE, and the UE has tokens worth <NUM> MB to start. In the example, a maximum number of tokens the UE may transmit in a TTI is <NUM>. The UE may determine to transmit a number of tokens = MIN (<NUM>, Half_Burst/Token_Size). Then, after the first <NUM> MB worth of ACKs are transmitted at a first opportunity, every millisecond one token is acquired to send an ACK in an uplink (UL) for <NUM> KB worth of data.

<FIG> is an example transmission timeline <NUM> of a UE (e.g., the UE 120a as shown in <FIG>) showing an example of ACK shaping with frontloading, in accordance with aspects of the present disclosure. In the example transmission timeline <NUM>, the UE is configured with a packet reordering timer (Treordering) of <NUM>. That is, a layer <NUM> of a receive protocol stack of the UE can hold PDCP packets up to <NUM> before reporting an error to a higher protocol layer. The UE is also configured with a DL data rate of <NUM> Gbps and a token rate of <NUM> KB/ms. The UE may have an error receiving a packet, and a PDCP ROW build up started, e.g., due to a block error rate (BLER) being greater than <NUM>. After <NUM>, the UE has a successful recovery of the error (e.g., the UE receives a retransmission of the packet with which the UE had the error), and <NUM> MB of data is pushed to an AP layer. All PDCP packets are released in-sequence to the AP TCP stack. The AP provides all the TCP ACKs for DL 12MB data in a few ms. As shown in <FIG>, the UE can "frontload" some of the ACK tokens. As shown in the illustrative example, the UE sends ACKs corresponding to <NUM> MB of data (e.g., token <NUM>-<NUM>) in a first TTI (e.g., in a first millisecond). The UE can send the remaining ACK tokens each ms. As shown, the UE can send the <NUM> tokens for the remaining <NUM> MB of data over the next <NUM>. Thus, the ACK shaping with frontloading shown in <FIG> for <NUM> MB of data, may reduce the time for sending the ACKs to <NUM> instead of the <NUM> used for the sending the ACKs in the example shown in <FIG>.

<FIG> is an example transmission timeline <NUM> of a UE (e.g., the UE 120a as shown in <FIG>) showing another example of ACK shaping with frontloading, in accordance with aspects of the present disclosure. In the example transmission timeline <NUM>, the UE is configured with a packet reordering timer (Treordering) of <NUM>; a DL data rate of <NUM> Gbps; and a token rate of <NUM> KB/ms. After <NUM>, <NUM> MB of data is pushed to an AP layer. In the example in <FIG>, the UE frontloads ACKs corresponding to <NUM> MB of data in a first TTI (e.g., Tokens <NUM>-<NUM>). The UE can send ACKs for the remaining <NUM> MBs of data over the next <NUM> (e.g., Tokens <NUM>-<NUM>). Thus, the ACK shaping with frontloading shown in <FIG> for <NUM> MB of data, may reduce the time for sending the ACKs to <NUM> instead of the <NUM> used for the sending the ACKs in the example shown in <FIG>.

<FIG> is an example transmission timeline <NUM> of a UE (e.g., UE 120a, shown in <FIG>) showing ACK shaping with dynamic frontloading, in accordance with aspects of the present disclosure. In the example transmission timeline <NUM>, the UE is configured with a packet reordering timer (Treordering) of <NUM>; a DL data rate of <NUM> Gbps; and a token rate of <NUM> KB/ms. After <NUM>, <NUM> MB of data is pushed to an AP layer. As shown, the UE sends ACKs corresponding to <NUM> MB of data in a first TTI (e.g., ACK tokens <NUM>-<NUM>). The UE then sends ACKs corresponding to <NUM> MB of data in a second TTI (e.g., tokens <NUM>-<NUM>). The UE can send ACKs for the remaining <NUM> MBs of data over the next <NUM> (e.g., Tokens <NUM>-<NUM>). Thus, the ACK shaping with dynamic frontloading shown in <FIG> for <NUM> MB of data, may further reduce the time for sending the ACKs to <NUM> instead of the <NUM> used for the sending the ACKs in the example shown in <FIG>.

In aspects of the present disclosure, ACK shaping as described above may smooth a burst of ACKs on an UL to ensure smooth buffering at a network (e.g., at a base station (BS) receiving the ACKs), but DL inactivity and/or burstiness may cause a further increase in TCP round-trip time (RTT). Aspects of the present disclose provide for the UE to determine the amount/rate of UL transport protocol ACKs to transmit in a duration.

According to certain aspects, dummy packets may be used to prevent components from entering an inactive state, thereby avoiding warm up delays. <FIG> is an example transmission timeline <NUM> of a UE (e.g., the UE 120a as shown in <FIG>), in accordance with aspects of the present disclosure. In the example transmission timeline <NUM>, the UE is configured with a packet reordering timer (Treordering) of <NUM>; a data rate of <NUM> Gbps; and a token rate of <NUM> MB. During the reordering window, the UE may generate and send dummy traffic from a TCP layer to a processor to cause a peripheral component interconnect express (PCIe) and/or a modem host interface (MHI) to become active, or to keep active. As shown, the dummy traffic may wake up PCIe and/or MHI components from a lower power mode (LPM) to an active state, such as LPM_2 to LPM_0. In the example, it may take <NUM> for the wake up. Since the dummy traffic began more than <NUM> before flush of the re-oredering buffer, the wake up may cause no additional delay in the sending of the ACKs. Thus, after <NUM>, <NUM> MB of data is pushed to an AP layer and because the PCIe and the MHI became active in response to the dummy traffic, the UE can begin transmitting ACKs. In the example, the UE is capable of draining data at a rate of <NUM> Gbps, or 1MB/ms. Thus, the UE can send all of the ACKs in <NUM>, as opposed to the <NUM> that would be used in the example illustrated in <FIG>.

In some cases, using the dummy traffic to activate the components may reduce, but not eliminate the delay, as shown in <FIG>. For example, the warm up for the L3 state may be <NUM>, and may still be warming up when the re-ordering buffer is flushed. In the illustrative example shown, the PCIe/MHI warm up for an additional <NUM> delay, after which the UE can begin transmitting the ACKs. Thus, the UE can send all of the ACKs in <NUM>, as opposed to the <NUM> that would be used in the example illustrated in <FIG>.

The processing system <NUM> includes a processor <NUM> coupled to a computer-readable medium/memory <NUM> via a bus <NUM>. In certain aspects, the computer-readable medium/memory <NUM> is configured to store instructions (e.g., computer-executable code) that when executed by the processor <NUM>, cause the processor <NUM> to perform the operations illustrated in <FIG>, or other operations for performing the various techniques discussed herein for UL ACK shaping. In certain aspects, computer-readable medium/memory <NUM> stores code <NUM> for obtaining a burst of TCP packets conveying PDCP PDUs by an application protocol TCP layer of a communication protocol stack of the UE; code <NUM> for determining, based on an amount of data used to ACK the burst of TCP packets, a first number of a first plurality of ACK tokens to transmit in a first TTI where the first plurality of ACK tokens corresponds to first data in one or more TCP packets of the burst of TCP packets; code <NUM> for transmitting the first plurality of ACK tokens in the first TTI; and code <NUM> for transmitting a single ACK token in a second TTI subsequent to the first TTI where the single ACK token corresponds to second data in one or more TCP packets of the burst of TCP packets.

In certain aspects, the processor <NUM> has circuitry configured to implement the code stored in the computer-readable medium/memory <NUM>. The processor <NUM> includes circuitry <NUM> for obtaining a burst of TCP packets conveying PDCP PDUs by an application protocol TCP layer of a communication protocol stack of the UE; circuitry <NUM> for determining, based on an amount of data used to ACK the burst of TCP packets, a first number of a first plurality of ACK tokens to transmit in a first TTI where the first plurality of ACK tokens corresponds to first data in one or more TCP packets of the burst of TCP packet; circuitry <NUM> for transmitting the first plurality of ACK tokens in the first TTI; and circuitry <NUM> for transmitting a single ACK token in a second TTI subsequent to the first TTI where the single ACK token corresponds to second data in one or more TCP packets of the burst of TCP packets.

The techniques described herein may be used for various wireless communication technologies, such as NR (e.g., <NUM> NR), 3GPP Long Term Evolution (LTE), LTE-Advanced (LTE-A), code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal frequency division multiple access (OFDMA), single-carrier frequency division multiple access (SC-FDMA), time division synchronous code division multiple access (TD-SCDMA), WLAN, and other networks.

Claim 1:
A method for wireless communication by a user equipment, UE, comprising:
obtaining (<NUM>) a burst of transmission control protocol, TCP, packets conveying packet data convergence protocol, PDCP, protocol data units, PDUs, by an application protocol TCP layer of a communication protocol stack of the UE;
determining (<NUM>), based on an amount of data acknowledged in the burst of TCP packets, a first number of a first plurality of acknowledge, ACK tokens to transmit in a first transmission time interval, TTI, wherein the first plurality of ACK tokens corresponds to first data in one or more TCP packets of the burst of TCP packets, and wherein determining the first number of first ACK tokens comprises:
determining a minimum of:
a first threshold number of ACK tokens; and
a quotient of one-half of the amount of data divided by a size of each ACK token;
transmitting (<NUM>) the first plurality of ACK tokens in the first TTI; and
transmitting (<NUM>) a single ACK token in a second TTI subsequent to the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets of the burst of TCP packets.