Techniques for prioritizing service flows to maintain quality of service
Patent Information
- Application Number
- CN202180074536.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-11-05
- Filing Date
- 2021-11-08
- Publication Date
- 2026-09-18
- Estimated Expiration
- 2041-11-08
AI Technical Summary
然而,在一些情况下,上行链路许可可能不足以适应UE的数据速率
Smart Images

Figure CN116368849B_ABST
Abstract
Description
[0001] Cross-references
[0002] This patent application claims the benefit of U.S. Provisional Patent Application No. 63 / 112,105, filed November 10, 2020, entitled "TECHNIQUES FOR PRIORITIZING SERVICE FLOW TO MAINTAIN QUALITY OF SERVICE", and U.S. Patent Application No. 17 / 520,340, filed November 5, 2021, entitled "TECHNIQUES FOR PRIORITIZING SERVICE FLOW TO MAINTAIN QUALITY OF SERVICE", each of which is assigned to the assignee of this application. Technical Field
[0003] The following relates to wireless communications, including techniques for prioritizing service flows to maintain quality of service. Background Technology
[0004] Wireless communication systems are widely deployed to provide various types of communication content, such as voice, video, packet data, messaging, and broadcasting. These systems can support communication with multiple users by sharing available system resources (e.g., time, frequency, and power). Examples of such multiple access systems include fourth-generation (4G) systems, such as Long Term Evolution (LTE), LTE-A Advanced (LTE-A), or LTE-A Pro systems, and fifth-generation (5G) systems, which may be referred to as New Radio (NR) systems. These systems can employ technologies such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), or Discrete Fourier Transform Extended Orthogonal Frequency Division Multiplexing (DFT-S-OFDM). A wireless multiple access communication system may include one or more base stations or one or more network access nodes, each of which simultaneously supports communication with multiple communication devices, also referred to as User Equipment (UE).
[0005] In some wireless communication systems, the UE or its modem can receive an uplink license for uplink data transmission to network devices. However, in some cases, the uplink license may be insufficient to accommodate the UE's data rate. Summary of the Invention
[0006] The described techniques relate to improved methods, systems, devices, and apparatuses that support techniques for prioritizing service flows to maintain Quality of Service (QoS). A User Equipment (UE) or a UE's modem can receive data from an application processor for uplink transmission to network devices. The data from the application processor can be associated with various service types or QoS constraints, and in some examples, the modem or application processor, or both, can classify the data into two or more different service types based on data priority. For example, the modem or application processor, or both, can classify data into a first data service associated with a first lower priority level and a second data service associated with a second higher priority level. Thus, the modem and application processor can implement selective flow control for each data service type (e.g., each service flow identifier) to exclude some data services (e.g., such as the second data service associated with a higher priority level) from the flow control implementation.
[0007] For example, in an example where a modem or application processor, or both, divides data traffic into a first data traffic associated with a lower priority level and a second data traffic associated with a higher priority level, the modem and application processor may support two different flow control commands, such that a first flow control command applies to the first data traffic (e.g., but not the second data traffic), and a second flow control command applies to the second data traffic (e.g., but not the first data traffic). In such an example, if the modem receives insufficient uplink clearance, causing the amount of data stored in one or more buffers on the modem to accumulate (e.g., accumulate to fill one or more buffers on the modem), the modem may send a first flow control command to the application processor to control the flow of the first data traffic, while allowing the second data traffic to continue without flow control. If the flow conditions at the modem do not improve based on the first flow control command used for the first data traffic, the modem may send a second flow control command to the application processor to control the flow of the second data traffic.
[0008] Modems and application processors can implement various techniques to achieve such flow control implementation for each data service type. For example, in some implementations, the modem can support two buffers, including a first buffer for a first data service and a second buffer for a second data service, wherein each buffer can include a threshold level such that if the amount of data in the buffer exceeds the buffer's threshold, the modem sends a flow control command for the data service stored in that buffer. For example, if the amount of the first data service stored in the first buffer exceeds the threshold of the first buffer, the modem can send a first flow control command for the first data service to the application processor. Similarly, if the amount of the second data service stored in the second buffer exceeds the threshold of the second buffer, the modem can send a second flow control command for the second data service to the application processor. In some other implementations, the modem can support a single buffer that includes both the first and second data services, and multiple thresholds can be defined. For example, the modem can define multiple thresholds such that if the amount of the first and second data services in one buffer exceeds a first lower threshold, the modem can send a first flow control command for the first data service to the application processor. If the volume of the first data service and the second data service continues to increase (e.g., after the application of the first flow control command), and if the volume of the first data service and the second data service exceeds a second higher threshold, the modem may send a second flow control command for the second data service to the application processor.
[0009] A method for wireless communication at a first device is described. The method may include: receiving from a second device a first data service having a first QoS and a first priority level; receiving from the second device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer; storing the first data service and the second data service in one or more buffers of the first device; and sending to the second device a first flow control command for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0010] An apparatus for wireless communication at a first device is described. The apparatus may include a processor, a memory in electronic communication with the processor, and instructions stored in the memory. The instructions are executable by the processor to cause the apparatus to: receive from a second device a first data service having a first QoS and a first priority level; receive from the second device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer; store the first data service and the second data service in one or more buffers of the first device; and send to the second device a first flow control command for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0011] Another apparatus for wireless communication at a first device is described. The apparatus may include: components for receiving from a second device a first data service having a first QoS and a first priority level; components for receiving from the second device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer; components for storing the first data service and the second data service in one or more buffers in the first device; and components for sending a first flow control command for the first data service to the second device based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0012] A non-transitory computer-readable medium is described, storing code for wireless communication at a first device. The code may include instructions executable by a processor to: receive from a second device a first data service having a first QoS and a first priority level; receive from the second device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first and second data services target the same radio bearer; store the first and second data services in one or more buffers in the first device; and send to the second device a first flow control command for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0013] In some examples of the methods, apparatuses, and non-transitory computer-readable media described herein, storing a first data service and a second data service in one or more buffers of a first device may include operations, features, components, or instructions for storing the first data service in a first buffer of the first device and storing the second data service in a second buffer of the first device, wherein the first buffer and the second buffer may be linked to the same data radio bearer (DRB), and wherein each of the first buffer and the second buffer includes a set of multiple threshold levels, each threshold level being configurable based on a first priority level and a second priority level.
[0014] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, sending a first flow control command for a first data service may include operations, features, components or instructions for sending the first flow control command for the first data service based on a first amount of the first data service stored in a first buffer being greater than a first threshold level of the first buffer.
[0015] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for sending a second flow control command for the second data service to a second device based on a second amount of the second data service stored in the second buffer being greater than a second threshold level of the second buffer.
[0016] In some examples of the methods, apparatuses, and non-transitory computer-readable media described herein, storing a first data service and a second data service in one or more buffers of a first device may include operations, features, components, or instructions for storing the first data service and the second data service in a buffer of the first device, the buffer including a set of multiple threshold levels, wherein each of the multiple threshold levels may be configured based on a first priority level and a second priority level.
[0017] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, sending a first flow control command for a first data service may include operations, features, components or instructions for sending the first flow control command for the first data service based on a first amount of a first data service and a second data service stored in a buffer being greater than a first threshold level of the buffer, wherein the first threshold level may be associated with triggering the first flow control command for the first data service.
[0018] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: sending an indication to a second device to enable a flow of the first data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level may be associated with the indication that triggers the flow of the first data service.
[0019] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for sending a second flow control command for the second data service to a second device based on a first amount of a first data service and a second data service stored in a buffer being greater than a first threshold level of the buffer, wherein the first threshold level may be associated with triggering the second flow control command for the second data service.
[0020] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: sending an indication to a second device to enable a flow of the second data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level may be associated with the indication that triggers the flow of the second data service.
[0021] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, the set of multiple threshold levels includes at least a first threshold level that triggers the transmission of a first flow control command for a first data service and a second threshold level that triggers the transmission of a second flow control command for a second data service, wherein the first threshold level is less than the second threshold level.
[0022] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, sending a first flow control command for a first data service may include operations, features, components or instructions for sending the first flow control command based on a first amount of a first data service and a second data service stored in one or more buffers being greater than a threshold level of one or more buffers.
[0023] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: receiving a second data service from a second device based on exclusion of the second data service from a first flow control command; storing the second data service in one or more buffers between a threshold level and an upper threshold level; and sending a second flow control command to the second device based on a second amount of the second data service stored in the one or more buffers being equal to or greater than the upper threshold level, the second flow control command including an indication to stop sending the second data service.
[0024] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving one or more uplink licenses from a network device for uplink transmission of a first data service and a second data service to the network device, wherein the sum of the one or more uplink licenses may be less than a threshold size, the threshold size being the minimum size that carries both the first data service and the second data service simultaneously without triggering a flow control command.
[0025] In some examples of the methods, apparatuses and nontransitory computer-readable media described herein, the second data service may have a second QoS based on a service level agreement (SLA) associated with the second data service.
[0026] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, the first data service and the second data service may be associated with different differentiated services codepoint (DSCP) categories.
[0027] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, the first device may be a modem of a user equipment (UE) and the second device may be an application processor or a tethered client tethered to the first device via an Ethernet connection, a Universal Serial Bus (USB) connection, a Peripheral Component Rapid Interconnect (PCIe) connection or a Wi-Fi connection.
[0028] A method for wireless communication at a second device is described. The method may include: transmitting a first data service to a first device having a first QoS and a first priority level; transmitting a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer; receiving a first flow control command from the first device for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers; and transmitting the first data service and the second data service to the first device, the first data service being transmitted according to the first flow control command.
[0029] An apparatus for wireless communication at a second device is described. The apparatus may include a processor, a memory in electronic communication with the processor, and instructions stored in the memory. The instructions are executable by the processor to cause the apparatus to: transmit a first data service to a first device having a first QoS and a first priority level; transmit a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer; receive a first flow control command from the first device for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers; and transmit the first data service and the second data service to the first device, the first data service being transmitted according to the first flow control command.
[0030] Another apparatus for wireless communication at a second device is described. The apparatus may include components for transmitting a first data service to a first device having a first QoS and a first priority level; components for transmitting a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer; components for receiving a first flow control command from the first device for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers; and components for transmitting the first data service and the second data service to the first device, the first data service being transmitted according to the first flow control command.
[0031] A non-transitory computer-readable medium is described, storing code for wireless communication at a second device. The code may include instructions executable by a processor to: transmit a first data service to a first device having a first QoS and a first priority level; transmit a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first and second data services target the same radio bearer; receive a first flow control command from the first device for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers; and transmit the first and second data services to the first device, the first data service being transmitted according to the first flow control command.
[0032] In some examples of the methods, apparatuses and nontransitory computer-readable media described herein, receiving a first flow control command for a first data service may include operations, features, components or instructions for receiving the first flow control command for the first data service based on a first amount of the first data service stored in a first buffer associated with the first data service being greater than a first threshold level of the first buffer.
[0033] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving a second flow control command for the second data service from a first device, based on a second amount of the second data service stored in a second buffer associated with the second data service being greater than a second threshold level of the second buffer, the second buffer being different from the first buffer.
[0034] In some examples of the methods, apparatuses, and nontransitory computer-readable media described herein, transmitting a first data service and a second data service may include operations, features, components, or instructions for: transmitting a first data service from a second device to a first device via a first interface according to a first flow control command, and transmitting a second data service from the second device to the first device via a second interface according to a second flow control command.
[0035] In some examples of the methods, apparatuses, and nontransitory computer-readable media described herein, transmitting a first data service and a second data service may include operations, features, components, or instructions for transmitting a first data service from a second device according to a first service shaping based on a first flow control command and transmitting a second data service from a second device according to a second service shaping based on a second flow control command.
[0036] In some examples of the methods, apparatuses, and non-transitory computer-readable media described herein, receiving a first flow control command for a first data service may include operations, features, components, or instructions for receiving the first flow control command for the first data service based on a first amount of a first data service and a second data service stored in a buffer of a first device being greater than a first threshold level of the buffer, wherein the first threshold level of the buffer may be associated with triggering the first flow control command for the first data service.
[0037] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving an indication from a first device to enable a flow of the first data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level of the buffer may be associated with an indication to trigger the flow of the first data service.
[0038] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving a second flow control command for a second data service from a first device based on a first amount of a first data service and a second data service stored in a buffer of a first device being greater than a first threshold level of the buffer, wherein the first threshold level of the buffer may be associated with triggering the second flow control command for the second data service.
[0039] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving an indication from a first device to enable a flow of the second data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level of the buffer may be associated with an indication to trigger the flow of the second data service.
[0040] In some examples of the methods, apparatuses and nontransitory computer-readable media described herein, receiving a first flow control command may include an operation, feature, component or instruction for: receiving a first flow control command indicating that a first amount of a first data service and a second data service stored in one or more buffers of a first device may be greater than a threshold level of the one or more buffers.
[0041] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: transmitting a second data service to a first device based on the exclusion of the second data service from a first flow control command; and receiving a second flow control command from the first device based on a second amount of the second data service stored in one or more buffers being equal to or greater than an upper limit threshold level of a buffer, the second flow control command including an indication to stop transmitting the second data service.
[0042] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving an indication that the cumulative size of one or more uplink licenses for uplink transmission of a first data service and a second data service may be less than a threshold size, which is the minimum size that simultaneously carries the first data service and the second data service without triggering a flow control command.
[0043] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, an indication that the sum of one or more uplink licenses for uplink transmission may be less than a threshold size may include an operation, feature, component or instruction for receiving an indication that one or more uplink licenses are not available for uplink transmission of a first data service and a second data service.
[0044] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving one or more uplink licenses for uplink transmission of a first data service and a second data service, wherein sending the first data service and the second data service to a first device may include operations, features, components, or instructions for sending the second data service prior to sending the first data service.
[0045] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, the second data service may have a second QoS based on the SLA associated with the second data service.
[0046] In some examples of the methods, apparatuses, and nontransitory computer-readable media described herein, the first and second data services may be associated with different DSCP categories.
[0047] In some examples of the methods, apparatuses and non-transitory computer-readable media described herein, the first device may be a modem of the UE and the second device may be an application processor or a tethered client tethered to the first device via an Ethernet connection, USB connection, PCIe connection or Wi-Fi connection. Attached Figure Description
[0048] Figure 1 and Figure 2 Examples of wireless communication systems supporting techniques for prioritizing service flows to maintain QoS are shown, according to various aspects of this disclosure.
[0049] Figures 3 to 5 An example of a data flow graph is shown, illustrating techniques for prioritizing service flows to maintain QoS in accordance with various aspects of this disclosure.
[0050] Figure 6 Examples of process flows supporting techniques for prioritizing service flows to maintain QoS are shown, according to various aspects of this disclosure.
[0051] Figure 7 and Figure 8 A block diagram of an apparatus supporting techniques for prioritizing service flows to maintain QoS, according to various aspects of this disclosure, is shown.
[0052] Figure 9 A block diagram of a communication manager supporting techniques for prioritizing service flows to maintain QoS, according to various aspects of this disclosure, is shown.
[0053] Figure 10 A schematic diagram of a system including a device supporting a technology for prioritizing service flows to maintain QoS is shown according to various aspects of this disclosure.
[0054] Figures 11 to 13 A flowchart illustrating a method for prioritizing service flows to maintain QoS is shown according to various aspects of this disclosure. Detailed Implementation
[0055] As the demand for communication resources increases due to the growing number of wireless devices communicating on available spectrum, there is a growing need for technologies to efficiently and reliably increase throughput. Furthermore, maintaining best-effort and prioritized data services has become challenging due to the increasing number of wireless devices communicating on available spectrum. For example, as more devices request communication resources on available spectrum, network devices may be unable to provide the bandwidth required for devices to simultaneously transmit data for different services while maintaining the Quality of Service (QoS) defined in the Service Level Agreement (SLA). For instance, if a device simultaneously transmits default data (e.g., non-prioritized data) and prioritized data associated with the SLA, and if the bandwidth allocated to the device is insufficient to process the data (e.g., to meet the data rate of the device's transmitter), the device may apply flow control to the default and prioritized data. Since flow control is a bearer level function, this could introduce latency for the prioritized data (and risk violating the SLA).
[0056] In some embodiments of this disclosure, a device that can be used as a modem for a user equipment (UE) may employ selective flow control implementation for each service flow identifier (e.g., each service type, such as default or prioritized) to exclude certain service flows (e.g., prioritized service flows or data services) from flow control commands, thereby maintaining or improving the QoS of prioritized data (e.g., data associated with SLAs) under various network conditions. For example, a modem implementing this disclosure may implement flow control on a per-flow basis (e.g., each prioritized or non-prioritized flow) rather than at the bearer level. In this way, the modem can provide separate flow control commands for each service flow to a data source (such as an application processor). For example, in an example where the modem and application processor identify two service flows, including a prioritized service flow (which may be equivalently referred to herein as prioritized data service) and a non-prioritized service flow (which may be equivalently referred to herein as non-prioritized data service), the modem may provide different flow control commands for each of the prioritized and non-prioritized service flows, respectively. The modem and application processor may implement such flow control on a per-prioritized or non-prioritized flow basis according to various techniques, as described in more detail herein.
[0057] The aspects of the subject matter described in this disclosure can be implemented to achieve one or more of the following potential advantages. For example, the described techniques can be implemented to maintain the QoS of prioritized data under various network conditions by employing flow control at each service flow level rather than at the bearer level. In this way, the modem can support unrestricted streaming of relatively high-priority data while performing flow control on relatively low-priority data, which can satisfy the SLA associated with the relatively high-priority data under various network conditions, including suboptimal or poor network conditions, or in scenarios where the modem has relatively limited uplink transmission bandwidth.
[0058] Aspects of this disclosure are initially described in the context of wireless communication systems. These aspects are additionally illustrated and described with reference to data flow diagrams and process flows. Some aspects of this disclosure are further illustrated and described with reference to apparatus diagrams, system diagrams, and flowcharts relating to techniques for prioritizing service flows to maintain quality of service.
[0059] Figure 1 Examples of wireless communication systems 100 supporting techniques for prioritizing service flows to maintain QoS according to various aspects of this disclosure are shown. Wireless communication system 100 may include one or more base stations 105, one or more UEs 115, and a core network 130. In some examples, wireless communication system 100 may be a Long Term Evolution (LTE) network, an Advanced LTE (LTE-A) network, an LTE-APro network, or a New Radio (NR) network. In some examples, wireless communication system 100 may support enhanced broadband communication, ultra-reliable (e.g., mission-critical) communication, low-latency communication, communication with low-cost and low-complexity devices, or any combination thereof.
[0060] Base stations 105 can be distributed throughout a geographical area to form a wireless communication system 100, and can be devices of different forms or with different capabilities. Base stations 105 and UE 115 can communicate wirelessly via one or more communication links 125. Each base station 105 can provide a coverage area 110, on which UE 115 and base station 105 can establish one or more communication links 125. Coverage area 110 can be an example of a geographical area where base station 105 and UE 115 can support signal communication according to one or more radio access technologies.
[0061] UE 115 can be distributed throughout the coverage area 110 of the entire wireless communication system 100, and each UE 115 can be fixed, mobile, or both at different times. UE 115 can be devices of different forms or with different capabilities. Figure 1Some example UE 115s are shown in the document. The UE 115 described herein can be able to communicate with various types of devices, such as other UE 115s, base station 105s, or network devices (e.g., core network nodes, relay devices, integrated access and backhaul (IAB) nodes, or other network equipment), such as... Figure 1 As shown.
[0062] Base stations 105 may communicate with each other, with the core network 130, or both. For example, base station 105 may interface with the core network 130 via one or more backhaul links 120 (e.g., via S1, N2, N3, or other interfaces). Base stations 105 may communicate with each other directly (e.g., directly between base stations 105) or indirectly (e.g., via the core network 130) or both via backhaul links 120 (e.g., via X2, Xn, or other interfaces). In some examples, backhaul link 120 may be or include one or more radio links.
[0063] One or more base stations 105 described herein may include, or may be referred to by those skilled in the art as, base station, radio base station, access point, radio transceiver, NodeB, eNodeB (eNB), next-generation NodeB or gigabit NodeB (any of which may be referred to as gNB), home NodeB, home eNodeB or other suitable terms.
[0064] UE 115 may include or be referred to as a mobile device, wireless device, remote device, handheld device, or subscriber device, or some other suitable term, wherein "device" may also be referred to as a unit, station, terminal, or client, etc. UE 115 may also include or be referred to as a personal electronic device, such as a cellular phone, personal digital assistant (PDA), tablet computer, laptop computer, or personal computer. In some examples, UE 115 may include or be referred to as a wireless local loop (WLL) station, Internet of Things (IoT) device, Internet of Things (IoE) device, machine-type communication (MTC) device, etc., which may be implemented in various objects such as appliances, vehicles, and meters.
[0065] like Figure 1 As shown, the UE 115 described herein can communicate with various types of devices, such as other UE 115s that can sometimes act as relays, as well as base station 105 and network devices, including macro eNBs or gNBs, small cell eNBs or gNBs, or relay base stations, etc.
[0066] UE 115 and base station 105 can wirelessly communicate with each other via one or more communication links 125 on one or more carriers. The term "carrier" can refer to a set of radio frequency spectrum resources having a defined physical layer structure for supporting communication link 125. For example, a carrier for communication link 125 may include a portion of the radio spectrum band (e.g., a bandwidth portion (BWP)) operating according to one or more physical layer channels of a given radio access technology (e.g., LTE, LTE-A, LTE-APro, NR). Each physical layer channel may carry acquisition signaling (e.g., synchronization signals, system information), control signaling coordinating carrier operation, user data, or other signaling. Wireless communication system 100 can use carrier aggregation or multi-carrier operation to support communication with UE 115. Depending on the carrier aggregation configuration, UE 115 can be configured with multiple downlink component carriers and one or more uplink component carriers. Carrier aggregation can be used with frequency division duplex (FDD) and time division duplex (TDD) component carriers.
[0067] In some examples (e.g., in a carrier aggregation configuration), the carrier may also have acquisition signaling or control signaling that coordinates the operation of other carriers. The carrier may be associated with a frequency channel (e.g., an Evolved Universal Mobile Telecommunications System Terrestrial Radio Access (E-UTRA) Absolute Radio Channel Number (EARFCN)) and can be located according to a channel grid for discovery by UE 115. The carrier can operate in standalone mode, where initial acquisition and connection can be performed by UE 115 via the carrier, or the carrier can operate in non-standalone mode, where the connection is anchored using different carriers (e.g., the same or different radio access technologies).
[0068] The communication link 125 shown in the wireless communication system 100 may include uplink transmission from UE 115 to base station 105, or downlink transmission from base station 105 to UE 115. The carrier may carry downlink or uplink communication (e.g., in FDD mode), or may be configured to carry both downlink and uplink communication (e.g., in TDD mode).
[0069] A carrier can be associated with a bandwidth of the radio spectrum, and in some examples, the carrier bandwidth can be referred to as the carrier or the “system bandwidth” of the wireless communication system 100. For example, the carrier bandwidth can be one of several defined bandwidths of a carrier for a radio access technology (e.g., 1.4 MHz, 3 MHz, 5 MHz, 10 MHz, 15 MHz, 20 MHz, 40 MHz, or 80 MHz). Devices of the wireless communication system 100 (e.g., base station 105 or UE 115, or both) can have a hardware configuration that supports communication over a carrier bandwidth, or can be configured to support communication over one bandwidth of a set of carrier bandwidths. In some examples, the wireless communication system 100 may include base station 105 or UE 115, which supports simultaneous communication via carriers associated with multiple carrier bandwidths. In some examples, each served UE 115 may be configured to operate over a portion (e.g., subband, BWP) or all of the carrier bandwidth.
[0070] The signal waveform transmitted via a carrier can consist of multiple subcarriers (e.g., using multi-carrier modulation (MCM) techniques, such as orthogonal frequency division multiplexing (OFDM) or discrete Fourier transform extended OFDM (DFT-S-OFDM)). In a system employing MCM, a resource element may include a symbol period (e.g., the duration of a modulation symbol) and a subcarrier, where the symbol period and subcarrier spacing are inversely related. The number of bits carried by each resource element may depend on the modulation scheme (e.g., the order of the modulation scheme, the coding rate of the modulation scheme, or both). Therefore, the more resource elements the UE 115 receives and the higher the order of the modulation scheme, the higher the data rate the UE 115 may achieve. Wireless communication resources can refer to a combination of radio frequency spectrum resources, temporal resources, and spatial resources (e.g., spatial layers or beams), and the use of multiple spatial layers can further increase the data rate or data integrity of communication with the UE 115.
[0071] One or more parameter sets (numerology) for a carrier can be supported, where the parameter set may include subcarrier spacing (Δf) and cyclic prefix. A carrier can be divided into one or more BWPs with the same or different parameter sets. In some examples, UE 115 can be configured with multiple BWPs. In some examples, a single BWP of a carrier can be active at a given time, and UE 115 communication can be limited to one or more active BWPs.
[0072] The time interval of base station 105 or UE 115 can be expressed as a multiple of a basic time unit. For example, the basic time unit can refer to T. s =1 / (Δf) max ·N fThe sampling period is ) seconds, where Δf max This can represent the maximum supported subcarrier spacing, and N f This can represent the maximum supported Discrete Fourier Transform (DFT) size. The time interval of the communication resource can be organized according to radio frames, each with a specified duration (e.g., 10 milliseconds (ms)). Each radio frame can be identified by a System Frame Number (SFN) (e.g., ranging from 0 to 1023).
[0073] Each frame may include multiple consecutively numbered subframes or time slots, and each subframe or time slot may have the same duration. In some examples, a frame may be divided (e.g., in the time domain) into subframes, and each subframe may be further divided into multiple time slots. Alternatively, each frame may include a variable number of time slots, and the number of time slots may depend on the subcarrier spacing. Each time slot may include multiple symbol periods (e.g., depending on the length of the cyclic prefix preceding each symbol period). In some wireless communication systems 100, a time slot may be further divided into multiple micro-time slots containing one or more symbols. Excluding the cyclic prefix, each symbol period may contain one or more (e.g., N) f (Number) sampling periods. The duration of a symbol period can depend on the subcarrier spacing or the operating frequency band.
[0074] A subframe, time slot, micro-time slot, or symbol can be the smallest scheduling unit of the wireless communication system 100 (e.g., in the time domain) and can be referred to as a transmission time interval (TTI). In some examples, the duration of the TTI (e.g., the number of symbol cycles in the TTI) can be variable. Additionally or alternatively, the smallest scheduling unit of the wireless communication system 100 can be dynamically selected (e.g., in a burst of short TTIs (sTTIs)).
[0075] Depending on the technology, physical channels can be multiplexed on a carrier. For example, physical control channels and physical data channels can be multiplexed on a downlink carrier using one or more of time-division multiplexing (TDM), frequency-division multiplexing (FDM), or hybrid TDM-FDM technologies. The control region (e.g., control resource set (CORESET)) of a physical control channel can be defined by multiple symbol periods and can be extended across the system bandwidth or a subset of the system bandwidth of the carrier. One or more control regions (e.g., CORESET) can be configured for a set of UEs 115. For example, one or more UEs 115 can monitor or search control regions for control information based on one or more search space sets, and each search space set can include one or more control channel candidates from one or more aggregation levels arranged in a concatenated manner. The aggregation level of control channel candidates can refer to multiple control channel resources (e.g., control channel elements (CCEs)) associated with coded information having a control information format with a given payload size. The search space set may include a common search space set configured to send control information to multiple UEs 115 and a UE-specific search space set configured to send control information to a specific UE 115.
[0076] Each base station 105 may provide communication coverage via one or more cells (e.g., macro cells, small cells, hotspots, or other types of cells, or any combination thereof). The term "cell" may refer to a logical communication entity used to communicate with base station 105 (e.g., via a carrier) and may be associated with an identifier used to distinguish neighboring cells (e.g., Physical Cell Identifier (PCID), Virtual Cell Identifier (VCID), etc.). In some examples, a cell may also refer to a geographic coverage area 110 or a portion of geographic coverage area 110 (e.g., a sector) on which a logical communication entity operates. The extent of such a cell can range from a small area (e.g., a structure, a subset of structures) to a large area, depending on various factors such as the capabilities of base station 105. For example, a cell may be or include buildings, subsets of buildings, external spaces between or overlapping geographic coverage areas 110, etc.
[0077] Macro cells cover a relatively large geographical area (e.g., a radius of several kilometers) and can allow unrestricted access by UEs 115 that have service subscriptions with the network provider supporting the macro cell. In contrast, small cells can be associated with low-power base station 105 and can operate in the same or different (e.g., licensed, unlicensed) frequency bands as macro cells. Small cells can provide unrestricted access to UEs 115 that have service subscriptions with network providers, or restricted access to UEs 115 associated with small cells (e.g., UEs 115 in a Closed Subscriber Group (CSG), or UEs 115 associated with a user in a home or office). Base station 105 can support one or more cells and can also support communication on one or more cells using one or more component carriers.
[0078] In some examples, a carrier can support multiple cells and can be configured with different cells based on different protocol types that can provide access to different types of devices (e.g., MTC, Narrowband IoT (NB-IoT), Enhanced Mobile Broadband (eMBB)).
[0079] In some examples, base station 105 may be mobile and thus provide communication coverage for mobile geographic coverage areas 110. In some examples, different geographic coverage areas 110 associated with different technologies may overlap, but different geographic coverage areas 110 may be supported by the same base station 105. In other examples, different base stations 105 may support overlapping geographic coverage areas 110 associated with different technologies. For example, wireless communication system 100 may include a heterogeneous network in which different types of base stations 105 use the same or different radio access technologies to provide coverage for various geographic coverage areas 110.
[0080] The wireless communication system 100 can support synchronous or asynchronous operation. For synchronous operation, base stations 105 can have similar frame timing, and transmissions from different base stations 105 can be approximately aligned in time. For asynchronous operation, base stations 105 may have different frame timing, and in some examples, transmissions from different base stations 105 may be misaligned in time. The techniques described herein can be used for both synchronous and asynchronous operation.
[0081] Some UEs 115, such as MTC devices or IoT devices, can be low-cost or low-complexity devices and can provide automated communication between machines (e.g., via machine-to-machine (M2M) communication). M2M communication or MTC can refer to data communication technologies that allow devices to communicate with each other or with base station 105 without human intervention. In some examples, M2M communication or MTC may include communication from devices with integrated sensors or meters to measure or capture information and relay that information to a central server or application, which uses the information or presents it to people interacting with the application. Some UEs 115 can be designed to collect information or enable automated behavior of machines or other devices. Examples of applications for MTC devices include smart metering, inventory monitoring, water level monitoring, equipment monitoring, healthcare monitoring, wildlife monitoring, weather and geological event monitoring, fleet management and tracking, remote security sensing, physical access control, and transaction-based business charging.
[0082] Some UE 115s can be configured to operate in a power-saving mode, such as half-duplex communication (e.g., a mode that supports unidirectional communication via transmission or reception but not simultaneous transmission and reception). In some examples, half-duplex communication can be performed at a reduced peak rate. Other power-saving techniques for UE 115s include entering a power-saving deep sleep mode when not involved in active communication, operating on limited bandwidth (e.g., according to narrowband communication), or a combination of these techniques. For example, some UE 115s can be configured to operate using a narrowband protocol type associated with a defined portion or range (e.g., a set of subcarriers or resource blocks (RBs)) within a carrier, within a carrier's guard band, or outside a carrier.
[0083] Wireless communication system 100 can be configured to support ultra-reliable communication or low-latency communication, or various combinations thereof. For example, wireless communication system 100 can be configured to support ultra-reliable low-latency communication (URLLC) or mission-critical communication. UE 115 can be designed to support ultra-reliable, low-latency, or mission-critical functions (e.g., mission-critical functions). Ultra-reliable communication can include private or group communication and can be supported by one or more mission-critical services, such as Mission-Critical Push-to-Talk (MCPTT), Mission-Critical Video (MCVideo), or Mission-Critical Data (MCData). Support for mission-critical functions can include service prioritization, and mission-critical services can be used for public safety or general business applications. The terms ultra-reliable, low-latency, mission-critical, and ultra-reliable low-latency are used interchangeably herein.
[0084] In some examples, UE 115 can also communicate directly with other UE 115 via device-to-device (D2D) communication link 135 (e.g., using peer-to-peer (P2P) or D2D protocols). One or more UE 115s using D2D communication can be within the geographic coverage area 110 of base station 105. Other UE 115s in such a group may be outside the geographic coverage area 110 of base station 105 or otherwise unable to receive transmissions from base station 105. In some examples, multiple groups of UE 115s communicating via D2D communication can use a one-to-many (1:M) system, where each UE 115 transmits to every other UE 115 in the group. In some examples, base station 105 facilitates resource scheduling for D2D communication. In other cases, D2D communication is performed between UE 115s without the participation of base station 105.
[0085] In some systems, the D2D communication link 135 may be an example of a communication channel (such as a sidelink communication channel) between vehicles (e.g., UE 115). In some examples, vehicles may communicate using vehicle-to-everything (V2X) communication, vehicle-to-vehicle (V2V) communication, or some combination of these communications. Vehicles may signal information related to traffic conditions, signal control, weather, safety, emergencies, or any other information related to the V2X system. In some examples, vehicles in a V2X system may communicate with roadside infrastructure such as roadside units, or communicate with the network via one or more network nodes (e.g., base station 105) using vehicle-to-network (V2N) communication, or communicate with both.
[0086] Core network 130 can provide user authentication, access authorization, tracking, Internet Protocol (IP) connectivity, and other access, routing, or mobility functions. Core network 130 can be an evolved packet core (EPC) or a 5G core (5GC), which may include at least one control plane entity (e.g., a mobility management entity (MME), access and mobility management function (AMF)) managing access and mobility, and at least one user plane entity (e.g., a serving gateway (S-GW), packet data network (PDN) gateway (P-GW), or user plane function (UPF)) routing packets or interconnects to external networks. The control plane entity can manage non-access stratum (NAS) functions, such as mobility, authentication, and bearer management of UE 115 served by base station 105 associated with core network 130. User IP packets can be transmitted through the user plane entity, which can provide IP address allocation and other functions. The user plane entity can connect to one or more network operator IP services 150. IP services 150 may include access to the Internet, intranets, IP Multimedia Subsystem (IMS), or packet-switched streaming services.
[0087] Some network devices, such as base station 105, may include sub-components, such as access network entity 140, which may be an example of an access node controller (ANC). Each access network entity 140 may communicate with UE 115 through one or more other access network transport entities 145, which may be referred to as a radio head, smart radio head, or transmit / receive point (TRP). Each access network transport entity 145 may include one or more antenna panels. In some examples, the various functions of each access network entity 140 or base station 105 may be distributed across various network devices (e.g., radio heads and ANCs) or combined into a single network device (e.g., base station 105).
[0088] Wireless communication system 100 can operate using one or more frequency bands, sometimes in the range of 300 MHz to 300 GHz. The region from 300 MHz to 3 GHz is referred to as the Ultra High Frequency (UHF) region or decimeter band because the wavelength range is from approximately 1 decimeter to 1 meter. UHF waves may be blocked or deflected by buildings and environmental features, but the waves can penetrate structures sufficiently to enable macrocells to provide service to UE 115 located indoors. Compared to transmissions using smaller frequencies and longer waves in the High Frequency (HF) or Very High Frequency (VHF) portions of the spectrum below 300 MHz, UHF wave transmissions are likely associated with smaller antennas and shorter distances (e.g., less than 100 km).
[0089] The wireless communication system 100 can also operate in the ultra-high frequency (SHF) region using a frequency band from 3 GHz to 30 GHz (also known as the centimeter-wave band), or in the extremely high frequency (EHF) region of the spectrum (e.g., from 30 GHz to 300 GHz) (also known as the millimeter-wave band). In some examples, the wireless communication system 100 can support millimeter-wave (mmW) communication between the UE 115 and the base station 105, and the EHF antennas of the corresponding devices can be smaller and more closely spaced than UHF antennas. In some examples, this can facilitate the use of antenna arrays within the device. However, compared to SHF or UHF transmissions, EHF transmissions may suffer from even greater atmospheric attenuation and shorter distances. The techniques disclosed herein can be employed across transmissions using one or more different frequency regions, and the designated use of frequency bands across these frequency regions may vary by country or regulatory body.
[0090] Wireless communication system 100 can use licensed and unlicensed radio spectrum bands. For example, wireless communication system 100 can employ Licensed Assisted Access (LAA), LTE unlicensed radio access technology, or NR technology in unlicensed bands such as the 5 GHz Industrial, Scientific, and Medical (ISM) band. When operating in unlicensed radio spectrum bands, devices such as base station 105 and UE 115 can employ carrier sensing for collision detection and avoidance. In some examples, operation in unlicensed bands can be configured based on carrier aggregation, combining component carriers operating in licensed bands (e.g., LAA). Operation in unlicensed spectrum can include downlink transmissions, uplink transmissions, P2P transmissions, or D2D transmissions, etc.
[0091] Base station 105 or UE 115 may be equipped with multiple antennas that can be used to employ techniques such as transmit diversity, receive diversity, multiple-input multiple-output (MIMO) communication, or beamforming. The antennas of base station 105 or UE 115 may be located within one or more antenna arrays or antenna panels that can support MIMO operation or transmit or receive beamforming. For example, one or more base station antennas or antenna arrays may be located together at an antenna assembly, such as an antenna tower. In some examples, the antennas or antenna arrays associated with base station 105 may be located in different geographical locations. Base station 105 may have an antenna array with multiple rows and columns of antenna ports that base station 105 can use to support beamforming for communication with UE 115. Similarly, UE 115 may have one or more antenna arrays that can support various MIMO or beamforming operations. Additionally or alternatively, antenna panels may support radio frequency beamforming of signals transmitted via antenna ports.
[0092] Base station 105 or UE 115 can use MIMO communication to utilize multipath signal propagation and improve spectral efficiency by transmitting or receiving multiple signals via different spatial layers. Such a technique can be called spatial multiplexing. For example, multiple signals can be transmitted by a transmitting device via different antennas or different combinations of antennas. Similarly, a receiving device can receive multiple signals via different antennas or different combinations of antennas. Each of the multiple signals can be referred to as a separate spatial stream and can carry bits associated with the same data stream (e.g., the same codeword) or different data streams (e.g., different codewords). Different spatial layers can be associated with different antenna ports used for channel measurement and reporting. MIMO techniques include: single-user MIMO (SU-MIMO), where multiple spatial layers are transmitted to the same receiving device; and multi-user MIMO (MU-MIMO), where multiple spatial layers are transmitted to multiple devices.
[0093] Beamforming, also known as spatial filtering, directional transmission, or directional reception, is a signal processing technique that can be used at a transmitting or receiving device (e.g., base station 105, UE 115) to shape or manipulate antenna beams (e.g., transmit beam, receive beam) along a spatial path between the transmitting and receiving devices. Beamforming can be achieved by combining signals transmitted via antenna elements of an antenna array, such that some signals propagating in a direction relative to the antenna array experience constructive interference, while others experience destructive interference. The adjustment of signals transmitted via antenna elements can include the transmitting or receiving device applying amplitude offset, phase offset, or both to the signals transmitted via the antenna elements associated with the device. The adjustment associated with each antenna element can be defined by a beamforming weight set associated with a direction (e.g., relative to the antenna array of the transmitting or receiving device, or relative to some other direction).
[0094] Base station 105 or UE 115 may use beam scanning technology as part of beamforming operations. For example, base station 105 may use multiple antennas or antenna arrays (e.g., antenna panels) to perform beamforming operations for directional communication with UE 115. Some signals (e.g., synchronization signals, reference signals, beam selection signals, or other control signals) may be transmitted multiple times by base station 105 in different directions. For example, base station 105 may transmit signals according to different beamforming weight sets associated with different transmission directions. Transmissions in different beam directions may be used to identify (e.g., by a transmitting device such as base station 105, or by a receiving device such as UE 115) the beam direction for later transmission or reception by base station 105.
[0095] Some signals, such as data signals associated with a receiving device, may be transmitted by base station 105 in a single beam direction (e.g., the direction associated with the receiving device, such as UE 115). In some examples, the beam direction associated with transmission along a single beam direction may be determined based on signals transmitted in one or more beam directions. For example, UE 115 may receive one or more signals transmitted by base station 105 in different directions and may report to base station 105 an indication that UE 115 received signals with the highest signal quality or other acceptable signal quality.
[0096] In some examples, transmissions by a device (e.g., base station 105 or UE 115) may be performed using multiple beam directions, and the device may use a combination of digital pre-decoding or radio frequency beamforming to generate a combined beam for transmission (e.g., from base station 105 to UE 115). UE 115 may report feedback indicating pre-decoding weights for one or more beam directions, and this feedback may correspond to a configured number of beams across the system bandwidth or one or more subbands. Base station 105 may transmit reference signals (e.g., cell-specific reference signals (CRS), channel state information reference signals (CSI-RS)), which may be pre-decoded or undecoded. UE 115 may provide feedback for beam selection, which may be a pre-decoded matrix indicator (PMI) or codebook-based feedback (e.g., multi-panel codebook, linear combination codebook, port selection codebook). Although these techniques are described with reference to signals transmitted by base station 105 in one or more directions, UE 115 may employ similar techniques to transmit signals multiple times in different directions (e.g., to identify the beam direction that UE 115 subsequently transmits or receives), or to transmit signals in a single direction (e.g., to transmit data to a receiving device).
[0097] When receiving various signals (such as synchronization signals, reference signals, beam selection signals, or other control signals) from base station 105, the receiving device (e.g., UE 115) can attempt multiple receiving configurations (e.g., directional listening). For example, the receiving device can attempt multiple receiving directions by receiving via different antenna subarrays, by processing the received signal according to different antenna subarrays, by receiving according to different sets of receiving beamforming weights applied to signals received at multiple antenna elements of the antenna array (e.g., different sets of directional listening weights), or by processing the received signal according to different sets of receiving beamforming weights applied to signals received at multiple antenna elements of the antenna array. Any of these different receiving configurations or directions can be referred to as "listening." In some examples, the receiving device can use a single receiving configuration to receive along a single beam direction (e.g., when receiving data signals). The single receiving configuration can be aligned based on the beam direction determined by listening according to different receiving configuration directions (e.g., the beam direction determined based on listening to multiple beam directions to have the highest signal strength, highest signal-to-noise ratio (SNR), or other acceptable signal quality).
[0098] The wireless communication system 100 can be a packet-based network operating according to a layered protocol stack. In the user plane, communication at the bearer or Packet Data Convergence Protocol (PDCP) layer can be IP-based. The Radio Link Control (RLC) layer can perform packet segmentation and reassembly for communication on logical channels. The Media Access Control (MAC) layer can perform priority processing and multiplex logical channels into transport channels. The MAC layer can also use error detection, error correction, or both to support MAC layer retransmissions to improve link efficiency. In the control plane, the Radio Resource Control (RRC) protocol layer can provide the establishment, configuration, and maintenance of RRC connections between the UE 115 and the base station 105 or core network 130 that supports user plane data radio bearers. At the physical layer, transport channels can be mapped to physical channels.
[0099] UE 115 and base station 105 can support data retransmission to increase the likelihood of successful data reception. Hybrid Automatic Repeat Request (HARQ) feedback is a technique to increase the likelihood of data being correctly received through communication link 125. HARQ can include a combination of error detection (e.g., using Cyclic Redundancy Check (CRC)), forward error correction (FEC), and retransmission (e.g., Automatic Repeat Request (ARQ)). Under poor radio conditions (e.g., low signal-to-noise ratio conditions), HARQ can improve the throughput of the MAC layer. In some examples, the device can support simultaneous time-slot HARQ feedback, where the device can provide HARQ feedback in a specific time slot for data received in the previous symbol in that time slot. In other cases, the device can provide HARQ feedback in subsequent time slots or according to some other time interval.
[0100] In some aspects, UE 115 may include or function as a modem that can transmit data to network devices (e.g., data from an application processor or any other device tethered to UE 115). The data may be or include IP streams or QoS streams, and the data may be associated with various priority levels. For example, the data may include a first data service (e.g., a first IP stream or a first QoS stream) with a first lower priority level and a second data service (e.g., a second IP stream or a second QoS stream) with a second higher priority level. Accordingly, in some aspects, the first data service may be referred to herein as non-prioritized data, and the second data service may be referred to herein as prioritized data.
[0101] A modem can receive one or more uplink licenses from a network device, through which it transmits data to the network device. However, in some cases, the size of one or more uplink licenses (e.g., the sum of one or more uplink licenses) may be insufficient to carry data from the modem at the modem's data rate (e.g., the data rate of the modem's transmitter). For example, the modem may attempt to transmit non-priority data at a first data rate higher than a second data rate supported by one or more uplink licenses provided to the modem. In such an example, the modem may reduce the transmitter's data rate of the non-priority data to below the second data rate supported by one or more uplink licenses to avoid packet loss (e.g., packet loss may occur if the modem transmits at a data rate higher than the data rate supported by one or more uplink licenses). In some cases, the modem may send flow control commands to the application processor to reduce the data rate of data queued for transmission from the modem. However, in some cases, based on bearer level functions, flow control commands can be applied to both non-priority and priority data, which may pose a risk of failing to maintain the QoS of priority data.
[0102] In some embodiments of this disclosure, the modem may employ selective flow control implementation per service flow identifier (e.g., per service flow, per IP flow, per QoS flow, etc.) to exclude certain service flows (e.g., prioritized data) from flow control commands to maintain or improve the QoS of the prioritized data. For example, the modem may implement flow control on a per-flow basis (e.g., per prioritized or non-prioritized flow) rather than at the bearer level. This allows the modem to provide separate flow control commands for each service flow to the data source (e.g., an application processor). For example, in an example where the modem and application processor identify two service flows comprising non-prioritized data and prioritized data, the modem may provide different flow control commands for each of the non-prioritized and prioritized data, respectively. The modem and application processor may implement such flow control on a per-prioritized or non-prioritized flow basis according to various techniques, as included herein with reference to [references to other technologies]. Figure 3-5 More detailed description.
[0103] Figure 2Examples of a wireless communication system 200 supporting techniques for prioritizing service flows to maintain QoS, according to various aspects of this disclosure, are shown. In some examples, the wireless communication system 200 may implement aspects of the wireless communication system 100. The wireless communication system 200 illustrates communication between a modem 205 (e.g., modem 205 of a UE) and a network device 210 (e.g., a base station, access point, or TRP, etc.), which may be examples of the corresponding devices described herein. In some examples, the modem 205 may send separate flow control commands to an application processor for different service flows (e.g., different IP flows or QoS flows) with different priority levels to maintain the QoS of prioritized data under various network conditions.
[0104] Modem 205 can communicate with network device 210 via communication link 225, including via communication link 225-a via a downlink and via communication link 225-b via an uplink. In some aspects, network device 210 can send one or more uplink grants 215 to modem 205, and modem 205 can send uplink data 220 to network device 210 via one or more uplink grants 215 (e.g., via resources indicated by one or more uplink grants 215). In some cases, modem 205 can continuously receive one or more uplink grants 215, and modem 205 can send data in an accumulative manner using resources indicated by uplink grants 215. In other words, network device 210 can send multiple uplink licenses 215 in an additive manner over a period of time (e.g., uplink licenses 215 can be added to each other), and modem 205 can use the additive uplink licenses 215 received during that period to send uplink data 220 to network device 210 via communication link 225-b.
[0105] In some cases, the uplink data 220 that modem 205 can send to network device 210 can originate from a source, such as an application processor or a tethered client (e.g., a device connected to or “tethered” to modem 205 via an Ethernet connection, Universal Serial Bus (USB) connection, Peripheral Component Rapid Interconnect (PCIe) connection, or Wireless Fibre (Wi-Fi) connection). For example, the application processor or tethered client can send uplink data 220 to modem 205 for uplink transmission to network device 210. Modem 205 can store the uplink data 220 received from the application processor in a modem buffer (e.g., modem 205 can store and queue the uplink data 220 for uplink transmission). In this way, modem 205 can send buffered uplink data 220 to network device 210 via communication link 225-b on resources indicated by one or more uplink licenses 215.
[0106] Uplink data 220 can refer to or include various types of traffic flows, service flows, IP flows, QoS flows, etc. For example, uplink data 220 can include data that is part of an SLA or otherwise prioritized, as well as default or non-prioritized data. Such default or non-prioritized data may be referred to herein as best-effort traffic because such data can be associated with relatively flexible latency constraints (e.g., it may be insensitive to latency). On the other hand, data that is part of an SLA may be associated with SLA-based QoS constraints (e.g., QoS guarantees) and may be associated with relatively strict latency constraints (e.g., it may be sensitive to latency). In such an example where uplink data 220 includes prioritized data and non-prioritized data (e.g., default data), modem 205 (or UE) can give prioritized data "head of the line" processing at modem 205 for the same bearer (such as a data radio bearer (DRB)). In this way, prioritized data can be processed before non-prioritized data.
[0107] In some cases, such as when modem 205 (or UE) employs flow control mechanisms in the uplink to slow down a transmitter (e.g., a data source, such as an application processor). For example, if the accumulated size of uplink grant 215 is insufficient (e.g., below a threshold size) to match the data rate of the application processor, and if modem 205 avoids using flow control mechanisms, modem 205 may drop some data packets because there may not be enough bandwidth to send uplink data 220 to network device 210 without exceeding the threshold limit of the buffer at modem 205. Thus, if uplink grant 215 (e.g., network grant) does not increase proportionally with the actual data rate from the source (e.g., application processor or tethered client), modem 205 may employ flow control to avoid packet dropping on modem 205. However, in some cases, the flow control employed by modem 205 may be a bearer-level function, such that flow control is applied to uplink data 220 regardless of the priority level of uplink data 220. For example, based on flow control being a bearer-level function and using the same bearer to send prioritized and non-priority data, flow control can be applied to both prioritized and non-priority data simultaneously. Such application of flow control to prioritized data may result in longer delays for the prioritized data (because its transmission is reduced or stopped at the application processor or tethered client), which could lead to a violation of the SLA involving prioritized data, or at least poses this risk.
[0108] For example, in an example where modem 205 (or UE) has an ongoing File Transfer Protocol (FTP) upload and triggers a video call (e.g., a WhatsApp or Facebook video call), modem 205 can send FTP upload data (relatively low priority data) and video call data (relatively high priority data) on the same Internet bearer. Thus, any reduction in uplink priority 215 could affect both FTP upload data and video call data (and therefore video call quality). Such a reduction in uplink priority 215 could occur due to cell load, poor RF conditions, or various other reasons. Based on the reduction in uplink priority 215, modem 205 can determine or otherwise identify that it cannot send FTP upload data and video call data to network device 210 as quickly as it receives FTP upload data and video call data from the sender (e.g., an application processor or tethered client). This could cause data to accumulate in modem 205's buffer, and flow control from the sender could be used to reduce the rate at which modem 205 receives data from the sender. In some cases, flow control can be applied to both FTP upload data and video call data, and since FTP may consume a relatively large portion of the uplink bandwidth or resources at modem 205, the bandwidth or resources available for video call data may be further reduced. Similar examples can be understood in gaming (e.g., video games) and file uploads, where the user experience of gaming may be negatively impacted by flow control affecting both game data streaming and file uploads simultaneously.
[0109] In some cases, such joint flow control of prioritized data (e.g., prioritized streams) and concurrent non-priority data can lead to increased latency for prioritized data, thereby jeopardizing SLA or QoS guarantees. In one example, a User Datagram Protocol (UDP) ping can be an example of prioritized data or otherwise used as prioritized data (or as an indicator of latency for prioritized data), and if modem 205 sends a UDP ping on a prioritized port in the uplink without concurrent (non-priority) data, the UDP ping can return a value of 12ms. If modem 205 sends a UDP ping with concurrent (non-priority) data at a rate of 18Mbps on a prioritized port in the uplink, and if uplink license 215 provides up to 16Mbps (making it possible for the 5G physical layer (PHY) to support up to 16Mbps), the UDP ping can return a value of 30ms (an increase of 150%). Alternatively, if modem 205 sends a UDP ping with concurrent (non-priority) data at a rate of 14 Mbps on a prioritized port in the uplink, and if uplink license 215 provides up to 16 Mbps (making it possible for the 5G PHY to support up to 16 Mbps), the UDP ping can return a value of 12 ms.
[0110] In other words, if modem 205 attempts to send data at a lower data rate than supported by uplink license 215 (whether prioritized or not), modem 205 can avoid application or apply minimum flow control. Alternatively, if the application processor or tethered client sends uplink data 220 to modem 205 at a higher data rate than supported by uplink license 215, modem 205 may be limited by the data rate supported by uplink license 215 and may accordingly apply flow control to the uplink data 220 received from the application processor or tethered client to avoid packet drop. Flow control for prioritized data may be unnecessary in cases where non-prioritized data has a higher data rate than supported by uplink license 215 and the non-prioritized data triggers flow control.
[0111] Accordingly, if prioritized data is transmitted by modem 205 along with non-priority data in the uplink, and if the physical layer in the uplink does not have sufficient uplink clearance 215 to process the data, modem 205 may apply the same flow control mechanism to both prioritized and non-priority data (e.g., two data streams). Since flow control is a bearer-level function, this may result in a QoS reduction for the prioritized data. Thus, although prioritized data in modem 205 may be received with priority ordering due to “linehead” processing, flow control at the bearer-level data source (e.g., application processor or tethered client) may still increase the latency or delay of the prioritized data.
[0112] In some embodiments of this disclosure, modem 205 may apply selective flow control to each service flow (e.g., each prioritized data flow or each non-prioritized data flow) to exclude some predetermined or predefined service flows (such as service flows that can be classified as prioritized data or prioritized service flows). This can maintain or improve the QoS of the excluded service flows under various network conditions compared to best-effort or heavy data traffic (e.g., non-prioritized data traffic). Thus, if the uplink clearance 215 provided to modem 205 by network device 210 is insufficient (so that flow control can be triggered or applied), modem 205 may primarily perform flow control on non-prioritized data while avoiding or at least secondarily performing flow control on prioritized data.
[0113] In some examples, modem 205 may implement such flow control for each service flow or each data service type based on maintaining separate buffers at modem 205 for prioritized and non-priority data. In such examples, each separate buffer may include a threshold level associated with triggering a flow control command for data stored in the respective buffer. For example, if modem 205 stores non-priority data in a first buffer, and if the amount of non-priority data in the first buffer is greater than the threshold level of the first buffer, then modem 205 may apply flow control to the non-priority data. Similarly, if modem 205 stores prioritized data in a second buffer, and if the amount of prioritized data in the second buffer is greater than the threshold level of the second buffer, then modem 205 may apply flow control to the prioritized data. References herein include... Figure 3 Additional details are described regarding the use of separate buffers to apply separate flow control to prioritized and non-prioritized data.
[0114] In some other examples, modem 205 may implement such flow control per service flow or per data service type based on storing prioritized and non-priority data in a buffer of modem 205, the buffer being configured with multiple threshold levels associated with triggering individual flow control commands. For example, in such an example, if the amount of data (including prioritized and non-priority data) in a buffer of modem 205 exceeds a first threshold of the buffer, modem 205 may apply flow control to the non-priority data. If flow control on the non-priority data is insufficient to cause the amount of data in a buffer of modem 205 to continue increasing and become greater than a second threshold level of the buffer, modem 205 may apply flow control to the prioritized data (such that if the amount of data in the buffer exceeds the second threshold, flow control is applied to both the non-priority and prioritized data simultaneously). References herein include... Figure 4 Additional details are described regarding the use of a single buffer with multiple threshold levels to apply separate flow control to prioritized and non-prioritized data.
[0115] In some other examples, modem 205 may implement such flow control for each service flow or each data service type based on exclusion (mutually understood exclusion) made from the first flow control command at the data source (e.g., application processor or tethered client). For example, in such an example, modem 205 may store prioritized and non-priority data in a buffer (or one or more buffers) of modem 205, and if the amount of data in the buffer exceeds a threshold level of the buffer, modem 205 may send a first flow control command to the application processor. Based on the exclusion, the application processor may exclude prioritized data from the first flow control command and continue to send prioritized data to modem 205 without flow control. Modem 205 that receives prioritized data after exceeding the buffer threshold may store the received prioritized data above the threshold but below the upper limit threshold of the buffer (e.g., the upper limit or maximum capacity of the buffer). In an example where the received prioritized data reaches or exceeds the upper limit threshold of the buffer, modem 205 may send a second flow control command to the application processor, which instructs the application processor to stop sending prioritized data. References herein include Figure 5 It describes additional details related to such exclusion of prioritized data created by the application processor.
[0116] Furthermore, although this document is described in the context of prioritized and non-prioritized data, this disclosure can be implemented using any number of service flows or data service types. For example, modem 205 can apply flow control based on different priority service levels, such as based on Differential Service Code Point (DSCP) categories or values. In such cases, multiple buffers or multiple (e.g., more than two) flow control messages from modem 205 can be implemented for each priority level. Additionally or alternatively, modem 205 can configure one or more additional thresholds for one or more buffers of modem 205 associated with flow enable, such that modem 205 can enable a flow of prioritized data before enabling a flow of non-prioritized data.
[0117] For example, in an example where uplink permission 215 is unavailable for uplink transmission of both prioritized and non-priority data from modem 205 and subsequently becomes available for uplink transmission of both prioritized and non-priority data from modem 205, modem 205 can send an indication to enable the flow of prioritized data, providing the application processor with the option to send prioritized data to modem 205 before sending non-priority data, which can reduce latency caused by prioritized data. Furthermore, although in Figures 3 to 5 The examples described herein are as follows, but modem 205 may implement any combination of the examples disclosed herein. For example, in the example where modem 205 maintains a separate buffer, and in other examples, modem 205 may allow prioritized data to be excluded from flow control commands.
[0118] Figure 3 An example of a data flow diagram 300 supporting techniques for prioritizing service flows to maintain QoS, according to various aspects of this disclosure, is shown. Data flow diagram 300 illustrates communication between a modem 305, an application processor 310, and an optional hardware processing block 315. In some examples, modem 305 may implement flow control for each service flow based on maintaining two separate buffers 330, including buffer 330-a configured to store prioritized data 320 and buffer 330-b configured to store non-prioritized data 325.
[0119] Modem 305 can transmit data stored in two separate buffers 330 by linking two separate buffers 330 to a radio bearer 340 (e.g., DRB) coupled to a protocol stack 345. Modem 305 can use protocol stack 345 to send data to network devices, such as network device 210 (e.g., ...). Figure 2(As shown). In some aspects, protocol stack 345 may be an example of a 5G or LTE protocol stack. Application processor 310 may be an example of a data source (e.g., a tethered client) or may be used as a data source. Application processor 310 may send data (including prioritized data 320 and non-prioritized data 325) to modem 305 for uplink transmission, and in some cases, data may be sent to modem 305 via optional hardware processing block 315 (e.g., the use of optional hardware processing block 315 may be optional or used as determined by the UE). Optional hardware processing block 315 may be an example of a programmable protocol processor or driver and may support hardware processing of uplink or downlink IP packets.
[0120] Modem 305 can store data received from application processor 310 according to the service flow or service type of the data. For example, modem 305 can store prioritized data 320 received from application processor 310 (via optional hardware processing block 315) in buffer 330-a, and can store non-prioritized data 325 received from application processor 310 (via optional hardware processing block 315) in buffer 330-b. Each of the buffers 330 of modem 305 can be configured with or otherwise associated with multiple threshold levels, which may be referred to herein as thresholds 335. For example, buffer 330-a may include thresholds 335-a, 335-b, and 335-c, and buffer 330-b may include thresholds 335-d, 335-e, and 335-f. The multiple thresholds 335 of each buffer 330 may reflect the amount of data stored in the buffer 330. For example, in the example of buffer 330-a, threshold 335-c may reflect a first amount of data in buffer 330-a, threshold 335-b may reflect a second amount of data in buffer 330-a that is greater than the first amount, and threshold 335-a may reflect a third amount of data in buffer 330-a that is greater than the second amount. Thresholds 335-f, 335-e, and 335-d may similarly reflect the first, second, and third amounts of data in buffer 330-b, respectively. The various thresholds 335 may be examples of static buffer occupancy levels and may be defined as a percentage of the depth of buffer 330 or some static value (e.g., in bytes, etc.). In some respects, thresholds 335-a and 335-d may be upper limit thresholds for buffers 330-a and 330-b, respectively, and may reflect or otherwise indicate the upper limit or maximum amount of data that can be stored in each buffer 330.
[0121] In some embodiments of this disclosure, various thresholds 335 for each buffer 330 below an upper threshold can be associated with the level of flow control that the modem 305 can change for the data stored in the respective buffer 330. For example, if the modem 305 identifies that the amount of non-prioritized data 325 stored in buffer 330-b exceeds threshold 335-e, the modem 305 can send a flow control command 355 for the non-prioritized data to the application processor 310. Similarly, if the modem 305 identifies that the amount of prioritized data 320 stored in buffer 330-a exceeds threshold 335-b, the modem 305 can send a flow control command 350 for prioritized data traffic to the application processor 310.
[0122] In some examples, for instance, the radio bearer 340 of modem 305 may have insufficient uplink grants (e.g., the size of one or more uplink grants received from network devices may be less than a threshold size), and the amount of prioritized data 320 or non-priority data 325 stored in buffer 330 of modem 305 may increase (because the transmitter at application processor 310 is faster than the transmitter at protocol stack 345 of modem 305). In such examples, modem 305 may apply flow control to prioritized data 320 and non-priority data 325 separately, based on maintaining separate buffers 330. In one example (e.g., in an example where non-priority data 325 has a faster data rate than prioritized data 320 and reaches threshold 335-e of buffer 330-b before prioritized data 320 reaches threshold 335-b of buffer 330-a), modem 305 may initially apply flow control to non-priority data by sending flow control command 355 to application processor 310.
[0123] If, after application processor 310 applies flow control command 355 to non-prioritized data, modem 305 determines or otherwise identifies that network clearance conditions have not improved, modem 305 may send flow control command 350 to application processor 310 to also apply flow control to prioritized data 320. For example, if modem 305 identifies that the amount of prioritized data 320 in buffer 330-a is greater than threshold 335-b (e.g., becomes greater than threshold 335-b after application processor 310 applies flow control to non-prioritized data), modem 305 may send flow control command 350 to instruct application processor 310 to apply flow control to prioritized data 320 based on flow control command 350.
[0124] In an example where modem 305 sends flow control command 350 and flow control command 355 to application processor 310, application processor 310 can use flow control command 350 and flow control command 355 to control the flows of prioritized data 320 and non-priority data 325 respectively. For example, application processor 310 can perform flow control on prioritized data 320 according to flow control command 350, and can perform flow control on non-priority data 325 according to flow control command 355. To support such separation of flow control between prioritized data 320 and non-priority data 325, application processor 310 can use separate interfaces (e.g., separate virtual interfaces) for prioritized data 320 and non-priority data 325, or perform dynamic traffic shaping on each flow based on separate flow control commands received from modem 305, or both.
[0125] For example, in an example where application processor 310 uses separate interfaces for prioritized data 320 and non-prioritized data 325, application processor 310 may send prioritized data 320 to modem 305 via a first interface according to flow control command 350, and send non-prioritized data 325 to modem 305 via a second interface according to flow control command 355. Additionally or alternatively, in an example where application processor 310 employs dynamic traffic shaping for each flow, application processor 310 may determine a first data traffic shaping for non-prioritized data 325 based on flow control command 355, and may determine a second data traffic shaping for prioritized data 320 based on flow control command 350. In such an example, application processor 310 may send non-prioritized data 325 to modem 305 according to the first traffic shaping, and may send prioritized data 320 to modem 305 according to the second traffic shaping.
[0126] In some examples, the amount of prioritized data 320 or non-priority data 325 in buffers 330-a and 330-b may be reduced based on improved network conditions (e.g., greater uplink license accumulation or greater available bandwidth) or flow control, or both. In such an example, modem 305 may determine whether the amount of prioritized data 320 or non-priority data 325 in buffers 330-a and 330-b has decreased to or below a threshold 335, respectively, to enable flow of either or both of the prioritized data 320 or non-priority data 325 (e.g., and thus terminate or otherwise disable flow control). For example, if modem 305 determines or otherwise identifies that the amount of prioritized data 320 in buffer 330-a is equal to or less than threshold 335-c, modem 305 may send an indication to application processor 310 to enable flow of prioritized data 320.
[0127] Based on receiving an indication to enable the flow of prioritized data 320, application processor 310 may disable flow control applied to prioritized data 320 and resume sending prioritized data 320 to modem 305 without flow control. Similarly, if modem 305 determines or otherwise identifies that the amount of non-prioritized data 325 in buffer 330-b is equal to or less than threshold 335-f, modem 305 may send an indication to application processor 310 to enable the flow of non-prioritized data 325. Based on receiving an indication to enable the flow of non-prioritized data 325, application processor 310 may disable flow control applied to non-prioritized data 325 and resume sending non-prioritized data 325 to modem 305 without flow control.
[0128] Figure 4 An example of a data flow diagram 400 supporting techniques for prioritizing service flows to maintain QoS, according to various aspects of this disclosure, is shown. Data flow diagram 400 illustrates communication between modem 405, application processor 410, and optional hardware processing block 415. In some examples, modem 405 may support flow control implementation for each service flow based on a threshold 435 of a configuration buffer 430 (e.g., a buffer), which indicates separate flow control commands for prioritized or non-prioritized data 425.
[0129] Application processor 410 may be an example of a data source (e.g., a tethered client) or may be used as a data source. Application processor 410 may send data (including prioritized data 420 and non-prioritized data 425) to modem 405 for uplink transmission, and in some cases, may send data to modem 405 via optional hardware processing block 415 (e.g., the use of optional hardware processing block 415 may be optional or used according to the UE's decision). Optional hardware processing block 415 may be an example of a programmable protocol processor or driver and may support hardware processing of uplink or downlink IP packets. Modem 405 may store data received from application processor 410 in buffer 430, and modem 405 may send the data stored in buffer 430 to network devices based on linking buffer 430 to a radio bearer 440 (e.g., DRB) coupled to protocol stack 445. Modem 405 may use protocol stack 445 to send data to network devices, such as network device 210 (e.g., [unclear]). Figure 2 (As shown). In some respects, protocol stack 445 can be an example of a 5G or LTE protocol stack.
[0130] Buffer 430 may be configured with or otherwise associated with multiple threshold levels, which may be referred to herein as thresholds 435. For example, buffer 430 may include thresholds 435-a, 435-b, 435-c, 435-d, 435-e, and 435-f. The multiple thresholds 435 of buffer 430 may reflect the amount of data stored in buffer 430. For example, threshold 435-f may reflect a first amount of data in buffer 430, threshold 435-e may reflect a second amount of data in buffer 430 greater than the first amount, threshold 435-d may reflect a third amount of data in buffer 430 greater than the second amount, and so on, up to threshold 435-a, which may reflect the maximum amount of data that can be stored in buffer 430. The various thresholds 435 may be examples of static buffer occupancy levels and may be defined as a percentage of the depth of buffer 430 or some static value (e.g., in bytes, etc.).
[0131] In some respects, for example, threshold 435-f may reflect approximately 15% of the size of buffer 430, threshold 435-e may reflect approximately 30% of the size of buffer 430, threshold 435-d may reflect approximately 60% of the size of buffer 430, threshold 435-c may reflect approximately 80% of the size of buffer 430, threshold 435-b may reflect approximately 90% of the size of buffer 430, and threshold 435-a may reflect approximately 100% of the size of buffer 430. In some examples, the threshold 435 (how much occupancy each buffer 430 reflects) may be dynamically changed in the software (e.g., dynamically configured).
[0132] In some embodiments of this disclosure, modem 305 may configure or interpret various thresholds 435 of buffer 430 as triggers for changing flow control of prioritized or non-prioritized data 420. For example, modem 405 may configure thresholds 435 of buffer 430 such that each threshold 435 is associated with triggering a flow control change of prioritized data 420 or with triggering a flow control change of non-prioritized data 425. For example, modem 405 may configure thresholds 435-f, 435-d, and 435-b to be associated with triggering a flow control change of non-prioritized data 425, and modem 405 may configure thresholds 435-e, 435-c, and 435-a to be associated with triggering a flow control change of prioritized data 420.
[0133] For example, based on the current occupancy of buffer 430, modem 405 can send different flow control commands (e.g., flow control messages) to application processor 410 for prioritized data 420 or non-prioritized data 425. For instance, modem 405 and application processor 410 can define two flow control messages, including a flow control command 450 for prioritized data 420 and a flow control command 455 for non-prioritized data 425, and define two different thresholds 435 associated with triggering the transmission of flow control command 450 or flow control command 455. In one example, modem 405 can configure threshold 435-d to be associated with triggering the transmission of flow control command 455 for non-prioritized data 425 to application processor 410, and modem 405 can configure threshold 435-c to be associated with triggering the transmission of flow control command 450 for prioritized data 420 to application processor 410.
[0134] Thus, if modem 405 determines or otherwise identifies that the amount of prioritized data 420 and non-priority data 425 in buffer 430 exceeds a threshold 435-d, modem 405 can send a flow control command 455 to application processor 410 to apply flow control to the non-priority data 425. Based on the received flow control command 455, application processor 410 can apply the flow control command 455 to the non-priority data 425. For example, application processor 410 can add filters or traffic shaping to apply flow control to the non-priority data 425 (instead of the prioritized data 420) based on the flow control command 455. If the amount of prioritized data 420 and non-priority data 425 in buffer 430 continues to increase (e.g., after a flow control command 455 is applied to non-priority data 425), and if modem 405 determines or otherwise identifies that the amount of prioritized data 420 and non-priority data 425 in buffer 430 exceeds a threshold 435-c, modem 405 may send a flow control command 450 to application processor 410 to apply flow control to the prioritized data 420 (e.g., in addition to applying flow control to the non-priority data 425). Based on the received flow control command 450, application processor 410 may apply the flow control command 450 to the prioritized data 420. For example, application processor 410 may add filters or traffic shaping to apply flow control to the prioritized data 420 based on flow control command 450.
[0135] In some examples, the amount of prioritized data 420 and non-priority data 425 in buffer 430 may be reduced based on improved network conditions (e.g., greater uplink license accumulation or greater available bandwidth) or flow control, or both. In such examples, modem 405 may determine whether the amount of prioritized data 420 and non-priority data 425 in buffer 430 has decreased to or below a threshold 435 to enable flow of either or both of prioritized data 420 or non-priority data 425 (e.g., and thus terminate or otherwise disable flow control). In some implementations, modem 405 may configure a separate threshold 435 for buffer 430 to enable flow of prioritized data 420 and flow of non-priority data 425.
[0136] For example, modem 405 can configure threshold 435-e to be associated with an indication that triggers the flow of prioritized data 420, and can configure threshold 435-f to be associated with an indication that triggers the flow of non-prioritized data 425. Thus, if modem 405 determines or otherwise identifies that the amount of data in buffer 430 (e.g., prioritized data 420 and non-prioritized data 425) is equal to or less than threshold 435-e, modem 405 can send an indication to application processor 410 to enable the flow of prioritized data 420. Based on the received indication to enable the flow of prioritized data 420, application processor 410 can disable flow control applied to prioritized data 420 and resume sending prioritized data 420 to the modem without flow control. Similarly, if modem 405 determines or otherwise identifies that the amount of data in buffer 430 is equal to or less than threshold 435-f, modem 405 can send an indication to application processor 410 to enable the flow of non-prioritized data 425. Based on the received instruction to enable the non-priority data 425 stream, the application processor 410 can disable flow control applied to the non-priority data 425 and resume sending the non-priority data 425 to the modem without flow control. In this way, the modem 405 can provide more buffer space compared to the non-priority data 425, in which the prioritized data 420 can grow or accumulate before being subject to flow control.
[0137] In some implementations, modem 405 may enable or disable one or more of the thresholds 435 of buffer 430 based on which flows are in progress (e.g., currently being supplied to modem 405 from application processor 410). For example, if application processor 410 is sending non-prioritized data 425 to modem 405 and not sending any prioritized data 420 to modem 405, modem 405 may disable thresholds 435 of buffer 430 that are configured to be associated with flow control changes to prioritized data 420 (because those thresholds 435 may be unrelated to non-prioritized data 425). Similarly, if application processor 410 is sending prioritized data 420 to modem 405 and not sending any non-prioritized data 425 to modem 405, modem 405 may disable thresholds 435 of buffer 430 that are configured to be associated with flow control changes to non-prioritized data 425 (because those thresholds 435 may be unrelated to prioritized data 420).
[0138] Furthermore, as a supplement or alternative to the threshold 435 that selectively enables or disables the buffer 430 based on whether the application processor 410 is sending prioritized data 420, non-priority data 425, or both, the modem 405 can dynamically change the amount of data reflected by each threshold 435 based on whether the application processor 410 is sending only prioritized data 420, only non-priority data 425, or both. Thus, for example, in an example where the modem is receiving non-priority data 425 and not prioritizing data 420 (e.g., in an example where default or non-priority data 425 is the only data in the system), the modem 405 can avoid using unnecessarily small thresholds 435 for non-priority data 425.
[0139] Figure 5 An example of a data flow diagram 500 supporting techniques for prioritizing service flows to maintain QoS, according to various aspects of this disclosure, is shown. Data flow diagram 500 illustrates communication between modem 505, application processor 510, and optional hardware processing block 515. In some examples, modem 505 and application processor 510 may implement flow control for each service flow based on the exclusion of data 520 prioritized at application processor 510 from a first flow control command from modem 505.
[0140] Application processor 510 may be an example of a data source (e.g., a tethered client) or may be used as a data source. Application processor 510 may send data (including prioritized data 520 and non-prioritized data 525) to modem 505 for uplink transmission, and in some cases, data may be sent to modem 505 via optional hardware processing block 515 (e.g., the use of optional hardware processing block 515 may be optional or used according to the UE's decision). Optional hardware processing block 515 may be an example of a programmable protocol processor or driver and may support hardware processing of uplink or downlink IP packets. Modem 505 may store data received from application processor 510 (e.g., prioritized data 520 and non-prioritized data 525) in buffer 530, and modem 505 may send the data stored in buffer 530 to network devices based on linking buffer 530 to a radio bearer 540 (e.g., DRB) coupled to protocol stack 545. Modem 505 may use protocol stack 545 to send data to network devices, such as network device 210 (e.g., [unspecified device]). Figure 2 (As shown). In some respects, protocol stack 545 can be an example of a 5G or LTE protocol stack.
[0141] Buffer 530 may be configured with or otherwise associated with multiple threshold levels, which may be referred to herein as threshold 535. For example, buffer 530 may include threshold 535-a, threshold 535-b, and threshold 535-c. The multiple thresholds 535 of buffer 530 may reflect the amount of data stored in buffer 530. For example, threshold 535-c may reflect a first amount of data in buffer 530, threshold 535-b may reflect a second amount of data in buffer 530 greater than the first amount, and threshold 535-a may reflect a third amount of data in buffer 530 greater than the second amount. Various thresholds 535 may be examples of static buffer occupancy levels and may be defined as a percentage of the depth of buffer 530 or some static value (e.g., in bytes, etc.). Such thresholds 535 can remain intact even when there is no data in buffer 530.
[0142] In some examples, modem 505 can configure or interpret various thresholds 535 of buffer 530 as triggers for flow control to change prioritized data 520 or non-prioritized data 525, or both. For example, modem 505 can configure each threshold 535 of buffer 530 such that each threshold 535 is associated with triggering a flow control change for prioritized data 520, or with triggering a flow control change for non-prioritized data 525, or both. For example, modem 505 can configure threshold 535-b to be associated with triggering a flow control change for prioritized data 520 or non-prioritized data 525, or both. Thus, if modem 505 identifies that the amount of prioritized data 520 and non-prioritized data 525 stored in buffer 530 is greater than threshold 535-b, modem 505 can send a flow control command 555 to application processor 510 for any one or both of the prioritized data 520 or non-prioritized data 525.
[0143] In some implementations, based on the received flow control command 555, application processor 510 can exclude prioritized data 520 from flow control command 555. In other words, application processor 510 can exclude prioritized data 520 from flow control command 555 and continue sending prioritized data 520 to modem 505 without applying flow control command to prioritized data 520 (even if the flow from modem 505 is disabled). Based on the receipt of prioritized data after sending flow control command 555 based on the amount of data in identification buffer 530 being greater than threshold 535-b, modem 505 can store the received prioritized data 520 in buffer 530 above threshold 535-b. For example, if a stream from modem 505 is disabled (e.g., due to a lack of uplink clearance for modem 505), modem 505 may not be able to reduce the amount of data stored in buffer 530 below threshold 535-b (at which point modem 505 sends stream control command 555), and accordingly, modem 505 may store the prioritized data 520 that continues to be received after stream control command 555 in buffer 530 between threshold 535-b and threshold 535-a.
[0144] In some examples, based on the exclusion of prioritized data 520 created at application processor 510 from flow control command 555 and the continued transmission of prioritized data 520 to modem 505 by application processor 510, the amount of data stored in buffer 530 may approach, reach, or exceed threshold 535-a, which may be used as an upper limit threshold corresponding to an upper limit (e.g., a maximum amount) of data that modem 505 can store in buffer 530. In such examples, based on determining or otherwise identifying that the amount of data stored in buffer 530 is equal to or greater than threshold 535-a, modem 505 may send flow control command 550 to application processor 510 to instruct application processor 510 to stop transmitting any further prioritized data 520. In some aspects, flow control command 550 may include one or more bits of flags (e.g., specific flags associated with instructing application processor 510 to stop transmitting data to modem 505), or examples of such flags.
[0145] In some respects, even if the prioritized data 520 may initially be dequeued by Layer 2 (L2), the prioritized data 520 transmitted between the application processor 510 and the modem 505 may be dropped when the modem 505 sends the flow control command 550 (e.g., because the buffer 530 is full, so it is not stored in the buffer 530 of the modem 505). Thus, in scenarios where the prioritized data 520 from the application processor 510 is latency-sensitive but where minimal dropping is acceptable without communication failure, the modem 505 and the application processor 510 can support such exclusion of the prioritized data 520.
[0146] Figure 6 An example of a process flow 600 supporting techniques for prioritizing service flows to maintain QoS, according to various aspects of this disclosure, is shown. Process flow 600 illustrates communication between a modem 605, an application processor 610 (i.e., AP 610), and a network device 615. In some examples, the modem 605 and application processor 610 may support flow control implementation for each service flow to maintain the QoS of prioritized data (e.g., data associated with or part of an SLA) under various network conditions.
[0147] At 620, application processor 610 (e.g., a second device) can send a first data service with a first QoS and a first priority level, and a second data service with a second QoS and a second priority level greater than the first priority level, to modem 605 (e.g., a first device). In other words, the first data service may include non-prioritized data or examples of non-prioritized data, and the second data service may include prioritized data service or examples of prioritized data service. In some aspects, the first and second data services may be equivalently referred to herein as service streams, data streams, QoS streams, or IP streams, etc. In some aspects, the first and second data services may target the same radio bearer.
[0148] At position 625, modem 605 can store the first data service and the second data service in one or more buffers of the first device. For example, in some embodiments, modem 605 can store the first data service in a first buffer, and modem 605 can store the second data service in a second buffer, such as... Figure 3 As shown and referenced Figure 3 A more detailed description is provided. In some other embodiments, modem 605 can store the first data service and the second data service in a buffer, such as... Figure 4 and Figure 5 As shown and referenced Figure 4 and Figure 5 More detailed description.
[0149] At 630, network device 615 can send one or more uplink licenses for uplink transmission of the first and second data services. In some examples, the accumulated size of the one or more uplink licenses can be less than a threshold size, which is the minimum size that can simultaneously carry the first and second data services without triggering a flow control command. For example, the accumulated size of the one or more uplink licenses can be associated with a data rate less than the data rate of the data source (e.g., application processor 610), allowing modem 605 to determine to employ flow control to slow down the transmitter of application processor 610 to avoid packet drop at modem 605.
[0150] At 635, modem 605 can recognize that a first data amount stored in one or more buffers of modem 605 is greater than a first threshold level. In some examples, such as in examples where modem 605 maintains separate buffers for first data traffic and second data traffic, at 635, modem 605 can recognize that the amount of first data traffic in the first buffer of modem 605 is greater than the first threshold level of the first buffer. In some other examples, such as in examples where modem 605 maintains one buffer for first data traffic and second data traffic, at 635, modem 605 can recognize that the amount of first data traffic and second data traffic in that one buffer is greater than a first (lower) threshold of that one buffer. Thus, in the example where modem 605 maintains a separate buffer, the first data amount can refer to the amount of first data traffic in the first buffer, and in the example where modem 605 uses one buffer, the first data amount can refer to the sum of the first data traffic and second data traffic in the one buffer. Similarly, the first threshold can refer to a threshold that triggers flow control of the first buffer including the first data traffic, or to a lower threshold (among multiple thresholds for triggering flow control) that triggers flow control of a buffer that simultaneously includes both the first and second data traffic.
[0151] At point 640, based on the fact that the first priority level of the first data service is lower than the second priority level of the second data service, and based on the identification that the first data volume in one or more buffers is greater than a first threshold level, modem 605 may send a first flow control command for the first data service to application processor 610. Based on receiving the first flow control command at 640, application processor 610 may apply the first flow control command to the first data service. For example, based on receiving the first flow control command, application processor 610 may send the first data service to modem 605 according to the first flow control command. In some aspects, the first flow control command may reduce the data rate or bit rate of the first data service. In some other aspects, the first flow control command may instruct application processor 610 to stop sending the first data service to modem 605.
[0152] At 645, in some embodiments, modem 605 may recognize that the amount of second data stored in one or more buffers of modem 605 is greater than a second threshold level. In some examples, such as in an example where modem 605 maintains separate buffers for first and second data services, at 645, modem 605 may recognize that the amount of second data service in a second buffer of modem 605 is greater than a second threshold level of the second buffer. In some other examples, such as in an example where modem 605 maintains one buffer for first and second data services, at 645, modem 605 may recognize that the amount of first and second data service in that one buffer is greater than a second (higher) threshold of that one buffer. Thus, in the example where modem 605 maintains a separate buffer, the second data amount may refer to the amount of second data service in the second buffer, and in the example where modem 605 uses one buffer, the second data amount may refer to the sum of the first and second data services in one buffer. Similarly, the second threshold may refer to the threshold that triggers flow control of a second buffer that includes the second data service, or the higher threshold (among multiple thresholds that trigger flow control) that triggers flow control of a buffer that includes both the first and second data services.
[0153] At 650, in some embodiments, modem 605 may send a second flow control command for a second data service to application processor 610 based on the identification that a second data amount in one or more buffers exceeds a second threshold level. Based on receiving the second flow control command at 650, application processor 610 may apply the second flow control command to the second data service. For example, based on receiving the second flow control command, application processor 610 may send the second data service to modem 605 according to the second flow control command. In some aspects, the second flow control command may reduce the data rate or bit rate of the second data service. In some other aspects, the second flow control command may instruct application processor 610 to stop sending the second data service to modem 605.
[0154] At 655, application processor 610 can send a first data service and a second data service to modem 605 based on a first flow control command received at 640 or a second flow control command received at 650, or both. In some examples, application processor 610 can send the first data service to modem 605 via a first interface (e.g., a first virtual interface) based on the first flow control command, and send the second data service to modem 605 via a second interface (e.g., a second virtual interface) based on the second flow control command. In some other examples, application processor 610 can send the first data service to modem 605 based on a first service shaping (e.g., dynamic service shaping) based on the first flow control command, and send the second data service to modem 605 based on a second service shaping (e.g., dynamic service shaping) based on the second flow control command.
[0155] At 660, modem 605 can send an uplink transmission including a first data service and a second data service to network device 615. Furthermore, although shown as being completed once at 660, modem 605 can continuously send the first data service and the second data service to network device 615 via process flow 600 based on a continuous stream of uplink licenses received from network device 615.
[0156] Figure 7 A block diagram 700 of an apparatus 705 for prioritizing service flows to maintain QoS according to various aspects of this disclosure is shown. Apparatus 705 may be an example of a modem or application processor aspect of UE 115 as described herein. Apparatus 705 may include a receiver 710, a transmitter 715, and a communication manager 720. Apparatus 705 may also include a processor. Each of these components may communicate with each other (e.g., via one or more buses).
[0157] Receiver 710 may provide components for receiving information associated with various information channels (e.g., control channels, data channels, and information channels related to techniques for prioritizing service flows to maintain QoS), such as packets, user data, control information, or any combination thereof. The information may be passed to other components of device 705. Receiver 710 may use a single antenna or a group of multiple antennas.
[0158] Transmitter 715 may provide components for transmitting signals generated by other components of device 705. For example, transmitter 715 may transmit information associated with various information channels (e.g., control channels, data channels, information channels related to techniques for prioritizing service flows to maintain QoS), such as packets, user data, control information, or any combination thereof. In some examples, transmitter 715 may be co-located with receiver 710 in a transceiver assembly. Transmitter 715 may use a single antenna or a group of multiple antennas.
[0159] The communication manager 720, receiver 710, transmitter 715, or various combinations thereof, or various components thereof, may be examples of components used to perform various aspects of the techniques described herein for prioritizing service flows to maintain QoS. For example, the communication manager 720, receiver 710, transmitter 715, or various combinations thereof, or components thereof, may support methods for performing one or more functions described herein.
[0160] In some examples, the communication manager 720, receiver 710, transmitter 715, or various combinations or components thereof may be implemented in hardware (e.g., in communication management circuitry). The hardware may include a processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, configured or otherwise supporting components for performing the functions described herein. In some examples, the processor and memory coupled to the processor may be configured to perform one or more of the functions described herein (e.g., by executing instructions stored in the memory by the processor).
[0161] Additionally or alternatively, in some examples, the communication manager 720, receiver 710, transmitter 715, or various combinations or components thereof may be implemented as code executed by a processor (e.g., as communication management software or firmware). If implemented as processor-executed code, the functionality of the communication manager 720, receiver 710, transmitter 715, or various combinations or components thereof may be performed by a general-purpose processor, DSP, central processing unit (CPU), ASIC, FPGA, or any combination of these or other programmable logic devices (e.g., components configured or otherwise supported for performing the functions described in this disclosure).
[0162] In some examples, the communication manager 720 can be configured to use or otherwise cooperate with the receiver 710, transmitter 715, or both to perform various operations (e.g., receiving, monitoring, transmitting). For example, the communication manager 720 can receive information from the receiver 710, send information to the transmitter 715, or integrate with or in combination with the receiver 710, transmitter 715, or both to receive information, send information, or perform various other operations as described herein.
[0163] According to the examples disclosed herein, the communication manager 720 can support wireless communication at a first device. For example, the communication manager 720 can be configured or otherwise supported to support components for receiving a first data service having a first QoS and a first priority level from a second device. The communication manager 720 can be configured or otherwise supported to support components for receiving a second data service having a second QoS and a second priority level greater than the first priority level from the second device, wherein the first data service and the second data service target the same radio bearer. The communication manager 720 can be configured or otherwise supported to support components for storing the first data service and the second data service in one or more buffers in the first device. The communication manager 720 can be configured or otherwise supported to support components for sending a first flow control command for the first data service to the second device based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0164] Additionally or alternatively, according to the examples disclosed herein, the communication manager 720 may support wireless communication at a second device. For example, the communication manager 720 may be configured or otherwise support components for transmitting a first data service to the first device having a first QoS and a first priority level. The communication manager 720 may be configured or otherwise support components for transmitting a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer. The communication manager 720 may be configured or otherwise support components for receiving a first flow control command from the first device for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers. The communication manager 720 may be configured or otherwise support components for transmitting the first data service and the second data service to the first device, the first data service being transmitted according to the first flow control command.
[0165] By including or configuring the communication manager 720 according to the examples described herein, device 705 (e.g., a processor that controls or is otherwise coupled to receiver 710, transmitter 715, communication manager 720, or combinations thereof) can support techniques for implementing flow control on a per-service-flow basis, which can result in lower latency for prioritized data types associated with QoS as defined by SLAs. Thus, under various network conditions, such as even when relatively small bandwidth allocations are involved, the modem can experience a greater likelihood of meeting the SLAs for prioritized data.
[0166] Figure 8 A block diagram 800 of a device 805 supporting techniques for prioritizing service flows to maintain QoS according to various aspects of this disclosure is shown. Device 805 may be an example of an aspect of device 705 as described herein, a modem of UE 115, or an application processor. Device 805 may include a receiver 810, a transmitter 815, and a communication manager 820. Device 805 may also include a processor. Each of these components can communicate with each other (e.g., via one or more buses).
[0167] Receiver 810 may provide components for receiving information associated with various information channels (e.g., control channels, data channels, and information channels related to techniques for prioritizing service flows to maintain QoS), such as packets, user data, control information, or any combination thereof. The information may be passed to other components of device 805. Receiver 810 may use a single antenna or a group of multiple antennas.
[0168] Transmitter 815 may provide components for transmitting signals generated by other components of device 805. For example, transmitter 815 may transmit information associated with various information channels (e.g., control channels, data channels, information channels related to techniques for prioritizing service flows to maintain QoS), such as packets, user data, control information, or any combination thereof. In some examples, transmitter 815 may be co-located with receiver 810 in a transceiver assembly. Transmitter 815 may use a single antenna or a group of multiple antennas.
[0169] Device 805 or its various components may be examples of parts used to perform various aspects of techniques for prioritizing service flows to maintain QoS as described herein. For example, communication manager 820 may include data service component 825, buffer component 830, flow control component 835, or any combination thereof. Communication manager 820 may be an example of aspects of communication manager 720 as described herein. In some examples, communication manager 820 or its various components may be configured to use receiver 810, transmitter 815, or both, or otherwise cooperate with receiver 810, transmitter 815, or both to perform various operations (e.g., receiving, monitoring, transmitting). For example, communication manager 820 may receive information from receiver 810, transmit information to transmitter 815, or integrate with receiver 810, transmitter 815, or a combination thereof to receive information, transmit information, or perform various other operations as described herein.
[0170] According to the examples disclosed herein, the communication manager 820 may support wireless communication at the first device. The data service component 825 may be configured or otherwise supported for receiving a first data service from the second device having a first QoS and a first priority level. The data service component 825 may be configured or otherwise supported for receiving a second data service from the second device having a second QoS and a second priority level greater than the first priority level, wherein the first and second data services target the same radio bearer. The buffer component 830 may be configured or otherwise supported for storing the first and second data services in one or more buffers of the first device. The flow control component 835 may be configured or otherwise supported for sending a first flow control command for the first data service to the second device based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0171] Additionally or alternatively, according to the examples disclosed herein, the communication manager 820 may support wireless communication at the second device. The data service component 825 may be configured or otherwise support components for transmitting a first data service to the first device having a first QoS and a first priority level. The data service component 825 may be configured or otherwise support components for transmitting a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first and second data services target the same radio bearer. The flow control component 835 may be configured or otherwise support components for receiving a first flow control command from the first device for the first data service based on a first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers. The data service component 825 may be configured or otherwise support components for transmitting the first and second data services to the first device, the first data service being transmitted according to the first flow control command.
[0172] Figure 9 A block diagram 900 of a communication manager 920 for prioritizing service flows to maintain QoS according to various aspects of this disclosure is shown. The communication manager 920 may be an example of aspects of the communication manager 720, communication manager 820, or both as described herein. For example, the communication manager 920 may operate in or serve as a modem or application processor. The communication manager 920 or its various components may be examples of parts for performing various aspects of the techniques for prioritizing service flows to maintain QoS as described herein. For example, the communication manager 920 may include a data service component 925, a buffer component 930, a flow control component 935, a buffer component 940, an uplink permission component 945, a flow control exclusion component 950, a flow enable component 955, or any combination thereof. Each of these components may communicate directly or indirectly with each other (e.g., via one or more buses).
[0173] According to the examples disclosed herein, when implemented in a modem, the communication manager 920 can support wireless communication at the first device. The data service component 925 can be configured or otherwise supported for receiving a first data service from the second device having a first QoS and a first priority level. In some examples, the data service component 925 can be configured or otherwise supported for receiving a second data service from the second device having a second QoS and a second priority level greater than the first priority level, wherein the first and second data services target the same radio bearer. The buffer component 930 can be configured or otherwise supported for storing the first and second data services in one or more buffers of the first device. The flow control component 935 can be configured or otherwise supported for sending a first flow control command for the first data service to the second device based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0174] In some examples, to support storing a first data service and a second data service in one or more buffers of a first device, buffer component 940 may be configured or otherwise support components for storing the first data service in a first buffer of the first device and storing the second data service in a second buffer of the first device, wherein the first buffer and the second buffer are linked to the same data radio bearer, and wherein each of the first buffer and the second buffer includes a set of multiple threshold levels, each threshold level being configured based on a first priority level and a second priority level.
[0175] In some examples, in order to support the sending of a first flow control command for a first data service, the flow control component 935 may be configured or otherwise support a component for sending a first flow control command for a first data service based on a first amount of the first data service stored in a first buffer being greater than a first threshold level of the first buffer.
[0176] In some examples, the flow control component 935 may be configured or otherwise support a component for sending a second flow control command for the second data service to the second device based on a second amount of the second data service stored in the second buffer being greater than a second threshold level of the second buffer.
[0177] In some examples, in order to support storing first and second data services in one or more buffers of a first device, buffer component 940 may be configured or otherwise support components for storing first and second data services in a buffer of the first device, the buffer including a set of multiple threshold levels, wherein each of the multiple threshold levels is configured based on a first priority level and a second priority level.
[0178] In some examples, in order to support the transmission of a first flow control command for a first data service, the flow control component 935 may be configured or otherwise support a component for transmitting a first flow control command for a first data service based on a first amount of a first data service and a second data service stored in a buffer being greater than a first threshold level of the buffer, wherein the first threshold level is associated with triggering the first flow control command for the first data service.
[0179] In some examples, the stream enablement component 955 may be configured or otherwise support a component for sending an indication to a second device to enable a stream of the first data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level is associated with the indication that triggers the enablement of the stream of the first data service.
[0180] In some examples, the flow control component 935 may be configured or otherwise support a component for sending a second flow control command for the second data service to a second device based on a first amount of a first data service and a second data service stored in a buffer being greater than a first threshold level of the buffer, wherein the first threshold level is associated with triggering the second flow control command for the second data service.
[0181] In some examples, the stream enablement component 955 may be configured or otherwise support a component for sending an indication to a second device to enable a stream of the second data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level is associated with the indication that triggers the enablement of the stream of the second data service.
[0182] In some examples, the set of multiple threshold levels includes at least a first threshold level that triggers the transmission of a first flow control command for a first data service and a second threshold level that triggers the transmission of a second flow control command for a second data service, wherein the first threshold level is less than the second threshold level.
[0183] In some examples, in order to support the sending of a first flow control command for a first data service, the flow control component 935 may be configured or otherwise support a component for sending a first flow control command based on a first amount of a first data service and a second data service stored in one or more buffers being greater than a threshold level of one or more buffers.
[0184] In some examples, the flow control exclusion component 950 may be configured or otherwise supported to include components for receiving a second data service from a second device based on the exclusion of the second data service from a first flow control command. In some examples, the buffer component 940 may be configured or otherwise supported to include components for storing the second data service in one or more buffers between a threshold level and an upper threshold level. In some examples, the flow control component 935 may be configured or otherwise supported to include components for sending a second flow control command to the second device, the second flow control command including an indication to stop sending the second data service based on a second amount of the second data service stored in one or more buffers being equal to or greater than an upper threshold level.
[0185] In some examples, the uplink licensing component 945 may be configured or otherwise support a component for receiving one or more uplink licenses from a network device for uplink transmission of a first data service and a second data service to the network device, wherein the sum of the one or more uplink licenses is less than a threshold size, which is the minimum size that can carry both the first data service and the second data service simultaneously without triggering a flow control command.
[0186] In some examples, the second data service has a second QoS based on the service level agreement associated with the second data service. In some examples, the first data service and the second data service are associated with different differential service code point classes. In some examples, the first device is a modem of the UE, and the second device is an application processor or a tethered client tethered to the first device via an Ethernet connection, USB connection, PCIe connection, or Wi-Fi connection.
[0187] Additionally or alternatively, according to the examples disclosed herein, when implemented in an application processor, the communication manager 920 may support wireless communication at the second device. In some examples, the data service component 925 may be configured or otherwise supported for transmitting a first data service to the first device having a first QoS and a first priority level. In some examples, the data service component 925 may be configured or otherwise supported for transmitting a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first and second data services target the same radio bearer. In some examples, the flow control component 935 may be configured or otherwise supported for receiving a first flow control command from the first device for the first data service based on a first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers. In some examples, the data service component 925 may be configured or otherwise supported for transmitting a first data service and a second data service to the first device, the first data service being transmitted according to the first flow control command.
[0188] In some examples, in order to support receiving a first flow control command for a first data service, the flow control component 935 may be configured or otherwise supported to receive a first flow control command for a first data service based on a first amount of the first data service stored in a first buffer associated with the first data service being greater than a first threshold level of the first buffer.
[0189] In some examples, the flow control component 935 may be configured or otherwise support a component for receiving a second flow control command for the second data service from the first device based on a second amount of the second data service stored in a second buffer associated with the second data service being greater than a second threshold level of the second buffer, the second buffer being different from the first buffer.
[0190] In some examples, to support the transmission of both first and second data services, data service component 925 may be configured or otherwise supported to support components for transmitting the first data service from a second device to a first device via a first interface according to a first flow control command. In some examples, to support the transmission of both first and second data services, data service component 925 may be configured or otherwise supported to support components for transmitting the second data service from a second device to a first device via a second interface according to a second flow control command.
[0191] In some examples, to support the transmission of both first and second data services, data service component 925 may be configured or otherwise supported to support components for transmitting the first data service from the second device according to a first service shaping based on a first flow control command. In some examples, to support the transmission of both first and second data services, data service component 925 may be configured or otherwise supported to support components for transmitting the second data service from the second device according to a second service shaping based on a second flow control command.
[0192] In some examples, in order to support receiving a first flow control command for a first data service, flow control component 935 may be configured or otherwise support a component for receiving a first flow control command for a first data service based on a first amount of a first data service and a second data service stored in a buffer of a first device being greater than a first threshold level of the buffer, wherein the first threshold level of the buffer is associated with triggering the first flow control command for the first data service.
[0193] In some examples, the stream enablement component 955 may be configured or otherwise support a component for receiving an indication from a first device to enable a stream of the first data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level of the buffer is associated with the indication that triggers the stream to enable the first data service.
[0194] In some examples, the flow control component 935 may be configured or otherwise support a component for receiving a second flow control command from the first device for the second data service based on a first amount of a first data service and a second data service stored in a buffer of the first device being greater than a first threshold level of the buffer, wherein the first threshold level of the buffer is associated with triggering the second flow control command for the second data service.
[0195] In some examples, the stream enablement component 955 may be configured or otherwise support a component for receiving an indication from a first device to enable a stream of the second data service based on a first amount of a first data service and a second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level of the buffer is associated with the indication that triggers the stream to enable the second data service.
[0196] In some examples, to support receiving a first flow control command, the flow control component 935 may be configured or otherwise supported for receiving a first flow control command indicating that a first amount of a first data service and a second data service stored in one or more buffers of the first device is greater than a threshold level of one or more buffers.
[0197] In some examples, the flow control exclusion component 950 may be configured or otherwise supported to enable the transmission of a second data service to the first device based on the exclusion of the second data service from the first flow control command. In some examples, the flow control component 935 may be configured or otherwise supported to enable the reception of a second flow control command from the first device, the second flow control command including an indication to stop transmitting the second data service based on a second amount of the second data service stored in one or more buffers being equal to or greater than an upper limit threshold level of one of the buffers.
[0198] In some examples, the uplink licensing component 945 may be configured or otherwise supported as a component indicating that the sum of one or more uplink licenses for receiving uplink transmissions for the first data service and the second data service is less than a threshold size, which is the minimum size that can simultaneously carry the first data service and the second data service without triggering a flow control command.
[0199] In some examples, in order to support receiving an indication that the sum of one or more uplink licenses for uplink transmission is less than a threshold size, the uplink license component 945 may be configured or otherwise support a component for receiving an indication that one or more uplink licenses are not available for uplink transmission of the first data service and the second data service.
[0200] In some examples, the uplink licensing component 945 may be configured or otherwise supported as a component for receiving a second indication that one or more uplink licenses are available for uplink transmission of the first data service and the second data service. In some examples, in order to transmit the first data service and the second data service to the first device, the data service component 925 may be configured or otherwise supported as a component for transmitting the second data service prior to transmitting the first data service.
[0201] In some examples, the second data service has a second QoS based on the service level agreement associated with the second data service. In some examples, the first data service and the second data service are associated with different differential service code point classes. In some examples, the first device is a modem of the UE, and the second device is an application processor or a tethered client tethered to the first device via an Ethernet connection, USB connection, PCIe connection, or Wi-Fi connection.
[0202] Figure 10 A schematic diagram of a system 1000 including device 1005 supporting technologies for prioritizing service flows to maintain QoS is shown according to various aspects of this disclosure. Device 1005 may be an example of a component of a modem or application processor of device 705, device 805, or UE 115 as described herein, or may include such components. Device 1005 may wirelessly communicate with one or more base stations 105, UE 115, or any combination thereof. Device 1005 may include components for bidirectional voice and data communication, including components for transmitting and receiving communications, such as a communication manager 1020, an input / output (I / O) controller 1010, a transceiver 1015, an antenna 1025, a memory 1030, code 1035, and a processor 1040. These components may communicate electronically or be otherwise coupled (e.g., operational ground, communication ground, functional ground, electronic ground, electrical ground) via one or more buses (e.g., bus 1045).
[0203] I / O controller 1010 can manage the input and output signals of device 1005. I / O controller 1010 can also manage peripheral devices not integrated into device 1005. In some cases, I / O controller 1010 can represent a physical connection or port to an external peripheral device. In some cases, I / O controller 1010 can use an operating system, such as... MS- MS- Alternatively, it may be another known operating system. Additionally or alternatively, the I / O controller 1010 may represent or interact with a modem, keyboard, mouse, touchscreen, or similar device. In some cases, the I / O controller 1010 may be implemented as part of a processor (such as processor 1040). In some cases, a user may interact with device 1005 via the I / O controller 1010 or via hardware components controlled by the I / O controller 1010.
[0204] In some cases, device 1005 may include a single antenna 1025. However, in other cases, device 1005 may have more than one antenna 1025, which may be able to transmit or receive multiple wireless transmissions simultaneously. As described herein, transceiver 1015 may communicate bidirectionally via one or more antennas 1025, a wired or wireless link. For example, transceiver 1015 may represent a wireless transceiver and may communicate bidirectionally with another wireless transceiver. Transceiver 1015 may also include a modem for modulating packets, providing modulated packets to one or more antennas 1025 for transmission, and demodulating packets received from one or more antennas 1025. As described herein, transceiver 1015, or transceiver 1015 and one or more antennas 1025, may be an example of transmitter 715, transmitter 815, receiver 710, receiver 810, or any combination thereof or components thereof.
[0205] Memory 1030 may include random access memory (RAM) and read-only memory (ROM). Memory 1030 may store computer-readable, computer-executable code 1035, including instructions that, when executed by processor 1040, cause device 1005 to perform the various functions described herein. Code 1035 may be stored in a non-transitory computer-readable medium, such as system memory or another type of memory. In some cases, code 1035 may not be directly executable by processor 1040, but may enable a computer (e.g., when compiled and executed) to perform the functions described herein. In some cases, memory 1030 may, in particular, contain a basic I / O system (BIOS) that controls basic hardware or software operations, such as interaction with peripheral components or devices.
[0206] Processor 1040 may include intelligent hardware devices (e.g., general-purpose processors, DSPs, CPUs, microcontrollers, ASICs, FPGAs, programmable logic devices, discrete gate or transistor logic components, discrete hardware components, or any combination thereof). In some cases, processor 1040 may be configured to use a memory controller to operate a memory array. In other cases, the memory controller may be integrated into processor 1040. Processor 1040 may be configured to execute computer-readable instructions stored in memory (e.g., memory 1030) to cause device 1005 to perform various functions (e.g., functions or tasks supporting techniques for prioritizing service flows to maintain QoS). For example, device 1005 or components of device 1005 may include processor 1040 and memory 1030 coupled to processor 1040, processor 1040 and memory 1030 being configured to perform the various functions described herein.
[0207] In an example of the implementation of the communication manager 1020 in the modem of the UE, according to the examples disclosed herein, the communication manager 1020 may support wireless communication at a first device. For example, the communication manager 1020 may be configured or otherwise support components for receiving a first data service having a first QoS and a first priority level from a second device. The communication manager 1020 may be configured or otherwise support components for receiving a second data service having a second QoS and a second priority level greater than the first priority level from the second device, wherein the first data service and the second data service target the same radio bearer. The communication manager 1020 may be configured or otherwise support components for storing the first data service and the second data service in one or more buffers in the first device. The communication manager 1020 may be configured or otherwise support components for sending a first flow control command for the first data service to the second device based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers.
[0208] In an example of the implementation of the communication manager 1020 in an application processor, according to the examples disclosed herein, the communication manager 1020 may support wireless communication at a second device. For example, the communication manager 1020 may be configured or otherwise support components for transmitting a first data service to a first device having a first QoS and a first priority level. The communication manager 1020 may be configured or otherwise support components for transmitting a second data service to the first device having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer. The communication manager 1020 may be configured or otherwise support components for receiving a first flow control command from the first device for the first data service based on the first priority level associated with the first data service being less than the second priority level, and also based on a threshold level of a buffer in one or more buffers. The communication manager 1020 may be configured or otherwise support components for transmitting the first data service and the second data service to the first device, the first data service being transmitted according to the first flow control command.
[0209] By including or configuring the communication manager 1020 according to the examples described herein, the device 1005 can support techniques for improving communication reliability, reducing latency, improving user experience associated with less processing and lower latency of prioritized data (e.g., video call data, video game data), more efficient use of communication resources, improved coordination between devices, longer battery life, and improved utilization of processing power.
[0210] In some examples, the communication manager 1020 may be configured to use or otherwise cooperate with transceiver 1015, one or more antennas 1025, or any combination thereof to perform various operations (e.g., receiving, monitoring, transmitting). Although the communication manager 1020 is shown as a separate component, in some examples, one or more functions described with reference to the communication manager 1020 may be supported or performed by processor 1040, memory 1030, code 1035, or any combination thereof. For example, code 1035 may include instructions executable by processor 1040 to cause device 1005 to perform various aspects of techniques described herein for prioritizing service flows to maintain QoS, or processor 1040 and memory 1030 may be otherwise configured to perform or support such operations.
[0211] Figure 11 A flowchart is shown illustrating method 1100, which supports techniques for prioritizing service flows to maintain QoS according to various aspects of this disclosure. As described herein, operation of method 1100 can be implemented by a modem of the UE or a component thereof. For example, operation of method 1100 can be performed by, as referenced... Figures 1 to 10 The described UE 115's modem performs the functions described. In some examples, the UE's modem can execute a set of instructions to control the functional elements of the UE's modem to perform the described functions. Additionally or alternatively, the UE's modem may use dedicated hardware to perform aspects of the described functions.
[0212] At 1105, the method may include receiving a first data service having a first QoS and a first priority level from a second device. The operation of 1105 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1105 may be as described in the references... Figure 9 The data service component 925 is described and executed.
[0213] At 1110, the method may include receiving from a second device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service are directed to the same radio bearer. The operation of 1110 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1110 may be provided by reference to [reference needed]. Figure 9 The data service component 925 is described and executed.
[0214] At 1115, the method may include storing the first data service and the second data service in one or more buffers of the first device. The operation of 1115 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1115 may be provided by reference to [reference needed]. Figure 9 The described buffer component 930 is used for execution.
[0215] At 1120, the method may include sending a first flow control command for the first data service to the second device based on a first priority level associated with the first data service being lower than a second priority level, and also based on a threshold level of a buffer in one or more buffers. The operation of 1120 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1120 may be as described in the references... Figure 9 The described flow control component 935 is used to perform this.
[0216] Figure 12 A flowchart is shown illustrating method 1200, which supports techniques for prioritizing service flows to maintain QoS according to various aspects of this disclosure. As described herein, operation of method 1200 can be implemented by a modem of the UE or a component thereof. For example, operation of method 1200 can be performed by, as referenced... Figures 1 to 10 The described UE 115's modem performs the functions described. In some examples, the UE's modem can execute a set of instructions to control the functional elements of the UE's modem to perform the described functions. Additionally or alternatively, the UE's modem may use dedicated hardware to perform aspects of the described functions.
[0217] At 1205, the method may include receiving a first data service having a first QoS and a first priority level from a second device. The operation of 1205 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1205 may be as described in the references... Figure 9 The data service component 925 is described and executed.
[0218] At 1210, the method may include receiving from a second device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer. The operation of 1210 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1210 may be provided by reference to [reference needed]. Figure 9 The data service component 925 is described and executed.
[0219] At 1215, the method may include storing the first data service and the second data service in one or more buffers of the first device. The operation of 1215 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1215 may be provided by reference to [reference needed]. Figure 9 The buffer component 930 described is used to perform this action.
[0220] At 1220, the method may include receiving from a network device one or more uplink licenses for uplink transmission of a first data service and a second data service to the network device, wherein the sum of the one or more uplink licenses is less than a threshold size, the threshold size being the minimum size that can simultaneously carry both the first data service and the second data service without triggering a flow control command. The operation of 1220 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1220 may be as described in the references... Figure 9 The described uplink license component 945 is used to perform this.
[0221] At 1225, the method may include sending a first flow control command for the first data service to the second device based on a first priority level associated with the first data service being lower than a second priority level, and also based on a threshold level of a buffer in one or more buffers. The operation of 1225 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1225 may be as described in the references... Figure 9 The described flow control component 935 is used to perform this.
[0222] Figure 13 A flowchart is shown illustrating a method 1300 that supports techniques for prioritizing service flows to maintain QoS according to various aspects of this disclosure. The operation of method 1300 can be implemented by an application processor or its components as described herein. For example, the operation of method 1300 can be implemented by [reference to...] Figures 1 to 10 The application processor described is used to execute this function. In some examples, the application processor may execute a set of instructions to control the functional elements of the application processor to perform the described function. Additionally or alternatively, the application processor may use dedicated hardware to perform aspects of the described function.
[0223] At 1305, the method may include sending a first data service to a first device having a first QoS and a first priority level. The operation at 1305 can be performed according to examples as disclosed herein. In some examples, aspects of the operation at 1305 may be as described in the references... Figure 9 The data service component 925 is described and executed.
[0224] At 1310, the method may include sending a second data service to a first device having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer. The operation of 1310 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1310 may be provided by reference to [reference needed]. Figure 9 The data service component 925 is described and executed.
[0225] At 1315, the method may include receiving a first flow control command from the first device for the first data service based on a first priority level associated with the first data service being less than a second priority level, and also based on a threshold level of a buffer in one or more buffers. The operation of 1315 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1315 may be as described in the references... Figure 9 The described flow control component 935 is used to perform this.
[0226] At 1320, the method may include sending a first data service and a second data service to a first device, the first data service being sent according to a first flow control command. The operation of 1320 can be performed according to examples as disclosed herein. In some examples, aspects of the operation of 1320 may be as described in the references... Figure 9 The data service component 925 is described and executed.
[0227] The following provides an overview of aspects of this disclosure.
[0228] Aspect 1: A method for wireless communication at a first device, comprising: receiving from a second device a first data service having a first QoS and a first priority level; receiving from the second device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service are for the same radio bearer; storing the first data service and the second data service in one or more buffers of the first device; and sending to the second device a first flow control command for the first data service based at least in part on the first priority level associated with the first data service being less than the second priority level, and also at least in part on a threshold level of a buffer in one or more buffers.
[0229] Aspect 2: According to the method of Aspect 1, wherein storing the first data service and the second data service in one or more buffers of the first device comprises: storing the first data service in a first buffer of the first device and storing the second data service in a second buffer of the first device, wherein the first buffer and the second buffer are linked to the same DRB, and wherein each of the first buffer and the second buffer comprises a plurality of threshold levels, each threshold level being configured at least in part based on a first priority level and a second priority level.
[0230] Aspect 3: According to the method of aspect 2, sending a first flow control command for a first data service includes: sending a first flow control command for a first data service based at least in part on the fact that a first amount of the first data service stored in a first buffer is greater than a first threshold level of the first buffer.
[0231] Aspect 4: The method according to any one of aspects 2 to 3 further includes: sending a second flow control command for the second data service to the second device based at least in part on the second amount of the second data service stored in the second buffer being greater than a second threshold level of the second buffer.
[0232] Aspect 5: According to the method of aspect 1, storing the first data service and the second data service in one or more buffers of the first device includes: storing the first data service and the second data service in a buffer of the first device, the buffer including a plurality of threshold levels, wherein each of the plurality of threshold levels is configured at least in part based on a first priority level and a second priority level.
[0233] Aspect 6: According to the method of aspect 5, wherein sending a first flow control command for a first data service comprises: sending a first flow control command for a first data service based at least in part on a first amount of a first data service and a second data service stored in a buffer being greater than a first threshold level of a buffer, wherein the first threshold level is associated with triggering the first flow control command for the first data service.
[0234] Aspect 7: The method according to aspect 6 further includes: sending an indication to a second device to enable a flow of the first data service based at least in part on a first amount of the first data service and the second data service stored in a buffer being less than a second threshold level of a buffer, wherein the second threshold level is associated with the indication that triggers the enablement of the flow of the first data service.
[0235] Aspect 8: The method according to any one of aspects 5 to 7 further includes: sending a second flow control command for the second data service to a second device based at least in part on a first amount of the first data service and the second data service stored in a buffer being greater than a first threshold level of a buffer, wherein the first threshold level is associated with triggering the second flow control command for the second data service.
[0236] Aspect 9: The method according to aspect 8 further includes: sending an indication to a second device to enable a flow of the second data service, based at least in part on a first amount of the first data service and the second data service stored in a buffer being less than a second threshold level of the buffer, wherein the second threshold level is associated with the indication that triggers the enablement of the flow of the second data service.
[0237] Aspect 10: According to the method of any one of Aspects 5 to 9, wherein the plurality of threshold levels include at least a first threshold level that triggers the transmission of a first flow control command for a first data service and a second threshold level that triggers the transmission of a second flow control command for a second data service, wherein the first threshold level is less than the second threshold level.
[0238] Aspect 11: According to the method of any one of Aspects 1 to 10, wherein sending a first flow control command for a first data service comprises: sending the first flow control command based at least in part on a first amount of the first data service and the second data service stored in one or more buffers being greater than a threshold level of one or more buffers.
[0239] Aspect 12: The method according to aspect 11 further includes: receiving a second data service from a second device based at least in part on the exclusion of the second data service from a first flow control command; storing the second data service in one or more buffers between a threshold level and an upper threshold level; and sending a second flow control command to the second device based at least in part on a second amount of the second data service stored in the one or more buffers being equal to or greater than the upper threshold level, the second flow control command including an indication to stop sending the second data service.
[0240] Aspect 13: The method according to any one of aspects 1 to 12 further includes: receiving from a network device one or more uplink licenses for uplink transmission of a first data service and a second data service to the network device, wherein the sum of the one or more uplink licenses is less than a threshold size, the threshold size being the minimum size that simultaneously carries both the first data service and the second data service without triggering a flow control command.
[0241] Aspect 14: According to the method of any one of Aspects 1 to 13, wherein the second data service has a second QoS based at least in part on the SLA associated with the second data service.
[0242] Aspect 15: According to the method of any one of Aspects 1 to 14, wherein the first data service and the second data service are associated with different DSCP categories.
[0243] Aspect 16: The method according to any one of Aspects 1 to 15, wherein the first device is a modem of the UE, and the second device is an application processor or a tethered client tethered to the first device via an Ethernet connection, USB connection, PCIe connection or Wi-Fi connection.
[0244] Aspect 17: A method for wireless communication at a second device, comprising: transmitting to a first device a first data service having a first QoS and a first priority level; transmitting to the first device a second data service having a second QoS and a second priority level greater than the first priority level, wherein the first data service and the second data service are for the same radio bearer; receiving from the first device a first flow control command for the first data service based at least in part on the first priority level associated with the first data service being less than the second priority level, and also based at least in part on a threshold level of a buffer in one or more buffers; and transmitting to the first device the first data service and the second data service, the first data service being transmitted according to the first flow control command.
[0245] Aspect 18: According to the method of aspect 17, receiving a first flow control command for a first data service includes: receiving the first flow control command for the first data service based at least in part on the fact that a first amount of the first data service stored in a first buffer associated with the first data service is greater than a first threshold level of the first buffer.
[0246] Aspect 19: The method according to aspect 18 further includes: receiving a second flow control command for the second data service from a first device, the second buffer being different from the first buffer, based at least in part on a second amount of the second data service stored in a second buffer associated with the second data service being greater than a second threshold level of the second buffer.
[0247] Aspect 20: According to the method of aspect 19, sending the first data service and the second data service includes: sending the first data service from the second device to the first device via a first interface according to a first flow control command; and sending the second data service from the second device to the first device via a second interface according to a second flow control command.
[0248] Aspect 21: According to any one of aspects 19 to 20, the method of transmitting the first data service and the second data service includes: transmitting the first data service from the second device according to a first service shaping based at least in part on a first flow control command; and transmitting the second data service from the second device according to a second service shaping based at least in part on a second flow control command.
[0249] Aspect 22: According to the method of aspect 17, receiving a first flow control command for a first data service includes: receiving the first flow control command for the first data service based at least in part on a first amount of the first data service and the second data service stored in a buffer of the first device being greater than a first threshold level of a buffer, wherein the first threshold level of a buffer is associated with triggering the first flow control command for the first data service.
[0250] Aspect 23: The method according to aspect 22 further includes: receiving an indication from a first device to enable a flow of the first data service based at least in part on a first amount of the first data service and the second data service stored in a buffer being less than a second threshold level of a buffer, wherein the second threshold level of a buffer is associated with the indication to trigger the enabling of the flow of the first data service.
[0251] Aspect 24: The method according to any one of aspects 17 to 23 further includes: receiving a second flow control command for the second data service from the first device based at least in part on a first amount of the first data service and the second data service stored in a buffer of the first device being greater than a first threshold level of a buffer, wherein the first threshold level of a buffer is associated with triggering the second flow control command for the second data service.
[0252] Aspect 25: The method according to aspect 24 further includes: receiving from a first device an indication to enable a flow of the second data service based at least in part on a first amount of the first data service and the second data service stored in a buffer being less than a second threshold level of a buffer, wherein the second threshold level of a buffer is associated with the indication to trigger the flow to enable the second data service.
[0253] Aspect 26: According to any one of aspects 17 to 25, receiving the first flow control command includes: receiving a first flow control command indicating that a first amount of a first data service and a second data service stored in one or more buffers of the first device is greater than a threshold level of one or more buffers.
[0254] Aspect 27: The method according to aspect 26 further includes: sending the second data service to the first device based at least in part on the exclusion of the second data service from the first flow control command; and receiving a second flow control command from the first device based at least in part on a second amount of the second data service stored in one or more buffers being equal to or greater than an upper limit threshold level of a buffer, the second flow control command including an indication to stop sending the second data service.
[0255] Aspect 28: The method according to any one of aspects 17 to 27 further includes: receiving an indication that the sum of one or more uplink licenses for uplink transmission of the first data service and the second data service is less than a threshold size, the threshold size being the minimum size that simultaneously carries both the first data service and the second data service without triggering a flow control command.
[0256] Aspect 29: According to the method of aspect 28, receiving an indication that the sum of one or more uplink licenses for uplink transmission is less than a threshold size includes: receiving an indication that one or more uplink licenses are not available for uplink transmission of the first data service and the second data service.
[0257] Aspect 30: The method according to aspect 29 further includes: receiving one or more second instructions that allow uplink transmission of the first data service and the second data service, wherein sending the first data service and the second data service to the first device includes: sending the second data service before sending the first data service.
[0258] Aspect 31: According to the method of any one of Aspects 17 to 30, wherein the second data service has a second QoS based at least in part on the SLA associated with the second data service.
[0259] Aspect 32: According to the method of any one of Aspects 17 to 31, wherein the first data service and the second data service are associated with different DSCP categories.
[0260] Aspect 33: The method according to any one of aspects 17 to 32, wherein the first device is a modem of the UE and the second device is an application processor or a tethered client tethered to the first device via an Ethernet connection, USB connection, PCIe connection or Wi-Fi connection.
[0261] Aspect 34: An apparatus for wireless communication at a first device, comprising a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform a method according to any one of aspects 1 to 16.
[0262] Aspect 35: An apparatus for wireless communication at a first device, comprising at least one component for performing a method according to any one of aspects 1 to 16.
[0263] Aspect 36: A non-transitory computer-readable medium storing code for wireless communication at a first device, the code including instructions executable by a processor to perform the methods of any one of Aspects 1 to 16.
[0264] Aspect 37: An apparatus for wireless communication at a second device, comprising a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform a method according to any one of aspects 17 to 33.
[0265] Aspect 38: An apparatus for wireless communication at a second device, comprising at least one component for performing a method according to any one of aspects 17 to 33.
[0266] Aspect 39: A non-transitory computer-readable medium storing code for wireless communication at a second device, the code including instructions executable by a processor to perform the methods of any one of aspects 17 to 33.
[0267] It should be noted that the methods described herein depict possible implementations, and the operations and steps can be rearranged or otherwise modified, and other implementations are also possible. Furthermore, aspects of two or more methods can be combined.
[0268] While aspects of LTE, LTE-A, LTE-A Pro, or NR systems may be described for illustrative purposes, and the terms LTE, LTE-A, LTE-A Pro, or NR may be used in most of the description, the techniques described herein can be applied beyond LTE, LTE-A, LTE-A Pro, or NR networks. For example, the described techniques can be applied to a variety of other wireless communication systems, such as Ultra Mobile Broadband (UMB), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash-OFDM, and other systems and radio technologies not explicitly mentioned herein.
[0269] The information and signals described herein can be represented using any of a variety of different technologies and processes. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the description can be represented by voltage, current, electromagnetic waves, magnetic fields or particles, light fields or particles, or any combination thereof.
[0270] The various illustrative blocks and components described in connection with this disclosure may be implemented or executed using a general-purpose processor, DSP, ASIC, CPU, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware component, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, a combination of one or more microprocessors with a DSP core, or any other such configuration).
[0271] The functions described herein can be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, these functions can be stored as one or more instructions or code in or transmitted through a computer-readable medium. Other examples and implementations are within the scope of this disclosure and the appended claims. For example, due to the nature of software, the functions described herein can be implemented using software executed by a processor, hardware, firmware, hardwired, or any combination thereof. Features implementing the functions can also be physically located in different locations, including being distributed such that portions of the functions are implemented in different physical locations.
[0272] Computer-readable media include non-transitory computer storage media and communication media, with communication media including any medium that facilitates the transfer of a computer program from one place to another. Non-transitory storage media can be any available medium accessible to a general-purpose or special-purpose computer. By way of example and not limitation, non-transitory computer-readable media can include RAM, ROM, electrically erasable programmable ROM (EEPROM), flash memory, disc-on-CD ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to carry or store desired program code components in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer or a general-purpose or special-purpose processor. Furthermore, any connection is properly referred to as computer-readable media. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are all included in the definition of computer-readable media. As used in this article, disks and optical discs include CDs, laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs. Disks typically reproduce data magnetically, while optical discs reproduce data optically using lasers. Combinations of these are also included within the scope of computer-readable media.
[0273] As used herein, the word "or" included in the claims, as in the list of items (e.g., a list of items beginning with phrases such as "at least one of..." or "one or more of..."), signifies an inclusive list, such that, for example, a list of at least one of A, B, or C means A or B or C or AB or AC or BC or ABC (i.e., A and B and C). Furthermore, as used herein, the phrase "based on" should not be construed as referring to a closed set of conditions. For example, an example step described as "based on condition A" may be based on conditions A and B without departing from the scope of this disclosure. In other words, as used herein, the phrase "based on" should be interpreted in the same manner as the phrase "at least partially based on".
[0274] In the accompanying drawings, similar components or features may have the same reference numerals. Furthermore, various components of the same type may be distinguished by adding a dash after the reference numeral and a second reference numeral to differentiate between similar components. If only the first reference numeral is used in the description, the description applies to any similar component having the same first reference numeral, regardless of the second or other subsequent reference numerals.
[0275] The description presented herein, taken in conjunction with the accompanying drawings, describes an example configuration and does not represent all examples that can be implemented or that are within the scope of the claims. The term "example" as used herein means "serving as an example, instance, or illustration," and not "preferred" or "superior to other examples." To provide an understanding of the described techniques, the detailed description includes specific details. However, these techniques can be implemented without these specific details. In some cases, known structures and devices are shown in block diagram form to avoid obscuring the concept of the described examples.
[0276] The description provided herein is intended to enable those skilled in the art to make or use this disclosure. Various modifications to this disclosure will be readily apparent to those skilled in the art, and the general principles defined herein can be applied to other variations without departing from the scope of this disclosure. Therefore, this disclosure is not limited to the examples and designs described herein, but is consistent with the widest scope of the principles and novel features disclosed herein.
Claims
1. A method for wireless communication at a first device, comprising: Receive a first data service with a first quality of service and a first priority level from the second device; Receive a second data service from the second device having a second quality of service and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer associated with the network device; The first data service and the second data service are stored in one or more buffers of the first device; Receive one or more uplink licenses from the network device for transmitting the first data service and the second data service to the uplink of the network device; If the cumulative size of the one or more uplink permits is less than a threshold size, flow control is determined to be used, wherein the threshold size is the minimum size that can simultaneously carry both the first data service and the second data service without triggering a flow control command; The system sends a first flow control command to the second device for the first data service, based at least in part on the fact that a first priority level associated with the first data service is lower than a second priority level and also at least in part on the fact that a first data volume in the one or more buffers is greater than a first threshold level; and sends a second flow control command to the second device for the second data service based on the fact that a second data volume in the one or more buffers is greater than a second threshold level, wherein the first flow control command indicates a first data rate for the first data service, and wherein the second flow control command indicates a second data rate for the second data service; Receive the first data service from the second device according to the first data rate; Receive the second data service from the second device according to the second data rate, wherein the second data rate is different from the first data rate; and Based on the one or more uplink licenses, the first data service, at least partially based on the first data rate, and the second data service, at least partially based on the second data rate, are transmitted to the network device via the same radio bearer.
2. The method according to claim 1, wherein, Storing the first data service and the second data service in the one or more buffers of the first device includes: The first data service is stored in a first buffer of the first device, and the second data service is stored in a second buffer of the first device, wherein the first buffer and the second buffer are linked to the same data radio bearer, and wherein each of the first buffer and the second buffer includes a plurality of threshold levels, each threshold level being configured at least in part based on the first priority level and the second priority level.
3. The method according to claim 2, wherein, Sending the first flow control command for the first data service includes: The first flow control command for the first data service is sent, at least in part, based on the fact that a first amount of the first data service stored in the first buffer is greater than a first threshold level of the first buffer.
4. The method according to claim 2, wherein, Sending the second flow control command for the second data service includes: The second flow control command for the second data service is sent, at least in part, based on the fact that the second amount of the second data service stored in the second buffer is greater than the second threshold level of the second buffer.
5. The method according to claim 1, wherein, Storing the first data service and the second data service in the one or more buffers of the first device includes: The first data service and the second data service are stored in a buffer of the first device, the buffer including a plurality of threshold levels, wherein each of the plurality of threshold levels is configured at least in part based on the first priority level and the second priority level.
6. The method according to claim 5, wherein, Sending the first flow control command for the first data service includes: The first flow control command for the first data service is sent at least in part based on the first amount of the first data service and the second data service stored in the one buffer being greater than a first threshold level of the one buffer, wherein the first threshold level is associated with triggering the first flow control command for the first data service.
7. The method according to claim 6, further comprising: The instruction to enable a flow of the first data service is sent to the second device at least in part based on the fact that the first amount of the first data service and the second data service stored in the first buffer is less than the first threshold level of the first buffer, wherein the first threshold level is associated with the instruction to trigger the enabling of the flow of the first data service.
8. The method according to claim 5, wherein, Sending the second flow control command for the second data service includes: The second flow control command for the second data service is sent at least in part based on the fact that the second amount of the first data service and the second data service stored in the one buffer is greater than a second threshold level of the one buffer, wherein the second threshold level is associated with triggering the second flow control command for the second data service.
9. The method according to claim 8, further comprising: The second device is sent an instruction to enable a flow of the second data service, based at least in part on the fact that the second amount of the first data service and the second data service stored in the first buffer is less than the second threshold level of the first buffer, wherein the second threshold level is associated with the instruction to trigger the flow of the second data service.
10. The method according to claim 5, wherein, The plurality of threshold levels include at least a first threshold level that triggers the transmission of the first flow control command for the first data service and a second threshold level that triggers the transmission of the second flow control command for the second data service, wherein the first threshold level is less than the second threshold level.
11. The method according to claim 1, further comprising: The second data service is received from the second device at least in part based on the exclusion of the second data service from the first flow control command; The second data service is stored in one or more buffers, between the threshold level and the upper threshold level of the buffers. Sending the second flow control command includes sending an indication to stop sending the second data service, based at least in part on a second amount of the second data service stored in the one or more buffers being equal to or greater than the upper limit threshold level.
12. The method according to claim 1, wherein, The first device is a modem for a user equipment (UE), and the second device is an application processor or a tethered client tethered to the first device via an Ethernet connection, a Universal Serial Bus (USB) connection, a Peripheral Component Rapid Interconnect (PCIe) connection, or a Wi-Fi connection.
13. A method for wireless communication at a second device, comprising: Send a first data service with a first quality of service and a first priority level to the first device; Send a second data service to the first device with a second quality of service and a second priority level greater than the first priority level, wherein the first data service and the second data service target the same radio bearer on the first device; Receive an indication that the sum of one or more uplink licenses for uplink transmission of the first data service and the second data service is less than a threshold size, wherein the threshold size is the minimum size that can carry both the first data service and the second data service simultaneously without triggering a flow control command. The device receives a first flow control command for the first data service and a second flow control command for the second data service, receiving the first flow control command at least in part based on a first priority level associated with the first data service being less than a second priority level and also at least in part based on identifying a first data volume in the one or more buffers being greater than a first threshold level, and receiving the second flow control command based on identifying a second data volume in the one or more buffers being greater than a second threshold level, wherein the first flow control command indicates a first data rate of the first data service, and wherein the second flow control command indicates a second data rate of the second data service; The first data service is sent to the first device according to the first data rate; The second data service is sent to the first device according to the second data rate, wherein the second data rate is different from the first data rate.
14. The method according to claim 13, wherein, Receiving the first flow control command for the first data service includes: The first flow control command for the first data service is received at least in part based on the first amount of the first data service stored in the first buffer associated with the first data service being greater than a first threshold level of the first buffer.
15. The method according to claim 14, wherein, Receiving the second flow control command for the second data service includes: The second flow control command for the second data service is received, at least in part, based on the fact that a second amount of the second data service stored in a second buffer associated with the second data service is greater than a second threshold level of the second buffer, wherein the second buffer is different from the first buffer.
16. The method according to claim 13, wherein, Sending the first data service and the second data service includes: According to the first flow control command, the first data service is sent from the second device to the first device via the first interface; and According to the second flow control command, the second data service is sent from the second device to the first device via the second interface.
17. The method according to claim 13, wherein, Sending the first data service and the second data service includes: The first data service is transmitted from the second device according to a first service shaping based at least in part on the first flow control command; and The second data service is transmitted from the second device according to the second service shaping based at least in part on the second flow control command.
18. The method according to claim 13, wherein, Receiving the first flow control command for the first data service includes: The first flow control command for the first data service is received at least in part based on the first amount of the first data service and the second data service stored in a buffer of the first device being greater than a first threshold level of the buffer, wherein the first threshold level of the buffer is associated with triggering the first flow control command for the first data service.
19. The method of claim 18, further comprising: The first device receives an indication to enable a flow of the first data service, based at least in part on the fact that the first amount of the first data service and the second data service stored in the first buffer is less than the first threshold level of the first buffer, wherein the first threshold level of the first buffer is associated with the indication to trigger the enabling of the flow of the first data service.
20. The method according to claim 13, wherein, Receiving the second flow control command for the second data service includes: The second flow control command for the second data service is received, at least in part based on the fact that a second amount of the first data service and the second data service stored in a buffer of the first device is greater than a second threshold level of the buffer, wherein the second threshold level of the buffer is associated with triggering the second flow control command for the second data service.
21. The method of claim 20, further comprising: The first device receives an indication to enable a flow of the second data service, based at least in part on the fact that the second amount of the first data service and the second data service stored in the first buffer is less than the second threshold level of the first buffer, wherein the second threshold level of the first buffer is associated with the indication to trigger the enabling of the flow of the second data service.
22. The method of claim 13, further comprising: The second data service is sent to the first device at least in part based on the exclusion of the second data service from the first flow control command; Receiving the second flow control command includes receiving an instruction to stop sending the second data service, based at least in part on a second amount of the second data service stored in the one or more buffers being equal to or greater than an upper limit threshold level.
23. The method according to claim 13, wherein, The indication that the accumulated size of the received one or more uplink permits is less than the threshold size includes: The system receives an indication that one or more uplink licenses are not available for uplink transmissions of the first data service and the second data service.
24. The method of claim 23, further comprising: Receiving a second indication that the one or more uplink licenses can be used for uplink transmission of the first data service and the second data service, wherein sending the first data service and the second data service to the first device includes: Send the second data service before sending the first data service.
25. An apparatus for wireless communication at a first device, comprising: Memory, including instructions; and A processor is configured to execute the instructions to cause the device to perform the method according to any one of claims 1 to 12.
26. An apparatus for wireless communication at a second device, comprising: Memory, including instructions; and A processor is configured to execute the instructions to cause the device to perform the method according to any one of claims 13 to 24.
27. An apparatus for wireless communication at a first device, comprising components for performing the method according to any one of claims 1 to 12.
28. An apparatus for wireless communication at a second device, comprising components for performing the method according to any one of claims 13 to 24.
29. A computer-readable medium having program code recorded thereon, wherein the program code is executable by one or more processors of a first device to cause the processors to perform the method according to any one of claims 1 to 12.
30. A computer-readable medium having program code recorded thereon, wherein the program code is executable by one or more processors of a second device to cause the processors to perform the method according to any one of claims 13 to 24.
Citation Information
Patent Citations
User-equipment-based quality-of-service enforcement and control system and method for real-time traffic
US20170070435A1
Communication terminal and method for handling upload traffic congestion
US20180176818A1