System and method for protocol data unit (PDU) set discard

By using multiple orderly sets of discard levels in the transmitter device to manage the discarding of PDU sets, the problem of PDU set discarding management in wireless communication in the prior art is solved, and efficient discarding and performance improvement in the case of network congestion is achieved. .

CN119485478APending Publication Date: 2025-02-18CTRL-LABS CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411085638.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-07-09
Filing Date
2024-08-08
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

The prior art is difficult to effectively manage the discarding of protocol data unit (PDU) sets in wireless communication between devices, especially in the case of network congestion, resulting in a degradation of network performance.

Method used

By introducing a ordered set of multiple discard levels in the transmitter device, appropriate discard levels are assigned according to the service characteristics related to the PDU set, and sequentially discarded when the network is congested, to improve network congestion performance.

Benefits of technology

This method reduces network load according to the discarding level, improves congestion performance, and ensures that important PDU sets are not discarded in the case of network congestion, thereby improving the stability and performance of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119485478A_ABST
    Figure CN119485478A_ABST
Patent Text Reader

Abstract

Systems and methods for protocol data unit (PDU) set discard may include a transmitter device that determines, for each PDU set of a plurality of PDU sets, a discard level assigned to the PDU set from an ordered set of a plurality of discard levels, the discard level assigned to the PDU set based on one or more characteristics of traffic corresponding to the PDU set. A transmitter device may determine a congestion state of a network to be used to transmit a set of PDUs to a receiver device. The transmitter device may drop a first subset of the plurality of PDU sets according to a first drop level allocated to the first subset. The transmitter device may transmit a second subset of the plurality of PDU sets having a second drop level to the receiver device via the network.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of and priority to U.S. Application No. 63 / 531,917, filed on August 10, 2023, and U.S. Non-Provisional Patent Application No. 18 / 767,574, filed on July 9, 2024, the entire contents of both applications are incorporated herein by reference. Technical Field

[0003] The present disclosure relates generally to wireless communications between devices, including but not limited to systems and methods for protocol data unit (PDU) set discarding. Background Art

[0004] Augmented reality (AR), virtual reality (VR), and mixed reality (MR) are becoming more common, with these technologies supported on a wider range of platforms and devices. Some AR / VR / MR devices can communicate with other devices within the environment through various cellular connections or links. Summary of the invention

[0005] In one aspect, the present disclosure relates to a method. The method may include determining, by a transmitter device, for each of a plurality of protocol data unit (PDU) sets, a discard level assigned to the PDU set from an ordered set of a plurality of discard levels. The discard level may be assigned to the PDU set based on one or more characteristics of a traffic corresponding to the PDU set. The transmitter device may determine a congestion state of a network to be used to send a plurality of PDU sets to a receiver device. The transmitter device may discard a first subset of the plurality of PDU sets according to a first discard level assigned to the first subset. The transmitter device may send a second subset of the plurality of PDU sets having a second discard level to the receiver device via the network.

[0006] In some embodiments, the ordered set of the plurality of discard levels includes the first discard level, the second discard level, and the third discard level. In some embodiments, discarding the first subset of the plurality of PDU sets includes: clearing the first subset from a buffer of the transmitter device. In some embodiments, the transmitter device includes at least one of a user equipment (UE) or a base station. In some embodiments, the discard level is assigned to the PDU set at an application layer of a user equipment (UE), and the UE includes a transmitter device, which corresponds to a physical layer of the UE.

[0007] In some embodiments, the discard level is assigned by a source device, the source device includes at least one of a user equipment (UE) or an application server, and the transmitter device includes at least one of a network node along a network path between the UE and the application server. In some embodiments, the first discard level indicates discarding the corresponding PDU set without considering the PDU set importance (PSI) assigned to the corresponding PDU set, the second discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the first discard level, and the third discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the second discard level. In some embodiments, the one or more characteristics include at least one of data rate, reliability sensitivity and / or delay sensitivity. In some embodiments, the transmitter device sends a third subset of the multiple PDU sets with a third discard level to the receiver device via the network.

[0008] In another aspect, the present disclosure relates to a transmitter device, comprising a wireless transceiver and one or more processors, the one or more processors being configured to: for each of a plurality of protocol data unit (PDU) sets, determine a discard level assigned to the PDU set from an ordered set of a plurality of discard levels. The discard level may be assigned to the PDU set based on one or more characteristics of a service corresponding to the PDU set. The one or more processors may be configured to determine a congestion state of a network to be used to send the PDU set to a receiver device. The one or more processors may be configured to discard a first subset of the plurality of PDU sets according to a first discard level assigned to the first subset. The one or more processors may be configured to send a second subset of the plurality of PDU sets having a second discard level to the receiver device via the wireless transceiver and the network.

[0009] In some embodiments, the ordered set of the plurality of discard levels includes the first discard level, the second discard level, and the third discard level. In some embodiments, the one or more processors are configured to discard the first subset of the plurality of PDU sets by clearing the first subset from a buffer of the transmitter device. In some embodiments, the discard level is assigned to the PDU set at an application layer of a user equipment (UE), and the UE includes a transmitter device corresponding to a physical layer of the UE. In some embodiments, the discard level is assigned by a source device, the source device includes at least one of a user equipment (UE) or an application server, and the transmitter device includes a network node along a network path between the UE and the application server.

[0010] In some embodiments, the first discard level indicates discarding the corresponding PDU set without considering a PDU set importance (PSI) assigned to the corresponding PDU set, the second discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the first discard level, and the third discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the second discard level. In some embodiments, the one or more processors are further configured to send a third subset of the plurality of PDU sets with a third discard level to the receiver device via the wireless transceiver and the network. In some embodiments, at least one of a base station, a network device, or a UE may include the transmitter device.

[0011] In yet another aspect, the present disclosure relates to a non-transitory computer-readable medium storing a plurality of instructions that, when executed by one or more processors of a transmitter device, cause the transmitter device to determine, for each of a plurality of protocol data unit (PDU) sets, a discard level assigned to the PDU set from an ordered set of a plurality of discard levels. The discard level may be assigned to the PDU set based on one or more characteristics of a service corresponding to the PDU set. The instructions may cause the transmitter device to determine a congestion state of a network to be used to send the PDU set to a receiver device. The instructions may cause the transmitter device to discard a first subset of the plurality of PDU sets according to a first discard level assigned to the first subset. The instructions may cause the transmitter device to send a second subset of the plurality of PDU sets having a second discard level to the receiver device via a wireless transceiver and the network.

[0012] In some embodiments, the instructions further cause the transmitter device to send a third subset of the plurality of PDU sets with a third discard level to the receiver device via the wireless transceiver and the network. In some embodiments, the first discard level indicates discarding the corresponding PDU set without regard to a PDU set importance (PSI) assigned to the corresponding PDU set, the second discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the first discard level, and the third discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the second discard level. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The accompanying drawings are not intended to be drawn to scale. Like reference numbers and names in the various drawings refer to like elements. For clarity, not every component is labeled in every drawing.

[0014] Figure 1 is a schematic diagram of an example wireless communication system according to an example implementation of the present disclosure.

[0015] Figure 2 is a schematic diagram of a head wearable display and a console for presenting augmented reality or virtual reality according to an example embodiment of the present disclosure.

[0016] Figure 3 is a schematic diagram of a head wearable display according to an example embodiment of the present disclosure.

[0017] Figure 4 is a block diagram of a computing environment according to an example implementation of the present disclosure.

[0018] Figure 5 is a block diagram of a system for protocol data unit (PDU) set discarding according to an example implementation of the present disclosure.

[0019] Figure 6 is a schematic diagram of a traffic flow from a source device to a receiver device according to an example embodiment of the present disclosure.

[0020] Figure 7 is a schematic diagram illustrating PDU set discarding based on network congestion according to an example embodiment of the present disclosure.

[0021] Figure 8 is a flow chart illustrating an example method for PDU set discarding according to an example implementation of the present disclosure. DETAILED DESCRIPTION

[0022] Before turning to the drawings showing certain embodiments in detail, it should be understood that the present disclosure is not limited to the details or methods set forth in the specification or shown in the drawings. It should also be understood that the terminology used herein is for descriptive purposes only and should not be considered as limiting.

[0023] Referring generally to the accompanying drawings, the systems and methods described herein may implement protocol data unit (PDU) set discarding. A PDU set may include one or more PDUs that carry a payload of an information unit generated at an application layer of a source device. For example, in the context of an extended reality (XR) application, a PDU may carry a frame or video slice for an XR application. In some embodiments, the receiver-application layer may require each of the multiple PDUs in the PDU set to use the corresponding information unit. In other embodiments, the receiver-application layer may still be able to recover part (or all) of the information unit even when some PDUs are lost / discarded. However, if at least one data packet associated with the PDU set is not sent, the PDU set may be undecodable. Therefore, PDU discarding may be applied on a PDU set basis (e.g., rather than on a per-PDU basis, which may result in an undecodable PDU set anyway).

