Method, apparatus, and medium for adaptive cumulative triggering for enhanced throughput and performance
By configuring parameter sets based on radio state and traffic flow in user equipment (UE), the problem of poor latency and power performance when configured based on peak data rates in the prior art is solved, and smoother traffic flow and better performance are achieved.
Patent Information
- Application Number
- CN202080094750.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-10
- Filing Date
- 2020-12-09
- Publication Date
- 2025-06-27
- Estimated Expiration
- 2040-12-09
AI Technical Summary
Prior art In the traffic flow between a user equipment (UE) and a base station, when configuring a parameter set based on a peak data rate, it may result in adverse effects when the actual data rate differs from the peak data rate, such as increased delay and reduced power performance.
A smoother traffic flow is achieved by configuring the parameter set associated with packet transfers between protocol stack layers based on radio states and traffic flows rather than peak data rates.
This method enables smoother traffic flow between the UE and the base station, reduces burst traffic, and improves throughput and performance, especially when the actual data rate is different from the peak data rate.
Smart Images

Figure CN115039485B_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This patent application claims priority to U.S. Patent Application No. 16 / 786,683, entitled "ADAPTIVE ACCUMULATION TRIGGERS FOR ENHANCED THROUGHPUT AND PERFORMANCE", filed on February 10, 2020, which is assigned to its assignee, and is hereby incorporated by reference in its entirety for all purposes. Technical Field
[0003] The present disclosure generally relates to communication systems, and more particularly, to triggers configured for a user equipment (UE) to transfer packets between layers of the UE. Background Art
[0004] Wireless communication systems are widely deployed to provide various telecommunication services such as telephony, video, data, messaging, and broadcasting. A typical wireless communication system may employ multiple access technologies capable of supporting communication with multiple users by sharing available system resources. Examples of such multiple access technologies include code - division multiple access (CDMA) systems, time - division multiple access (TDMA) systems, frequency - division multiple access (FDMA) systems, orthogonal frequency - division multiple access (OFDMA) systems, single - carrier frequency - division multiple access (SC - FDMA) systems, and time - division synchronous code - division multiple access (TD - SCDMA) systems.
[0005] These multiple access technologies have been adopted in various telecommunication standards to provide a common protocol that enables different wireless devices to communicate at the urban, national, regional, or even global level. An exemplary telecommunication standard is 5G New Radio (NR). 5G NR is part of the continuous mobile broadband evolution promulgated by the Third Generation Partnership Project (3GPP) to meet new requirements related to latency, reliability, security, scalability (e.g., scalability with the Internet of Things (IoT)), and other requirements. 5G NR includes services associated with enhanced mobile broadband (eMBB), massive machine - type communication (mMTC), and ultra - reliable low - latency communication (URLLC). Some aspects of 5G NR may be based on the 4G Long - Term Evolution (LTE) standard. Further improvements to 5G NR technology are needed. These improvements may also apply to other multiple access technologies and telecommunication standards that employ these technologies. Summary of the Invention
[0006] A simplified overview of one or more aspects is presented below to provide a basic understanding of these aspects. This summary is not an extensive review of all contemplated aspects, nor is it intended to identify key or critical elements of all aspects or to describe the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description presented later.
[0007] A user equipment (UE) may include at least one protocol stack. The protocol stack may include multiple layers, each layer being configured to implement different functions of corresponding protocols. When receiving and / or sending data, packets may be passed up and / or down along the at least one protocol stack, respectively.
[0008] At least one protocol stack layer in the protocol stack may implement a queue, which may provide temporary buffering such that packets are not immediately passed up or down the protocol stack. In doing so, the queue may facilitate the smooth flow of packets between layers, thereby preventing potential degradation of throughput and performance due to "burst" traffic when the UE communicates with a base station via an access network or other wireless communication network.
[0009] Packets may be released from the queue and thus passed between layers according to a corresponding set of parameters (which may also be referred to as "cumulative triggers"). In some aspects, each parameter in the set of parameters may be a separate condition that must be met for a packet in the queue to be released and passed to the next layer. For example, in a downlink traffic flow, the set of parameters may include a "downlink cumulative trigger" that must be satisfied before a packet is released from the queue and passed to a higher layer (e.g., the application layer). Similarly, in an uplink traffic flow, the set of parameters may include an "uplink cumulative trigger" that must be satisfied before a packet is released from the queue and passed to a lower layer (e.g., the media access control (MAC) layer and the physical (PHY) layer) for transmission to the base station.
[0010] In many cases, the set of parameters may be configured according to a peak data rate configured between the UE and the base station. The peak data rate may be the maximum data rate achievable under ideal conditions (e.g., despite propagation delay, channel quality, etc.). The peak data rate may be a key performance indicator (KPI) that may depend on the amount of spectrum available for the access network or other wireless communication network. Additionally, the peak data rate may depend on the peak spectral efficiency, which is the peak data rate normalized by the bandwidth. For example, the peak data rate may be the product of the available system bandwidth and the peak spectral efficiency. In various RANs such as LTE and / or 5G NR RAN, the peak data rate may be 5 gigabits per second (Gbps), 7 Gbps, or 10 Gbps.
[0011] Parameter sets can be designed for power performance and KPIs at the peak data rate configured between a UE and a base station. However, configuring parameter sets according to the peak data rate may have an adverse impact on the traffic flow between the UE and the base station, especially when the actual data rate differs significantly from the peak data rate. In particular, the UE may experience adverse effects in terms of increased latency and / or degraded power performance.
[0012] In view of the above, there is a need for techniques and solutions for passing data between protocol stack layers in a manner suitable for the current data rate configured between a UE and a base station, especially when the current data rate is different from the peak data rate. The present disclosure provides such techniques and solutions by providing a configuration of one or more parameter sets associated with packet transfer between protocol stack layers based on one or more radio states and / or one or more traffic flows rather than based on the peak data rate. Thus, the present disclosure provides a smoother traffic flow rather than a bursty traffic flow by configuring one or more parameter sets associated with packet transfer between protocol stack layers.
[0013] In one aspect of the present disclosure, a method, a computer-readable medium, and a device are provided. The device may be a UE. The UE may determine one or more radio states associated with at least one traffic flow between the UE and the network. The UE may configure a parameter set associated with the transfer of packets of the at least one traffic flow between a lower layer and a higher layer of the UE based on the one or more radio states. The UE may communicate with the network for a first set of packets for at least one traffic flow based on the parameter set.
[0014] To achieve the foregoing and related purposes, the one or more aspects include the features that are fully described hereinafter and particularly pointed out in the claims. The following description and the drawings set forth in detail certain illustrative features of the one or more aspects. However, these features are only indicative of several of the various ways in which the principles of the various aspects may be employed, and this description is intended to include all such aspects and their equivalents. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1 is a schematic diagram showing an example of a wireless communication system and an access network.
[0016] Figure 2A 、 2B 、2C, and 2D are schematic diagrams respectively showing examples of a first 5G / NR frame, DL channels within a 5G / NR subframe, a second 5G / NR frame, and UL channels within a 5G / NR subframe.
[0017] Figure 3 is a schematic diagram showing an example of a base station and a user equipment (UE) in an access network.
[0018] Figure 4 It is a schematic diagram of an exemplary architecture stack of a UE.
[0019] Figure 5 It is a call flow diagram showing exemplary operations performed by a UE and a network in a wireless communication system.
[0020] Figure 6 It is a flowchart showing an exemplary method of wireless communication performed by a UE.
[0021] Figure 7 It is a conceptual data flow diagram showing the data flow between different units / components in an exemplary device.
[0022] Figure 8 It is a schematic diagram showing an example of a hardware implementation of a device employing a processing system. Detailed Implementation Modes
[0023] The following detailed implementation modes described in conjunction with the accompanying drawings are intended as descriptions of various configurations and are not intended to represent the only configurations in which the concepts described herein can be practiced. These detailed implementation modes include specific details for the purpose of providing a thorough understanding of the various concepts. However, it will be apparent to those skilled in the art that these concepts can be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form to avoid obscuring these concepts.
[0024] Several aspects of a telecommunications system will now be presented with reference to various devices and methods. These devices and methods will be described in the following detailed implementation modes and illustrated in the accompanying drawings by means of various blocks, components, circuits, processes, algorithms, etc. (collectively referred to as "elements"). These elements can be implemented using electronic hardware, computer software, or any combination thereof. Whether these elements are implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system.
[0025] As an example, an element or any portion of an element or any combination of elements can be implemented as a "processing system" including one or more processors. Examples of processors include: microprocessors, microcontrollers, graphics processing units (GPUs), central processing units (CPUs), application processors, digital signal processors (DSPs), reduced instruction set computing (RISC) processors, system on a chip (SoC) processors, baseband processors, field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout this disclosure. One or more processors in the processing system can execute software. Software should be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executable programs, execution threads, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
[0026] Thus, in one or more exemplary embodiments, the functions may be implemented in hardware, software, or any combination thereof. If implemented in software, the functions may be stored or encoded as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media. Storage media can be any available media that can be accessed by a computer. By way of example and not limitation, such computer-readable media can include random access memory (RAM), read only memory (ROM), electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other media that can be used to store computer-executable code in the form of instructions or data structures accessible by a computer.
[0027] Figure 1 is a schematic diagram showing an example of a wireless communication system and access network 100. The wireless communication system (also referred to as a wireless wide area network (WWAN)) includes base stations 102, user equipment (UE) 104, an evolved packet core EPC) 160, and another core network 190 (e.g., a 5G core (5GC)). The base stations 102 can include macro cells (high-power cellular base stations) and / or small cells (low-power cellular base stations). Macro cells include base stations. Small cells include femto cells, pico cells, and micro cells.
[0028] The base station 102 configured for 4G Long Term Evolution (LTE) (collectively, the evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN)) is interfaced with the EPC 160 via a first backhaul link 132 (e.g., the S1 interface). The base station 102 configured for 5G New Radio (NR) (collectively, the Next Generation RAN (NG-RAN)) may be interfaced with the core network 190 via a second backhaul link 184. In addition to other functions, the base station 102 may perform one or more of the following functions: transfer of user data, radio channel encryption and decryption, integrity protection, header compression, mobility control functions (e.g., handover, dual connectivity), inter-cell interference coordination, connection establishment and release, load balancing, distribution of non-access stratum (NAS) messages, NAS node selection, synchronization, radio access network (RAN) sharing, Multimedia Broadcast Multicast Service (MBMS), user and device tracking, radio access network information management (RIM), paging, positioning, and delivery of warning messages. The base stations 102 may communicate directly or indirectly (e.g., via the EPC 160 or the core network 190) with each other via a third backhaul link 134 (e.g., the X2 interface). The third backhaul link 134 may be wired or wireless.
[0029] Base station 102 can communicate wirelessly with UE 104. Each base station 102 can provide communication coverage for a corresponding geographical coverage area 110. There can be overlapping geographical coverage areas 110. For example, small cell 102' can have a coverage area 110' that overlaps with the coverage areas 110 of one or more macro base stations 102. A network including both small cells and macro cells can be referred to as a heterogeneous network. The heterogeneous network can also include a Home evolved Node B (eNB) (HeNB), and the HeNB can provide services to a restricted group called a Closed Subscriber Group (CSG). The communication link 120 between base station 102 and UE 104 can include an uplink (UL) (also referred to as a reverse link) transmission from UE 104 to base station 102 and / or a downlink (DL) (also referred to as a forward link) transmission from base station 102 to UE 104. The communication link 120 can use multiple-input and multiple-output (MIMO) antenna technology, including spatial multiplexing, beamforming, and / or transmit diversity. The communication link can pass through one or more carriers. Base station 102 / UE 104 can use a spectrum with a bandwidth of up to Y MHz (e.g., 5, 10, 15, 20, 100, 400, etc. MHz) for each carrier allocated in carrier aggregation of up to Yx MHz (x component carriers) for transmission in each direction. The carriers can be adjacent to each other or can be non-adjacent to each other. The allocation of carriers can be asymmetric for DL and UL (e.g., more or fewer carriers can be allocated for DL than for UL). The component carriers can include a primary component carrier and one or more secondary component carriers. The primary component carrier can be referred to as the Primary Cell (PCell), and the secondary component carriers can be referred to as Secondary Cells (SCells).
[0030] Certain UEs 104 can communicate with each other using device-to-device (D2D) communication links 158. The D2D communication links 158 can use DL / UL WWAN spectrum. The D2D communication links 158 can use one or more sidelink channels, such as the Physical Sidelink Broadcast Channel (PSBCH), Physical Sidelink Discovery Channel (PSDCH), Physical Sidelink Shared Channel (PSSCH), and Physical Sidelink Control Channel (PSCCH). D2D communication can be through various wireless D2D communication systems, such as FlashLinQ, WiMedia, Bluetooth, ZigBee, Wi-Fi based on the IEEE 802.11 standard, LTE, or NR.
[0031] The wireless communication system may also include a Wi-Fi access point (AP) 150 that communicates with a Wi-Fi station (STA) 152 via a communication link 154 in the 5 GHz unlicensed spectrum. When communicating in the unlicensed spectrum, the STA 152 / AP 150 may perform a Clear Channel Assessment (CCA) before communication to determine whether the channel is available.
[0032] The small cell 102' may operate in the licensed spectrum and / or the unlicensed spectrum. When operating in the unlicensed spectrum, the small cell 102' may adopt NR and use the same 5 GHz unlicensed spectrum as that used by the Wi-Fi AP 150. The small cell 102' adopting NR in the unlicensed spectrum may improve the coverage of the access network and / or increase the capacity of the access network.
[0033] The base station 102, whether it is a small cell 102' or a large cell (e.g., a macro base station), may include and / or be referred to as an eNB, a gNodeB (gNB), or another type of base station. Some base stations, such as the gNB 180, may operate in the traditional sub-6 GHz spectrum, millimeter wave (mmW) frequencies, and / or near mmW frequencies to communicate with the UE 104. When the gNB 180 operates in the mmW or near mmW frequencies, the gNB 180 may be referred to as an mmW base station. The Extremely High Frequency (EHF) is a part of the RF in the electromagnetic spectrum. The EHF has a range of 30 GHz to 300 GHz and a wavelength between 1 mm and 10 mm. The radio waves in this frequency band may be referred to as millimeter waves. The near mmW may extend down to a frequency of 3 GHz with a wavelength of 100 mm. The Super High Frequency (SHF) band extends between 3 GHz and 30 GHz and is also known as centimeter waves. Communication using the mmW or near mmW radio frequency band (e.g., 3 GHz - 300 GHz) has extremely high path loss and short distance. The mmW base station 180 may utilize beamforming 182 with the UE 104 to compensate for the extremely high path loss and short distance. The base station 180 and the UE 104 may each include multiple antennas, such as antenna elements, antenna panels, and / or antenna arrays, to facilitate beamforming.
[0034] Base station 180 may transmit beamformed signals to UE 104 in one or more transmission directions 182'. UE 104 may receive beamformed signals from base station 180 in one or more reception directions 182". UE 104 may also transmit beamformed signals to base station 180 in one or more transmission directions. Base station 180 may receive beamformed signals from UE 104 in one or more reception directions. Base station 180 / UE 104 may perform beam training to determine the optimal reception and transmission directions for each of base station 180 / UE 104. The transmission and reception directions of base station 180 may be the same or may be different. The transmission and reception directions of UE 104 may be the same or may be different.
[0035] EPC 160 may include a Mobility Management Entity (MME) 162, other MMEs 164, Serving Gateway 166, Multimedia Broadcast Multicast Service (MBMS) Gateway 168, Broadcast Multicast Service Center (BM-SC) 170, and Packet Data Network (PDN) Gateway 172. MME 162 may communicate with a Home Subscriber Server (HSS) 174. MME 162 is a control node that processes signaling between UE 104 and EPC 160. Generally, MME 162 provides bearer and connection management. All User Internet Protocol (IP) packets are passed through Serving Gateway 166, which is itself connected to PDN Gateway 172. PDN Gateway 172 provides UE IP address allocation and other functions. PDN Gateway 172 and BM-SC 170 are connected to IP services 176. IP services 176 may include the Internet, intranet, IP Multimedia Subsystem (IMS), PS Streaming Service (PSS), and / or other IP services. BM-SC 170 may provide and deliver functions for MBMS user services. BM-SC 170 may serve as an entry point for content provider MBMS transmissions, may be used to authorize and initiate MBMS bearer services within a Public Land Mobile Network (PLMN), and may be used to schedule MBMS transmissions. MBMS Gateway 168 may be used to distribute MBMS traffic to base stations 102 belonging to a Multicast Broadcast Single Frequency Network (MBSFN) area for a particular broadcast service, and may be responsible for session management (start / stop) and for collecting eMBMS-related charging information.
[0036] The core network 190 may include an Access and Mobility Management Function (AMF) 192, other AMFs 193, a Session Management Function (SMF) 194, and a User Plane Function (UPF) 195. The AMF 192 may communicate with a Unified Data Management (UDM) 196. The AMF 192 is a control node that processes signaling between the UE 104 and the core network 190. Generally, the AMF 192 provides QoS flow and session management. All User Internet Protocol (IP) packets are routed through the UPF 195. The UPF 195 provides UE IP address allocation and other functions. The UPF 195 is connected to IP services 197. The IP services 197 may include the Internet, an intranet, an IP Multimedia Subsystem (IMS), a PS streaming service, and / or other IP services.
[0037] A base station may include and / or be referred to as a gNB, Node B, eNB, access point, base station transceiver, radio base station, radio transceiver, transceiver function, Basic Service Set (BSS), Extended Service Set (ESS), Transmission and Reception Point (TRP), or some other suitable term. The base station 102 provides an access point to the EPC 160 or the core network 190 for the UE 104. Examples of the UE 104 include: cellular phones, smart phones, Session Initiation Protocol (SIP) phones, laptop computers, personal digital assistants (PDAs), satellite radio devices, global positioning systems, multimedia devices, video devices, digital audio players (e.g., MP3 players), cameras, gaming consoles, tablet computers, smart devices, wearable devices, vehicles, electricity meters, fuel pumps, large or small kitchen appliances, medical devices, implants, sensors / actuators, displays, or any other similar functional devices. Some UEs 104 may be referred to as IoT devices (e.g., parking meters, fuel pumps, toasters, vehicles, heart monitors, etc.). The UE 104 may also be referred to as a station, mobile station, user station, mobile unit, user unit, wireless unit, remote unit, mobile device, wireless device, wireless communication device, remote device, mobile user station, access terminal, mobile terminal, wireless terminal, remote terminal, cell phone, user agent, mobile client, client, or some other suitable term.
[0038] Although the present disclosure may focus on 5G NR, the concepts and various aspects described herein may be applicable to other similar domains, such as LTE, Long Term Evolution - Advanced (LTE - A), Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), or other wireless / radio access technologies. Additionally, although the present disclosure may focus on certain protocols, such as the Transmission Control Protocol (TCP), the concepts and various aspects described herein may be applicable to other protocols, such as the User Datagram Protocol (UDP), or other wireless / communication protocols.
[0039] Referring again to Figure 1 , in some aspects, the UE 104 may communicate with the base station 102 / 180 to establish one or more traffic flows, such as TCP traffic flows. The UE 104 may determine one or more radio states associated with the one or more traffic flows established between the UE 104 and the base station 102 / 180. For example, the UE 104 may determine one or more radio states based on the quality of the channel over which the UE 104 communicates with the base station 102 / 180, the power headroom configured for transmissions by the UE 104, the size of the uplink grant received from the base station 102 / 180, the transition between the radio resource control (RRC) idle mode or RRC inactive mode and the RRC connected mode, the discontinuous transmission (DTX) mode of the UE 104, and / or the discontinuous reception (DRX) mode of the UE 104.
[0040] The UE 104 may configure a set of parameters (198) associated with the transfer of packets of the one or more traffic flows between the lower layer and the higher layer of the UE 104 based on the one or more radio states and / or based on the one or more traffic flows. For example, the UE 104 may configure the set of parameters based on the one or more foregoing radio states, based on whether the one or more traffic flows are uplink traffic flows or downlink traffic flows, based on whether one or more of the traffic flows are relatively low priority, and / or based on whether one or more of the traffic flows are relatively high priority. The set of parameters may include parameters such as the number of bytes, the number of packets, and / or the timer duration that may control the transfer of packets between the lower layer and the higher layer of at least one protocol stack of the UE 104.
[0041] When configuring the set of parameters based on the one or more radio states and / or the one or more traffic flows, the UE 104 may control the smooth flow of traffic between the UE 104 and the base station 102 / 180, thereby reducing the bursty traffic between the UE 104 and the base station 102 / 180. For example, for a downlink traffic flow, the UE 104 may configure one or more parameters to control the smooth flow of acknowledgment (ACK) packets sent to the base station 102 / 180, which may enable the smooth flow of downlink traffic from the base station 102 / 180.
[0042] Figure 2A FIG. 200 is a schematic diagram showing an example of a first subframe within the 5G / NR frame structure. Figure 2B FIG. 230 is a schematic diagram showing an example of a DL channel within a 5G / NR subframe. Figure 2C FIG. 250 is a schematic diagram showing an example of a second subframe within the 5G / NR frame structure. Figure 2DFIG. 280 is a schematic diagram showing an example of UL channels within a 5G / NR subframe. The 5G / NR frame structure can be FDD or can be TDD. In FDD, for a particular set of subcarriers (carrier system bandwidth), the subframes within that set of subcarriers are dedicated to DL or dedicated to UL. In TDD, for a particular set of subcarriers (carrier system bandwidth), the subframes within the set of subcarriers are dedicated to both DL and UL. In Figure 2A , 2C the example provided, it is assumed that the 5G / NR frame structure is TDD, where subframe 4 is configured with slot format 28 (mostly DL), where D is DL, U is UL, X is flexibly used between DL / UL, and subframe 3 is configured with slot format 34 (mostly UL). Although subframes 3 and 4 are shown with slot formats 34 and 28 respectively, any particular subframe can be configured with any one of the various available slot formats 0 - 61. Slot formats 0 and 1 are full DL and UL respectively. The other slot formats 2 - 61 include a mixture of DL, UL, and flexible symbols. The slot format is configured for the UE via the received slot format indicator (SFI) (configured dynamically via DL control information (DCI) or semi-statically / statically via radio resource control (RRC) signaling). Note that the following description also applies to a 5G / NR frame structure that is TDD.
[0043] Other wireless communication technologies can have different frame structures and / or different channels. A frame can be 10 milliseconds (ms) and can be divided into 10 subframes of the same size (1 ms). Each subframe can include one or more time slots. A subframe can also include mini - slots, and a mini - slot can include 7, 4, or 2 symbols. Each time slot can include 7 or 14 symbols, depending on the slot configuration. For slot configuration 0, each time slot can include 14 symbols, while for slot configuration 1, each time slot can include 7 symbols. The symbols on the DL can be cyclic prefix (CP) OFDM (CP - OFDM) symbols. The symbols on the UL can be CP - OFDM symbols (for high - throughput scenarios) or discrete Fourier transform (DFT) spread OFDM (DFT - s - OFDM) symbols (also known as single - carrier frequency - division multiple access (SC - FDMA) symbols) (for power - limited scenarios; limited to single - stream transmission). The number of time slots within a subframe is based on the slot configuration and numerology. For slot configuration 0, the different numerologies μ0 to 5 allow 1, 2, 4, 8, 16, and 32 time slots per subframe respectively. For slot configuration 1, the different numerologies 0 to 2 allow 2, 4, and 8 time slots per subframe respectively. Thus, for slot configuration 0 and numerology μ, each time slot has 14 symbols and each subframe has 2 μ time slots. The subcarrier spacing and symbol length / duration are functions of the numerology. The subcarrier spacing can be equal to 2 μ*15 kHz, where μ is a digital scheme from 0 to 5. Thus, the subcarrier spacing for digital scheme μ = 0 is 15 kHz, while the subcarrier spacing for digital scheme μ = 5 is 480 kHz. The symbol length / duration is inversely proportional to the subcarrier spacing. Figures 2A - 2D An example of slot configuration 0 with 14 symbols per slot and digital scheme μ = 2 with 4 slots per subframe is provided. The slot duration is 0.25 ms, the subcarrier spacing is 60 kHz, and the symbol duration is approximately 16.67 μs.
[0044] A resource grid can be used to represent the frame structure. Each slot includes a resource block (RB) (also known as a physical RB (PRB)) that extends over 12 consecutive subcarriers. The resource grid is divided into multiple resource elements (RE). The number of bits carried by each RE depends on the modulation scheme.
[0045] As Figure 2A shown, some REs carry reference (pilot) signals (RS) for the UE. The RS can include demodulation RS (DM-RS) (denoted as R x for a specific configuration, where 100x is the port number, but other DM-RS configurations are also possible) and channel state information reference signals (CSI-RS) for channel estimation at the UE. The RS can also include beam measurement RS (BRS), beam refinement RS (BRRS), and phase tracking RS (PT-RS).
[0046] Figure 2B Examples of various DL channels within a subframe of a frame are shown. The physical downlink control channel (PDCCH) carries DCI in one or more control channel elements (CCE), each CCE including nine resource element groups (REG), each REG including four consecutive REs in an OFDM symbol. The primary synchronization signal (PSS) can be in symbol 2 of a specific subframe of the frame. UE 104 uses the PSS to determine subframe / symbol timing and the physical layer identity. The secondary synchronization signal (SSS) can be in symbol 4 of a specific subframe of the frame. The UE uses the SSS to determine the physical layer cell identity group number and radio frame timing. Based on the physical layer identity and the physical layer cell identity group number, the UE can determine the physical cell identifier (PCI). Based on the PCI, the UE can determine the location of the above DM-RS. The physical broadcast channel (PBCH) carrying the master information block (MIB) can be logically grouped with the PSS and SSS to form a synchronization signal (SS) / PBCH block. The MIB provides the number of RBs in the system bandwidth and the system frame number (SFN). The physical downlink shared channel (PDSCH) carries user data, broadcast system information not sent via the PBCH (such as system information blocks (SIB)) and paging messages.
[0047] AsFigure 2C As shown, some REs carry DM-RS for channel estimation at the base station (indicated as R for a specific configuration, but other DM-RS configurations are also possible). The UE can transmit DM-RS for the physical uplink control channel (PUCCH) and DM-RS for the physical uplink shared channel (PUSCH). The PUSCH DM-RS can be transmitted in the one or two symbols preceding the PUSCH. Depending on whether a short PUCCH or a long PUCCH is transmitted and depending on the specific PUCCH format used, the PUCCH DM-RS can be transmitted in different configurations. The UE can transmit a sounding reference signal (SRS). The SRS can be transmitted in the last symbol of the subframe. The SRS can have a comb structure, and the UE can transmit the SRS on one of these comb structures. The base station can use the SRS for channel quality estimation to enable frequency-dependent scheduling on the UL.
[0048] Figure 2D Examples of various UL channels within a subframe of a frame are shown. The PUCCH can be positioned as indicated in one configuration. The PUCCH carries uplink control information (UCI), such as a scheduling request, a channel quality indicator (CQI), a precoding matrix indicator (PMI), a rank indicator (RI), and HARQ ACK / NACK feedback. The PUSCH carries data and can also be used to carry a buffer status report (BSR), a power headroom report (PHR), and / or UCI.
[0049] Figure 3It is a block diagram of base station 310 that communicates with UE 350 in an access network. In the DL, IP packets from EPC 160 can be provided to controller / processor 375. Controller / processor 375 implements the functions of layer 3 (L3) and layer 2 (L2). L3 includes the radio resource control (RRC) layer, and L2 includes the service data adaptation protocol (SDAP) layer, the packet data convergence protocol (PDCP) layer, the radio link control (RLC) layer, and the medium access control (MAC) layer. Controller / processor 375 provides: RRC layer functions associated with the broadcast of system information (e.g., MIB, SIB), RRC connection control (e.g., RRC connection paging, RRC connection establishment, RRC connection modification, and RRC connection release), inter-radio access technology (RAT) mobility, and measurement configuration for UE measurement reporting; PDCP layer functions associated with header compression / decompression, security (encryption, decryption, integrity protection, integrity verification), and handover support functions; RLC layer functions associated with the transfer of upper layer packet data units (PDUs), error correction via ARQ, concatenation, segmentation, and reassembly of RLC service data units (SDUs), re-segmentation of RLC data PDUs, and re-ordering of RLC data PDUs; and MAC layer functions associated with the mapping between logical channels and transport channels, multiplexing of MAC SDUs into transport blocks (TBs), demultiplexing of MAC SDUs from TBs, scheduling information reporting, error correction via HARQ, priority handling, and logical channel prioritization.
[0050] The transmit (TX) processor 316 and the receive (RX) processor 370 implement layer 1 (L1) functions associated with various signal processing functions. L1, which includes the physical (PHY) layer, may include error detection on the transport channel, forward error correction (FEC) encoding / decoding of the transport channel, interleaving, rate matching, mapping to the physical channel, modulation / demodulation of the physical channel, and MIMO antenna processing. The TX processor 316 processes the mapping to the signal constellation based on various modulation schemes (e.g., binary phase shift keying (BPSK), quadrature phase shift keying (QPSK), M-phase shift keying (M-PSK), M-quadrature amplitude modulation (M-QAM)). The coded and modulated symbols can then be divided into parallel streams. Each stream can then be mapped to OFDM subcarriers, multiplexed with reference signals (e.g., pilots) in the time and / or frequency domain, and then combined using an inverse fast Fourier transform (IFFT) to generate a physical channel carrying a stream of time-domain OFDM symbols. The OFDM stream is space precoded to generate multiple spatial streams. Channel estimates from the channel estimator 374 can be used to determine the coding and modulation schemes and for spatial processing. The channel estimates can be derived from reference signals transmitted by the UE 350 and / or channel condition feedback. Each spatial stream can then be provided to a different antenna 320 via a separate transmitter 318TX. Each transmitter 318TX can modulate an RF carrier using the corresponding spatial stream for transmission.
[0051] At the UE 350, each receiver 354RX receives signals via its corresponding antenna 352. Each receiver 354RX recovers the information modulated onto the RF carrier and provides the information to the receive (RX) processor 356. The TX processor 368 and the RX processor 356 implement L1 functions associated with various signal processing functions. The RX processor 356 can perform spatial processing on the information to recover any spatial streams intended for the UE 350. If multiple spatial streams are intended for the UE 350, they can be combined by the RX processor 356 into a single OFDM symbol stream. The RX processor 356 then uses a fast Fourier transform (FFT) to convert the OFDM symbol stream from the time domain to the frequency domain. The frequency-domain signal includes a separate OFDM symbol stream for each subcarrier of the OFDM signal. The symbols and reference signals on each subcarrier are recovered and demodulated by determining the most likely signal constellation points transmitted by the base station 310. These soft decisions can be based on the channel estimates computed by the channel estimator 358. The soft decisions are then decoded and deinterleaved to recover the data and control signals originally transmitted by the base station 310 on the physical channel. The data and control signals are then provided to the controller / processor 359 that implements L3 and L2 functions.
[0052] The controller / processor 359 may be associated with a memory 360 that stores program code and data. The memory 360 may be referred to as a computer-readable medium. In the UL, the controller / processor 359 provides demultiplexing between the transport channel and the logical channel, packet reassembly, decryption, header decompression, and control signal processing to recover IP packets from the EPC 160. The controller / processor 359 is also responsible for error detection using the ACK and / or NACK protocols to support HARQ operations.
[0053] Similar to the functions described in connection with the DL transmission of the base station 310, the controller / processor 359 provides: RRC layer functions associated with system information (e.g., MIB, SIB) acquisition, RRC connection, and measurement reporting; PDCP layer functions related to header compression / decompression and security (encryption, decryption, integrity protection, integrity verification); RLC layer functions associated with the transfer of upper layer PDUs, error correction via ARQ, concatenation, segmentation, and reassembly of RLC SDUs, re-segmentation of RLC data PDUs, and re-ordering of RLC data PDUs; and MAC layer functions associated with the mapping between the logical channel and the transport channel, multiplexing of MAC SDUs on the TBs, demultiplexing of MAC SDUs from the TBs, scheduling information reporting, error correction via HARQ, priority handling, and logical channel prioritization.
[0054] Channel estimates derived from reference signals or feedback sent by the channel estimator 358 from the base station 310 may be used by the TX processor 368 to select an appropriate coding and modulation scheme and to facilitate spatial processing. The spatial streams generated by the TX processor 368 may be provided to different antennas 352 via separate transmitters 354TX. Each transmitter 354TX may modulate an RF carrier using the corresponding spatial stream for transmission.
[0055] UL transmissions are processed at the base station 310 in a manner similar to that described in connection with the receiver function at the UE 350. Each receiver 318RX receives signals via its corresponding antenna 320. Each receiver 318RX recovers the information modulated onto the RF carrier and provides this information to the RX processor 370.
[0056] The controller / processor 375 may be associated with a memory 376 that stores program code and data. The memory 376 may be referred to as a computer-readable medium. In the UL, the controller / processor 375 provides demultiplexing, packet reassembly, decryption, header decompression, and control signal processing between the transport channel and the logical channel to recover IP packets from the UE 350. The IP packets from the controller / processor 375 may be provided to the EPC 160. The controller / processor 375 is also responsible for error detection using the ACK and / or NACK protocols to support HARQ operations.
[0057] At least one of the TX processor 368, the RX processor 356, and the controller / processor 359 may be configured to perform aspects related to Figure 1 (198) thereof.
[0058] The UE may include at least one protocol stack. The protocol stack may include multiple layers, each layer being configured to implement different functions of the corresponding protocol. When receiving and / or transmitting data, packets may be passed up and / or down along at least one protocol stack, respectively.
[0059] At least one protocol stack layer in the protocol stack may implement a queue, and the queue may provide a temporary buffer such that packets are not immediately passed up or down the protocol stack. For example, the PDCP layer may implement a queue that may reorder or not reorder the received packets before passing the received packets to a higher layer. In doing so, the queue may facilitate the smooth flow of packets between layers, thereby preventing "burst" traffic from potentially reducing throughput and performance when the UE is communicating with a base station via an access or other wireless communication network.
[0060] According to a corresponding set of parameters (which may also be referred to as "cumulative trigger"), packets may be released from the queue and thus passed between layers. In some aspects, each parameter in the set of parameters may be a separate condition that must be met in order for the packets in the queue to be released and passed to the next layer. For example, in a downlink traffic flow, the set of parameters may include a "downlink cumulative trigger" that must be met before releasing the packets from the queue and passing them to a higher layer (such as the TCP layer and the application layer). Similarly, in an uplink traffic flow, the set of parameters may include an "uplink cumulative trigger" that must be met before releasing the packets from the queue and passing them to a lower layer (such as the MAC layer and the PHY layer) for transmission to the base station.
[0061] In many cases, the parameter set can be configured according to the peak data rate configured between the UE and the base station. For example, the parameter set can be designed for power performance and key performance indicators (KPIs) at the peak data rate configured between the UE and the base station. However, configuring the parameter set according to the peak data rate may have an adverse effect on the traffic flow between the UE and the base station, especially when the actual data rate differs significantly from the peak data rate. In particular, the UE may experience adverse effects in terms of increased latency and / or reduced power performance.
[0062] Figures 4 - 8 Techniques and solutions are described for passing packets between protocol stack layers in a manner suitable for the current data rate configured between the UE and the base station, especially when the current data rate is different from the peak data rate. For example, Figures 4 - 8 illustrates configuring one or more parameter sets associated with packet passing between protocol stack layers based on one or more radio states and / or one or more traffic flows rather than based on the peak data rate. Thus, Figures 4 - 8 techniques and solutions are described for providing a smoother traffic flow rather than a bursty traffic flow by configuring one or more parameter sets associated with packet passing between protocol stack layers.
[0063] Figure 4 is a schematic diagram showing an exemplary system architecture stack 400. The stack 400 can be included in a UE, such as Figure 1 UE 104 and / or Figure 3 UE 350. The network stack 422 can be located at the top of the stack 400 and can thus include one or more higher (possibly the highest) layers of the stack 400. The network stack 422 can include, for example, a transport layer and / or an application layer. The transport layer of the network stack 422 can include a TCP layer and / or a UDP layer, while the application layer can include a hypertext transfer protocol (HTTP) layer and / or other application layers.
[0064] The network stack 422 can be the destination for some data packets 416 received from the network (e.g., downlink TCP packets). In addition, the network stack 422 can be the origin for some other data packets 412 to be sent to the network (e.g., uplink TCP packets). In some aspects, the network stack 422 can generate an ACK packet 418 in response to successfully received data packets 416 (e.g., correctly decoded packets and / or packets that pass error checking / integrity checking). In some other aspects, the network stack 422 can receive an ACK packet 414 in response to successfully sent data packets 412.
[0065] The operating system 424 can communicate with the network stack 422, for example, by passing packets to and / or receiving packets from the network stack 422. In some aspects, the operating system 424 can include a Unix-like operating system, such as Linux or other similar operating systems. However, in some other aspects, the operating system 424 can include another non-Unix-like operating system.
[0066] Additionally, the operating system 424 can pass packets between the hardware blocks 426. The hardware blocks 426 can implement some IP layer functions and / or other Internet / network layer functions. For example, the hardware blocks can be used to route and relay packets across network boundaries, such as data packets 412, 416 and / or ACK packets 414, 418.
[0067] The network stack 422, the operating system 424, and / or the hardware blocks 426 can reside above a lower layer set including an uplink radio stack 430 and a downlink radio stack 440. The radio stacks 430, 440 can implement L2 and L1 functions. Although shown separately in the stack 400, in some configurations, the radio stacks 430, 440 can be combined in a single stack.
[0068] Each of the radio stacks 430, 440 includes respective PDCP layers 432, 442. In the shown stack 400, communication using two RATs can be configured. For example, a UE can be configured with a dual radio unit for communicating using two RATs. In some aspects, the first RAT can be an LTE RAT, and the second RAT can be a 5G NR RAT. Potentially, one or more layers of the radio stacks 430, 440 are partitioned to serve both the first RAT and the second RAT.
[0069] In the uplink radio stack 430, a first RLC layer 434a and a first MAC layer 436a can be configured for the first RAT, while a second RLC layer 434b and a second MAC layer 436b can be configured for the second RAT. In some aspects, the uplink radio stack 430 can also include a first L1 (e.g., PHY layer) configured for the first RAT and a second L1 (e.g., another PHY layer) configured for the second RAT. Similarly, the downlink radio stack 440 can include: a first RLC layer 444a and a first MAC layer 446a configured for the first RAT, and a second RLC layer 444b and a second MAC layer 446b configured for the second RAT (the downlink stack 440 can also include a first L1 (e.g., PHY layer) configured for the first RAT and a second L1 (e.g., another PHY layer) configured for the second RAT). In some aspects, one or more separate layers can be combined.
[0070] Each of the PDCP layers 432, 442 may include a respective one of the queues 428, 438 and / or may be communicatively coupled therewith. For example, each of the queues 428, 438 may be a PDCP queue. In some aspects, the downlink queue 438 may be used to reorder packets for one or both of these RATs (e.g., the downlink queue 438 may be used to reorder packets received via the LTE RAT).
[0071] Each of the queues 428, 438 may act as an accumulation point or buffer, which may prevent packets from being passed down or up the stack 400 upon generation or receipt of the packets. In so doing, the queues 428, 438 may facilitate a smoother (e.g., more optimized) traffic flow between the lower layers of the stack 400 (e.g., the radio stacks 430, 440) and the higher layers of the stack 400 (e.g., the hardware block 426, the operating system 424, and / or the network stack 422). In fact, the accumulation of uplink packets in the uplink queue 428 may enable a smoother packet flow from the UE's application processor to the UE's modem processor, and similarly, the accumulation of downlink packets in the downlink queue 438 may enable a smoother packet flow from the modem processor to the application processor.
[0072] The accumulation in the uplink queue 428 and the downlink queue 438 may improve UE performance and communication across one or more regions. For example, the accumulation in the uplink queue 428 and the downlink queue 438 may improve power performance (e.g., for the number of times a peripheral component interconnect express (PCIe) component is active, such as in a converged environment), reduce bursty packet flows, improve instruction sets (e.g., microprocessors without interlocked pipeline stages (MIPS)), and memory management, and / or reduce the number of serviced interrupts.
[0073] Packets may be released from each of the uplink queue 428 and the downlink queue 438 according to a parameter set. Each parameter in the parameter set may also be referred to as an "accumulation trigger" because the parameter set may trigger the release of accumulated packets from one of the queues 428, 438, thereby allowing the accumulated packets to be passed down (for uplink) or up (for downlink) the stack 400.
[0074] The parameter sets may include an uplink parameter set 460 (e.g., uplink cumulative trigger) and / or a downlink parameter set 470 (e.g., downlink cumulative trigger). The uplink parameter set 460 and the downlink parameter set 470 may include one or more of the following: corresponding packet counts 462, 472, corresponding byte counts 464, 474, and / or corresponding timers 466, 476. For example, each of the corresponding packet counts 462, 472 may be a threshold count at which, when satisfied (e.g., when the total number of packets in one of queues 428, 438 equals the threshold count), packets are released from the corresponding one of queues 428, 438. Similarly, each of the corresponding byte counts 464, 474 may be another threshold count at which, when satisfied (e.g., when the sum of all bytes aggregated from all packets in one of queues 428, 438 equals the other threshold count), packets are released from the corresponding one of queues 428, 438. Each of the corresponding timers 466, 476 may be a threshold duration at which, when elapsed (e.g., each of the timers 466, 476 may be started when a packet is released from the corresponding one of queues 428, 438 or when the next packet is first added after an earlier packet has been released from the corresponding one of queues 428, 438), packets are released from the corresponding one of queues 428, 438.
[0075] In some aspects, the uplink parameter set 460 and the downlink parameter set 470 may be designed based on the peak data rate of the UE, e.g., to optimize power performance at the peak data rate and / or other KPIs (e.g., peak data rate may be an important measurement across UEs with different UE capabilities). However, designing the uplink parameter set 460 and the downlink parameter set 470 based on the peak data rate may introduce significant latency, e.g., when the actual data rate is not equal to the peak data rate. For example, designing the uplink parameter set 460 and the downlink parameter set 470 based on the peak data rate may result in an undesired amount of latency during lower throughput and / or the Ping process, where in the Ping process, a Ping message is received from a server and the UE responds with a Ping response for the server to determine UE performance.
[0076] In one example, designing the uplink parameter set 460 and the downlink parameter set 470 based on the peak data rate may result in latency during the Ping process because the size of the Ping message and / or Ping response packet may not be sufficient to meet the number of bytes and / or packets designed for the peak data rate, and the timer designed for the peak data rate may have too long a duration such that the UE cannot receive and respond to the Ping packet to accurately reflect the UE performance. Thus, the uplink parameter set 460 and the downlink parameter set 470 can be configured without considering the peak data rate, for example, to respond to received Ping packets more quickly and in a manner that more accurately reflects the UE performance.
[0077] In another example, designing the uplink parameter set 460 and the downlink parameter set 470 based on the peak data rate may cause the TCP traffic flow to increase proportionally relatively slowly, for example, due to the TCP congestion control mechanism. Specifically, the TCP congestion control mechanism can include TCP slow start, which can prevent transmitting more data than the network can forward to avoid network congestion.
[0078] For TCP slow start, the congestion window size can be initially configured, for example, based on the maximum segment size (MSS) 1, 2, 4, or 10. For each ACK packet sent by the UE and received by the network, the value of the congestion window size can be increased (e.g., increased by 1 MSS). If the loss of an ACK packet is detected, the network can assume network congestion and can take actions to reduce the network load, for example, by reducing the congestion window size. Cumulating packets in queues 428, 438 based on the uplink parameter set 460 and the downlink parameter set 470 designed for the peak data rate may cause the congestion window size to increase at a slower rate than the actual UE performance because packets (e.g., uplink ACK packets) may be unnecessarily delayed in queues 428, 438.
[0079] Considering the foregoing examples and other scenarios, the uplink parameter set 460 and the downlink parameter set 470 designed for peak data rate may introduce avoidable latency, especially when the actual data rate differs from the peak data rate by 2-3 (or more) Gbps. For example, if the peak data rate is configured to be 7 Gbps, but the actual data rate on a traffic flow (e.g., a TCP traffic flow) is 10 Gbps or 5 Gbps, the uplink parameter set 460 and the downlink parameter set 470 may not be satisfied at a satisfactory rate for UE communication of the traffic flow. Therefore, the UE (e.g., implementing stack 400) can avoid configuring the uplink set 460 and / or the downlink parameter 470 based on the peak data rate. Instead, the UE can configure the uplink parameter set 460 and the downlink parameter set 470 based on one or more radio states and / or based on one or more traffic flows.
[0080] Figure 5 is a call flow diagram illustrating operations in a wireless communication environment 500 including a network 502 and a UE 504. The network 502 can be an access network in which the UE 504 communicates, and the network 502 can include one or more base stations. For example, the network 502 can include a first base station configured to communicate using a first RAT (e.g., LTE RAT) and a second base station configured to communicate using a second RAT (e.g., 5G NR RAT), or can include one base station configured to communicate using the first RAT and / or the second RAT. Referring Figure 4 , the UE 504 can implement a stack 400 for communicating with the network 502 for one or more traffic flows.
[0081] The UE 504 can establish one or more traffic flows 524 with the network 502. In some aspects, one or more traffic flows 524 can include TCP traffic flows. To establish a TCP traffic flow, the UE 504 and the network 502 can perform a three-way handshake. For example, the UE 504 can send a TCP SYN packet to the network 502, and the network 502 can then send a TCP SYN-ACK packet to the UE 504 in response to receiving the TCP SYN packet. In response to receiving the TCP SYN-ACK packet from the network 502, the UE 504 can send a TCP ACK packet to the network 502, and a TCP connection can be established when the network 502 receives the TCP ACK packet from the UE 504. Potentially, the network 502 can send a TCP SYN packet, the UE 504 can respond by sending a TCP SYN-ACK packet, and the network 502 can complete the three-way TCP handshake by sending a TCP ACK packet in response to receiving the TCP SYN-ACK packet.
[0082] In some other aspects, one or more traffic flows 524 may include UDP traffic flows. When establishing a UDP traffic flow, the UE 504 may send UDP datagrams to the network 502, and the UDP datagrams may indicate ports and / or sockets (e.g., a combination of an IP address and a port). Potentially, the UE 504 may receive UDP data from the network 502 to establish a UDP traffic flow, and the received UDP datagrams may indicate ports and / or sockets (e.g., a combination of an IP address and a port). When establishing a UDP traffic flow, the UE 504 may bind the port and / or socket to the UDP connection.
[0083] In some additional aspects, one or more traffic flows 524 may include Ping traffic flows. In a Ping traffic flow, for example, the network 502 may periodically send Ping packets to the UE 504 (e.g., a Ping packet may be initiated at a server accessible via the network 502), such as Internet Control Message Protocol (ICMP) packets. In response to receiving a Ping packet, the UE 504 may generate a Ping response packet and send it to the network 502 (e.g., the Ping response packet may be forwarded to the server), and the Ping response packet may also be an ICMP packet.
[0084] The UE 504 may have more than one traffic flow 524 established with the network 502 or simultaneously via the network. In some aspects, all traffic flows 524 may be downlink traffic flows, where data packets flow from the network 502 to the UE 504, and the UE 504 responds to each successfully received data packet with a corresponding ACK packet. In some other aspects, all traffic flows 524 may be uplink traffic flows, where data packets flow from the UE 504 to the network 502, and the network 502 responds to each successfully received data packet with a corresponding ACK packet. In such other aspects, the UE 504 may retransmit data packets for which it has not received the corresponding ACK packet from the network. In additional aspects, the traffic flows 524 may include one or more uplink traffic flows and one or more downlink traffic flows.
[0085] The UE 504 can determine at least one type 526 of one or more traffic flows 524. Specifically, the UE 504 can determine the corresponding type in at least one type 526 for each of the one or more traffic flows 524. In some aspects, the UE 504 can determine at least one type 526 of one or more traffic flows 524 to indicate the direction of the one or more traffic flows 524. For example, the UE 504 can determine at least one type 526 to indicate the corresponding one of uplink or downlink for each of the one or more traffic flows 524. In some other aspects, the UE 504 can determine at least one type 526 of one or more traffic flows 524 to indicate the corresponding protocol and / or information for the communication on each of the one or more traffic flows 524. For example, the UE 504 can determine at least one type 526 to indicate the corresponding one of TCP, UDP, Ping (e.g., ICMP), or other protocols for each of the one or more traffic flows 524.
[0086] In some aspects, the UE 504 can determine at least one type 526 of one or more traffic flows 524 at the data level of the UE 504 (e.g., using the application processor). Refer to Figure 4 , the UE 504 can determine at least one type 526 at one or more of the hardware block 426, the operating system 424, and / or the network stack 422 (e.g., the transport layer and / or the application layer). The UE 504 can implement one or more filters at one or more of the hardware block 426, the operating system 424, and / or the network stack 422 to determine at least one type 526. For example, filters can be implemented in both the uplink direction (e.g., including the uplink radio stack 430) and the downlink direction (e.g., including the downlink radio stack 440), and data packets 412, 416 and ACK packets 414, 418 can be passed down or up the stack 400 through the filters.
[0087] The filter can be used to identify packet information from the content and / or format of packets 412, 414, 416, 418, such as packet header content, packet payload content, and / or packet format. The UE 504 can determine one of the following based on the content of the corresponding packet in packets 412, 414, 416, 418: a traffic flow corresponding to the corresponding packet in the traffic flow 524 (for example, the UE 504 can determine that a packet corresponds to a traffic flow based on the data type in the packet content and / or based on the port, socket, or other source and / or destination address indicated by the packet content), the direction of a corresponding traffic flow in the traffic flow 524 (for example, if the packet content indicates an ACK feedback in the uplink direction, the UE 504 can determine that the corresponding traffic flow is a downlink, or vice versa), and / or the protocol of a corresponding traffic flow in the traffic flow 524 (for example, the UE 504 can determine the corresponding protocol of each packet in packets 412, 414, 416, 418 based on the packet format and / or packet content).
[0088] In addition to at least one type 526, the UE 504 can also determine at least one priority 528 for each of one or more traffic flows 524. The UE 504 can determine the corresponding priority in at least one priority 528 for each traffic in one or more traffic flows 524. The corresponding priority in at least one priority 528 corresponding to a traffic flow in the traffic flow 524 can indicate the priority of this traffic flow in the traffic flow 524 relative to other traffic flows in one or more traffic flows 524. For example, the UE 504 can assign one of a high priority or a low priority to each of one or more traffic flows 524; although more priorities may be available according to various aspects (for example, high, medium, and low priorities or very high, high, average, low, and very low priorities).
[0089] The UE 504 can determine at least one priority 528 of one or more traffic flows 524 based on at least one type 526 of one or more traffic flows 524 and / or based on the data sent on one or more traffic flows 524 (e.g., based on inspecting packet content). In some aspects, the UE 504 can determine, for each traffic flow in one or more traffic flows 524, a corresponding priority in at least one priority 528 based on the delay tolerance of each traffic flow in one or more traffic flows 524 (e.g., a traffic flow including streaming media such as multimedia content and / or games may be relatively intolerant to delay, while a traffic flow for messaging or email may be relatively tolerant to delay). For example, the UE 504 can determine that at least one priority 528 includes a first priority for a first traffic flow that is relatively important and / or relatively intolerant to delay, and includes a second priority for a second traffic flow that is relatively unimportant and / or relatively tolerant to delay, where the first priority is relatively higher than the second priority.
[0090] In some aspects, the UE 504 can determine at least one priority 528 of one or more traffic flows 524 at the data level of the UE 504 (e.g., using an application processor). Refer to Figure 4 , for example, the UE 504 can determine at least one priority 528 at one or more of the hardware block 426, the operating system 424, and / or the network stack 422 (e.g., the transport layer and / or the application layer). In some other aspects, the UE 504 can determine at least one priority 528 of one or more traffic flows 524 at the radio level. Refer again to Figure 4 , for example, the UE 504 can determine at least one priority 528 at one or more of the uplink radio stack 430 and / or the downlink radio stack 440, e.g., at one of the PDCP layers 432, 442, at one of the RLC layers 434a - b, 444a - b, at one of the MAC layers 436a - b, 446a - b, and / or at the PHY layer (e.g., using a modem or a baseband processor).
[0091] The network 502 can send a first set of packets 530, which the UE 504 can receive. The first set of packets 530 can be associated with one or more traffic flows 524. For example, the first set of packets 530 can include a set of data packets, such as TCP data packets and / or UDP data packets. In another example, the first set of packets 530 can include a set of Ping packets. In yet another example, when the traffic flow 524 includes at least one uplink traffic flow, the first set of packets 530 can include a set of ACK packets, such as TCP ACK packets.
[0092] UE 504 may receive a first set of packets 530 at a lower layer of UE 504. For example, UE 504 may receive the first set of packets 530 in a first RAT, and the first set of packets 530 may include data packets of a downlink traffic flow in traffic flow 524. Refer to Figure 4 , UE 504 may receive data packet 416 in a first RAT, and thus, data packet 416 may be passed upward from the PHY layer to the downlink first MAC layer 446a, then to the downlink first RLC layer 444a, and then to the downlink PDCP layer 442. The downlink PDCP layer 442 may accumulate data packet 416 in the downlink queue 438, and the downlink queue 438 may be controlled by the downlink parameter set 470.
[0093] In some aspects, UE 504 may avoid configuring the uplink parameter set 460 and / or the downlink parameter set 470 based on the peak data rate between UE 504 and network 502. Instead, UE 504 may configure the uplink parameter set 460 and / or the downlink parameter set 470 based on the radio state associated with UE 504 and / or based on one or more traffic flows 524. To this end, UE 504 may determine at least one radio state 532 associated with UE 504.
[0094] At least one radio state 532 associated with UE 504 may include any information associated with the communication between UE 504 and network 502, both inside and outside UE 504. That is, at least one radio state 532 may include the settings and / or configurations of UE 504 for communicating with network 502, and / or may include information about the (one or more) channels and / or (one or more) media over which UE 504 communicates with network 502. In one aspect, at least one radio state 532 may include the quality of the (one or more) channels and / or (one or more) media over which UE 504 communicates with network 502, such as reference signal received power (RSRP), reference signal received quality (RSRQ), signal-to-noise ratio (SNR), signal-to-interference-plus-noise ratio (SINR), etc.
[0095] On the other hand, at least one radio state 532 may include a power headroom associated with transmissions made by the UE 504. The transmission power of the UE 504 may be configured by the network 502, for example when the UE 504 receives from the network 502 information indicating the maximum power that the UE 504 may use for transmissions. The power headroom may be the amount of transmission power available for use by the UE 504 in addition to the power (if any) used for the current transmission made by the UE 504. As the (one or more) channel / medium quality deteriorates, e.g., when the RSRP and / or SNR are relatively low, the UE 504 may need to increase its transmission power so that the network 502 can successfully receive packets from the UE 504; thus, the power headroom of the UE 504 is reduced.
[0096] On the other hand, at least one radio state 532 may be associated with one or more uplink grants received by the UE 504 from the network 502. The uplink grant may indicate the amount of radio resources (e.g., time and frequency resources) that the UE 504 is allowed to use to transmit to the network 502. For example, the UE 504 may send to the network 502 a BSR indicating how many bytes (or bits) the UE 504 is buffering for transmissions to the network 502, and the UE 504 may receive from the network 502 an uplink grant in response to the BSR. The uplink grant may indicate the amount of resources (e.g., on the PUSCH) that the UE 504 is allowed to use to transmit the buffered bytes. The uplink grant may be limited by the amount of available resources and / or network capacity / congestion, and thus, the uplink grant may grant fewer resources than the UE 504 requested via the BSR transmission.
[0097] In yet another aspect, at least one radio state 532 can be associated with the RRC mode of the UE 504. The UE 504 can operate in one of a variety of different RRC modes, such as RRC connected mode, RRC idle mode, or RRC inactive mode. In the RRC connected mode, the UE 504 can have a RAN connection established with the network 502 (e.g., in both the control plane and the user plane), and the UE access stratum (AS) context can be stored by the network 502; thus, the UE 504 can communicate unicast data with the network 502, and the network 502 can control UE mobility and measurement reporting. In the RRC idle mode, the UE 504 can control cell reselection mobility as well as PLMN selection, and thus the UE 504 can not communicate unicast data with the network 502 (although the UE 504 can continue to receive broadcast messages and paging from the network 502). In the RRC inactive mode, the UE 504 can operate in an intermediate mode between RRC connected and RRC idle such that the RRC connection with the network 502 is not fully released, and the UE 504 is able to quickly return to the RRC connected mode—for example, the UE AS context can be maintained by the network 502. The network 502 can configure the RRC mode in which the UE 504 operates, and the UE 504 can determine at least one radio state 532 to include the frequency or rate at which the UE 504 transitions to and from the RRC connected mode.
[0098] In yet another aspect, at least one radio state 532 can be associated with the DTX configuration and / or DRX configuration of the UE 504. The UE 504 can receive from the network 502 information configuring the DTX period and / or DRX period of the UE 504, which can control the period at which the UE 504 transitions between a "sleep" or relatively low power mode and a "wake" or relatively high power mode, in which the UE 504 can send data to the network 502 (for DTX) and / or receive data from the network 502 (for DRX).
[0099] The UE 504 can then configure 534 at least one of the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state among the radio states 532 and / or based on one or more traffic flows 524 (e.g., based on at least one type 526 and / or at least one priority 528 of one or more traffic flows 524). Potentially, the uplink parameter set 460 and / or the downlink parameter set 470 can be configured based on a peak data rate such as 7 Gbps, which can support Internet Packet Accelerator (IPA) and / or PCIe for the UE 504 and / or the power performance of the UE 504 for MIPS and memory management (e.g., burst MIPS and memory management). For example, for the peak data rate, the downlink packet count 472 can have been configured as 250, the downlink byte count 474 can have been configured as 450 kilobytes (K), and the downlink timer 476 can have been configured as 6 ms. However, the UE 504 can configure 534 the uplink parameter set 460 and / or the downlink parameter set 470 differently based on at least one radio state 532 and / or based on one or more traffic flows 524. Thus, the UE 504 can configure the uplink parameter set 460 and the downlink parameter set 470 for traffic flows in any direction (e.g., uplink and / or downlink), for any type of traffic flow (e.g., TCP, UDP, etc.) and / or for any data rate (e.g., because the data rate may be affected by at least one radio state 532).
[0100] As an example, the UE 504 can configure 534 at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state 532 such that when the radio state is relatively weak, e.g., when the RSRP, SNR, etc. fail to meet (e.g., are less than) a first threshold, the UE 504 can reduce one or more of the packet numbers 462, 472, the byte numbers 464, 474, and / or the duration of the timers 466, 476. For example, because in the case where the radio state deteriorates (e.g., the RSRP, SNR, etc. are decreasing), the UE 504 can benefit from sending uplink packets faster. In another example of configuring 534 at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state 532, when the power headroom is relatively low, such as when the power headroom fails to meet (e.g., is less than) a second threshold, the UE 504 can reduce one or more of the packet numbers 462, 472, the byte numbers 464, 474, and / or the duration of the timers 466, 476. For example, because in the case where the UE 504 cannot send some uplink packets in a TTI with available power headroom, the UE 504 can benefit from sending uplink packets faster.
[0101] In a further example of configuring 534 at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state 532, when the uplink grant is relatively small, such as when the uplink grant does not grant sufficient resources requested by the corresponding BSR, the UE 504 can increase one or more of the packet numbers 462, 472, the byte numbers 464, 474, and / or the duration of the timers 466, 476. For example, because when the network 502 cannot grant sufficient resources to the UE 504, the UE 504 can benefit from maintaining a larger number of packets in the uplink queue 428.
[0102] In yet another illustrative example of configuring at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state 532, when the UE 504 frequently transitions into and out of the RRC connected mode (and thus frequently transitions into and out of the RRC idle / inactive mode), such as due to proactive network triggering for balancing the radio environment, the UE 504 may reduce one or more of the packet numbers 462, 472, the byte numbers 464, 474, and / or the durations of the timers 466, 476. For example, because in the case where the UE 504 transitions out of the RRC connected mode and thus cannot send and / or receive uplink packets and / or downlink packets respectively, the UE 504 may benefit from sending uplink packets faster.
[0103] In yet another illustrative example of configuring at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state 532, when the UE 504 is configured with a relatively long DTX period and / or DRX period and thus is in sleep periods where no transmission and / or reception occurs respectively, the UE 504 may reduce one or more of the packet numbers 462, 472, the byte numbers 464, 474, and / or the durations of the timers 466, 476. For example, because the UE 504 may benefit from sending uplink packets faster and delivering downlink packets to the higher layers faster, since the UE 504 can shorten the wake-up periods during which it sends (for DTX) and / or receives (for DRX).
[0104] As an example, the UE 504 may configure at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one type 526 of one or more traffic flows 524 such that when certain types of traffic flows are established, the UE 504 may reduce one or more of the packet numbers 462, 472, byte numbers 464, 474, and / or the durations of the timers 466, 476. For example, because the UE 504 may benefit from sending uplink Ping packets faster to meet a network Ping test. In another example of configuring at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one type 526 of one or more traffic flows 524, when certain types of traffic flows are established, the UE 504 may increase or reduce one or more of the packet numbers 462, 472, byte numbers 464, 474, and / or the durations of the timers 466, 476. For example, because the UE 504 may benefit from smoothing the uplink traffic flow (e.g., TCP ACK packets) to efficiently increase the congestion window for TCP slow start.
[0105] As an example, the UE 504 may configure at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one priority 528 of one or more traffic flows 524 such that when a traffic flow is determined to be of relatively high priority, e.g., for a traffic flow with intolerable latency, the UE 504 may reduce one or more of the packet numbers 462, 472, byte numbers 464, 474, and / or the durations of the timers 466, 476. For example, because the UE 504 may benefit from sending uplink packets faster to meet applications with intolerable latency (e.g., streaming media, gaming, etc.). In another example of configuring at least one parameter in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one priority 528 of one or more traffic flows 524, when a traffic flow is determined to be of relatively low priority, e.g., for a traffic flow with tolerable latency, the UE 504 may increase one or more of the packet numbers 462, 472, byte numbers 464, 474, and / or the durations of the timers 466, 476. For example, because the UE 504 may increase power performance by allowing some latency in packet transmission and / or reception for applications with tolerable latency (e.g., an email client).
[0106] To configure 534 the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state 532 and / or based on one or more traffic flows 524, the UE 504 may set and / or may increase or decrease one or more of the uplink and / or downlink packet counts 462, 472, the uplink and / or downlink byte counts 464, 474, and / or the uplink and / or downlink timers 466, 476. In some aspects, the UE 504 may store configuration information according to which one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 will be configured based on at least one radio state 532, at least one type 526 of one or more traffic flows 524, and / or at least one priority 528 of one or more traffic flows 524. For example, the UE 504 may store configuration information that indicates the packet count, byte count, and / or duration (e.g., number of ms) according to which the uplink and / or downlink packet counts 462, 472, the uplink and / or downlink byte counts 464, 474, and / or the uplink and / or downlink timers 466, 476 should be set or adjusted (e.g., up or down) respectively for at least one radio state 532, at least one type 526 of one or more traffic flows 524, and / or at least one priority 528 of one or more traffic flows 524.
[0107] In one aspect, the UE 504 may store such configuration information in a tabular format (e.g., as a lookup table) or in another information format according to which one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 will be configured based on at least one radio state 532, at least one type 526 of one or more traffic flows 524, and / or at least one priority 528 of one or more traffic flows 524. For example, the UE 504 may store a table indicating the correspondence between the respective radio states in at least one radio state 532 and one or more values according to which the uplink and / or downlink packet counts 462, 472, the uplink and / or downlink byte counts 464, 474, and / or the uplink and / or downlink timers 466, 476 should be set and / or adjusted. Similarly, the UE 504 may store a table indicating the correspondence between the respective one of at least one type 526 and / or at least one priority 528 of one or more traffic flows 524 and one or more values according to which the uplink and / or downlink packet counts 462, 472, the uplink and / or downlink byte counts 464, 474, and / or the uplink and / or downlink timers 466, 476 should be set and / or adjusted.
[0108] On the other hand, the UE 504 may store such configuration information as one or more formulas or equations (e.g., functions), and based on such configuration information, one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 will be configured based on at least one radio state 532, at least one type 526 of one or more traffic flows 524, and / or at least one priority 528 of one or more traffic flows 524. For example, the UE 504 may store corresponding equations for each of the packet counts 462, 472, byte counts 464, 474, and timers 466, 476, and the corresponding equations take at least one radio state 532, at least one type 526 of one or more traffic flows 524, and / or at least one priority 528 of one or more traffic flows 524 as input variables; and the UE 504 may evaluate the corresponding equations to derive values, and based on these values, the corresponding ones of the packet counts 462, 472, byte counts 464, 474, and timers 466, 476 that adopt at least one radio state 532, at least one type 526 of one or more traffic flows 524, and / or at least one priority 528 of one or more traffic flows 524 will be set or adjusted.
[0109] According to one aspect, the UE 504 may prioritize one of at least one radio state 532, at least one type 526 of one or more traffic flows 524, or at least one priority 528 of one or more traffic flows 524 over the other two. For example, if the UE 504 determines that at least one priority 528 of one or more traffic flows 524 is the most important for configuring the parameter sets 460, 470, then the UE 504 may configure the uplink parameter set 460 and / or the downlink parameter set 470 according to at least one priority 528, and the UE 504 may ignore at least one type 526 and at least one radio state 532.
[0110] According to another aspect, the UE 504 may co-configure 534 the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one radio state 532, at least one type 526 of one or more traffic flows 524, or at least one priority 528 of one or more traffic flows 524. For example, the UE 504 may adjust one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 according to at least one type 526 of one or more traffic flows 524. Then, the UE 504 may adjust one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 according to at least one priority 528 of one or more traffic flows 524. Finally, the UE 504 may adjust one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 according to at least one radio state 532.
[0111] Potentially, at least one radio state 532, at least one type 526 of one or more traffic flows 524, or at least one priority 528 of one or more traffic flows 524 may correspond to conflicting settings or adjustments of the parameter sets 460, 470. For example, at least one radio state 532 may correspond to an increase in the uplink and / or downlink packet count 462, 472, while at least one priority 528 may correspond to a decrease in the uplink and / or downlink packet count 462, 472. However, the UE 504 may still configure the uplink parameter set 460 and / or the downlink parameter set 470 according to at least one radio state 532, at least one type 526 of one or more traffic flows 524, or at least one priority 528 of one or more traffic flows 524 (e.g., by applying both the increase and the decrease), e.g., because the final result of the configured uplink parameter set 460 and / or downlink parameter set 470 may be a satisfactory configuration despite at least one priority 528 of the traffic flows 524.
[0112] According to another aspect, the UE 504 may apply different weightings to at least one radio state 532, at least one type 526 of one or more traffic flows 524, or at least one priority 528 of one or more traffic flows 524. For example, if at least one type 526 of one or more traffic flows 524 is given a greater weight than at least one radio state 532 and at least one priority 528, the UE 504 may apply a greater adjustment to at least one type 526 than to at least one radio state 532 and at least one priority 528. Illustratively, the UE 504 may apply an offset, for example, by increasing the amount by which a parameter in the uplink parameter set 460 and / or the downlink parameter set 470 is adjusted for at least one type 526, and / or by decreasing the amount by which a parameter in the uplink parameter set 460 and / or the downlink parameter set 470 is adjusted for at least one radio state 532 and at least one priority 528.
[0113] In some aspects, the UE 504 may configure 534 the uplink parameter set 460 and the downlink parameter set 470 to be equivalent. That is, the UE 504 may configure the uplink packet count 462 and the downlink packet count 472 to be the same packet count, the uplink byte count 464 and the downlink byte count 474 to be the same byte count, and the uplink timer 466 and the downlink timer 476 to have the same duration. Potentially, the uplink parameter set 460 and the downlink parameter set 470 may be the same parameter set. That is, the UE 504 may store one parameter set (e.g., one of the uplink parameter set 460 or the downlink parameter set 470), and the UE 504 may apply the stored parameter set to both the uplink queue 428 and the downlink queue 438.
[0114] In some other aspects, the UE 504 may configure 534 the uplink parameter set 460 differently from the downlink parameter set 470. For example, the UE 504 may configure 534 the downlink parameter set 470 such that when the first packet set 530 includes downlink data, the first packet set 530 is transferred from the downlink queue 438 to the higher layers 422, 424, 426 at a relatively uniform rate according to the actual data rate configured between the UE 504 and the network 502. In doing so, the UE 504 may cause one or more of the higher layers 422, 424, 426 (e.g., the transport layer of the network stack 422) to generate ACK packets at a relatively uniform rate rather than a more bursty rate.
[0115] Additionally, the UE 504 may configure the uplink parameter set 460 to further smooth the flow of the uplink ACK packets 414, rather than causing a bursty uplink flow of the ACK packets 414. The smoothed uplink traffic flow may include relatively consistent packet transmissions per transmission time interval (TTI). Although the number of packets per TTI may vary for the smoothed uplink traffic flow, there will be very few (if any) empty TTIs and cases where a TTI with the maximum or near-maximum number of packets follows.
[0116] By smoothing the flow of uplink packet transmissions (thereby preventing bursty uplink traffic), the UE 504 can prevent the congestion control of the network 502 (and / or other mechanisms that may potentially introduce latency to the downlink flow of data packets) from being initiated. For example, the UE 504 can facilitate a rapid increase in the congestion control window for TCP slow start control by smoothing the flow and uplink packet transmissions. For instance, since bursty uplink packet transmissions may cause congestion at the network 502 and / or may increase the probability of dropped ACK packets, the dropped ACK packets will trigger a reduction in the congestion control window for TCP slow start, as if the network 502 is congested.
[0117] For the uplink traffic flow, the UE 504 may similarly configure the uplink parameter set 460 to result in a relatively smooth flow of the uplink data packets 412. Thus, the UE 504 can prevent congestion at the network 502 and / or reduce the probability of dropped or lost packets at the network 502. Furthermore, the UE 504 may receive a relatively smooth flow of the downlink ACK packets 418 from the network 502 in response to the uplink data packets 412. Moreover, the UE 504 may configure the downlink parameter set 470 differently from the uplink parameter set 460, for example, in order to deliver the downlink ACK packets 418 to the higher layers 422, 424, 426, thereby reducing the probability of congestion and / or dropped or lost packets.
[0118] As described above, a first set of packets 530 can be accumulated in the downlink queue 438 at the downlink PDCP layer 442. In some aspects, the UE 504 can reorder the first set of packets 530, for example, by sequentially reordering the first set of packets 530 according to the respective sequence numbers (e.g., PDCP sequence numbers) indicated in each packet in the first set of packets 530. For example, if the first set of packets 530 is received in a first RAT (e.g., LTE RAT) and thus passed from the PHY layer to the downlink first MAC layer 446a and then to the downlink first RLC layer 444a, the first set of packets 530 can be reordered at the downlink PDCP layer 442. In some other aspects, the UE 504 can avoid reordering the first set of packets 530, for example, when the first set of packets 530 is received in a second RAT (e.g., 5G NR RAT) and thus passed from the PHY layer to the downlink second MAC layer 446b and then to the downlink second RLC layer 444b.
[0119] The UE 504 can determine whether at least one parameter in the downlink parameter set 470 is met or satisfied. For example, the UE 504 can determine whether there is at least one of the following: (1) meeting or exceeding the downlink packet count 472 (e.g., whether the number of the first set of packets 530 accumulated in the downlink queue 438 plus any other packets that may be accumulated therein is greater than or equal to the configured downlink packet count 472); (2) meeting or exceeding the downlink byte count 474 (e.g., whether the total number of bytes accumulated over all packets in the first set of packets 530 accumulated in the downlink queue 438 plus the bytes of any other packets that may be accumulated therein is greater than or equal to the downlink byte count 474), and / or whether the downlink timer 476 has expired (e.g., whether the period during which the first set of packets 530 has been accumulated in the downlink queue 438 is greater than or equal to the duration of the downlink timer 476, and the downlink timer 476 can start when the first packet in the first set of packets 530 is accumulated in the downlink queue 438, or can start based on another packet or event).
[0120] When the UE 504 determines that at least one parameter in the downlink parameter set 470 is met or satisfied, the UE 504 may transfer 536 the first packet set 530 from the downlink queue 438 to a higher layer of the UE 504. For example, when the UE 504 determines that at least one parameter in the downlink parameter set 470 is met or satisfied, the UE 504 may release the first packet set 530 accumulated in the downlink queue 438 to the hardware block 426, the operating system 424, and / or the network stack 422 (potentially, the first packet set 530 may be sequentially passed up to the higher layers 426, 424, 422).
[0121] If the first packet set 530 includes downlink data packets 416 (e.g., TCP data packets), the UE 504 may generate an ACK message based on the downlink data packets 416. For example, the network stack 422 (e.g., the transport layer and / or the TCP layer) may generate a corresponding ACK packet in the uplink ACK packet 414 (e.g., a TCP ACK packet) in response to each successfully received (e.g., successfully decoded) data packet in the downlink data packets 416. The ACK packet 414 may then be passed down the stack 400 from the network stack 422 to the operating system 424 and then to the hardware block 426. From the hardware block 426, the ACK packet 414 may be accumulated in the uplink queue 428.
[0122] The UE 504 may determine whether at least one parameter in the uplink parameter set 460 is met or satisfied. For example, the UE 504 may determine whether at least one of the following exists: (1) meets or exceeds the uplink packet count 462 (e.g., the number of ACK packets 414 accumulated in the uplink queue 428 plus any other packets that may be accumulated therein is greater than or equal to the configured uplink packet count 462); (2) meets or exceeds the uplink byte count 464 (e.g., the total number of bytes accumulated over all ACK packets 414 accumulated in the uplink queue 428 plus the bytes of any other packets that may be accumulated therein is greater than or equal to the uplink byte count 464), and / or whether the uplink timer 466 has expired (e.g., the period during which the ACK packets 414 have been accumulated in the uplink queue 428 is greater than or equal to the duration of the uplink timer 466, and the uplink timer 466 may start when the first ACK packet in the ACK packets 414 is accumulated in the uplink queue 428, or may start based on another packet or event).
[0123] When at least one parameter in the uplink parameter set 460 is met or satisfied, the UE 504 may deliver 538 the ACK packet 414 from the uplink queue 428 to a lower layer of the UE 504. For example, when the UE 504 determines that at least one parameter in the uplink parameter set 460 is met or satisfied, the UE 504 may release the ACK packet 414 accumulated in the uplink queue 428 to the uplink PDCP layer 432. The uplink PDCP layer 432 may then deliver the ACK packet 414 released from the uplink queue 428 to a lower layer of the uplink radio stack.
[0124] If the ACK packet 414 is based on a data packet received in the first RAT, the uplink PDCP layer 432 may deliver the ACK packet 414 down to the uplink first RLC layer 434a, which may deliver the ACK packet 414 to the uplink first MAC layer 436a. The ACK packet 414 may then be delivered to the PHY layer for transmission in the uplink of one or more traffic flows 524 via the first RAT. If the ACK packet 414 is based on a data packet received in the second RAT, the uplink PDCP layer 432 may deliver the ACK packet 414 down to the uplink second RLC layer 434b, which may deliver the ACK packet 414 to the uplink second MAC layer 436b. The ACK packet 414 may then be delivered to the PHY layer for transmission in the uplink of one or more traffic flows 524 via the second RAT.
[0125] The UE 504 may then send a second packet set 540 including the ACK packet 414 to the network 502, and these ACK packets are delivered down the stack for communication with the network 502 based on the uplink parameter set 460 and / or the downlink parameter set 470. Illustratively, the UE 504 may communicate with the network 502 based on the downlink parameter set 470 and based on the uplink parameter set 460, where the downlink parameter set 470 may control the rate at which downlink packets (e.g., downlink data packets and / or downlink ACK packets) are delivered to the higher layers 426, 424, 422, and the uplink parameter set 460 may control the rate at which uplink packets (e.g., uplink ACK packets and / or uplink data packets) are delivered down the uplink radio stack 430 for transmission to the network 502.
[0126] The UE 504 can perform similar operations when passing the uplink data packet 412 down the stack 400 and the downlink ACK packet 418 up the stack 400. For example, the UE 504 (e.g., the network stack 422) can generate at least a portion of the uplink data packet 412 based on the downlink ACK packet 418 passed up the stack 400, such as when the UE 504 retransmits a packet in response to a lost or undetected downlink ACK packet and / or controls the rate of generating the uplink data packet based on the received downlink ACK packet.
[0127] In some aspects, the UE 504 can dynamically reconfigure the uplink parameter set 460 and / or the downlink parameter set 470. For example, when one or more of at least one type 526 of one or more traffic flows 524, at least one priority 528 of one or more traffic flows 524, and / or at least one radio state 532 changes, the UE 504 can reconfigure one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470. Thus, the UE 504 can dynamically adjust one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 with the traffic flow (e.g., closing an old connection and / or opening a new connection) and / or the radio state (e.g., improved channel quality, reconfigured power margin, etc.) so that the uplink parameter set 460 and / or the downlink parameter set 470 is suitable for the UE power and performance with changing traffic flows, data rates, and radio states.
[0128] Figure 6 is a flowchart of a method 600 for wireless communication. The method 600 can be performed by a UE (e.g., UE 104, 350, 504; apparatus 702 / 702'; processing system 814, which can include a memory 360 and which can be the entire UE 104, 350, 504 or a component of the UE 104, 350, 504, such as the TX processor 368, the RX processor 356, and / or the controller / processor 359). According to various aspects of the method 600, one or more of the illustrated operations can be swapped, omitted, and / or performed simultaneously.
[0129] At 602, the UE may determine at least one type of at least one traffic flow established between the UE and the network. In some aspects, the at least one traffic flow may include a TCP traffic flow and / or a UDP traffic flow, and the at least one traffic flow may include an uplink traffic flow and / or a downlink traffic flow. The UE may determine that at least one type of at least one traffic flow includes at least one direction of the at least one traffic flow (e.g., uplink and / or downlink), and / or may include at least one protocol associated with the at least one traffic flow (e.g., TCP, UDP, Ping, etc.). For example, the UE may establish at least one traffic flow with the network, and the UE may examine packets sent and / or received on the at least one traffic flow. Based on the packet examination, the UE may determine at least one type of at least one traffic flow. Refer to Figure 5 , the UE 504 may determine at least one type 526 of one or more traffic flows 524.
[0130] At 604, the UE may determine at least one priority of the at least one traffic flow. For example, the UE may examine packets sent and / or received on the at least one traffic flow. Based on the packet examination, the UE may determine whether the data communicated on the at least one traffic flow is latency-tolerant or latency-intolerant. When the UE determines that the data communicated on the at least one traffic flow is latency-tolerant, the UE may assign a relatively low priority to the at least one traffic flow. However, when the UE determines that the data communicated on the at least one traffic flow is latency-intolerant, the UE may assign a relatively high priority to the at least one traffic flow. Refer to Figure 5 , the UE 504 may determine at least one priority 528 of one or more traffic flows.
[0131] At 606, the UE may determine one or more radio states associated with the at least one traffic flow. The one or more radio states may include one or more of the following: the quality of the channel on which the UE communicates with the network, the power headroom configured for transmissions performed by the UE, the size of the uplink grant received from the network, the transition between RRC idle mode or RRC inactive mode and RRC connected mode, the DTX mode of the UE, or the DRX mode of the UE. Refer to Figure 5 , the UE 504 may determine at least one radio state 532 associated with the at least one traffic flow 524.
[0132] In some aspects, a UE can determine the quality of a channel by receiving one or more signals from a network on the channel and by measuring a value indicative of the channel quality (e.g., RSRP, SNR, SINR, etc.) based on the received one or more signals. In some other aspects, a UE can determine a power headroom by determining a maximum transmit power and then by calculating a difference obtained by subtracting the power consumed by the UE for a current transmission (e.g., a transmission on an uplink data channel such as PUSCH) from the maximum transmit power. Then, the UE can determine whether the difference is positive or non-positive (i.e., zero or negative), where positive can indicate that the UE has some remaining power headroom and non-positive can indicate that the UE does not have remaining power headroom.
[0133] In some further aspects, a UE can determine the size of an uplink grant received from a network by first sending a BSR to the network and then by receiving an uplink grant from the network based on the sent BSR. The UE can decode the received uplink grant to determine the amount of resources allocated to the UE for uplink transmission to the network. The UE can compare the allocated amount of resources with a threshold amount of resources, which can be based on the average amount of resources granted to the UE through a set of previous uplink grants. If the UE determines that the allocated amount of resources does not meet (e.g., is less than) the threshold amount of resources, the UE can determine that the uplink grant is relatively small. If the UE determines that the allocated amount of resources meets (e.g., conforms to or exceeds) the threshold amount of resources, the UE can determine that the uplink grant is not relatively small.
[0134] In other aspects, a UE can determine a transition between RRC idle or RRC inactive mode and RRC connected mode by first counting each first transition from RRC idle or RRC inactive mode to RRC connected mode within a first time period and then by counting each second transition from RRC connected mode to RRC idle or RRC inactive mode within the first time period. The UE can add the first and second transitions within the first time period and can compare the sum with a threshold. If the UE determines that the sum meets (e.g., conforms to or exceeds) the threshold, the UE can determine that the UE frequently transitions into and out of RRC connected mode. If the UE determines that the sum fails to meet (e.g., is less than) the threshold, the UE can determine that the UE does not frequently transition into and out of RRC connected mode.
[0135] In other aspects, the UE can determine the DTX mode of the UE by first receiving from the network one or more messages indicating at least one of the following: (1) the length of the DTX "sleep" period, during which the UE is configured to operate in a low-power mode and avoid sending signaling to the network; and / or (2) the length of the DTX "wake-up" period, during which the UE is configured to operate in a high-power mode and is allowed to send signaling to the network. The UE can compare the DTX "sleep" period length with a first DTX threshold, and / or can compare the DTX "wake-up" period length with a second DTX threshold. If the UE determines that the DTX "sleep" period length meets (e.g., conforms to or exceeds) the first DTX threshold and / or determines that the DTX "wake-up" period length fails to meet (e.g., is less than) the second DTX threshold, then the UE can determine that the UE is configured with a relatively long DTX period, during which the UE is configured to avoid sending signaling to the network. If the UE determines that the DTX "sleep" period length fails to meet (e.g., is less than) the first DTX threshold and / or determines that the DTX "wake-up" period length meets (e.g., conforms to or exceeds) the second DTX threshold, then the UE can determine that the UE is not configured with a relatively long DTX period, during which the UE is configured to avoid sending signaling to the network.
[0136] In additional aspects, the UE can determine the DRX mode of the UE by first receiving from the network one or more messages indicating at least one of the following: (1) the length of the DRX "sleep" period, during which the UE is configured to operate in a low-power mode and avoid receiving signaling from the network; and / or (2) the length of the DRX "wake-up" period, during which the UE is configured to operate in a high-power mode and can receive signaling from the network. The UE can compare the DRX "sleep" period length with a first DRX threshold and / or can compare the DRX "wake-up" period length with a second DRX threshold. If the UE determines that the DRX "sleep" period length meets (e.g., conforms to or exceeds) the first DRX threshold and / or determines that the DRX "wake-up" period length fails to meet (e.g., is less than) the second DRX threshold, then the UE can determine that the UE is configured with a relatively long DRX period, during which the UE is configured to avoid receiving signaling from the network. If the UE determines that the DRX "sleep" period length fails to meet (e.g., is less than) the first DRX threshold and / or determines that the DRX "wake-up" period length meets (e.g., conforms to or exceeds) the second DRX threshold, then the UE can determine that the UE is not configured with a relatively long DRX period, during which the UE is configured to avoid receiving from the network.
[0137] At 608, the UE may configure a set of parameters associated with the transfer of packets of at least one traffic flow between the lower layer and the higher layer of the UE based on at least one type of one or more traffic flows, at least one priority of one or more traffic flows, and / or one or more radio states. For example, the UE may determine a quantity corresponding to at least one priority of one or more traffic flows and / or one or more radio states (e.g., by accessing a lookup table and / or other configuration information indicating such correspondence), where at least one parameter in the set of parameters is set and / or adjusted (e.g., increased or decreased) according to this quantity. The UE may then apply the determined quantity to at least one of the parameters, e.g., by adding the determined quantity to the current value of at least one of the parameters or subtracting the determined quantity from the current value of at least one of the parameters, or by setting at least one of the parameters in the set of parameters to the determined quantity. Thus, the UE may configure the set of parameters by determining the corresponding values of one or more parameters in the set of parameters and by storing the corresponding value of each of the one or more parameters in the set of parameters.
[0138] Reference Figures 4 - 5 , the UE 504 may configure one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one type 526 of one or more traffic flows 524, at least one priority 528 of one or more traffic flows 524, and / or one or more radio states 532. Specifically, the UE 504 may configure one or more of the number of packets 462, the number of bytes 464, and / or the duration of the timer 466 in the uplink parameter set 460, and / or the UE 504 may configure one or more of the number of packets 472, the number of bytes 474, and / or the duration of the timer 476 in the downlink parameter set 470.
[0139] The set of parameters may include at least one of the number of packets, the number of bytes, and / or the timer duration. According to various aspects, the set of parameters may include an uplink parameter set and a downlink parameter set. Thus, the set of parameters may include both an uplink parameter set and a downlink parameter set, each parameter set including a corresponding number of packets, a corresponding number of bytes, and / or a corresponding timer duration.
[0140] The uplink parameter set may be associated with the transfer of packets of at least one traffic flow from a higher layer of the UE to a lower layer of the UE. For example, the UE may include an uplink queue in which uplink packets from the higher layer are accumulated before being transferred to the lower layer for transmission (e.g., sent to the network on at least one traffic flow). When at least one parameter in the uplink parameter set is satisfied, the UE may release the packets from the uplink queue, such that the accumulated uplink packets are transferred to the lower layer of the UE.
[0141] The downlink parameter set may be associated with the transfer of packets of at least one traffic flow from a lower layer of the UE to a higher layer of the UE. For example, the UE may include a downlink queue in which downlink packets from the lower layer (e.g., received from the network on at least one traffic flow) are accumulated before being transferred to the higher layer. When at least one parameter in the downlink parameter set is satisfied, the UE may release the packets from the downlink queue, such that the accumulated downlink packets are transferred to the higher layer of the UE.
[0142] At 610, the UE may avoid configuring a parameter set associated with the transfer of packets of at least one traffic flow between a lower layer and a higher layer of the UE based on a peak data rate configured between the UE and the network. For example, first, the UE may determine the peak data rate configured between the UE and the network, and next, the UE may determine the respective values of one or more parameters in the parameter set based on other information different from the peak data rate. Referring Figures 4 - 5 , UE 504 may avoid configuring one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 based on the peak data rate configured between UE 504 and network 502, and instead, UE 504 may configure one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 based on at least one type 526 of one or more traffic flows 524, at least one priority 528 of one or more traffic flows 524, and / or one or more radio states 532.
[0143] At 612, the UE may transfer a first set of packets from the downlink queue to a higher layer of the UE based on a parameter set. The UE may receive the first set of packets from the network on at least one traffic flow, and the first set of packets may include data packets and ACK packets. The UE may transfer the first set of packets upward above a set of lower layers of the UE (e.g., PHY layer, MAC layer, and / or RLC layer). For example, the UE may obtain the first set of packets at the PDCP layer, and the UE may accumulate (e.g., store, buffer, etc.) the first set of packets in the downlink queue of the PDCP layer. The UE may then determine whether one or more parameters in the parameter set associated with the downlink queue are satisfied.
[0144] When determining whether one or more parameters in the parameter set associated with the downlink queue are satisfied, the UE may determine whether the number of packets accumulated in the downlink queue satisfies the downlink packet number parameter in the parameter set, whether the number of bytes accumulated in the downlink queue satisfies the downlink byte number parameter in the parameter set, and / or whether the timer duration for the downlink queue (e.g., expires) is satisfied. If none of the parameters in the parameter set associated with the downlink queue are satisfied, the UE may avoid releasing packets from the downlink queue and may continue to accumulate received packets in the downlink queue. However, if at least one parameter in the parameter set associated with the downlink queue is satisfied, the UE may release packets including the received first set of packets from the downlink queue and may transfer the packets upward to a higher layer of the UE. The higher layer of the UE may include, for example, an operating system, a data layer, and / or a network stack, and the network stack may include a transport layer (e.g., TCP layer) and / or an application layer.
[0145] Reference Figures 4 - 5 , the UE 504 may receive a first set of packets 530 from the network 502 on one or more traffic flows 524. The first set of packets 530 may include data packets 416 and / or ACK packets 418, which may be received through lower layers of the downlink radio stack 440. The UE 504 may accumulate the data packets 416 and / or ACK packets 418 in the downlink queue 438. The UE 504 may determine whether one or more parameters in the downlink parameter set 470 are satisfied. For example, the UE 504 may determine whether one or more of the downlink packet numbers 472 are satisfied, whether one or more of the downlink byte numbers 474 are satisfied, and / or whether the downlink timer 476 (e.g., expires) is satisfied. When the UE 504 determines that one or more parameters in the downlink parameter set 470 are satisfied, the UE 504 may transfer 536 the packets from the downlink queue 438 to a higher layer such as the hardware block 426, the operating system 424, and / or the network stack 422 (e.g., transport layer and / or application layer).
[0146] At 614, the UE may pass a second set of packets from the uplink queue to a lower layer of the UE based on a parameter set. In some aspects, the UE may generate the second set of packets based on a first set of packets received from the network on at least one traffic flow - for example, the second set of packets may include ACK packets respectively corresponding to successfully received data packets in the first set of packets. In some other aspects, the UE may generate the second set of packets to include data packets according to which the UE may receive ACK packets from the network.
[0147] The UE may pass the second set of packets down to a higher layer set of the UE, such as an application layer, a transport layer, a data layer, an operating system, and / or a hardware block. The UE may obtain the second set of packets at the PDCP layer, and the UE may accumulate (e.g., store, buffer, etc.) the second set of packets in the uplink queue of the PDCP layer. The UE may then determine whether one or more parameters in the parameter set associated with the uplink queue are satisfied.
[0148] When determining whether one or more parameters in the parameter set associated with the uplink queue are satisfied, the UE may determine whether the number of packets accumulated in the uplink queue satisfies the uplink packet number parameter in the parameter set, whether the number of bytes accumulated in the uplink queue satisfies the uplink byte number parameter in the parameter set, and / or whether the timer duration of the uplink queue (e.g., expires) is satisfied. If none of the parameters associated with the uplink queue are satisfied, the UE may avoid releasing packets from the uplink queue and may continue to accumulate the generated packets in the uplink queue. However, if at least one parameter in the parameter set associated with the uplink queue is satisfied, the UE may release packets including the generated second set of packets from the uplink queue and may pass the packets down to a lower layer of the UE. The lower layer of the UE may include, for example, a radio stack having an RLC layer, a MAC layer, and / or a PHY layer.
[0149] Reference Figures 4 - 5, the UE 504 can generate data packets 412 and / or ACK packets 414 for transmission to the network 502 on one or more traffic flows 524. The higher layers of the UE 504 can generate data packets 412 and / or ACK packets 414, such as the application layer, the transport layer, and / or other layers of the network stack 422. The UE 504 can accumulate data packets 412 and / or ACK packets 414 in the uplink queue 428. The UE 504 can determine whether one or more parameters in the uplink parameter set 460 are satisfied. For example, the UE 504 can determine whether one or more of the uplink packet count 462 are satisfied, whether one or more of the uplink byte count 464 are satisfied, and / or whether the uplink timer 466 (e.g., expires) is satisfied. When the UE 504 determines that one or more parameters in the uplink parameter set 460 are satisfied, the UE 504 can pass 538 the packets from the uplink queue 428 to the lower layers. For example, when the UE 504 communicates with the network 502 in the first RAT, the PDCP layer 432 can release the packets from the uplink queue 428 to the first RLC layer 434a, and then to the first MAC layer 436a, and the PHY layer can send the packets as a second packet set 540 to the network 502 on one or more traffic flows 524.
[0150] At 616, the UE can communicate with the network on at least one traffic flow based on a parameter set. For example, the UE can send a second packet set to the network, where the second packet set has been released from the uplink queue based on a parameter set associated with the uplink queue. Additionally, the UE can receive packets from the network based on a parameter set associated with the downlink queue. For example, because the UE can pass downlink packets to the higher layers based on a parameter set associated with the downlink queue, and / or can generate uplink packets in response to downlink packets based on a parameter set associated with the downlink queue. Refer to Figure 5 , the UE 504 can communicate the second packet set 540 with the network 502 on one or more traffic flows 524 based on the uplink parameter set 460 and / or the downlink parameter set 470.
[0151] At 618, the UE may reconfigure one or more parameters in a parameter set based on at least one of a change in one or more radio states and / or a change in at least one traffic flow. For example, the UE may determine that one or more radio states have changed, and the UE may determine an adjustment to one or more parameters in the parameter set based on the one or more changed radio states. In another example, the UE may determine that at least one type and / or at least one priority of at least one traffic flow has changed, and the UE may determine an adjustment to one or more parameters in the parameter set based on the at least one type and / or at least one priority. The UE may then set or adjust the corresponding parameters among the one or more parameters based on the determined adjustment. Refer to Figures 4 - 5 , the UE 504 may reconfigure one or more parameters in the uplink parameter set 460 and / or the downlink parameter set 470 (e.g., as configuration 534) based on a change in at least one type 526 of one or more traffic flows 524, a change in at least one priority 528 of one or more traffic flows 524, and / or a change in one or more radio states 532.
[0152] Figure 7 is a conceptual data flow diagram 700 showing the data flow between different units / components in an exemplary device 702. The device 702 may be a UE. The device 702 may include a determination component 708 that determines at least one type of at least one traffic flow established between the device 702 and a network including a base station 750, e.g., as described in 602 in connection with Figure 6 . In some aspects, the at least one traffic flow may include a TCP traffic flow and / or a UDP traffic flow, and the at least one traffic flow may include an uplink traffic flow and / or a downlink traffic flow. The determination component 708 may determine that at least one type of at least one traffic flow includes at least one direction of the at least one traffic flow (e.g., uplink and / or downlink) and / or may include at least one protocol associated with the at least one traffic flow (e.g., TCP, UDP, Ping, etc.).
[0153] The determination component 708 may also determine at least one priority associated with the at least one traffic flow, e.g., as described in 604 in connection with Figure 6 . The determination component 708 may also determine one or more radio states associated with the at least one traffic flow. The one or more radio states may include one or more of the following: the quality of the channel on which the device 702 communicates with the base station 750, the power headroom configured for transmission by the device 702, the size of the uplink grant received from the base station 750, the transition between the RRC idle mode or the RRC inactive mode and the RRC connected mode, the DTX mode of the device 702, and / or the DRX mode of the device 702.
[0154] The apparatus 702 may further include a configuration component 710 that may configure a set of parameters associated with transferring packets of at least one traffic flow between the first layer aggregation component 712 and the second layer aggregation component 714 based on at least one type of one or more traffic flows, at least one priority of one or more traffic flows, and / or one or more radio states. For example, as described in 608 in connection with Figure 6 The set of parameters may include at least one of the number of packets, the number of bytes, and / or the timer duration. According to various aspects, the set of parameters may include an uplink parameter set and a downlink parameter set. Thus, the set of parameters may include both an uplink parameter set and a downlink parameter set, each parameter set including a corresponding number of packets, a corresponding number of bytes, and / or a corresponding timer duration.
[0155] The uplink parameter set may be associated with transferring packets of at least one traffic flow from the second layer aggregation component 714 to the first layer aggregation component 712. For example, the configuration component 710 may include an uplink queue in which uplink packets from the second layer aggregation component 714 are accumulated before being transferred to the first layer aggregation component 712 for transmission. When at least one parameter in the uplink parameter set is satisfied, the configuration component 710 may release the packets from the uplink queue, such that the accumulated uplink packets are transferred to the first layer aggregation component 712.
[0156] The downlink parameter set may be associated with transferring packets of at least one traffic flow from the first layer aggregation component 712 to the second layer aggregation component 714. For example, the configuration component 710 may include a downlink queue in which downlink packets from the first layer aggregation component 712 are accumulated before being transferred to the second layer aggregation component 714. The configuration component may release the packets from the downlink queue when at least one parameter in the downlink parameter set is satisfied, such that the accumulated downlink packets are transferred to the second layer aggregation component 714.
[0157] The configuration component 710 may avoid configuring a set of parameters associated with transferring packets of at least one traffic flow between the first layer aggregation component 712 and the second layer aggregation component 714 based on a peak data rate configured between the apparatus 702 and the base station 750. For example, as described in 610 in connection with Figure 6
[0158] The configuration component 710 may also transfer a first set of packets from the downlink queue to the second layer aggregation component 714 based on the set of parameters. For example, as described in connection with Figure 6 as described in 612. The configuration component 710 can also transfer a second set of packets from the uplink queue to the first-layer set of components 712 based on a set of parameters, e.g., as described in Figure 6 614. In some aspects, the second-layer set of components 714 can generate a second set of packets based on a first set of packets received from the base station 750 on at least one traffic flow - e.g., the second set of packets can include ACK packets respectively corresponding to the data packets successfully received in the first set of packets.
[0159] The receiving component 704 and / or the transmitting component 706 can communicate with the base station 750 on at least one traffic flow based on a set of parameters, as described in Figure 6 616. For example, the transmitting component 706 can send a second set of packets to the base station 750, and the second set of packets can have been released from the uplink queue based on a set of parameters associated with the uplink queue. Additionally, the receiving component 704 can receive packets from the base station 750 based on a set of parameters associated with the downlink queue.
[0160] In some aspects, the configuration component 710 can reconfigure one or more parameters in the set of parameters based on at least one of a change in one or more radio states and / or a change in at least one traffic flow, e.g., as described in Figure 6 618.
[0161] The apparatus can include additional components that perform each block of the algorithms in the flowcharts described above Figure 6 . Thus, each block in the flowcharts described above Figure 6 can be performed by a component, and the apparatus can include one or more of these components. The components can be one or more hardware components specifically configured to perform the process / algorithm, implemented by a processor configured to perform the process / algorithm, stored within a computer-readable medium for implementation by the processor, or some combination thereof.
[0162] Figure 8FIG. 800 is a schematic diagram illustrating an example of a hardware implementation of apparatus 702' employing processing system 814. Processing system 814 can be implemented with a bus architecture, generally represented by bus 824. Depending on the particular application of processing system 814 and overall design constraints, bus 824 can include any number of interconnected buses and bridges. Bus 824 links together various circuits of one or more processors and / or hardware components represented by processor 804, components 704, 706, 708, 710, 712, 714, and computer-readable medium / memory 806. Bus 824 can also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art and will not be described further herein.
[0163] Processing system 814 can be coupled to transceiver 810. Transceiver 810 is coupled to one or more antennas 820. Transceiver 810 provides means for communicating with various other devices via a transmission medium. Transceiver 810 receives signals from one or more antennas 820, extracts information from the received signals, and provides the extracted information to processing system 814, specifically to receiving component 704. In addition, transceiver 810 receives information from processing system 814, specifically transmission component 706, and based on the received information, generates signals to be applied to one or more antennas 820. Processing system 814 includes processor 804 coupled to computer-readable medium / memory 806. Processor 804 is responsible for general processing, including executing software stored in computer-readable medium / memory 806. When executed by processor 804, the software causes processing system 814 to perform the various functions described above for any particular apparatus. Computer-readable medium / memory 806 can also be used to store data manipulated when the software is executed by processor 804. Processing system 814 also includes at least one of components 704, 706, 708, 710, 712, 714. The components can be software components that run in processor 804, reside / stored in computer-readable medium / memory 806, one or more hardware components coupled to processor 804, or some combination thereof. Processing system 814 can be a component of UE 350 and can include at least one of memory 360 and / or TX processor 368, RX processor 356, and controller / processor 359. Alternatively, processing system 814 can be the entire UE (e.g., see Figure 3 UE 350).
[0164] In one configuration, a device 702 / 702' for wireless communication includes units for determining one or more radio states associated with at least one traffic flow between the device 702 / 702' and a network. The device 702 / 702' includes units for configuring a set of parameters associated with the transfer of packets of at least one traffic flow between a lower layer and a higher layer of the device 702 / 702' based on the one or more radio states. The device 702 / 702' includes units for communicating with the network, based on the set of parameters, a first set of packets for at least one traffic flow.
[0165] In one aspect, the one or more radio states are based on one or more of the following: the quality of the channel on which the device 702 / 702' communicates with the network, the power headroom configured for transmission by the device 702 / 702', the size of the uplink grant received from the network, the transition between RRC idle mode or RRC inactive mode and RRC connected mode, the DTX mode of the device 702 / 702', or the DRX mode of the device 702 / 702'. The device 702 / 702' may include units for determining at least one type of at least one traffic flow, and at least one type of at least one traffic flow includes at least one of at least one direction of at least one traffic flow or at least one protocol of at least one traffic flow, and the set of parameters is also configured based on at least one type of at least one traffic flow.
[0166] The device 702 / 702' may also include units for determining at least one priority associated with at least one traffic flow, and the set of parameters is also configured based on at least one priority associated with at least one traffic flow. In one aspect, the set of parameters includes at least one of the number of bytes, the number of packets, or the timer duration.
[0167] The device 702 / 702' may also include units for avoiding configuring the set of parameters based on the peak data rate associated with at least one traffic flow. The device 702 / 702' may also include units for transferring a second set of packets from a PDCP downlink queue to a higher layer based on the set of parameters, where the second set of packets is received from the network; and for transferring the first set of packets from the higher layer to a PDCP uplink queue for transmission to the network, and the first set of packets includes ACK feedback based on the second set of packets.
[0168] In one aspect, the lower layer includes a PDCP layer, and the higher layer includes a TCP layer. In one aspect, at least one traffic flow includes at least one of a TCP traffic flow or a UDP protocol traffic flow. In one aspect, the parameter set includes at least one of one or more downlink cumulative triggers or one or more uplink cumulative triggers. The apparatus 702 / 702' may further include units for reconfiguring one or more parameters in the parameter set based on at least one of a change in one or more radio states or a change in at least one traffic flow.
[0169] The above units may be one or more of the above components of the apparatus 702 and / or the processing system 814 of the apparatus 702' configured to perform the functions described by the above units. As described above, the processing system 814 may include a TX processor 368, an RX processor 356, and a controller / processor 359. Thus, in one configuration, the above units may be the TX processor 368, the RX processor 356, and the controller / processor 359 configured to perform the functions described by the above units.
[0170] It should be understood that the specific order or hierarchy of the blocks in the disclosed process / flowchart is an illustration of an example scenario. Based on design preferences, it is understood that the specific order or hierarchy of the blocks in the process / flowchart can be rearranged. Additionally, some blocks may be combined or omitted. The appended method claims present the elements of the various blocks in an exemplary order and are not meant to be limited to the specific order or hierarchy presented.
[0171] The foregoing description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein can be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the literal claims, where the reference to an element in the singular is not intended to mean "one and only one" unless specifically so stated, but rather "one or more". The word "exemplary" is used herein to mean "serving as an example, instance, or illustration". Any aspect described herein as "exemplary" is not necessarily to be construed as preferred or superior to other aspects. Unless specifically stated otherwise, the term "some" means one or more. Combinations such as "at least one of A, B, or C", "one or more of A, B, or C", "at least one of A, B, and C", "one or more of A, B, and C", and "any combination of A, B, C, or thereof" include any combination of A, B, and / or C, and may include multiple A's, multiple B's, or multiple C's. Specifically, combinations such as "at least one of A, B, or C", "one or more of A, B, or C", "at least one of A, B, and C", "one or more of A, B, and C", and "any combination of A, B, C, or thereof" can be only A, only B, only C, A and B, A and C, B and C, or A and B and C, where any such combination can include one or more members of A, B, or C. All structural and functional equivalents of the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. The words "module", "mechanism", "requirement", "device", etc. may not substitute for the word "means". Thus, no claim element is to be construed as a means-plus-function unless the element is expressly recited using the phrase "means for...".
Claims
1. A method for wireless communication by a user equipment (UE), comprising: Determining one or more radio states associated with at least one traffic flow between the UE and a network; Determining at least one type of the at least one traffic flow; Setting a buffer configured to buffer packets of the at least one traffic flow at a first layer before the packets are released from the buffer to a second layer, wherein one of the first layer or the second layer includes a lower layer of a protocol stack of the UE and the other of the first layer or the second layer includes a higher layer of the protocol stack of the UE; Configuring one or more cumulative triggers associated with the buffer based on the one or more radio states and the at least one type of the at least one traffic flow, buffering of the packets at the buffer being based on at least one of the one or more cumulative triggers, the one or more cumulative triggers including a number of bytes, a number of packets, or a timer duration, and wherein the cumulative trigger relates to a condition to be met for the packets buffered in the buffer to be released from the buffer to the second layer; and Communicating, with the network, the packets of the at least one traffic flow based on the cumulative trigger.
2. The method according to claim 1, wherein The one or more radio states are based on one or more of the following: Quality of a channel on which the UE communicates with the network, A power headroom configured for transmission by the UE, Size of an uplink grant received from the network, A transition between a radio resource control (RRC) idle mode or RRC inactive mode and an RRC connected mode, A discontinuous transmission (DTX) mode of the UE, or A discontinuous reception (DRX) mode of the UE.
3. The method according to claim 1, wherein, The at least one type of the at least one traffic flow includes at least one of at least one direction of the at least one traffic flow or at least one protocol of the at least one traffic flow.
4. The method according to claim 1, further comprising: Determining at least one priority associated with the at least one traffic flow, wherein the one or more cumulative triggers are further configured based on the at least one priority associated with the at least one traffic flow.
5. The method according to claim 4, wherein, The one or more cumulative triggers are further configured based on different weightings of the one or more radio states, the at least one type of the at least one traffic flow, and the at least one priority associated with the at least one traffic flow.
6. The method according to claim 1, further comprising: Avoiding configuring the cumulative trigger based on a peak data rate associated with the at least one traffic flow.
7. The method according to claim 1, further comprising: Based on the cumulative trigger, delivering a second set of packets from a packet data convergence protocol (PDCP) downlink buffer to the higher layer, wherein the second set of packets is received from the network; and Delivering the packets from the higher layer to a PDCP uplink buffer for transmission to the network, Among them, the grouping includes an acknowledgement (ACK) feedback based on the second grouping set.
8. The method according to claim 7, wherein, The lower layer includes a Packet Data Convergence Protocol (PDCP) layer, and the higher layer includes a Transmission Control Protocol (TCP) layer.
9. The method according to claim 1, wherein, The at least one traffic flow includes at least one of a Transmission Control Protocol (TCP) traffic flow, a User Datagram Protocol (UDP) traffic flow, and a Ping traffic flow.
10. The method according to claim 1, wherein, The cumulative trigger includes at least one of one or more downlink cumulative triggers or one or more uplink cumulative triggers.
11. The method according to claim 1, further comprising: Reconfiguring at least one of the one or more cumulative triggers based on at least one of a change in the one or more radio states or a change in the at least one traffic flow.
12. An apparatus for wireless communication by a User Equipment (UE), comprising: A unit for determining one or more radio states associated with at least one traffic flow between the UE and the network; A unit for determining at least one type of the at least one traffic flow; A unit for setting a buffer configured to buffer packets at a first layer before the packets of the at least one traffic flow are released from the buffer to a second layer, wherein one of the first layer or the second layer includes a lower layer of the UE's protocol stack and the other of the first layer or the second layer includes a higher layer of the UE's protocol stack; A unit for configuring one or more cumulative triggers associated with the buffer based on the one or more radio states and the at least one type of the at least one traffic flow, buffering of the packets at the buffer being based on at least one of the one or more cumulative triggers, the one or more cumulative triggers including a number of bytes, a number of packets, or a timer duration, and wherein the cumulative trigger relates to a condition to be met for the packets buffered in the buffer to be released from the buffer to the second layer; and A unit for communicating, with the network, the packets of the at least one traffic flow based on the cumulative trigger.
13. The apparatus according to claim 12, wherein, The one or more radio states are based on one or more of the following: The quality of the channel on which the UE communicates with the network; The power headroom configured for transmission by the UE; The size of the uplink grant received from the network; A transition between a Radio Resource Control (RRC) idle mode or RRC inactive mode and an RRC connected mode; The Discontinuous Transmission (DTX) mode of the UE, or The Discontinuous Reception (DRX) mode of the UE.
14. The apparatus according to claim 12, Among them, The at least one type of the at least one traffic flow includes at least one of at least one direction of the at least one traffic flow or at least one protocol of the at least one traffic flow.
15. The apparatus according to claim 12, further comprising: A unit for determining at least one priority associated with the at least one traffic flow. Wherein, the one or more cumulative triggers are further configured based on the at least one priority associated with the at least one traffic flow.
16. The device according to claim 15, wherein, The one or more cumulative triggers are further configured based on different weightings of the one or more radio states, the at least one type of the at least one traffic flow, and the at least one priority associated with the at least one traffic flow.
17. The apparatus according to claim 12, further comprising: A unit for avoiding configuring the cumulative trigger based on the peak data rate associated with the at least one traffic flow.
18. The apparatus according to claim 12, further comprising: A unit for transferring a second set of packets from a Packet Data Convergence Protocol (PDCP) downlink buffer to the higher layer based on the cumulative trigger, wherein the second set of packets is received from the network; and A unit for transferring the packets from the higher layer to a PDCP uplink buffer for transmission to the network, wherein the packets include an acknowledgement (ACK) feedback based on the second set of packets.
19. The device according to claim 18, wherein, The lower layer includes a PDCP layer, and the higher layer includes a Transmission Control Protocol (TCP) layer.
20. The apparatus according to claim 12, wherein The at least one traffic flow includes at least one of a Transmission Control Protocol (TCP) traffic flow, a User Datagram Protocol (UDP) protocol traffic flow, or a Ping traffic flow.
21. The device according to claim 12, wherein, The cumulative trigger includes at least one of one or more downlink cumulative triggers or one or more uplink cumulative triggers.
22. The apparatus according to claim 12, further comprising: A unit for reconfiguring at least one of the one or more cumulative triggers based on at least one of a change in the one or more radio states or a change in the at least one traffic flow.
23. An apparatus for wireless communication by a User Equipment (UE), comprising: A memory; And At least one processor, coupled to the memory and configured to: Determine one or more radio states associated with at least one traffic flow between the UE and the network; Determine at least one type of the at least one traffic flow; Set a buffer configured to buffer packets at a first layer before the packets of the at least one traffic flow are released from the buffer to a second layer, wherein one of the first layer or the second layer includes a lower layer of the UE's protocol stack, and the other of the first layer or the second layer includes a higher layer of the UE's protocol stack; Configure one or more cumulative triggers associated with the buffer based on the one or more radio states and the at least one type of the at least one traffic flow, buffering of the packets at the buffer being based on at least one of the one or more cumulative triggers, the one or more cumulative triggers including a number of bytes, a number of packets, or a timer duration, and wherein the cumulative trigger relates to a condition to be met for the packets buffered in the buffer to be released from the buffer to the second layer; and Communicate with the network for packets of the at least one traffic flow based on the cumulative trigger.
24. The apparatus according to claim 23, wherein, The one or more radio states are based on one or more of the following: The quality of the channel on which the UE communicates with the network, The power headroom configured for transmission by the UE, The size of the uplink grant received from the network, The transition between radio resource control (RRC) idle mode or RRC inactive mode and RRC connected mode, The discontinuous transmission (DTX) mode of the UE, or The discontinuous reception (DRX) mode of the UE.
25. The apparatus according to claim 23, Among them, The at least one type of the at least one traffic flow includes at least one of at least one direction of the at least one traffic flow or at least one protocol of the at least one traffic flow.
26. The apparatus according to claim 23, wherein, The at least one processor is further configured to: Determine at least one priority associated with the at least one traffic flow, wherein the one or more cumulative triggers are further configured based on the at least one priority associated with the at least one traffic flow.
27. The apparatus according to claim 26, wherein The one or more cumulative triggers are further configured based on different weightings of the one or more radio states, the at least one type of the at least one traffic flow, and the at least one priority associated with the at least one traffic flow.
28. The apparatus according to claim 23, wherein, The at least one processor is further configured to: Avoid configuring the cumulative trigger based on the peak data rate associated with the at least one traffic flow.
29. The apparatus according to claim 23, wherein, The at least one processor is further configured to: Based on the cumulative trigger, transfer a second set of packets from a packet data convergence protocol (PDCP) downlink buffer to the higher layer, where the second set of packets is received from the network; and Transfer the packets from the higher layer to a PDCP uplink buffer for transmission to the network, where the packets include an acknowledgement (ACK) feedback based on the second set of packets.
30. A computer-readable medium storing computer-executable code for wireless communication by a user equipment (UE), the code causing the processor to: Determine one or more radio states associated with at least one traffic flow between the UE and the network; Determine at least one type of the at least one traffic flow; Set up a buffer configured to buffer packets at a first layer before the packets of the at least one traffic flow are released from the buffer to a second layer, where One of the first layer or the second layer includes a lower layer of the UE's protocol stack, and the other of the first layer or the second layer includes a higher layer of the UE's protocol stack; Configure one or more cumulative triggers associated with the buffer based on the one or more radio states and the at least one type of the at least one traffic flow, buffer the packets at the buffer based on at least one of the one or more cumulative triggers, the one or more cumulative triggers including a number of bytes, a number of packets, or a timer duration, and wherein the cumulative trigger relates to a condition to be satisfied for releasing the packets buffered in the buffer from the buffer to the second layer; And Communicate with the network for the packets of the at least one traffic flow based on the cumulative trigger.
Citation Information
Patent Citations
Dynamic tcp layer optimization for real-time field performance
CN104067654A