Methods for reordering timer enhancements in mobile communications
Reordering timer enhancements in mobile communications address data reordering issues by adjusting timers based on missing packets and timestamps, enhancing data delivery efficiency and reducing latency.
Patent Information
- Application Number
- PCT/CN2025/107500
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-08
- Filing Date
- 2025-07-08
- Publication Date
- 2026-01-15
AI Technical Summary
In 3GPP networks, data reordering issues due to radio transmission variabilities and protocol layer operations lead to out-of-order packet delivery, causing latency and inefficient buffer management, which disrupts delay-sensitive services.
Implementing reordering timer enhancements by starting timers with adjusted timeout values based on detected missing packets, timestamps, and delay budgets to manage primary and secondary gaps in data reception, optimizing the reordering process.
Enhances data reordering efficiency by reducing latency and improving buffer management, ensuring timely delivery of packets in mobile communications.
Smart Images

Figure CN2025107500_15012026_PF_FP_ABST
Abstract
Description
METHODS FOR REORDERING TIMER ENHANCEMENTS IN MOBILE COMMUNICATIONSCROSS REFERENCE TO RELATED PATENT APPLICATION (S)
[0001] The present disclosure is part of a non-provisional application claiming the priority benefit of U.S. Patent Application No. 63 / 668,363, filed 8 July 2024, the content of which herein being incorporated by reference in its entirety.TECHNICAL FIELD
[0002] The present disclosure is generally related to mobile communications and, more particularly, to reordering timer enhancements with respect to user equipment (UE) in mobile communications.BACKGROUND
[0003] Unless otherwise indicated herein, approaches described in this section are not prior art to the claims listed below and are not admitted as prior art by inclusion in this section.
[0004] In 3rd Generation Partnership Project (3GPP) networks, data reordering arises from radio transmission variabilities and protocol layer operations. Packet data convergence protocol (PDCP) , tasked with in-sequence delivery, can receive protocol data units (PDUs) out of order due to multi-carrier aggregation, hybrid automatic repeat request (HARQ) retransmissions, and channel prioritization. This out-of-order reception introduces latency as the user equipment (UE) might wait for missing PDUs, affecting real-time applications. Inefficient buffer management may occur with excessive waiting. Incorrect delivery may disrupt delay-sensitive services. Therefore, there is a need to provide proper schemes for effective reordering mechanisms using timers.SUMMARY
[0005] The following summary is illustrative only and is not intended to be limiting in any way. That is, the following summary is provided to introduce concepts, highlights, benefits and advantages of the novel and non-obvious techniques described herein. Select implementations are further described below in the detailed description. Thus, the following summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
[0006] An objective of the present disclosure is to propose solutions or schemes that address the aforementioned issues pertaining to reordering timer enhancements with respect to user equipment (UE) in mobile communications.
[0007] In one aspect, a method may involve an apparatus starting a first timer with a first timeout value in an event that a first missing packet is detected. The method may also involve the apparatus detecting a second missing packet at a first timer value of the first timer. The method may also involve the apparatus adding a first timestamp indicating the first timer value to a first packet received after the second missing packet. In an event that the first missing packet is received or the first timer expires, the method may further involve the apparatus stopping the first timer, determining a first waiting period based on a current timer value and the first timestamp, and determining a second timeout value for a second timer based on the first timeout value and the first waiting period. The method may further involve the apparatus starting the second timer.
[0008] In another aspect, a method may involve an apparatus starting a first timer with a default timeout value in an event that a first missing packet is detected. In an event that a second missing packet is detected, the method may also involve the apparatus determining a first time point based on the default timeout value and a detection time of the second missing packet, and adding a first timestamp indicating the first time point to a first packet received after the second missing packet. In an event that the first missing packet is received, the method may also involve the apparatus stopping the first timer, and determining a second timeout value for a second timer based on the first timestamp and a first missing packet receiving time. The method may further involve the apparatus starting the second timer.
[0009] In another aspect, a method may involve an apparatus detecting a first missing packet associated with a first transmitting time at a first detection time. The method may also involve the apparatus determining a first timeout value for a first timer based on a delay budget, the first transmitting time, and the first detection time. The method may also involve the apparatus starting the first timer. In an event that the first missing packet is received before the first timer expires, the method may also involve the apparatus stopping the first timer, and in an event that one or more second missing packets are detected, determining a second timeout value for a second timer based on the delay budget, a transmitting time associated with a first one of the one or more second missing packets , and a detection time of the first one of the one or more second missing packets. The method may further involve the apparatus starting the second timer.
[0010] It is noteworthy that, although description provided herein may be in the context of certain radio access technologies, networks and network topologies such as Long-Term Evolution (LTE) , LTE-Advanced, LTE-Advanced Pro, 5th Generation (5G) , New Radio (NR) , Internet-of-Things (IoT) and Narrow Band Internet of Things (NB-IoT) , Industrial Internet of Things (IIoT) , and 6th Generation (6G) , the proposed concepts, schemes and any variation (s) / derivative (s) thereof may be implemented in, for and by other types of radio access technologies, networks and network topologies. Thus, the scope of the present disclosure is not limited to the examples described herein.BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The accompanying drawings are included to provide a further understanding of the disclosure and are incorporated in and constitute a part of the present disclosure. The drawings illustrate implementations of the disclosure and, together with the description, serve to explain the principles of the disclosure. It is appreciable that the drawings are not necessarily in scale as some components may be shown to be out of proportion than the size in actual implementation in order to clearly illustrate the concept of the present disclosure.
[0012] FIG. 1 is a diagram depicting an example scenario under schemes in accordance with implementations of the present disclosure.
[0013] FIG. 2 is a diagram depicting an example scenario under schemes in accordance with implementations of the present disclosure.
[0014] FIGs. 3A to 3D are diagrams depicting an example scenario under schemes in accordance with implementations of the present disclosure.
[0015] FIGs. 4A to 4B are diagrams depicting an example scenario under schemes in accordance with implementations of the present disclosure.
[0016] FIGs. 5A to 5B are diagrams depicting an example scenario under schemes in accordance with implementations of the present disclosure.
[0017] FIG. 6 is a block diagram of an example communication system in accordance with an implementation of the present disclosure.
[0018] FIG. 7 is a flowchart of an example process in accordance with an implementation of the present disclosure.
[0019] FIG. 8 is a flowchart of another example process in accordance with an implementation of the present disclosure.
[0020] FIG. 9 is a flowchart of yet another example process in accordance with an implementation of the present disclosure. DETAILED DESCRIPTION OF PREFERRED IMPLEMENTATIONS
[0021] Detailed embodiments and implementations of the claimed subject matters are disclosed herein. However, it shall be understood that the disclosed embodiments and implementations are merely illustrative of the claimed subject matters which may be embodied in various forms. The present disclosure may, however, be embodied in many different forms and should not be construed as limited to the exemplary embodiments and implementations set forth herein. Rather, these exemplary embodiments and implementations are provided so that description of the present disclosure is thorough and complete and will fully convey the scope of the present disclosure to those skilled in the art. In the description below, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments and implementations. Overview
[0022] Implementations in accordance with the present disclosure relate to various techniques, methods, schemes and / or solutions pertaining to reordering timer enhancements with respect to user equipment (UE) in mobile communications. According to the present disclosure, a number of possible solutions may be implemented separately or jointly. That is, although these possible solutions may be described below separately, two or more of these possible solutions may be implemented in one combination or another.
[0023] In communication systems, a primary gap (or hole) refers to the initial instance of interrupted data reception, such as a break in the sequence of protocol data units (PDUs) at a layer like the packet data convergence protocol (PDCP) . This initial disruption may trigger a waiting period, often managed by a running timer, to allow for the potential arrival of the missing data. Subsequently, secondary gaps (or holes) denote any further breaks in the data reception at the same layer that occur after the initial primary gap has already initiated the waiting process for the missing data. For example, in scenario 100 of FIG. 1, PDUs 3 and 10 are missing, in which PDU 3 is the primary gap and PDU 10 is the secondary gap.
[0024] FIG. 2 illustrates an example scenario 200 of data reception flow in accordance with implementations of the present disclosure. In scenario 200, upon the arrival of data, the UE may first check if the data is in order. If the data arrives in order, the process proceeds to check for a primary gap match. If a primary gap is matched, a running timer is stopped, and all the in-order data present in the receive buffer is forwarded to the upper layers. Subsequently, the primary gap is cleared. However, if the data arrives in order but there is no primary gap match, the data is directly forwarded to the upper layers.
[0025] On the other hand, if the arriving data is not in order, the UE checks if a primary gap is present. If a primary gap is already present, a timestamp is added to the data, and the data is added to the receive buffer. If no primary gap is present when out-of-order data arrives, a timer is started. Additionally, the data is added to the receive buffer.
[0026] Following the forwarding of in-order data and the clearing of the primary gap, the UE may check if the receive buffer is empty. If the receive buffer is empty, the process ends. However, if the receive buffer is not empty, the timer adjustment calculation is performed based on the data timestamp, and a new timer is started.
[0027] Furthermore, upon timer expiry, all in-order data in the receive buffer is forwarded to the upper layers, and the primary gap is cleared. This path then merges with the check for an empty receive buffer, leading to either the end of the process or a timer adjustment and the starting of a new timer if the buffer is not empty.
[0028] As shown in scenario 200, specific timestamps based on secondary gap duration, receiver timestamp, or transmitter timestamp are added to particular data, and the timeout value of a new timer may be determined accordingly, so as to improve the efficiency of data reception.
[0029] FIGs. 3A to 3D are diagrams depicting an example scenario 300 under schemes in accordance with implementations of the present disclosure. In scenario 300, the timing of a secondary gap is linked to the ongoing wait period by recording a timer timestamp (tTstamp) of the current wait time (e.g., timer value) when the out-of-order data associated with the secondary gap is received. When a primary gap is resolved or the current timer expires, any subsequent wait period triggered by a secondary gap may be shortened by a duration (Δ) representing the time the gap has already existed. The duration Δ may be calculated using a wait period timestamp assigned to the first data unit received after the initial data reception gap. For example, the duration Δ and the timeout value of a new timer (also referred to as the new timer value, represented by newTimerOutValue) may be calculated as below:
[0030] Δ = tTstamp -currentTimerValue
[0031] newTimeOutValue=defaultTimeOutValue-Δ
[0032] If multiple secondary gaps exist and the first secondary gap becomes the primary gap, the tTstamp values of the remaining secondary gaps are updated relative to the new timer value, as below:
[0033] δ = tTstamp -currentTimerValue
[0034] updated tTstamp = newTimeOutValue + δ
[0035] Furthermore, the current wait period (timeout value) may be extended by considering both the maximum expected arrival time for the missing data and the duration of the secondary gap. Similarly, the reception time of subsequent data following a primary gap, relative to the current wait time (timer value) , may also be associated with the out-of-order data by assigning it a timestamp of the current wait time at the moment of reception.
[0036] Referring to FIG. 3A, scenario 300 illustrates a process with a default timeout value of 40 milliseconds (ms) . The absence of PDU 3 triggers the start of Timer 1 with a 40 ms timeout. 3 ms later, the detection of missing PDU 10 prompts the UE to add a timer timestamp (tTstamp11) with a value of 37 to PDU 11. After 15 ms, PDU 3 arrives, and Timer 1 is consequently stopped. PDUs 1 to 9 are forwarded to upper layers. PDU 10 now becomes the primary gap, initiating a new timer, Timer 2, with a timeout value of 25 ms. This timeout value is derived from tTstamp11 (37) , the duration Δ (37 –22 = 15) , and the default timer value (40) . 6 ms later, the absence of PDU 14 is detected, leading the UE to add a timer timestamp (tTstamp15) with a value of 19 to PDU 15. Simultaneously, the detection of missing PDU 19 results in the UE adding a timer timestamp (tTstamp20) with a value of 19 to PDU 20. After a further 8 ms, PDU 10 arrives, and Timer 2 is stopped. PDUs 10 to 13 are forwarded to upper layers. A new timer, Timer 3, is then started with a timeout value of 32 ms, calculated based on tTstamp15 (19) , the duration Δ(19 –11 = 8) , and the default timer value (40) . Furthermore, tTstamp20 is updated based on its original value (19) , the current timer value (11) , and the new timer's timeout value (32) , specifically becoming 40 (32 + (19 -11) ) .
[0037] Referring to FIG. 3B, after 20 ms, the detection of missing PDUs 25 through 28 prompts the UE to add a timer timestamp (tTstamp29) with a value of 12 to PDU 29.2 ms later, the arrival of PDU 14 stops Timer 3. PDUs 14 to 18 are forwarded to upper layers. Consequently, a new timer, Timer 4, is initiated with a 10 ms timeout, calculated based on tTstamp20 (40) , the duration Δ (40 –10 = 30) , and the default timer value (40) . Also, tTstamp29 is updated based on its original value (12) , the current timer value (10) , and the new timer's timeout value (10) , specifically becoming 12 (10 + (12 -10) ) . 6 ms afterward, PDU 26 arrives, and then 3 ms later, PDU 19 arrives, which accordingly stops Timer 4. PDUs 19 to 24 are forwarded to the upper layers. Subsequently, another new timer, Timer 5, is started with a timeout value of 29 ms, calculated based on tTstamp29 (12) , the duration Δ (12 –1 = 11) , and the default timer value (40) .
[0038] Referring to FIG. 3C, after 13 ms, the detection of missing PDUs 33 through 40 prompts the UE to add a timer timestamp (tTstamp41) with a value of 16 to PDU 41. Subsequently, PDU 36 arrives after 2 ms, followed by PDU 38 after another 5 ms. 4 ms later, the absence of PDUs 46 and 47 leads the UE to add a timer timestamp (tTstamp48) with a value of 5 to PDU 48. Concurrently, the detection of missing PDUs 51 and 52 results in the UE adding a timer timestamp (tTstamp53) , also with a value of 5, to PDU 53.
[0039] Referring to FIG. 3D, 2 ms later, the detection of missing PDUs 55 through 57 prompts the UE to add a timer timestamp (tTstamp58) with a value of 3 to PDU 58. After an additional 3 ms, Timer 5 expires, and PDUs 26 and 29 through 32 are forwarded to upper layers. Subsequently, a new timer, Timer 6, is started with a timeout value of 24 ms, calculated based on tTstamp41 (16) , the duration Δ (16 –0 =16) , and the default timer value (40) . Consequently, tTstamp48, tTstamp53, and tTstamp58 are updated to 29, 29, and 27, respectively.
[0040] FIGs. 4A to 4B are diagrams depicting an example scenario 400 under schemes in accordance with implementations of the present disclosure. In this embodiment, for secondary gaps, the time at which out-of-order data arrives at the layer in a communications system such as PDCP may be used to calculate the appropriate wait time / period / duration during which the missing data may arrive. The wait time may be calculated based on a target / configured / default wait time. In one example, for each piece of data (e.g., a PDU) that arrives out of order, an indication of the time it arrives may be added to the data which arrives through a timestamp. In another example, for each piece of data that arrives, an indication of the time it arrives may be added to the data by adding a timestamp to the data. For a secondary gap becoming a primary gap, the timestamp (represented by tStamp) and the wait time value (also referred to as the timer value or the timeout value, represented by Timer) may be calculated using the equations below:
[0041] tStamp=waitTime+gapTime
[0042] Timer=tStamp-currentTime
[0043] In which, waitTime represents the reference timer value / default timeout value (e.g., configured t-Reordering) , gapTime represents the time at which the secondary gap is detected at the receiver, and currentTime represents the time at which the secondary gap starts a new reordering timer. In the equation above, timestamp (tStamp) may also represent the time at which data (e.g., a PDU) may be forwarded to upper layers.
[0044] Referring to FIG. 4A, scenario 400 illustrates a process with a default timeout value of 40 ms. Upon detecting the absence of PDU 2, Timer 1 is started with a 40 ms timeout. 3 ms later, the detection of missing PDU 10 prompts the UE to add a timestamp (tStamp11) with a value of 43 to PDU 11, calculated as the default timeout value (40) plus the current receiver time value (3) . 5 ms later, PDU 2 arrives, stopping Timer 1. Consequently, a new timer, Timer 2, is initiated with a 35 ms timeout, which is determined based on tStamp11 (43) minus the current receiver time value (8) . 6 ms later, the absence of PDU 16 leads to the addition of a timestamp (tStamp17) with a value of 54 (i.e., the default timeout value (40) plus the current receiver time value (14) ) to PDU 17. Simultaneously, the detection of missing PDUs 19 and 20 results in a timestamp (tStamp21) with the same value of 54 (40+14) being added to PDU 21.2 ms afterward, PDU 16 arrives. 3 ms later, PDU 10 arrives, stopping Timer 2. PDUs 10 through 18 are forwarded to the upper layers. A new timer, Timer 3, is then started with a 35 ms timeout, where the timeout value is determined based on tStamp21 (54) minus the current receiver time value (19) . 7 ms later, the absence of PDUs 26 through 29 prompts the addition of a timestamp (tStamp30) with a value of 66 (i.e., the default timeout value (40) plus the current receiver time value (26) ) to PDU 30.4 ms later, the detection of missing PDUs 34 through 36 results in a timestamp (tStamp37) with a value of 70 ( (i.e., the default timeout value (40) plus the current receiver time value (30) ) being added to PDU 37.
[0045] Referring to FIG. 4B, after 4 ms, PDU 26 arrives, followed by PDU 28 after another 2 ms. 3 ms later, PDUs 19 and 20 arrive, causing Timer 3 to be terminated. PDUs 19 through 26 are forwarded to upper layers. Subsequently, a new timer, Timer 4, is started with a 27 ms timeout, which is determined by subtracting the current receiver time value (39) from tStamp30 (66) . 27 ms later, Timer 4 expires, and PDUs 28 and 30 through 33 are forwarded to the upper layers. Following this, another new timer, Timer 5, is started with a 4 ms timeout, determined by subtracting the current receiver time value (66) from tStamp37 (70) .
[0046] FIGs. 5A to 5B are diagrams depicting an example scenario 500 under schemes in accordance with implementations of the present disclosure. In this embodiment, the reordering timer is based on the transmitter timestamp. The receiving entity (e.g., UE) might necessitate time synchronization with the transmitting entity. Furthermore, it may require prior knowledge of a delay budget (DB) to calculate the appropriate wait time value, such as a timer duration. Specifically, a timestamp (tStamptx) may be added to data at the transmitting end / source at a layer in the communication system, such as PDCP. In one embodiment, if data (e.g., PDUs) are received out of order, the wait time for the missing data may be set based on the maximum amount of time the received data can be held by the receiving entity and still meet the delay budget requirement, which may be set based on different criteria such as the type of data and / or higher layer requirements. The equation below may be used to calculate the wait time value (also referred to as the timer value or the timeout value, represented by the term Timer) :
[0047] Timer= (tStamptx + DB) -currentTime
[0048] In which, tStamptx represents the timestamp added on the transmit end, DB represents the delay budget, and currentTime is the time at which a secondary gap starts a new reordering timer. If Timer is equal to 0 from the above equation, the out-of-order data has already reached the maximum amount of time it can be held in by the receiver. In one embodiment, if previously missing data is received which may have an earlier timestamp compared to the current data which initiated the current timer, the current timer may be modified relative to this new data timestamp. In one embodiment, in the event of out-of-order data delivery or in the event of missing data, all the subsequent data received may be inspected by the receiving entity to determine if the data can be buffered as the missing data is waited for.
[0049] Referring to FIG. 5A, scenario 500 depicts a process with a delay budget of 30 ms. Upon detecting the absence of PDU 4, a timer, Timer 1, is started with a 28 ms timeout. This timeout value (wait time value) is calculated by subtracting the current receiver time value (4) from the sum of the tStamptx of PDU 5 (2) and the delay budget (30) . 8 ms later, PDUs 11 through 14 are detected as missing. After another 6 ms, PDU 4 arrives, consequently stopping Timer 1, and PDUs 1 through 10 are forwarded to the upper layers. Subsequently, a new timer, Timer 2, is initiated with a 19 ms timeout, determined by subtracting the current receiver time value (18) from the sum of the tStamptx of PDU 15 (7) and the delay budget (30) . 5 ms later, PDUs 17, 18, and 21 are found to be missing. 9 ms after that, PDU 13 arrives, followed by PDU 11 after an additional 2 ms, which is then forwarded to the upper layers. 3 ms later, Timer 2 expires, and PDUs 13, 15, and 16 are forwarded to the upper layers. A new timer, Timer 3, is started with an 8 ms timeout, calculated by subtracting the current receiver time value (37) from the sum of the tStamptx of PDU 19 (15) and the delay budget (30) .
[0050] Referring to FIG. 5B, after 3 ms, PDUs 24 through 26 and 29 are detected as missing. 5 ms later, Timer 3 expires, resulting in PDUs 19 and 20 being forwarded to the upper layers. The timeout value for a new timer, Timer 4, is calculated by subtracting the current receiver time value (45) from the sum of the tStamptx of PDU 22 (15) and the delay budget (30) . Since the resulting timeout value for Timer 4 is 0, it indicates that the out-of-order data has already reached its maximum allowable holding time at the receiver, and consequently, PDUs 22 and 23 are forwarded to the upper layers. A new timer, Timer 5, is then started with an 11 ms timeout, calculated by subtracting the current receiver time value (45) from the sum of the tStamptx of PDU 27 (26) and the delay budget (30) . 2 ms later, PDU 25 arrives. As it has an earlier transmitter timestamp than PDU 27 (i.e., tStamptx of PDU 25 is less than tStamptx of PDU 27) , the timeout value for Timer 6 is calculated by subtracting the current receiver time value (47) from the sum of the tStamptx of PDU 25 (24) and the delay budget (30) . Subsequently, PDU 24 arrives after 3 ms, and PDUs 24 and 25 are forwarded to the upper layers. The timeout value for Timer 7 is calculated by subtracting the current receiver time value (50) from the sum of the tStamptx of PDU 27 (26) and the delay budget (30) . Illustrative Implementations
[0051] FIG. 6 illustrates an example communication system 600 having an example communication apparatus 610 and an example network apparatus 620 in accordance with an implementation of the present disclosure. Each of communication apparatus 610 and network apparatus 620 may perform various functions to implement schemes, techniques, processes and methods described herein pertaining to reordering timer enhancements with respect to UE in mobile communications, including scenarios / schemes described above as well as processes 700, 800, and 900 described below.
[0052] Communication apparatus 610 may be a part of an electronic apparatus, which may be a UE such as a portable or mobile apparatus, a wearable apparatus, a wireless communication apparatus or a computing apparatus. For instance, communication apparatus 610 may be implemented in a smartphone, a smartwatch, a personal digital assistant, a digital camera, or a computing equipment such as a tablet computer, a laptop computer or a notebook computer. Communication apparatus 610 may also be a part of a machine type apparatus, which may be an IoT, NB-IoT, or IIoT apparatus such as an immobile or a stationary apparatus, a home apparatus, a wire communication apparatus or a computing apparatus. For instance, communication apparatus 610 may be implemented in a smart thermostat, a smart fridge, a smart door lock, a wireless speaker or a home control center. Alternatively, communication apparatus 610 may be implemented in the form of one or more integrated-circuit (IC) chips such as, for example and without limitation, one or more single-core processors, one or more multi-core processors, one or more reduced-instruction set computing (RISC) processors, or one or more complex-instruction-set-computing (CISC) processors. Communication apparatus 610 may include at least some of those components shown in FIG. 6 such as a processor 612, for example. Communication apparatus 610 may further include one or more other components not pertinent to the proposed scheme of the present disclosure (e.g., internal power supply, display device and / or user interface device) , and, thus, such component (s) of communication apparatus 610 are neither shown in FIG. 6 nor described below in the interest of simplicity and brevity.
[0053] Network apparatus 620 may be a part of a network apparatus, which may be a network node such as a satellite, a base station, a small cell, a router or a gateway. For instance, network apparatus 620 may be implemented in an eNodeB in an LTE network, in a gNB in a 5G / NR, IoT, NB-IoT or IIoT network or in a satellite or base station in a 6G network. Alternatively, network apparatus 620 may be implemented in the form of one or more IC chips such as, for example and without limitation, one or more single-core processors, one or more multi-core processors, or one or more RISC or CISC processors. Network apparatus 620 may include at least some of those components shown in FIG. 6 such as a processor 622, for example. Network apparatus 620 may further include one or more other components not pertinent to the proposed scheme of the present disclosure (e.g., internal power supply, display device and / or user interface device) , and, thus, such component (s) of network apparatus 620 are neither shown in FIG. 6 nor described below in the interest of simplicity and brevity.
[0054] In one aspect, each of processor 612 and processor 622 may be implemented in the form of one or more single-core processors, one or more multi-core processors, or one or more CISC processors. That is, even though a singular term “a processor” is used herein to refer to processor 612 and processor 622, each of processor 612 and processor 622 may include multiple processors in some implementations and a single processor in other implementations in accordance with the present disclosure. In another aspect, each of processor 612 and processor 622 may be implemented in the form of hardware (and, optionally, firmware) with electronic components including, for example and without limitation, one or more transistors, one or more diodes, one or more capacitors, one or more resistors, one or more inductors, one or more memristors and / or one or more varactors that are configured and arranged to achieve specific purposes in accordance with the present disclosure. In other words, in at least some implementations, each of processor 612 and processor 622 is a special-purpose machine specifically designed, arranged and configured to perform specific tasks including reordering timer enhancements in a device (e.g., as represented by communication apparatus 610) and a network (e.g., as represented by network apparatus 620) in accordance with various implementations of the present disclosure.
[0055] In some implementations, communication apparatus 610 may also include a transceiver 616 coupled to processor 612 and capable of wirelessly transmitting and receiving data. In some implementations, communication apparatus 610 may further include a memory 614 coupled to processor 612 and capable of being accessed by processor 612 and storing data therein. In some implementations, network apparatus 620 may also include a transceiver 626 coupled to processor 622 and capable of wirelessly transmitting and receiving data. In some implementations, network apparatus 620 may further include a memory 624 coupled to processor 622 and capable of being accessed by processor 622 and storing data therein. Accordingly, communication apparatus 610 and network apparatus 620 may wirelessly communicate with each other via transceiver 616 and transceiver 626, respectively. To aid better understanding, the following description of the operations, functionalities and capabilities of each of communication apparatus 610 and network apparatus 620 is provided in the context of a mobile communication environment in which communication apparatus 610 is implemented in or as a communication apparatus or a UE and network apparatus 620 is implemented in or as a network node of a communication network. Illustrative Processes
[0056] FIG. 7 illustrates an example process 700 in accordance with an implementation of the present disclosure. Process 700 may be an example implementation of above scenarios / schemes, whether partially or completely, with respect to reordering timer enhancements of the present disclosure. Process 700 may represent an aspect of implementation of features of communication apparatus 610. Process 700 may include one or more operations, actions, or functions as illustrated by one or more of blocks 710 to 750. Although illustrated as discrete blocks, various blocks of process 700 may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation. Moreover, the blocks of process 700 may be executed in the order shown in FIG. 7 or, alternatively, in a different order. Process 700 may be implemented by communication apparatus 610 or any suitable UE or machine type devices. Solely for illustrative purposes and without limitation, process 700 is described below in the context of communication apparatus 610. Process 700 may begin at block 710.
[0057] At block 710, process 700 may involve processor 612 of communication apparatus 610 starting a first timer with a first timeout value in an event that a first missing packet is detected. Process 700 may proceed from block 710 to block 720.
[0058] At block 720, process 700 may involve processor 612 of communication apparatus 610 detecting a second missing packet at a first timer value of the first timer. Process 700 may proceed from block 720 to block 730.
[0059] At block 730, process 700 may involve processor 612 of communication apparatus 610 adding a first timestamp indicating the first timer value to a first packet received after the second missing packet. Process 700 may proceed from block 730 to block 740.
[0060] At block 740, in an event that the first missing packet is received or the first timer expires, process 700 may involve processor 612 of communication apparatus 610 stopping the first timer, determining a first waiting period based on a current timer value and the first timestamp, and determining a second timeout value for a second timer based on the first timeout value and the first waiting period. Process 700 may proceed from block 740 to block 750.
[0061] At block 750, process 700 may involve processor 612 of communication apparatus 610 starting the second timer.
[0062] In some implementations, the second timeout value is determined by subtracting the first waiting period from the first timeout value.
[0063] In some implementations, process 700 may involve processor 612 of communication apparatus 610 detecting a third missing packet at the first timer value of the first timer. Also, process 700 may involve processor 612 of communication apparatus 610 adding a second timestamp indicating the first timer value to a first packet received after the third missing packet.
[0064] In some implementations, in an event that the first missing packet is received or the first timer expires, process 700 may further involve processor 612 of communication apparatus 610 determining a second waiting period based on the current timer value and the second timestamp, and updating the second timestamp based on the second timeout value and the second waiting period.
[0065] In some implementations, the second timestamp is updated by adding the second waiting period to the second timeout value.
[0066] In some implementations, in an event that the first missing packet is received or the first timer expires, process 700 may further involve processor 612 of communication apparatus 610 forwarding one or more consecutive packets to an upper layer.
[0067] In some implementations, the first timer is extended based on at least one of a maximum arrival time for missing packet and an existing time of the second missing packet.
[0068] FIG. 8 illustrates an example process 800 in accordance with an implementation of the present disclosure. Process 800 may be an example implementation of above scenarios / schemes, whether partially or completely, with respect to reordering timer enhancements of the present disclosure. Process 800 may represent an aspect of implementation of features of communication apparatus 610. Process 800 may include one or more operations, actions, or functions as illustrated by one or more of blocks 810 to 840. Although illustrated as discrete blocks, various blocks of process 800 may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation. Moreover, the blocks of process 800 may be executed in the order shown in FIG. 8 or, alternatively, in a different order. Process 800 may be implemented by communication apparatus 610 or any suitable UE or machine type devices. Solely for illustrative purposes and without limitation, process 800 is described below in the context of communication apparatus 610. Process 800 may begin at block810.
[0069] At block 810, process 800 may involve processor 612 of communication apparatus 610 starting a first timer with a default timeout value in an event that a first missing packet is detected. Process 800 may proceed from block 810 to block 820.
[0070] At block 820, in an event that a second missing packet is detected, process 800 may involve processor 612 of communication apparatus 610 determining a first time point based on the default timeout value and a detection time of the second missing packet, and adding a first timestamp indicating the first time point to a first packet received after the second missing packet. Process 800 may proceed from block 820 to block 830.
[0071] At block 830, in an event that the first missing packet is received, process 800 may involve processor 612 of communication apparatus 610 stopping the first timer, and determining a second timeout value for a second timer based on the first timestamp and a first missing packet receiving time. Process 800 may proceed from block 830 to block 840.
[0072] At block 840, process 800 may involve processor 612 of communication apparatus 610 starting the second timer.
[0073] In some implementations, the first time point is determined by adding the detection time of the second missing packet to the default timeout value.
[0074] In some implementations, the second timeout value is determined by subtracting the first missing packet receiving time from the first time point indicated by the first timestamp.
[0075] In some implementations, process 800 may further involve processor 612 detecting a third missing packet before the first missing packet is received, determining a second time point based on the default timeout value and a detection time of the third missing packet, and adding a second timestamp indicating the second time point to a first packet received after the third missing packet.
[0076] In some implementations, in an event that the first missing packet is received, process 800 may further involve processor 612 determining the second timeout value for the second timer based on the second timestamp and the first missing packet receiving time in an event that the second missing packet is received before receiving the first missing packet.
[0077] In some implementations, in an event that the first missing packet is received, process 800 may involve processor 612 forwarding one or more consecutive packets to an upper layer.
[0078] In some implementations, the default timeout value is pre-configured
[0079] FIG. 9 illustrates another example process 900 in accordance with an implementation of the present disclosure. Process 900 may be an example implementation of above scenarios / schemes, whether partially or completely, with respect to reordering timer enhancements in mobile communications. Process 900 may represent an aspect of implementation of features of communication apparatus 610. Process 900 may include one or more operations, actions, or functions as illustrated by one or more of blocks 910 to 950. Although illustrated as discrete blocks, various blocks of process 900 may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the desired implementation. Moreover, the blocks of process 900 may be executed in the order shown in FIG. 9 or, alternatively, in a different order. Process 900 may be implemented by communication apparatus 610 or any suitable UE or machine type devices. Solely for illustrative purposes and without limitation, process 900 is described below in the context of communication apparatus 610. Process 900 may begin at block 910.
[0080] At block 910, process 900 may involve processor 612 of communication apparatus 610 detecting a first missing packet associated with a first transmitting time at a first detection time. Process 900 may proceed from block 910 to block 920.
[0081] At block 920, process 900 may involve processor 612 determining a first timeout value for a first timer based on a delay budget, the first transmitting time, and the first detection time. Process 900 may proceed from block 920 to block 930.
[0082] At block 930, process 900 may involve processor 612 starting the first timer. Process 900 may proceed from block 930 to block 940.
[0083] At block 940, in an event that the first missing packet is received before the first timer expires, process 900 may involve processor 612 stopping the first timer by the processor, and in an event that one or more second missing packets are detected, process 900 may involve processor 612 determining a second timeout value for a second timer based on the delay budget, a transmitting time associated with a first one of the one or more second missing packets , and a detection time of the first one of the one or more second missing packets. Process 900 may proceed from block 940 to block 950.
[0084] At block 950, process 900 may involve processor 612 starting the second timer.
[0085] In some implementations, process 900 may involve processor 612 detecting one or more third missing packets before the second timer expires. In an event that the second timer expires, process 900 may involve processor 612 forwarding one or more packets received before the one or more third missing packets to an upper layer, determining a third timeout value for a third timer based on the delay budget, a transmitting time associated with a first one of the one or more third missing packets, and a detection time of the first one of the one or more third missing packets, and starting the third timer.
[0086] In some implementations, the first timeout value for the first timer is determined by obtaining a first time value by adding the first transmitting time to the delay budget, and subtracting the first detection time from the first time value.
[0087] In some implementations, the second timeout value for the second timer is determined by obtaining a second time value by adding the transmitting time associated with the first one of the one or more second missing packets to the delay budget, and subtracting the detection time of the first one of the one or more second missing packets from the second time value.
[0088] In some implementations, the third timeout value for the third timer is determined by obtaining a third time value by adding the transmitting time associated with the first one of the one or more third missing packets to the delay budget, and subtracting the detection time of the first one of the one or more third missing packets from the third time value.
[0089] In some implementations, each of the first transmitting time, the transmitting time associated with the first one of the one or more second missing packets, and the transmitting time associated with the first one of the one or more third missing packets are indicated by a timestamp attached by a data source.
[0090] In some implementations, communication apparatus 610 is synchronized in time with the data source (e.g., network apparatus 620) .
[0091] In some implementations, the delay budget is determined based on at least one of a data type and a higher layer requirement. Additional Notes
[0092] The herein-described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely examples, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being "operably connected" , or "operably coupled" , to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being "operably couplable" , to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and / or physically interacting components and / or wirelessly interactable and / or wirelessly interacting components and / or logically interacting and / or logically interactable components.
[0093] Further, with respect to the use of substantially any plural and / or singular terms herein, those having skill in the art can translate from the plural to the singular and / or from the singular to the plural as is appropriate to the context and / or application. The various singular / plural permutations may be expressly set forth herein for sake of clarity.
[0094] Moreover, it will be understood by those skilled in the art that, in general, terms used herein, and especially in the appended claims, e.g., bodies of the appended claims, are generally intended as “open” terms, e.g., the term “including” should be interpreted as “including but not limited to, ” the term “having” should be interpreted as “having at least, ” the term “includes” should be interpreted as “includes but is not limited to, ” etc. It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to implementations containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an, " e.g., “a” and / or “an” should be interpreted to mean “at least one” or “one or more; ” the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number, e.g., the bare recitation of "two recitations, " without other modifiers, means at least two recitations, or two or more recitations. Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. In those instances where a convention analogous to “at least one of A, B, or C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. It will be further understood by those within the art that virtually any disjunctive word and / or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B. ”
[0095] From the foregoing, it will be appreciated that various implementations of the present disclosure have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Accordingly, the various implementations disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
Claims
1.A method, comprising:starting, by a processor of an apparatus, a first timer with a first timeout value in an event that a first missing packet is detected;detecting, by the processor, a second missing packet at a first timer value of the first timer;adding, by the processor, a first timestamp indicating the first timer value to a first packet received after the second missing packet;in an event that the first missing packet is received or the first timer expires:stopping, by the processor, the first timer;determining, by the processor, a first waiting period based on a current timer value and the first timestamp; anddetermining, by the processor, a second timeout value for a second timer based on the first timeout value and the first waiting period; andstarting, by the processor, the second timer.2.The method of Claim 1, wherein the second timeout value is determined by subtracting the first waiting period from the first timeout value.3.The method of Claim 1, further comprising:detecting, by the processor, a third missing packet at the first timer value of the first timer; andadding, by the processor, a second timestamp indicating the first timer value to a first packet received after the third missing packet.4.The method of Claim 3, wherein in an event that the first missing packet is received or the first timer expires, the method further comprises:determining, by the processor, a second waiting period based on the current timer value and the second timestamp; andupdating, by the processor, the second timestamp based on the second timeout value and the second waiting period.5.The method of Claim 4, wherein the second timestamp is updated by adding the second waiting period to the second timeout value.6.The method of Claim 1, wherein in an event that the first missing packet is received or the first timer expires, the method further comprises:forwarding, by the processor, one or more consecutive packets to an upper layer.7.The method of Claim 1, wherein the first timer is extended based on at least one of a maximum arrival time for missing packet and an existing time of the second missing packet.8.A method, comprising:starting, by a processor of an apparatus, a first timer with a default timeout value in an event that a first missing packet is detected;in an event that a second missing packet is detected:determining, by the processor, a first time point based on the default timeout value and a detection time of the second missing packet; andadding, by the processor, a first timestamp indicating the first time point to a first packet received after the second missing packet;in an event that the first missing packet is received:stopping, by the processor, the first timer; anddetermining, by the processor, a second timeout value for a second timer based on the first timestamp and a first missing packet receiving time; andstarting, by the processor, the second timer.9.The method of Claim 8, wherein the first time point is determined by adding the detection time of the second missing packet to the default timeout value.10.The method of Claim 8, wherein the second timeout value is determined by subtracting the first missing packet receiving time from the first time point indicated by the first timestamp.11.The method of Claim 8, further comprising:detecting, by the processor, a third missing packet before the first missing packet is received;determining, by the processor, a second time point based on the default timeout value and a detection time of the third missing packet; andadding, by the processor, a second timestamp indicating the second time point to a first packet received after the third missing packet.12.The method of Claim 11, wherein in an event that the first missing packet is received, the method further comprises:determining, by the processor, the second timeout value for the second timer based on the second timestamp and the first missing packet receiving time in an event that the second missing packet is received before receiving the first missing packet.13.The method of Claim 8, wherein in an event that the first missing packet is received, the method further comprises:forwarding, by the processor, one or more consecutive packets to an upper layer.14.The method of Claim 8, wherein the default timeout value is pre-configured.15.A method, comprising:detecting, by a processor of an apparatus, a first missing packet associated with a first transmitting time at a first detection time;determining, by the processor, a first timeout value for a first timer based on a delay budget, the first transmitting time, and the first detection time;starting, by the processor, the first timer;in an event that the first missing packet is received before the first timer expires:stopping, by the processor, the first timer; andin an event that one or more second missing packets are detected, determining, by the processor, a second timeout value for a second timer based on the delay budget, a transmitting time associated with a first one of the one or more second missing packets, and a detection time of the first one of the one or more second missing packets; andstarting, by the processor, the second timer.16.The method of Claim 15, further comprising:detecting, by the processor, one or more third missing packets before the second timer expires;in an event that the second timer expires:forwarding, by the processor, one or more packets received before the one or more third missing packets to an upper layer; anddetermining, by the processor, a third timeout value for a third timer based on the delay budget, a transmitting time associated with a first one of the one or more third missing packets, and a detection time of the first one of the one or more third missing packets; andstarting, by the processor, the third timer.17.The method of Claim 16, wherein:the first timeout value for the first timer is determined by obtaining a first time value by adding the first transmitting time to the delay budget, and subtracting the first detection time from the first time value;the second timeout value for the second timer is determined by obtaining a second time value by adding the transmitting time associated with the first one of the one or more second missing packets to the delay budget, and subtracting the detection time of the first one of the one or more second missing packets from the second time value; orthe third timeout value for the third timer is determined by obtaining a third time value by adding the transmitting time associated with the first one of the one or more third missing packets to the delay budget, and subtracting the detection time of the first one of the one or more third missing packets from the third time value.18.The method of Claim 16, wherein each of the first transmitting time, the transmitting time associated with the first one of the one or more second missing packets, and the transmitting time associated with the first one of the one or more third missing packets are indicated by a timestamp attached by a data source.19.The method of Claim 18, wherein the apparatus is synchronized in time with the data source.20.The method of Claim 15, wherein the delay budget is determined based on at least one of a data type and a higher layer requirement.
Citation Information
Patent Citations
Data loss processing method in mobile communication system
CN101141225A
Data packet processing method and device
CN109803277A
Multiple timers for effective reordering
US11387945B1
Apparatus and method for reordering data packets in communication system
US20110170548A1
Data Packet Transmission Method And Communications Apparatus
US20220116332A1