[0024] For PDU set level packet discarding, some embodiments may use a PDU set importance (PSI) assigned to a PDU set. However, such a PSI may be binary and may not take into account differentiated discarding actions based on service characteristics and network conditions.

[0025] According to the systems and methods described herein, when the network is congested, the discard operation can be based on the discard level assigned to the PDU set. The discard level can be assigned from a plurality of (e.g., non-binary, ordered, etc.) discard levels, which establish one or more discard levels for each PDU set. When the network is not congested, the transmitter device can set the discard timer according to or based on the delay indicator / characteristics of the service, which can provide a unified method while treating these PDU sets differently based on the delay. However, in the case of congestion in the network, the transmitter device can discard the PDU set in order based on the discard level. This can improve network congestion performance by discarding based on service type (rather than importance, which may not have such a big impact on improving congestion).

[0026] These systems and methods can reduce network load by discarding according to discarding levels, thereby improving congestion performance. For example, by discarding PDU sets according to packet size (e.g., discarding large packet sizes) or data rate (e.g., high data rates), network congestion can be quickly improved. In addition, by not discarding the most important PDU sets (or delaying their discarding until other less important PDU sets are discarded first), the systems and methods described herein can ensure that more important PDU sets (e.g., including or containing high reliability information) are not discarded in the event of network congestion.

[0027] Additional details of the present solution and various technical advantages are described in more detail below.

[0028] Figure 1 An example wireless communication system 100 is shown. The wireless communication system 100 may include a base station 110 (also referred to as a "wireless communication node 110" or "station 110") and one or more user equipment (UE) 120 (also referred to as a "wireless communication device 120" or "terminal device 120"). The base station 110 and the UE 120 may communicate via wireless communication links 130A, 130B, 130N. The wireless communication link 130 may be a cellular communication link that complies with third generation mobile communication technology (3G), fourth generation mobile communication technology (4G), fifth generation mobile communication technology (5G), or other cellular communication protocols or Wi-Fi communication protocols. In one example, the wireless communication link 130 supports, adopts, or is based on orthogonal frequency division multiple access (OFDMA). In one aspect, the UE 120 is located within a geographical boundary relative to the base station 110 and may communicate with or through the base station 110. In some embodiments, the wireless communication system 100 includes more than one wireless communication link. Figure 1 More, fewer, or more of the components shown in Figure 1 For example, the wireless communication system 100 may include components other than Figure 1 One or more additional base stations 110 other than the base station 110 shown in FIG.

[0029] In some embodiments, UE 120 may be a user device, such as a mobile phone, a smart phone, a personal digital assistant (PDA), a tablet computer, a laptop computer, a wearable computing device, etc. Each UE 120 may communicate with a base station 110 via a corresponding communication link 130. For example, UE 120 may send data to base station 110 via wireless communication link 130 and receive data from base station 110 via wireless communication link 130. Example data may include audio data, image data, text, etc. Communication or data transmission by UE 120 to base station 110 may be referred to as uplink communication. Communication or data reception by UE 120 from base station 110 may be referred to as downlink communication. In some embodiments, UE 120A includes a wireless interface 122, a processor 124, a memory device (also referred to as memory) 126, and one or more antennas 128. These components may be implemented as hardware, software, firmware, or a combination thereof. In some embodiments, UE 120A includes more than one embodiment. Figure 1 More, fewer, or more of the components shown in Figure 1 For example, UE 120 may include an electronic display and / or input device. For example, UE 120 may include in addition to Figure 1 Additional antennas 128 and wireless interfaces 122 beyond the antennas 128 and wireless interfaces 122 shown in FIG.

[0030] Antenna 128 can be a component that receives radio frequency (RF) signals and / or sends RF signals through a wireless medium. The RF signal can be at a frequency between 200 megahertz (MHz) and 100 gigahertz (GHz). The RF signal can have a data packet, symbol or frame corresponding to the data used for communication. Antenna 128 can be a dipole antenna, a patch antenna, a loop antenna or any suitable antenna for wireless communication. In one aspect, a single antenna 128 is used to both send and receive RF signals. In one aspect, different antennas 128 are used to send and receive RF signals. In one aspect, multiple antennas 128 are used to support multiple-input, multiple-out (MIMO) communications.

[0031] The wireless interface 122 includes or is implemented as a transceiver for sending and receiving RF signals through a wireless medium. The wireless interface 122 can communicate with the wireless interface 112 of the base station 110 through a wireless communication link 130A. In one configuration, the wireless interface 122 is coupled to one or more antennas 128. In one aspect, the wireless interface 122 can receive an RF signal at an RF frequency received by the antenna 128, and down-convert the RF signal to a baseband frequency (e.g., 0 GHz to 1 GHz). The wireless interface 122 can provide the down-converted signal to the processor 124. In one aspect, the wireless interface 122 can receive a baseband signal for transmission at a baseband frequency from the processor 124, and up-convert the baseband signal to generate an RF signal. The wireless interface 122 can send the RF signal through the antenna 128.

[0032] The processor 124 is a component for processing data. The processor 124 can be implemented as a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a logic circuit, etc. The processor 124 can obtain instructions from the memory device 126 and execute these instructions. In one aspect, the processor 124 can receive down-converted data at a baseband frequency from the wireless interface 122, and decode or process the down-converted data. For example, the processor 124 can generate audio data or image data based on the down-converted data, and present the audio indicated by the audio data and / or the image indicated by the image data to the user of UE120A. In one aspect, the processor 124 can generate or obtain data for transmission at a baseband frequency, and encode or process the data. For example, the processor 124 can encode or process image data or audio data at a baseband frequency, and provide the encoded or processed data to the wireless interface 122 for transmission.

[0033] The memory device 126 is a component that stores data. The memory device 126 can be implemented as a random access memory (RAM), a flash memory, a read only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a register, a hard disk, a removable disk, a compact disc read-only memory (CD-ROM), or any device capable of storing data. The memory device 126 can be implemented as a non-transitory computer-readable medium that stores a plurality of instructions that can be executed by the processor 124 to perform various functions of the UE 120A disclosed herein. In some embodiments, the memory device 126 and the processor 124 are integrated into a single component.

[0034] In some embodiments, each of UEs 120B ... 120N includes similar components of UE 120A for communicating with base station 110. Therefore, for the sake of brevity, detailed descriptions of repeated parts thereof are omitted herein.

[0035] In some embodiments, the base station 110 may be an evolved node B (eNB), a serving eNB, a target eNB, a femto station, or a pico station. The base station 110 may be communicatively coupled to another base station 110 or other communication device via a wireless communication link and / or a wired communication link. The base station 110 may receive data (or RF signals) from a UE 120 in an uplink communication. Additionally or alternatively, the base station 110 may provide data to another UE 120, another base station, or another communication device. Thus, the base station 110 allows communication between multiple UEs 120 associated with the base station 110, or allows communication between other UEs associated with different base stations. In some embodiments, the base station 110 includes a wireless interface 112, a processor 114, a memory device (also referred to as a memory) 116, and one or more antennas 118. These components may be implemented as hardware, software, firmware, or a combination thereof. In some embodiments, the base station 110 includes more than one UE 120. Figure 1 More, fewer, or more of the components shown in Figure 1 For example, base station 110 may include an electronic display and / or an input device. For example, base station 110 may include an electronic display and / or an input device. Figure 1Additional antennas 118 and wireless interfaces 112 beyond the antennas 118 and wireless interfaces 112 shown in FIG.

[0036] Antenna 118 may be a component that receives radio frequency (RF) signals and / or transmits RF signals over a wireless medium. Antenna 118 may be a dipole antenna, a patch antenna, a loop antenna, or any suitable antenna for wireless communication. In one aspect, a single antenna 118 is used to both transmit and receive RF signals. In one aspect, different antennas 118 are used to transmit and receive RF signals. In one aspect, multiple antennas 118 are used to support multiple-input multiple-output (MIMO) communications.

[0037] The wireless interface 112 includes or is implemented as a transceiver for sending and receiving RF signals through a wireless medium. The wireless interface 112 can communicate with the wireless interface 122 of the UE 120 through a wireless communication link 130. In one configuration, the wireless interface 112 is coupled to one or more antennas 118. In one aspect, the wireless interface 112 can receive an RF signal at an RF frequency received by the antenna 118, and down-convert the RF signal to a baseband frequency (e.g., 0 GHz to 1 GHz). The wireless interface 112 can provide the down-converted signal to the processor 124. In one aspect, the wireless interface 122 can receive a baseband signal for transmission at a baseband frequency from the processor 114, and up-convert the baseband signal to generate an RF signal. The wireless interface 112 can send the RF signal through the antenna 118.

[0038] Processor 114 is a component for processing data. Processor 114 can be implemented as FPGA, ASIC, logic circuit, etc. Processor 114 can obtain instructions from memory device 116 and execute these instructions. In one aspect, processor 114 can receive down-converted data at baseband frequency from wireless interface 112, and decode or process the down-converted data. For example, processor 114 can generate audio data or image data based on the down-converted data. In one aspect, processor 114 can generate or obtain data for transmission at baseband frequency, and encode or process the data. For example, processor 114 can encode or process image data or audio data at baseband frequency, and provide the encoded or processed data to wireless interface 112 for transmission. In one aspect, processor 114 can set, allocate, schedule or allocate communication resources for different UE120. For example, processor 114 can set different modulation schemes, time slots, channels, frequency bands, etc. for UE 120 to avoid interference. The processor 114 may generate data (or an uplink configuration grant (UL CG)) indicating a communication resource configuration and provide the data (or UL CG) to the wireless interface 112 for transmission to the UE 120 .

[0039] The memory device 116 is a component that stores data. The memory device 116 may be implemented as a RAM, a flash memory, a ROM, an EPROM, an EEPROM, a register, a hard disk, a removable disk, a CD-ROM, or any device capable of storing data. The memory device 116 may be implemented as a non-transitory computer-readable medium that stores a plurality of instructions that may be executed by the processor 114 to perform various functions of the base station 110 disclosed herein. In some embodiments, the memory device 116 and the processor 114 are integrated into a single component.

[0040] In some embodiments, the communication between the base station 110 and the UE 120 is based on one or more layers of the Open Systems Interconnection (OSI) model. The OSI model may include multiple layers, including: a physical layer, a medium access control (MAC) layer, a radio link control (RLC) layer, a packet data convergence protocol (PDCP) layer, a radio resource control (RRC) layer, a non-access stratum (NAS) layer or an Internet protocol (IP) layer, and other layers.

[0041] Figure 2is a block diagram of an example artificial reality system environment 200. In some embodiments, the artificial reality system environment 200 includes a HWD 250 worn by a user, and a console 210 that provides artificial reality (e.g., augmented reality, virtual reality, mixed reality) content to the HWD 250. Each of the HWD 250 and the console 210 may be a separate UE 120. The HWD 250 may be referred to as, include, or be part of a head mounted display (HMD), a head mounted device (HMD), a head wearable device (HWD), a head worn display (HWD), or a head worn device (HWD). The HWD 250 may detect the position and / or orientation of the HWD 250 and the shape, position and / or orientation of the user's body / hand / face, and provide the detected position and / or orientation of the HWD 250 and / or tracking information indicating the shape, position and / or orientation of the body / hand / face to the console 210. The console 210 may generate image data indicating an artificial reality image based on the detected position and / or orientation of the HWD 250, the detected shape, position and / or orientation of the user's body / hand / face, and / or user input for artificial reality, and send the image data to the HWD 250 for presentation. In some embodiments, the artificial reality system environment 200 includes the following: Figure 2 More, fewer, or more of the components shown in Figure 2 250. In some embodiments, the functionality of one or more components in the artificial reality system environment 200 may be distributed among the components in a manner different from that described herein. For example, some of the multiple functions of the console 210 may be performed by the HWD 250. For example, some of the multiple functions of the HWD 250 may be performed by the console 210. In some embodiments, the console 210 is integrated as part of the HWD 250.

[0042] In some embodiments, HWD 250 is an electronic component that can be worn by a user and can present or provide an artificial reality experience to the user. HWD 250 can present one or more images, video, audio, or some combination thereof to provide an artificial reality experience to the user. In some embodiments, audio is presented via an external device (e.g., a speaker and / or headphones) that receives audio information from HWD 250, console 210, or both, and presents audio based on the audio information. In some embodiments, HWD 250 includes a sensor 255, a wireless interface 265, a processor 270, an electronic display 275, a lens 280, and a compensator 285. These components can work in conjunction to detect the position of HWD 250 and the gaze direction of the user wearing HWD 250, and render an image of a field of view corresponding to the detected position and / or orientation of HWD 250 within artificial reality. In other embodiments, HWD 250 includes a sensor 255, a wireless interface 265, a processor 270, an electronic display 275, a lens 280, and a compensator 285. These components can work in concert to detect the position of HWD 250 and the gaze direction of the user wearing HWD 250, and render an image of a field of view corresponding to the detected position and / or orientation of HWD 250 within artificial reality. In other embodiments, HWD 250 includes a sensor 255, a wireless interface 265, a processor 270, an electronic display 275, a lens 280, and a compensator 285. Figure 2 More, fewer, or more of the components shown in Figure 2 The components shown in the figure are different components.

[0043] In some embodiments, sensor 255 includes electronic components, or a combination of electronic components and software components, that detect the position and orientation of HWD 250. Examples of sensor 255 may include: one or more imaging sensors, one or more accelerometers, one or more gyroscopes, one or more magnetometers, or another suitable type of sensor that detects motion and / or position. For example, one or more accelerometers may measure translational motion (e.g., forward / backward, up / down, left / right), and one or more gyroscopes may measure rotational motion (e.g., pitch, left-right sway, roll). In some embodiments, sensor 255 detects translational motion and rotational motion, and determines the orientation and position of HWD 250. In one aspect, sensor 255 may detect translational motion and rotational motion relative to a previous orientation and previous position of HWD 250, and determine a new orientation and / or position of HWD 250 by accumulating or integrating the detected translational motion and / or rotational motion. For example, assuming that HWD 250 is facing a direction 25 degrees from a reference direction, sensor 255 may determine that HWD 250 is now facing or facing a direction 45 degrees from the reference direction in response to detecting that HWD 250 has turned 20 degrees. In another example, assuming that HWD 250 is located two feet from a reference point in a first direction, sensor 255 may determine that HWD 250 is now located at the vector product of two feet in the first direction and three feet in the second direction in response to detecting that HWD 250 has moved three feet in a second direction.

[0044] In some embodiments, sensor 255 includes an eye tracker. The eye tracker may include an electronic component, or a combination of an electronic component and a software component, that determines the gaze direction of the user of HWD 250. In some embodiments, HWD 250, console 210, or a combination thereof may generate image data of artificial reality in conjunction with the gaze direction of the user of HWD 250. In some embodiments, the eye tracker includes two eye trackers, each of which captures an image of a corresponding eye and determines the gaze direction of the eye. In one example, the eye tracker determines an angular rotation of the eye, a translation of the eye, a torsion change of the eye, and / or a shape change of the eye based on the captured image of the eye, and determines a relative gaze direction relative to HWD 250 based on the determined angular rotation of the eye, the translation of the eye, and the torsion change of the eye. In one approach, the eye tracker may illuminate or project a predetermined reference pattern or structured pattern onto a portion of an eye, and capture an image of the eye to analyze the pattern projected onto the portion of the eye to determine the relative gaze direction of the eye relative to the HWD 250. In some embodiments, the eye tracker combines the orientation of the HWD 250 and the relative gaze direction relative to the HWD 250 to determine the gaze direction of the user. For example, assuming that the HWD 250 is oriented in a direction 30 degrees from the reference direction and the relative gaze direction of the HWD 250 is -10 degrees (or 350 degrees) relative to the HWD 250, the eye tracker may determine that the gaze direction of the user is 20 degrees from the reference direction. In some embodiments, the user of the HWD 250 may configure the HWD 250 (e.g., via user settings) to enable or disable the eye tracker. In some embodiments, the user of the HWD 250 is prompted to enable or disable the eye tracker.

[0045] In some embodiments, the wireless interface 265 includes electronic components, or a combination of electronic components and software components, that communicate with the console 210. The wireless interface 265 may be or may correspond to the wireless interface 122. The wireless interface 265 may communicate with the wireless interface 215 of the console 210 via the base station 110 through a wireless communication link. Through the communication link, the wireless interface 265 may send data indicating the determined position and / or orientation of the HWD 250, and / or the determined gaze direction of the user to the console 210. In addition, through the communication link, the wireless interface 265 may receive an indication from the console 210 or image data corresponding to an image to be rendered, as well as additional data associated with the image.

[0046] In some embodiments, the processor 270 includes an electronic component, or a combination of electronic components and software components, that generates one or more images for display (e.g., according to a change in the field of view of the artificial reality space). In some embodiments, the processor 270 is implemented as a part of the processor 124 or is communicatively coupled to the processor 124. In some embodiments, the processor 270 is implemented as a processor (or a graphics processing unit (GPU)) that executes instructions to perform various functions described herein. The processor 270 can receive image data describing an artificial reality image to be rendered, and additional data associated with the image through the wireless interface 265, and can render the image to be displayed through the electronic display 275. In some embodiments, the image data from the console 210 can be encoded, and the processor 270 can decode the image data to render the image. In some embodiments, the processor 270 receives object information and depth information in the additional data from the console 210, the object information indicating virtual objects in the artificial reality space, and the depth information indicating the depth of these virtual objects (or the distance from the HWD 250). In one aspect, the processor 270 may perform shading, reprojection, and / or blending based on the artificial reality image from the console 210, object information, depth information, and / or updated sensor measurements from the sensor 255 to update the artificial reality image to correspond to the updated position and / or orientation of the HWD 250. Assuming that the user turns his head after the initial sensor measurements, the processor 270 may generate a small portion (e.g., 10%) of the image corresponding to the updated field of view within the artificial reality based on the updated sensor measurements and append the portion to the image in the image data from the console 210 by reprojection, rather than reconstructing the entire image in response to the updated sensor measurements. The processor 270 may perform shading and / or blending on the additional edges. Thus, the processor 270 may generate an artificial reality image without reconstructing the artificial reality image based on the updated sensor measurements.

[0047] In some embodiments, the electronic display 275 is an electronic component that displays an image. The electronic display 275 may be, for example, a liquid crystal display or an organic light emitting diode display. The electronic display 275 may be a transparent display that allows the user to see through. In some embodiments, when the user wears the HWD 250, the electronic display 275 is located near the user's eyes (e.g., less than 3 inches). In one aspect, the electronic display 275 emits light or projects light to the user's eyes based on the image generated by the processor 270.

[0048] In some embodiments, lens 280 is a mechanical component that changes the light received from electronic display 275. Lens 280 can magnify the light from electronic display 275 and correct optical errors associated with the light. Lens 280 can be a Fresnel lens, a convex lens, a concave lens, a filter, or any suitable optical component that changes the light from electronic display 275. Although electronic display 275 is very close to the eye, light from electronic display 275 can still pass through lens 280 to the pupil so that the user can see the image displayed by electronic display 275.

[0049] In some embodiments, compensator 285 includes electronic components, or a combination of electronic components and software components, that perform compensation to compensate for any distortion or aberration. In one aspect, lens 280 introduces optical aberrations (e.g., chromatic aberration), pincushion distortion, barrel distortion, etc. Compensator 285 can determine compensation (e.g., pre-distortion) to be applied to the image to be rendered from processor 270 to compensate for the distortion caused by lens 280, and apply the determined compensation to the image from processor 270. Compensator 285 can provide the pre-distorted image to electronic display 275.

[0050] In some embodiments, the console 210 is an electronic component or a combination of an electronic component and a software component that provides content to be rendered to the HWD 250. In one aspect, the console 210 includes a wireless interface 215 and a processor 230. These components can work together to determine the visual field of the artificial reality corresponding to the position of the HWD 250 and the gaze direction of the user of the HWD 250 (e.g., the user's field of view (FOV)), and can generate image data indicating the artificial reality image corresponding to the determined visual field. In addition, these components can work together to generate additional data associated with the image. Additional data can be information associated with presenting or rendering artificial reality in addition to the artificial reality image. Examples of additional data include hand model data, mapping information (or simultaneous localization and mapping (SLAM) data) for converting the position and orientation of the HWD 250 in the physical space to the virtual space, eye tracking data, motion vector information, depth information, edge information, object information, etc. The console 210 may provide image data and additional data to the HWD 250 for use in presenting artificial reality. Figure 2 More, fewer, or more of the components shown in Figure 2 In some embodiments, console 210 is integrated as a part of HWD 250.

[0051] In some embodiments, the wireless interface 215 is an electronic component, or a combination of an electronic component and a software component, that communicates with the HWD 250. The wireless interface 215 may be or may correspond to the wireless interface 122. The wireless interface 215 may be a corresponding component of the wireless interface 265 to communicate via a communication link (e.g., a wireless communication link). Through the communication link, the wireless interface 215 may receive data from the HWD 250 indicating the determined position and orientation of the HWD 250, and / or the determined gaze direction of the user. In addition, through the communication link, the wireless interface 215 may send image data describing the image to be rendered, and additional data associated with the artificial reality image to the HWD 250.

[0052] The processor 230 may include or may correspond to a component that generates content to be rendered according to the position and / or orientation of the HWD 250. In some embodiments, the processor 230 is implemented as a part of the processor 124 or is communicatively coupled to the processor 124. In some embodiments, the processor 230 may be combined with the gaze direction of the user of the HWD 250. In one aspect, the processor 230 determines the field of view of the artificial reality according to the position and / or orientation of the HWD 250. For example, the processor 230 maps the position of the HWD 250 in the physical space to the position in the artificial reality space, and determines the field of view of the artificial reality space from the mapped position in the artificial reality space along the direction corresponding to the mapped orientation. The processor 230 may generate image data (the image data describes an image of the field of view of the determined artificial reality space) and send the image data to the HWD 250 via the wireless interface 215. In some embodiments, the processor 230 may generate additional data associated with the image (the additional data includes motion vector information, depth information, edge information, object information, hand model data, etc.), and send the additional data together with the image data to the HWD 250 through the wireless interface 215. The processor 230 may encode the image data describing the image, and may send the encoded data to the HWD 250. In some embodiments, the processor 230 generates image data periodically (e.g., every 11 milliseconds (ms)) and provides the image data to the HWD 250.

[0053] In one aspect, the process of detecting the position of the HWD 250 and the gaze direction of the user wearing the HWD 250 and rendering the image to the user should be performed within one frame time (e.g., 11ms or 16ms). The delay between the movement of the user wearing the HWD 250 and the image displayed corresponding to the user's movement may cause jitter, which may cause motion sickness and may reduce the user experience. In one aspect, the HWD 250 and the console 210 can prioritize the communication of AR / VR so that the delay between the movement of the user wearing the HWD 250 and the image displayed corresponding to the user's movement can be presented as within the frame time (e.g., 11ms or 16ms) to provide a seamless experience.

[0054] Figure 3 2 is a schematic diagram of HWD 250 according to an exemplary embodiment. In some embodiments, HWD 250 includes a front rigid body 305 and a belt 310. Front rigid body 305 includes electronic display 275 ( Figure 3 Not shown), lens 280 ( Figure 3 ), sensor 255, wireless interface 265 and processor 270. Figure 3 In the illustrated embodiment, the wireless interface 265, processor 270, and sensor 255 are located within the front rigid body 305 and may not be visible to the outside. In other embodiments, the HWD 250 has a Figure 3 For example, the wireless interface 265, the processor 270 and / or the sensor 255 may be located in a different configuration than that shown in FIG. Figure 3 At different positions than those shown in the figure.

[0055] Various operations described herein may be implemented on a computer system. Figure 4 A block diagram of a representative computing system 414 that can be used to implement the present disclosure is shown. In some embodiments, the base station 110, the UE 120, the console 210, and the HWD 250 are implemented by the computing system 414. The computing system 414 can be implemented as, for example, a consumer device, such as a smartphone, other mobile phones, tablet computers, wearable computing devices (e.g., smart watches, glasses, head wearable displays), desktop computers, laptop computers; or the computing system can be implemented using distributed computing devices. The computing system 414 can be implemented to provide VR experience, AR experience, MR experience. In some embodiments, the computing system 414 may include conventional computer components, such as a processor unit 416, a storage device 418, a network interface 420, a user input device 422, and a user output device 424.

[0056] The network interface 420 can provide a connection to a wide area network (e.g., the Internet), to which a wide area network (WAN) interface of the remote server system is also connected. The network interface 420 can include a wired interface (e.g., Ethernet) and / or a wireless interface that implements various radio frequency (RF) data communication standards, such as Wi-Fi, Bluetooth, or cellular data network standards (e.g., 3G, 4G, 5G, 60GHz, Long Term Evolution (LTE), etc.).

[0057] The network interface 420 may include a transceiver to allow the computing system 414 to send data using a transmitter and receive data from a remote device using a receiver. The transceiver may be configured to support such transmission / reception: the transmission / reception supports industrial standards for implementing two-way communication. An antenna may be attached to the transceiver housing and electrically coupled to the transceiver. Additionally or alternatively, a multi-antenna array may be electrically coupled to the transceiver so that multiple beams pointed in different directions can facilitate sending data and / or receiving data.

[0058] The transmitter may be configured to wirelessly transmit the frames, time slots, or symbols generated by the processor unit 416. Similarly, the receiver may be configured to receive the frames, time slots, or symbols, and the processor unit 416 may be configured to process the frames. For example, the processor unit 416 may be configured to determine the type of frame and process the frame and / or fields of the frame accordingly.

[0059] User input device 422 may include any device (or devices) via which a user may provide signals to computing system 414; computing system 414 may interpret these signals as indicating a particular user request or information. User input device 422 may include any or all of the following: a keyboard, a touch pad, a touch screen, a mouse or other pointing device, a scroll wheel, a click wheel, a dial, a button, a switch, a keypad, a microphone, a sensor (e.g., a motion sensor, an eye tracking sensor, etc.), etc.

[0060] User output device 424 may include any device via which computing system 414 can provide information to a user. For example, user output device 424 may include a display to display images generated by or delivered to computing system 414. The display may combine various image generation technologies with supporting electronic devices (e.g., digital-to-analog converters or analog-to-digital converters, or signal processors, etc.), such as liquid crystal displays (LCDs), light-emitting diodes (LEDs) including organic light-emitting diodes (OLEDs), projection systems, or cathode ray tubes (CRTs), etc. Devices that act as both input devices and output devices, such as touch screens, may be used. User output device 424 may be provided in addition to or in place of a display. Examples include indicator lights, speakers, tactile "display" devices, printers, and the like.

[0061] Some embodiments include electronic components, such as microprocessors, storage devices, and memory, that store computer program instructions in computer-readable storage media (e.g., non-transient computer-readable media). Multiple features in each feature described in this specification may be implemented as a process, which is designated as a program instruction set encoded on a computer-readable storage medium. These program instructions, when executed by one or more processors, cause the processor to perform the various operations indicated in these program instructions. Each example of a program instruction or computer code includes a machine code and a file, which is generated, for example, by a compiler, and the file includes a high-level code executed by a computer, an electronic component, or a microprocessor using an interpreter. Through suitable programming, processor unit 416 can provide various functions for computing system 414, which are included in any of the functions described herein as being executed by a server or client, or other functions associated with a message management service.

[0062] It should be understood that computing system 414 is illustrative and various variations and modifications may be made. The computer system used in conjunction with the present disclosure may have other capabilities not explicitly described herein. In addition, although computing system 414 is described with reference to a specific block, it should be understood that these blocks are defined for the convenience of description and are not intended to imply a specific physical arrangement of each component part. For example, different blocks may be located in the same facility, in the same server rack, or on the same motherboard. In addition, these blocks do not necessarily correspond to physically different components. Each block may be configured to perform various operations (e.g., by programming a processor or providing a suitable control circuit), and various blocks may or may not be reconfigurable, depending on how to obtain the initial configuration. The various embodiments of the present disclosure may be implemented in various devices, including electronic devices implemented using any combination of circuits and software.

[0063] Reference now Figure 5 , depicts a block diagram of a system 500 for a protocol data unit (PDU) discard policy according to an example embodiment of the present disclosure. The system 500 may include a user equipment (UE) 120 communicatively coupled to one or more servers 502. The UE 120 may be connected to the above referenced Figure 1 UE 120 may be the same or similar to the UE 120 described above. UE 120 may be communicatively coupled to one or more servers 502 via various network devices 504 and base stations 110. Base stations 110 may be similar to those described above. Figure 1 The network device 504 may be or include any network device, network component, or network node along a network path between the UE 120 and one or more servers 502. For example, the network device 504 may include a router, a switch, or any other network node. In various embodiments, the one or more servers 502 may be configured to communicate with a data network 506 (e.g., a trusted data network 506) via a network exposure function and / or a policy control function. The one or more servers 502 may be configured to transmit data to the base station 110 (e.g., a radio access network [RAN]) via a user plane function (UPF), and the base station 110 may route data from the one or more servers 502 to the UE 120 via various network devices 504. The UE 120, the one or more servers 502, the base station 110, and the network device 504 may include one or more transceivers 508, which may be or include interfaces 112, 122 (similar to the above reference Figure 1 The wireless interfaces 112, 122 described above) and antennas 118, 128 (similar to those described above) Figure 1The one or more antennas 118, 128 described above. The one or more transceivers 508 may be configured to facilitate wireless communications between endpoints (e.g., UE 120 and one or more servers 502) along a network path.

[0064] UE 120 may be configured to execute an application 510 hosted by an application provider 512 on one or more servers 502. In various embodiments, application 510 may be an extended reality (XR) application (e.g., an augmented reality (AR) application, a virtual reality (VR) application, a mixed reality (MR) application, or other XR application). Application 510 executed on UE 120 may generate data for transmission to server 502 (or vice versa). UE 120 (or server 502) may be configured to execute an application 510 hosted by an application provider 512 on one or more servers 502. In various embodiments, application 510 may be an extended reality (XR) application (e.g., an augmented reality (AR) application, a virtual reality (VR) application, a mixed reality (MR) application, or other XR application). Application 510 executed on UE 120 may generate data for transmission to server 502 (or vice versa). Figure 5 5 and described above to send data (e.g., via transceiver 508) to an endpoint or destination (e.g., to server 502 or UE 120). As described in more detail below, the generated data may be temporarily stored in buffer 514 as a set of protocol data units (PDUs) 516 for transmission along the network path to the endpoint / destination.

[0065] refer to Figure 6 ,and Figure 5 Together, Figure 6A schematic diagram of a traffic flow 600 for transmitting PDUs 602 of a PDU set 516 from a source device 604 to a receiver device 608 via a transmitter device 606 is depicted in accordance with an example implementation of the present disclosure. The source device 604 may be or include a device / component / processor / hardware that generates, configures, establishes, or otherwise generates the PDUs 602 of the PDU set 516. For example, the source device 604 may be or include a processor (e.g., at the application layer) of a UE 120 and / or a server 502. The transmitter device 606 may be or include any device, component, element, or hardware along a network path between the source device 604 and the receiver device 608. For example, assuming that the source device 604 is one or more processors of the UE 120 that execute the application 610 at the application layer, the transmitter device 606 can be or include the transceiver 508 of the UE 120 (e.g., at the physical layer of the UE 120), or any other transceiver or transmitter device 606 along the network path (e.g., at the network device 504, the base station 110). The receiver device 608 can be or include a device upstream of the source device. For example, the receiver device 608 can be or include the next-in-line device along the network path to which the transmitter device 606 is to send the PDU set 516. In this regard, the receiver device 608 can be any device upstream of the transmitter device 606, including but not limited to a device corresponding to the final destination for the PDU set (e.g., the server 502 in the case where the UE 120 includes the source device, or the UE 120 in the case where the server 502 includes the source device).

[0066] like Figure 6 As shown, the service flow 600 may include protocol data units (PDUs) 602, which may be grouped into PDU sets 516 or otherwise sent in PDU sets 516. In some embodiments, a source (or transmitter / initiator) device 604 may generate a PDU set 516 including one or more PDUs 602. Each PDU 602 may include, contain, or otherwise carry one or more various information units generated at the application layer (e.g., by, for example, application 510). For example, in the case where application 510 is an XR application, PDU 602 may include frames or video slices for the XR application. In some embodiments, application 510 (or receiver device 608) requires each of the multiple PDUs 602 in the PDU set 516 to use the corresponding information unit.

[0067] like Figure 6As shown, the source device 604 may be configured to generate each PDU 602 of the PDU set 516, and the source device 604 may send, transmit, or otherwise provide the PDU set 516 to the transmitter device 606 for transmission to the receiver device 608. In some embodiments, the source device 604 and the transmitter device 606 may be implemented on the same device. For example, the source device 604 may include one or more processors at the application layer of the UE 120 (e.g., executing the application 510), and the transmitter device 606 may include the transceiver 508 at the physical layer of the UE 120.

[0068] Return to reference Figure 5 In various embodiments, a device or node along the network path may include a PDU manager 518. The PDU manager 518 may be or include any device, component, element, or hardware designed or configured to implement, deploy, use, or otherwise manage a PDU set policy. Although shown as being included in the UE 120 and one or more servers 502, in various embodiments, each node (e.g., network device 504, base station 410, data network 506, etc.) may execute or include an instance of the PDU manager 518. In some embodiments, the PDU manager 518 (e.g., of the source device 604) may be configured to select, configure, establish, or otherwise provide a discard level for the PDU set 516. For example, the PDU manager 518 may be configured to provide a discard level for each PDU set 516, wherein the discard level is selected from a plurality of discard levels (e.g., a non-binary discard level, three or more discard levels, an ordered set of discard levels). The PDU manager 518 may be configured to provide a discard level for each PDU set 516 based on or in accordance with one or more characteristics of the traffic corresponding to (e.g., carried in) the PDUs 602 of the PDU sets 516. As described in more detail below, the PDU manager 518 (e.g., of the source device 604) may be configured to provide the discard level such that the transmitter device 606 may be configured to selectively discard the PDU sets 516 based on the discard level during periods of network congestion.

[0069] The PDU manager 518 may be configured to select, determine, define, configure, establish, or otherwise apply a discard level for the PDU set 516. The PDU manager 518 may be configured to determine the discard level based on or according to one or more characteristics of the service included / carried in the PDU 602 of the PDU set 516. In some embodiments, the characteristic may be or include a service type. The service type may indicate or correspond to the data rate of the service, the reliability sensitivity of the service (e.g., the sensitivity of the service to discarded data packets), and the delay sensitivity of the service (e.g., the sensitivity of the service to delay / latency). For example, some services (e.g., audio services) may have a high data rate but may not be very sensitive to delay. As another example, some services (e.g., control services) may have a low data rate but may be sensitive to reliability.

[0070] The PDU manager 518 may be configured to determine the discard level by mapping the service type of the service included in each PDU 602 of the PDU set 516 to the corresponding discard level. For example, the PDU manager 518 may be configured to determine the service type based on explicit signaling from the application layer, from a packet / PDU inspection, metadata associated with the PDU / PDU set 516, a protocol for the PDU, etc. The PDU manager 518 may be configured to assign a discard level associated with the service type to the PDU 602 of the PDU set 516. For example, the PDU manager 518 may be configured to perform a lookup using the service type of the PDU 602 in the data structure to determine the corresponding discard level. The data structure may store or include a table that identifies the service type and the corresponding discard level. An example of a data structure is shown in Table 1 below, which shows the characteristics of the service, an example of the service type, the discard level, and the corresponding discard criteria.

[0071]

[0072] Table 1. Example drop levels for traffic types

[0073] The PDU manager 518 may be configured to apply a discard level to the PDU set 516. In some embodiments, the PDU manager 518 may be configured to apply the discard level to each PDU 602 in the PDU set 516. As another example, the PDU manager 518 may be configured to apply the discard level to at least one PDU 602 (e.g., a first PDU 602 of the PDU set 516) of the plurality of PDUs 602 in the PDU set 516, wherein the same discard level is indicated / applicable on each PDU 602 of the plurality of PDUs 602 in the PDU set 516 to each PDU 602 of the plurality of PDUs 602 in the PDU set 516. The PDU manager 518 may be configured to apply the discard level to the PDU set 516 by indicating the discard level in a packet / PDU header or other information element of the PDU 602.

[0074] Once the discard level is applied to the PDU set 516, the PDU manager 518 of the transmitter device 606 along the network path can apply a discard policy to selectively discard the PDU set 516 based on the discard level and / or the discard timer according to network congestion. For example and as described below with reference to Figure 7 As described, as network congestion occurs / increases, the PDU manager 518 can be configured to discard the PDU set 516 based on or according to the discard level assigned to the PDU set 516. When the network congestion decreases to less than (or equal to) a threshold value (e.g., less than or equal to the packet drop / loss of the minimum packet drop / loss, the throughput is greater than or equal to the threshold throughput, etc.), the PDU manager 518 can be configured to discard the PDU set 516 according to the discard time. For example, the discard time can define the upper limit of the time that the PDU set 516 can be delayed in the downlink (DL) and / or uplink (UL) service. The discard time can be different (or the same) for different PDU sets. For example, like the discard level, the discard time can vary based on the service type, for example, to reduce network congestion. The PDU manager 518 can be configured to execute a PDU set discard timer (PSDT) when network congestion does not occur. The PSDT may measure, quantify, calculate, or otherwise signal the time that the PDU set 516 has been waiting for transmission at the transmitter device 606 (e.g., in the buffer 514). The PDU manager 518 may be configured to discard the PDU set 516 if the window period of time that the PDU set 516 is in the buffer 514 meets the discard time (e.g., the time indicated by the PSDT is greater than the discard time).

[0075] The PDU manager 518 of the transmitter device 606 may be configured to detect, identify, or otherwise determine a congested state of the network. In some embodiments, the PDU manager 518 may detect network congestion based on RRC signaling. For example, during a congested period, the PDU manager 518 may receive one or more RRC connection rejections including or indicating congestion from a base station (e.g., base station 110). In some embodiments, the PDU manager 518 may detect network congestion based on physical layer indicators, such as observing high interference levels or reduced signal quality, which may indicate / identify network congestion reflecting high traffic and potential. In addition, in some embodiments, the PDU manager 518 may utilize downlink / uplink data throughput measurements as an indicator of network congestion. For example, the PDU manager 518 may be configured to determine or identify network congestion in response to a sudden drop in throughput. Furthermore, in some embodiments, the PDU manager 518 may be configured to receive a network-reported load indicator or an explicit congestion notification (ECN) delivered via system information broadcast or dedicated signaling to determine real-time network load conditions indicating network congestion.

[0076] The PDU manager 518 may be configured to execute a PDU set discard policy based on or according to the congestion state of the network. In some embodiments, when the congestion state of the network meets one or more non-congestion threshold criteria (e.g., throughput greater than a threshold, no load indicator or ECN within a threshold time period, and interference level less than a threshold interference, etc.), the PDU set discard policy may direct or instruct the PDU manager 518 to discard the PDU set 516 based on or according to a discard time (e.g., using PSDT). In some embodiments, when the congestion state of the network meets one or more congestion threshold criteria (e.g., throughput less than a threshold, a count of load indicators or ECNs within a given time period exceeds a threshold, and interference level greater than a threshold interference, etc.), the PDU set discard policy may direct or instruct the PDU manager 518 to discard the PDU set 516 based on or according to a discard level. The PDU manager 518 may be configured to apply the PDU set discard policy to network conditions (e.g., the congestion state of the network) to determine the manner in which the PDU set 516 is discarded. The PDU manager 518 may be configured to discard the PDU set 516 based on the network conditions applied to the PDU set discard policy.

[0077] refer to Figure 5 and Figure 7 , the PDU manager 518 may be configured to discard the PDU set 516 based on or according to network congestion. Specifically, Figure 7is a schematic diagram showing the discarding of a PDU set 516 based on network congestion according to an example embodiment of the present disclosure. Figure 7 As shown, the transmitter device 606 may include a plurality of PDU sets 516 in a buffer, each of the PDU sets 516 having a corresponding discard level (DL) 702 assigned thereto. The PDU sets 516 may include a first set (or subset) of PDU sets 516 (1) having a first discard level 702 (1), a second set (or subset) of PDU sets 516 (2) having a second discard level, to an nth set (or subset) of PDU sets 516 (N) having an nth discard level.

[0078] like Figure 7 As shown, as network congestion increases, the transmitter device 606 can be configured to discard different PDU sets 516. For example, at a first time instance (e.g., transmitter device 606(1) at the first time instance), congestion is limited / reduced / below a threshold, and the PDU manager 518 can be configured to discard PDU sets based on discard times. At a second time instance (e.g., transmitter device 606(2) at the second time instance), as network congestion occurs / increases, the PDU manager 518 can be configured to discard PDU sets 516 based on discard levels. In this example, the PDU manager 518 can be configured to discard a subset of the PDU sets 516(1) assigned a first discard level 702(1), but can send the remaining PDU sets 516(2)-516(N) assigned a second discard level 702(2) to an nth discard level 702(N). At a third time instance (e.g., transmitter device 606(3) at a third time instance), as network congestion occurs / increases, PDU manager 518 may be configured to discard an additional subset of PDU sets 516(1)-516(2) assigned to the first discard level 702(1) and the second discard level 702(2). However, PDU manager 518 may transmit the remaining PDU sets 516(N) assigned to the nth discard level 702(N).

[0079] Although described as the same transmitter device 606 at different time instances, it is noted that the same scenario may also apply to different transmitter devices 606 along the network path. For example, in the case where the UE 120 includes a source device 604 that generates a set of PDUs, the transmitter device 606(1) may be the transceiver 508 of the UE 120, the transmitter device 606(2) may be the base station 110, and the transmitter device 606(3) may be the Nth network device 504(N).

[0080] Figure 8800 is a flowchart illustrating an example method 800 for PDU set discarding according to an example implementation of the present disclosure. The method 800 may be referred to above. Figures 1 to 7 8. The method of performing or executing the method of the present invention may be performed or executed by the device, component, element or hardware described herein. As a brief overview, in step 805, the source device 604 may identify characteristics for a set of protocol data units (PDUs). In step 810, the source device 604 may assign a discard level. In step 815, the transmitter device 606 may determine the discard level. In step 820, the transmitter device 606 may determine a congestion state. In step 825, the transmitter device 606 may discard the PDU set based on the discard time. In step 830, the transmitter device 606 may discard the PDU set based on the discard level. In step 835, the transmitter device 606 may send a non-discarded PDU set.

[0081] In step 805, the source device 604 may identify characteristics for the PDU set. In some embodiments, before identifying the characteristics for the PDU set, the source device 604 may generate, configure, establish, generate, or otherwise provide the PDUs for the PDU set. For example, the source device 604 may provide the PDUs as part of, in support of, or in conjunction with executing an application that utilizes or uses a wireless network to transmit services to an endpoint. The PDU may carry various types / forms of services. For example, the PDU may carry any type of service provided as an example in Table 1 above. These characteristics may include, but are not limited to, data rate, reliability sensitivity, or delay sensitivity of the service carried in the PDU. In some embodiments, as part of generating the PDU, the source device 604 may identify characteristics for the PDU set. In some embodiments, after generating the PDU, the source device 604 may identify characteristics for the PDU set.

[0082] In step 810, the source device 604 may assign a discard level. The source device 604 may assign a discard level to the PDU set based on or according to the characteristics determined in step 805. In some embodiments, the source device 604 may assign a discard level to each PDU of the PDU set. In some embodiments, the source device 604 may assign a discard level to one or more of the multiple PDUs in the PDU set, wherein the same discard level applies to all PDUs in the PDU set. For example, the source device 604 may assign a discard level to the first PDU in the PDU set. Continuing with this example, the transmitter device may identify the discard level of the first PDU of the PDU set and apply the discard level of the first PDU to each of the remaining PDUs of the PDU set. In some embodiments, the source device 604 may assign a discard level to the PDU set, wherein the discard level applies to each of the multiple PDUs within the PDU set.

[0083] In some embodiments, the source device 604 may assign a discard level from an ordered set of multiple discard levels. For example, the source device 604 may assign a discard level from a first discard level, a second discard level, a third discard level to an nth discard level. In this regard, the discard level may be non-binary and identify the discard level / level of the PDU instead. The discard level may indicate the discard level of a PDU set relative to other PDU sets. For example, a first discard level may indicate discarding a corresponding PDU set without regard to a PDU set importance (PSI) assigned to the corresponding PDU set, a second discard level may indicate discarding the corresponding PDU set after discarding the PDU set assigned the first discard level, and a third discard level may indicate discarding the corresponding PDU set after discarding the PDU set assigned the second discard level. In other words, after the first discard level, the nth discard level may indicate discarding the corresponding PDU set after discarding the PDU set assigned the (n-1)th discard level.

[0084] After assigning a discard level to the PDU set, the source device 604 may transmit, send, share, convey, or otherwise provide the PDU set (e.g., with the assigned discard level) to the transmitter device 606. In some embodiments, the source device 604 may provide the PDU set to the transmitter device 606 locally. In other words, the source device 604 and the transmitter device 606 may reside on the same device or be included in the same device. For example, the source device 604 may reside at the application layer of the device, and the transmitter device 606 may reside at a different layer (e.g., physical layer) of the same device. In some embodiments, the source device 604 may provide the PDU set to the transmitter device 606 via a wireless communication medium. For example, the source device 604 may be a UE 120, and the transmitter device 606 may be any other device downstream along the network path between the UE 120 and the receiver device 608 (which may or may not be the application server 502).

[0085] At step 815, the transmitter device 606 may determine a discard level. In some embodiments, the transmitter device 606 may determine a discard level assigned to a plurality of PDU sets. The transmitter device 606 may determine a discard level for each PDU set in the PDU set that it receives from an upstream device (e.g., a source device 604 or any one or more intermediate transmitter devices 606). The transmitter device 606 may determine the discard level in response to receiving the PDU set. The transmitter device 606 may determine the discard level by examining information, such as metadata, header information, or other bits / bytes, indicating the discard level of the PDU set.

[0086] At step 820, the transmitter device 606 may determine a congestion state. In some embodiments, the transmitter device 606 may determine a congestion state of a network that will be used to send a PDU set to a downstream device (e.g., a receiver device or any other sequentially next device along a network path). The transmitter device 606 may be configured to determine the congestion state based on or according to network throughput, based on signaling or messages received from the network (e.g., explicit congestion notifications or any other type of signaling), based on packet discards or losses, measured interference, etc. In the event that the transmitter device 606 determines at step 820 that the congestion state indicates that the network is not congested, the method 800 may proceed to step 825, in which the transmitter device 606 discards the PDU set according to a discard time (e.g., using a PDU set discard timer (PDST)), wherein the discard time may be set according to the type of traffic / characteristics of the traffic, etc. In the event that the transmitter device 606 determines at step 820 that the congestion state indicates that the network is congested, the method 800 may proceed to step 830.

[0087] In step 830, the transmitter device 606 may discard the PDU set according to the discard level. In some embodiments, the transmitter device 606 may discard the PDU set by clearing at least some of the PDU sets in the plurality of PDU sets from the buffer of the transmitter device 606 according to the discard level. The transmitter device 606 may discard one or more various subsets of the PDU set according to the discard level assigned to the PDU set / set for the PDU set / defined for the PDU set. For example, the transmitter device 606 may discard the first subset according to the first discard level assigned to the first subset of the PDU set. When congestion increases or persists, the transmitter device 606 may discard additional one or more subsets of the PDU set according to the discard level. For example, the transmitter device 606 may discard the first subset of the PDU set and the second subset of the PDU set assigned the second discard level. In this regard, the transmitter device 606 may discard subsets of the PDU set in order according to the discard level assigned to the PDU set from the ordered set of discard levels.

[0088] At step 835, the transmitter device 606 may send a non-discarded set of PDUs. In some embodiments, the transmitter device may send a non-discarded subset of the PDU set to the receiver device via the network. For example, in the case of discarding a first subset of the PDU set (e.g., having a first discard level), the transmitter device 606 may send a second PDU set to the nth PDU set assigned a second discard level to the nth discard level. The transmitter device 606 may send the non-discarded set of PDUs to the receiver device, whereby the receiver device may repeat the same steps 815-835 based on the congestion level until the non-discarded set of PDUs is received at its final destination.

[0089] Now that some illustrative embodiments have been described, it will be apparent that the foregoing, which has been presented by way of example, is illustrative and not restrictive. In particular, although many of the examples presented herein relate to specific combinations of method actions or system elements, these actions and these elements may be combined in other ways to achieve the same purpose. The actions, elements, and features discussed in conjunction with one embodiment are not intended to be excluded from other embodiments or similar roles in the embodiments.

[0090] The hardware and multiple data processing components for implementing the various processes, operations, illustrative logic, logic blocks, modules and circuits described in conjunction with the multiple embodiments disclosed herein can be implemented or executed using the following components designed to perform the functions described herein: a general-purpose single-chip processor or a general-purpose multi-chip processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic, a discrete hardware component, or any combination thereof. A general-purpose processor can be a microprocessor, or any conventional processor, controller, microcontroller or state machine. The processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a combination of multiple microprocessors, a combination of one or more microprocessors and a DSP core, or any other such configuration. In some embodiments, specific processes and methods can be performed by circuits dedicated to a given function. The memory (e.g., memory, memory unit, storage device, etc.) may include one or more devices (e.g., RAM, ROM, flash memory, hard disk storage, etc.) for storing data and / or computer code for completing or facilitating the various processes, various layers, and various modules described in the present disclosure. The memory may be or include volatile memory or non-volatile memory, and may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. According to an exemplary embodiment, the memory is communicatively connected to the processor via a processing circuit and includes computer code for executing (e.g., by a processing circuit and / or a processor) one or more processes described herein.

[0091] The present disclosure contemplates methods, systems, and program products on any machine-readable medium for completing various operations. Embodiments of the present disclosure may be implemented using existing computer processors, or implemented by dedicated computer processors for suitable systems incorporated for this or other purposes, or implemented by hard-wired systems. Embodiments within the scope of the present disclosure include program products, which include machine-readable media for carrying or storing machine-executable instructions or data structures thereon. Such machine-readable media may be any available medium that can be accessed by a general-purpose computer or a special-purpose computer, or other machines with a processor. As an example, such machine-readable media may include RAM, ROM, EPROM, EEPROM, or other optical disk storage devices, magnetic disk storage devices, or other magnetic storage devices, or may include any other medium as follows: the other medium may be used to carry or store the desired program code in the form of machine-executable instructions or data structures, and may be accessed by a general-purpose computer or a special-purpose computer or other machines with a processor. The above combinations are also included in the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data that cause a general-purpose computer, a special-purpose computer, or a special-purpose processing machine to perform a certain function or a certain group of functions.

[0092] The words and terms used herein are for descriptive purposes and should not be considered restrictive. The use of "including," "comprising," "having," "containing," "involving," "characterized by," "characterized by," and variations thereof herein is meant to encompass the items listed thereafter, their equivalents and additional items, and to include alternative embodiments consisting exclusively of the items listed thereafter. In one embodiment, the systems and methods described herein consist of one of the described elements, actions, or components, of various combinations of more than one of the described elements, actions, or components, or of all of the described elements, actions, or components.

[0093] Any reference to the embodiments or elements or actions of the systems and methods mentioned herein in the singular may also encompass embodiments including a plurality of these elements, and reference to any embodiments or elements or actions herein in the plural may also encompass embodiments including only a single element. References in the singular or plural are not intended to limit the systems or methods of the present disclosure, their parts, actions or elements to singular or plural configurations. References to any action or element based on any information, action or element may include that the action or element is based at least in part on an embodiment of any information, action or element.

[0094] Any embodiment disclosed herein may be combined with any other embodiment or example, and references to "an embodiment," "some embodiments," "an embodiment," etc. are not necessarily mutually exclusive, but are intended to indicate that a particular feature, structure, or characteristic described in conjunction with the embodiment may be included in at least one embodiment or example. These terms as used herein do not necessarily all refer to the same embodiment. Any embodiment may be combined, inclusively or exclusively, with any other embodiment in any manner consistent with the various aspects and embodiments disclosed herein.

[0095] Where reference numerals follow technical features in the drawings, detailed description or any claims, these reference numerals have been included to increase the intelligibility of the drawings, detailed description and claims. Therefore, the presence or absence of these reference numerals will not have any limiting effect on the scope of any claim element.

[0096] The systems and methods described herein may be implemented in other specific forms without departing from the characteristics of the systems and methods described herein. Unless otherwise expressly noted, references to terms of "approximately," "about," "substantially," or other degrees include variations of plus or minus 10% (+ / -10%) from a given measurement, unit, or range. Coupled elements may be electrically, mechanically, or physically coupled to each other, directly or through intermediate elements. Therefore, the scope of the systems and methods described herein is represented by the appended claims rather than the preceding description, and variations within the meaning and scope of the equivalents of the claims are encompassed therein.

[0097] The term "coupled" and variations thereof include two components being directly coupled to each other or indirectly coupled. Such coupling may be constant (e.g., permanent or fixed) or movable (e.g., removable or releasable). Such coupling may be achieved by two components being directly coupled to each other or coupled to each other, wherein the two components are coupled to each other using a separate intermediate component and any additional intermediate components that are coupled to each other, or the two components are coupled to each other using an intermediate component that is integrally formed as a single integral body with one of the two components. If "coupled" or variations thereof are modified by additional terms (e.g., directly coupled), the general definition of "coupled" provided above is modified by the plain language meaning of the additional terms (e.g., "directly coupled" means that the two components are coupled without any separate intermediate components), resulting in a narrower definition than the general definition of "coupled" provided above. Such coupling may be mechanical, electrical, or fluidic.

[0098] References to "or" may be interpreted as inclusive, such that any term described using "or" may mean any of a single, more than one, and all of the multiple terms described. References to "at least one of 'A' and 'B'" may include only 'A', only 'B', and both 'A' and 'B'. Such references used in conjunction with "including" or other public terms may include additional items.

[0099] Without departing substantially from the teachings and advantages of the subject matter disclosed herein, modifications may be made to the elements and actions described, such as variations in size, dimensions, structure, shape, and proportion of the various elements, variations in parameter values, mounting arrangements, use of materials, colors, orientations. For example, an element shown as being integrally formed may be composed of multiple parts or elements, the positions of these elements may be reversed or otherwise changed, and the nature or number or position of discrete elements may be altered or varied. Other substitutions, modifications, changes, and omissions may also be made to the design, operating conditions, and arrangements of the disclosed elements and operations without departing from the scope of the present disclosure.

[0100] References to the positions of elements herein (e.g., "top," "bottom," "above," "below") are only used to describe the orientation of the various elements in the drawings. According to other exemplary embodiments, the orientation of the various elements may be different, and such variations are intended to be encompassed by the present disclosure.

Claims

1. A method, comprising: Determining, by a transmitter device, for each of a plurality of protocol data unit (PDU) sets, a discard level assigned to the PDU set from an ordered set of a plurality of discard levels, the discard level being assigned to the PDU set based on one or more characteristics of a service corresponding to the PDU set; Determining, by the transmitter device, a congestion status of a network to be used to send the plurality of PDU sets to a receiver device; discarding, by the transmitter device, a first subset of the plurality of PDU sets according to a first discard level assigned to the first subset; as well as A second subset of the plurality of PDU sets having a second discard level is sent by the transmitter device to the receiver device via the network.

2. The method according to claim 1, wherein: The ordered set of the plurality of dropping levels includes the first dropping level, the second dropping level, and a third dropping level.

3. The method according to claim 1, wherein: Discarding the first subset of the plurality of PDU sets includes clearing the first subset from a buffer of the transmitter device.

4. The method according to claim 1, wherein: The transmitter device includes at least one of a user equipment UE or a base station.

5. The method according to claim 1, wherein: The discarding level is allocated to the PDU set at an application layer of a user equipment UE, and the UE includes the transmitter device, and the transmitter device corresponds to a physical layer of the UE.

6. The method according to claim 1, wherein: The discarding level is assigned by a source device, the source device comprising at least one of a user equipment (UE) or an application server, and wherein the transmitter device comprises a network node along a network path between the UE and the application server.

7. The method according to claim 1, wherein: The first discard level indicates discarding the corresponding PDU set without considering the PDU set importance PSI assigned to the corresponding PDU set, the second discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the first discard level, and the third discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the second discard level.

8. The method according to claim 1, wherein: The one or more characteristics include at least one of data rate, reliability sensitivity, or delay sensitivity.

9. The method according to claim 1, further comprising: A third subset of the plurality of PDU sets having a third discard level is sent by the transmitter device to the receiver device via the network.

10. A transmitter device, comprising: Wireless transceiver; as well as One or more processors configured to: determining, for each of a plurality of protocol data unit (PDU) sets, a discard level assigned to the PDU set from an ordered set of a plurality of discard levels, the discard level being assigned to the PDU set based on one or more characteristics of a service corresponding to the PDU set; determining a congestion status of a network to be used to transmit the plurality of PDU sets to a receiver device; discarding a first subset of the plurality of PDU sets according to a first discard level assigned to the first subset; as well as A second subset of the plurality of PDU sets having a second discard level is sent to the receiver device via the wireless transceiver and the network.

11. The transmitter device according to claim 10, wherein: The ordered set of the plurality of dropping levels includes the first dropping level, the second dropping level, and a third dropping level.

12. The transmitter device according to claim 10, wherein: The one or more processors are configured to discard the first subset of the plurality of PDU sets by flushing the first subset from a buffer of the transmitter device.

13. The transmitter device according to claim 10, wherein: The discarding level is allocated to the PDU set at an application layer of a user equipment UE, and the UE includes the transmitter device, and the transmitter device corresponds to a physical layer of the UE.

14. The transmitter device according to claim 10, wherein: The discarding level is assigned by a source device, the source device comprising at least one of a user equipment (UE) or an application server, and wherein the transmitter device comprises a network node along a network path between the UE and the application server.

15. The transmitter device according to claim 10, wherein: The first discard level indicates discarding the corresponding PDU set without considering the PDU set importance PSI assigned to the corresponding PDU set, the second discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the first discard level, and the third discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the second discard level.

16. The transmitter device according to claim 10, wherein: The one or more processors are further configured to transmit a third subset of the plurality of PDU sets having a third discard level to the receiver device via the wireless transceiver and the network.

17. At least one of a base station, a network device or a user equipment UE, comprising the transmitter device according to claim 10.

18. A non-transitory computer-readable medium storing instructions which, when executed by one or more processors of a transmitter device, cause the transmitter device to: determining, for each of a plurality of protocol data unit (PDU) sets, a discard level assigned to the PDU set from an ordered set of a plurality of discard levels, the discard level being assigned to the PDU set based on one or more characteristics of a service corresponding to the PDU set; determining a congestion status of a network to be used to transmit the plurality of PDU sets to a receiver device; discarding a first subset of the plurality of PDU sets according to a first discard level assigned to the first subset; as well as A second subset of the plurality of PDU sets having a second discard level is sent to the receiver device via a wireless transceiver and the network.

19. The non-transitory computer readable medium of claim 18, wherein: The instructions also cause the transmitter device to send a third subset of the plurality of PDU sets having a third discard level to the receiver device via the wireless transceiver and the network.

20. The non-transitory computer readable medium of claim 19, wherein: The first discard level indicates discarding the corresponding PDU set without considering the PDU set importance PSI assigned to the corresponding PDU set, the second discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the first discard level, and the third discard level indicates discarding the corresponding PDU set after discarding the PDU set assigned the second discard level.