Method and apparatus for processing packet data convergence protocol packets in mobile communications
Patent Information
- Application Number
- CN202580021948.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-09-24
- Filing Date
- 2025-09-16
- Publication Date
- 2026-10-23
AI Technical Summary
在最坏情况下,这些被保留的PDCP PDU可能在缓冲区中停留长达配置的重排序超时时间的两倍,从而增加延迟并有可能违反相应数据流的延迟预算
[0009]本公开的目的在于提出解决与移动通信装置处理分组数据汇聚协议(PacketData Convergence Protocol,简称 PDCP)分组相关的上述问题的方案或方法。
Smart Images

Figure CN122972073A_ABST
Abstract
Description
[0001] Cross-references
[0002] This disclosure is part of a non-provisional application claiming priority to U.S. Patent Application No. 63 / 698,089 (filed September 24, 2024), the entire contents of which are incorporated herein by reference. Technical Field
[0003] This disclosure generally relates to mobile communications, and more specifically, to techniques for processing Packet Data Convergence Protocol (PDCP) packets in devices within mobile communications. Background Technology
[0004] Unless otherwise stated herein, the methods described in this section are not prior art as claimed in the following claims, and are not considered prior art because they are included in this section.
[0005] In Long-Term Evolution (LTE) or New Radio (NR) mobile communications, Packet Data Convergence Protocol (PDCP) reordering has been introduced. Specifically, PDCP reordering typically employs a timer-based reordering mechanism to control the transmission of received PDCP Protocol Data Units (PDUs) to higher layers. When multiple sequence number (SN) gaps occur within the receive window (i.e., multiple PDCP PDUs are lost), traditional timer-based reordering can lead to excessive transmission delays. This delay behavior may be undesirable for Low-Latency Data Radio Bearers (DRBs) and may result in more Service Data Units (SDUs) than actually needed, exceeding their latency budget.
[0006] More specifically, excessive latency may be due to behavior when the reordering timer expires. When the timer expires, PDCP PDUs with a SN less than the reordering state variable (e.g., the parameter RX_REORD defined in the 3GPP specification) can be forwarded to the upper layer, while PDCP PDUs with a SN between RX_REORD and the next expected SN (e.g., the parameter RX_NEXT defined in the 3GPP specification) remain in the receive buffer. In the worst case, these retained PDCP PDUs may remain in the buffer for up to twice the configured reordering timeout, increasing latency and potentially violating the latency budget of the corresponding data stream.
[0007] Therefore, improved receive buffer management techniques are needed to limit the maximum latency of PDCP PDUs in the receive buffer, thereby improving latency performance of low-latency services and reducing unnecessary latency budget violations, while maintaining reliable delivery for services that tolerate longer latency. Summary of the Invention
[0008] The following abstract is for illustrative purposes only and is not intended to be limiting in any way. That is, the following abstract aims to introduce the concepts, key points, benefits, and advantages of the novel and non-obvious techniques described herein. Some embodiments will be further elaborated in the detailed description below. Therefore, the following abstract is not intended to identify the essential features of the claimed subject matter, nor is it intended to determine the scope of the claimed subject matter.
[0009] The purpose of this disclosure is to propose a solution or method for resolving the aforementioned problems related to the processing of Packet Data Convergence Protocol (PDCP) packets by mobile communication devices.
[0010] In one aspect, a method may involve means determining that the difference between a first current time and a first timestamp of a first box is greater than a threshold. The first box may be associated with a first set of PDCP Packet Data Units (PDUs). The method may also involve means forwarding one or more first received PDCP PDUs from the first set of PDCP PDUs to an upper layer. The method may further involve means discarding one or more first unreceived PDCP PDUs in the first set of PDCP PDUs if they are identified as lost.
[0011] In one aspect, an apparatus may include a transceiver that wirelessly communicates with a wireless network during operation. The apparatus may also include a processor communicatively coupled to the transceiver. During operation, the processor may perform operations including determining that the difference between a first current time and a first timestamp of a first box is greater than a threshold. The first box may be associated with a first set of PDCP PDUs. The processor may also perform operations including forwarding one or more first received PDCP PDUs from the first set of PDCP PDUs to an upper layer. The processor may also perform operations including discarding one or more first unreceived PDCP PDUs if one or more first unreceived PDCP PDUs from the first set of PDCP PDUs are identified as lost.
[0012] It is worth noting that although the content described herein may be set against the backdrop of certain wireless 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), Narrow Band Internet of Things (NB-IoT), Industrial Internet of Things (IIoT), and 6th Generation (6G), the proposed concepts, schemes, and any variations / derivatives thereof can be implemented, used, and implemented by other types of wireless access technologies, networks, and network topologies. Therefore, the scope of this disclosure is not limited to the examples described herein. Attached Figure Description
[0013] The accompanying drawings are included in this specification to further understand this disclosure and form part of this disclosure. The drawings illustrate embodiments of this disclosure and, together with the specification, serve to explain the principles of this disclosure. It will be understood that the drawings are not necessarily drawn to scale, as some components may be shown out of proportion to their actual dimensions for clarity in illustrating the concepts of this disclosure.
[0014] Figure 1 This is an example scenario diagram illustrating the solution under the implementation of the present disclosure.
[0015] Figure 2 This is an example scenario diagram illustrating the solution under the implementation of the present disclosure.
[0016] Figure 3 This is a block diagram of an example communication system according to an embodiment of the present disclosure.
[0017] Figure 4 This is an example flowchart of an implementation of the present disclosure. Detailed Implementation
[0018] This specification discloses detailed embodiments and implementations of the claimed subject matter. However, it should be understood that the disclosed embodiments and implementations are for illustrative purposes only and may be implemented in various forms. This disclosure may take many different forms and should not be construed as limited to the exemplary embodiments and implementations listed herein. Rather, these exemplary embodiments and implementations are intended to make the description of this disclosure exhaustive and complete, and to fully communicate the scope of this disclosure to those skilled in the art. In the following description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments and implementations.
[0019] Overview
[0020] According to the implementation of this disclosure, various technologies, methods, schemes, and / or solutions are involved in processing Packet Data Convergence Protocol (PDCP) packets with mobile communication devices. According to this disclosure, several possible solutions can be implemented individually or in combination. That is, although these possible solutions are described separately below, two or more of them can be implemented in different combinations.
[0021] Regarding this disclosure, the receiver (RX) can receive PDCP packet data units (PDUs) from the transmitter (TX). The RX can store the received PDCP PDUs in a buffer. The RX can assign different groups of PDCP PDUs to different boxes. In some scenarios, the RX can determine whether the difference between the current time and the timestamp of the first box is greater than a threshold. If not, the group of PDCP PDUs associated with the first box can remain in the buffer. If yes, the RX can process this group of PDCP PDUs by: (1) forwarding the received PDCP PDUs in this group to the upper layer, and (2) discarding the unreceived PDCP PDUs when they are identified as lost.
[0022] More specifically, when the difference between the current time and the timestamp of the first box exceeds a threshold, it means that the storage time of this group of PDCP PDUs corresponding to the first box may exceed the allowed duration. Therefore, the PDCP PDUs that have been received in this group can be forwarded, and if unreceived PDCP PDUs are identified in this group, these unreceived PDCP PDUs can be discarded.
[0023] Therefore, the box-based PDCP PDU processing flow of this disclosure can avoid the delay uncertainty of timer-based buffer control, reduce latency, improve the reliability of low-latency bearers, and achieve precise timing without tracking each lost PDU.
[0024] Figure 1 Example scenario 100 is illustrated under a scheme implemented according to this disclosure. Scenario 100 involves TX and RX, which can be part of a wireless communication network (e.g., an LTE network, a 5G / NR network, an Internet of Things (IoT) network, or a 6G network). Scenario 100 illustrates a current network framework. TX can communicate with RX.
[0025] It should be noted that, for the sake of illustration and ease of explanation, in Figure 1 In this context, TX may include a network node, and RX may include a user equipment (UE). However, such a description is merely illustrative and is not intended to limit the scope of this disclosure. Those skilled in the art will recognize that, in alternative embodiments, TX may be implemented by the UE, and / or RX may be implemented by the network node.
[0026] In some embodiments, TX can send PDCP PDUs to RX. RX can receive PDCP PDUs from TX. RX can store the received PDCP PDUs in a buffer. RX can allocate different groups of PDCP PDUs to different boxes based on their arrival time. For example, when a group of X... n PDCP PDU in n th When receiving within the time range, this group X n PDCP PDU is assigned to n th In the box.
[0027] In some implementations, the RX can determine whether the difference between the first current time and the first timestamp of the first box is greater than a threshold. Specifically, the first current time can be determined based on the RX's local timer at a first moment. The first box can be associated with a first set of PDCP PDUs. The first timestamp of the first box can correspond to the time index associated with the reception of the first set of PDCP PDUs. The threshold can be pre-configured.
[0028] In certain circumstances, when the difference between the first current time and the first timestamp of the first container is not greater than a threshold, the first set of PDCP PDUs associated with the first container can remain in the buffer. More specifically, when the difference between the first current time and the timestamp of the first container is not greater than the threshold, it means that the storage time of this set of PDCP PDUs in the buffer has not exceeded the allowed duration. Therefore, this set of PDCP PDUs can remain in the buffer.
[0029] In some cases, when the difference between the first current time and the first timestamp of the first box is greater than the threshold, the RX can process the first group of PDCP PDUs in the following ways: (1) forward the PDCP PDUs that have been received in the first group of PDCP PDUs to the upper layer of the RX; (2) discard the PDCP PDUs that have not been received in the first group of PDCP PDUs when they are identified as lost.
[0030] More specifically, the first group of PDCP PDUs can correspond to: (1) received PDCP PDUs, and / or (2) unreceived PDCP PDUs (i.e., gaps in the received PDCP PDUs). For example, the first group of PDCP PDUs corresponds to PDCP PDUs numbered 0 to 100. PDCP PDUs numbered 0 to 10 and 20 to 100 have been received, while PDCP PDUs numbered 11 to 19 have not been received.
[0031] When the difference between the first current time and the timestamp of the first box exceeds a threshold, it means that the storage time of the first set of PDCPPDUs in the buffer may exceed the allowed duration. Therefore, the received PDCP PDUs in the first set of PDCP PDUs can be forwarded, and the unreceived PDCP PDUs identified as lost in the first set of PDCP PDUs can be discarded.
[0032] In some implementations, after forwarding the received PDCP PDUs from the first PDCP PDU group, the RX can forward the received PDCP PDUs from the second PDCP PDU group (which follows the received PDCP PDUs from the first PDCP PDU group) to the upper layer. The second PDCP PDU group can be associated with a second box.
[0033] In some cases, a second received PDCP PDU following a first received Packet Data Convergence Protocol (PDCP) Packet Data Unit (PDU) may precede an unreceived PDCP PDU in sequence number. More specifically, after forwarding the first received PDCP PDU, the receiving end (RX) may forward the second received PDCP PDU to the upper layer and stop forwarding the second set of PDCP PDUs upon encountering any unreceived PDCP PDUs (i.e., encountering any gaps). The first and second received PDCP PDUs can be PDCP PDUs with consecutive sequence numbers.
[0034] For example, the first received PDCP PDU in the first group has sequence numbers 20 to 100. The second group of PDCP PDUs corresponds to PDCP PDUs with sequence numbers 101 to 150. PDCP PDUs with sequence numbers 101 to 120 and 130 to 150 have been received. PDCP PDUs with sequence numbers 121 to 129 have not been received.
[0035] After forwarding PDCP PDUs with sequence numbers 20 to 100, the RX immediately forwards PDCP PDUs with sequence numbers 101 to 120 to the upper layer, and stops forwarding PDCP PDUs when it encounters an unreceived PDCP PDU with sequence number 121. Consecutive PDCP PDUs with sequence numbers 20 to 120 are forwarded in the same operation.
[0036] In some implementations, the RX can process a second set of PDCP PDUs associated with the second box. Specifically, the RX can determine whether the difference between a second current time and a second timestamp of the second box is greater than a threshold. The second current time can be determined based on a local timer of the RX at a second moment. The second moment can be one time unit later than the first moment (e.g., with a time granularity of 1 millisecond). The second timestamp of the second box can correspond to a time index associated with the reception of the second set of PDCP PDUs.
[0037] In certain circumstances, when the difference between the second current time and the second timestamp of the second container is not greater than a threshold, the second set of PDCP PDUs associated with the second container can be retained in the buffer. More specifically, when the difference between the second current time and the second timestamp of the second container is not greater than the threshold, it means that the storage time of the second set of PDCP PDUs in the buffer may not have exceeded the allowed duration. Therefore, the second set of PDCP PDUs can be retained in the buffer.
[0038] In some cases, when the difference between the second current time and the second timestamp of the second box is greater than a threshold, the RX can process the second group of PDCP PDUs in the following ways: (1) discard the unreceived PDCP PDUs in the second group of PDCP PDUs when the unreceived PDCP PDUs are identified as lost; and / or (2) forward the remaining received PDCP PDUs in the second group of PDCP PDUs to the upper layer of the RX.
[0039] More specifically, the second group of PDCP PDUs can correspond to: (1) the second received PDCP PDU, (2) the unreceived PDCPPDU (i.e., the gap), and / or (3) the remaining received PDCP PDUs. For example, the second group of PDCP PDUs corresponds to PDCP PDUs numbered 101 to 150. PDCP PDUs numbered 101 to 120 and 130 to 150 have been received. PDCPPDUs numbered 121 to 129 have not been received.
[0040] When the difference between the second current time and the second timestamp of the second box exceeds a threshold, it means that the storage time of the second set of PDCP PDUs in the buffer may exceed the allowed duration. Therefore, any unreceived PDCP PDUs in the second set of PDCP PDUs identified as lost can be discarded. The remaining received PDCP PDUs can be forwarded to the upper layer of the RX.
[0041] It should be noted that a second received PDCP PDU that did not receive a PDCP PDU in the second PDCP PDU group can be forwarded together with the last PDCP PDU in the first PDCP PDU group in the previous operation.
[0042] In some implementations, a first timestamp and a first set of PDCP PDUs may be associated with a first entry in a buffer delay map. Specifically, a buffer delay map may include multiple entries. Each entry may correspond to a bin, a timestamp of that bin, and a set of PDCP PDUs for that bin. For example, each entry in a buffer delay map records a first bin, a timestamp of the first bin, and a sequence number of the PDCP PDUs. This sequence number is the first in a group of sequence numbers of the PDCP PDUs associated with the first bin.
[0043] In some cases, a buffered delay map may include a first-in, first-out (FIFO) queue, and the first entry may include the head entry of the FIFO queue. In some cases, the first entry may be popped (i.e. removed) from the buffered delay map when the first set of PDCP PDUs associated with the first entry is processed.
[0044] In some cases, the number of entries for a buffered delay map can be determined based on a threshold and a time granularity parameter. Specifically, the number of entries can be obtained by dividing the threshold by the time granularity parameter and rounding up to the nearest integer (e.g., the number of entries equals ceil(threshold / time granularity parameter)).
[0045] In some cases, the current time can be obtained based on a time granularity parameter. Specifically, the current time can be obtained by using a time granularity parameter. For example, RX maintains a timer that counts according to a time granularity parameter to determine the current time. In other words, RX maintains a timer that runs at a resolution defined by the time granularity parameter to determine the current time.
[0046] It's important to note that the timer can be configured to wrap around values greater than a threshold, thereby reducing the number of bits required to represent the timer value. Furthermore, the timer can run while there is data (i.e., PDCP PDU) in the buffer.
[0047] For example, the threshold is 10 milliseconds. The time granularity parameter is 1 millisecond. The buffer delay map has 10 entries. Each entry corresponds to a bin, the timestamp of this bin, and a set of PDCP PDUs for this bin. The current time used to determine the difference between the current time and the timestamp is obtained with a granularity of 1 millisecond.
[0048] In some implementations, when the receiving end (RX) receives a Packet Data Unit (PDU) of Packet Data Convergence Protocol (PDCP) and adds the PDCP PDU to its buffer, the RX can use a timer to assign a PDCP sequence number to the corresponding box. In some cases, PDCP PDUs may arrive out of order. For late PDCP PDUs, the RX can determine the box to which the late PDCP PDU belongs by inferring the box allocation of PDUs already received within the same sequence number range. In some cases, the buffer delay can be determined based on the number of active boxes and time granularity parameters. In some cases, when the maximum buffer delay is exceeded, all PDCP PDUs associated with the oldest box can be forwarded to the upper layer.
[0049] Figure 2An example scenario 200 is illustrated under the scheme according to an embodiment of this disclosure. For example, the threshold T_DELAY_MAX is pre-configured to 10 milliseconds. The time granularity parameter T_GRANULARITY is pre-configured to 1 millisecond. The first-in-first-out (FIFO) buffer delay map (BDM) is determined to have a maximum of 10 / 1 = 10 entries. When the RX receives a PDCP PDU and records the PDCP PDU into the buffer, the RX uses a timer to assign a PDCP sequence number to the corresponding box.
[0050] In this example, during a certain millisecond period, the RX receives PDCP PDUs with sequence numbers 0 to 69 and 78 to 87. The RX associates the first group of PDCP PDUs with sequence numbers 0 to 87 with the first box and timestamp 0. The first group of PDCP PDUs corresponds to: (1) the received PDCP PDUs with sequence numbers 0 to 69 and 78 to 87, and (2) the unreceived PDCP PDUs with sequence numbers 70 to 77 (i.e., the gaps in the first group of PDCP PDUs). Therefore, the RX records in the first entry of the Buffer Delay Map (BDM): (1) timestamp 0, and (2) the first sequence number 0 corresponding to the sequence numbers 0 to 87 of the first group of PDCP PDUs. The first entry is associated with the first box.
[0051] During the next millisecond, the RX receives PDCP PDUs with sequence numbers 88 to 94 and 97 to 101. The RX associates the second group of PDCP PDUs with sequence numbers 88 to 101 with the second box and timestamp 1. The second group of PDCP PDUs corresponds to: (1) the received PDCP PDUs with sequence numbers 88 to 94 and 97 to 101, and (2) the unreceived PDCP PDUs with sequence numbers 95 and 96 (i.e., the gaps in the second group of PDCP PDUs). Therefore, the RX records in the second entry of the Buffer Delay Map (BDM): (1) timestamp 1, and (2) the first sequence number 88 corresponding to the sequence numbers 88 to 101 of the second group of PDCP PDUs. The second entry is associated with the second box.
[0052] During the next millisecond, the RX receives PDCP PDUs with sequence numbers 102 to 177. The RX associates the third group of PDCP PDUs with sequence numbers 102 to 177 with the third box and timestamp 2. The third group of PDCP PDUs corresponds to the received PDCP PDUs with sequence numbers 102 to 177. Therefore, the RX records in the third entry of the Buffer Delay Map (BDM): (1) timestamp 2, and (2) the first sequence number 102 corresponding to the sequence numbers 102 to 177 of the third group of PDCP PDUs. The third entry is associated with the third box.
[0053] During the next two milliseconds, RX did not receive any PDCP PDUs.
[0054] During the next millisecond, the RX receives PDCP PDUs with sequence numbers 178 to 184. The RX associates the fourth group of PDCP PDUs with sequence numbers 178 to 184 with the fourth box and timestamp 5. The fourth group of PDCP PDUs corresponds to the received PDCP PDUs with sequence numbers 178 to 184. Therefore, the RX records in the fourth entry of the Buffer Delay Map (BDM): (1) timestamp 5, and (2) the first sequence number 178 corresponding to the fourth group of PDCP PDUs with sequence numbers 178 to 184. The fourth entry is associated with the fourth box.
[0055] During the next millisecond, the RX receives PDCP PDUs with sequence numbers 185 to 204. The RX associates the fifth group of PDCP PDUs with sequence numbers 185 to 204 with the fifth box and timestamp 6. The fifth group of PDCP PDUs corresponds to the received PDCP PDUs with sequence numbers 185 to 204. Therefore, the RX records in the fifth entry of the Buffer Delay Map (BDM): (1) timestamp 6, and (2) the first sequence number 185 corresponding to the sequence numbers 185 to 204 of the fifth group of PDCP PDUs. The fifth entry is associated with the fifth box.
[0056] During the next millisecond, the RX receives PDCP PDUs with sequence numbers 205 to 233. The RX associates the sixth group of PDCP PDUs with sequence numbers 205 to 233 with the sixth box and timestamp 7. The sixth group of PDCP PDUs corresponds to the received PDCP PDUs with sequence numbers 205 to 233. Therefore, the RX records in the sixth entry of the Buffer Delay Map (BDM): (1) timestamp 7, and (2) the first sequence number 205 corresponding to the sequence numbers 205 to 233 of the sixth group of PDCP PDUs. The sixth entry is associated with the sixth box (i.e., the eighth millisecond).
[0057] During the next millisecond, RX did not receive any PDCP PDU.
[0058] During the next millisecond, the RX receives PDCP PDUs with sequence numbers 234 to 258. The RX associates the seventh group of PDCP PDUs with sequence numbers 234 to 258 with the seventh box and timestamp 9. The seventh group of PDCP PDUs corresponds to the received PDCP PDUs with sequence numbers 234 to 258. Therefore, the RX records in the seventh entry of the Buffer Delay Map (BDM): (1) timestamp 9, and (2) the first sequence number 234 corresponding to the seventh group of PDCP PDUs with sequence numbers 234 to 258. The seventh entry is associated with the seventh box.
[0059] During the next millisecond, the RX receives Packet Data Convergence Protocol (PDCP) Packet Data Units (PDUs) with sequence numbers 259 to 299. The RX associates the eighth group of PDCP PDUs with sequence numbers 259 to 299 with the eighth box and timestamp 10. The eighth group of PDCP PDUs corresponds to the received PDCP PDUs with sequence numbers 259 to 299. Therefore, the RX records in the eighth entry of the buffer delay map (BDM): (1) timestamp 10, and (2) the first sequence number 259 corresponding to the sequence numbers 259 to 299 of the eighth group of PDCP PDUs. The eighth entry is associated with the eighth box. After receiving the PDUs with sequence numbers 259 to 299, the RX sets the next expected sequence number RX_NEXT (representing the sequence number of the next expected PDCP PDU) to 300.
[0060] In this example, PDCP PDUs with sequence numbers 259 to 299 are received at 10 milliseconds. During these 10 milliseconds, the RX determines whether the difference between the current time and the timestamp 0 of the first box is greater than the threshold T_DELAY_MAX based on the time granularity parameter T_GRANULARITY (i.e., every millisecond), and the result of the determination is always negative.
[0061] When the time reaches 11 milliseconds, RX determines that the difference between the current time and timestamp 0 is 11-0=11, which is greater than the threshold T_DELAY_MAX. Subsequently, the RX performs the following operations: (1) forwards PDC PDUs with sequence numbers 0 to 69 in the first group of PDCP PDUs to the upper layer of the RX; (2) sets the receive delivery status variable RX_DELIV (indicating the next sequence number of the delivered PDCP PDU) to 70; (3) discards the unreceived PDCP PDUs with sequence numbers 70 to 77 in the first group of PDCP PDUs if the unreceived PDCP PDUs with sequence numbers 70 to 77 are identified as lost; (4) forwards the PDCP PDUs with sequence numbers 78 to 87 in the first group of PDCP PDUs to the upper layer of the RX; (5) forwards the PDCP PDUs with sequence numbers 88 to 94 in the second group of PDCP PDUs that follow the PDCP PDUs with sequence numbers 78 to 87 to the upper layer of the RX; and (6) sets the receive delivery status variable RX_DELIV to 95.
[0062] Next, RX pops (i.e. removes) the first entry of the buffer delay mapping BDM (i.e., pops the head entry of the first-in-first-out (FIFO) queue). After popping the first entry of the buffer delay mapping, the difference is 10 milliseconds. The maximum buffer delay (i.e., the maximum threshold) is limited to 10 milliseconds to ensure that PDCP PDUs are forwarded in a timely manner and to prevent the delay budget from being exceeded.
[0063] In summary, the operation can be performed as follows. Specifically, each time the local timer increments: (1) the current RX_NEXT becomes the sequence number of the next expected PDCP PDU in the current time interval variable RX_STEP; (2) if any PDCP PDU sequence number greater than the time interval variable RX_STEP is received within the current time interval, then a corresponding entry is added to the buffer delay mapping (BDM) for this interval; (3) if no PDCP PDU sequence number greater than the time interval variable RX_STEP is received within the current time interval, then no entry is created, and RX_STEP continues to the next interval.
[0064] Furthermore, if the received delivery status variable RX_DELIV is greater than or equal to the PDCP PDU sequence number recorded in the second entry of the buffered delay map BDM (i.e., the entry after the header entry), the entry of the buffered delay map BDM can be popped. For example, when RX_DELIV >= FIFO head+1 Pop the entry of the buffered delay mapping BDM at regular intervals, where FIFO head+1 This indicates the PDCP PDU serial number recorded in the second entry (i.e., the entry after the header entry).
[0065] Furthermore, the difference (i.e., buffer delay) can be calculated from the timer value difference between the timestamp of the buffer delay-mapped BDM header entry and the current value of the local timer. If this difference exceeds the threshold T_DELAY_MAX, (1) the sequence number SN is set in the range FIFO. head+1 > SN >= FIFO head All received PDCP PDUs within the FIFO are forwarded. head (1) Indicates the PDCP PDU sequence number recorded in the first entry; (2) PDCP PDUs not in the receive buffer within the same range are considered lost; (3) The sequence number SN in the receive buffer is set to FIFO. head+1 The PDCP PDU is forwarded until the first lost PDCP PDU is encountered, whose sequence number becomes RX_DELIV.
[0066] It should be noted that the aforementioned timestamp may include the PDCP PDU reception timestamp. Specifically, the aforementioned timestamp may include the PDCP PDU reception timing determined by the RX.
[0067] In some implementations, the timestamp may include a PDCP PDU transmission timestamp. Specifically, the timestamp may include the PDCP PDU transmission timing determined by the TX. In these implementations, the time granularity parameter may define the time span for each box and determine the number of bits used in the timestamp. The RX may operate a local timer to accommodate periods where data remains in the receive buffer without new data arriving. The local timer facilitates the calculation of receive buffer delay, stops when the receive buffer becomes empty, and resets when new data arrives.
[0068] Therefore, the box-based PDCP PDU processing flow of this disclosure can alleviate the latency uncertainty associated with timer-based buffer control, thereby reducing latency, improving the reliability of low-latency bearers, and achieving precise timing without having to track each lost PDCPPDU.
[0069] Example Implementation
[0070] Figure 3 An example communication system 300 according to an embodiment of this disclosure is illustrated, including an example TX device 310 and an example RX device 320. Both the TX device 310 and the RX device 320 can perform various functions to implement the schemes, techniques, processes, and methods described herein related to TX and RX processing of PDCP packets in mobile communications, including the above-described scenarios / schemes and the following process 400.
[0071] TX device 310 / RX device 320 can be part of an electronic device, which can be a user equipment (UE), such as a portable or mobile device, a wearable device, a wireless communication device, or a computing device. For example, TX device 310 / RX device 320 can be implemented in a smartphone, smartwatch, personal digital assistant, digital camera, or computing device (such as a tablet, laptop, or mobile phone). TX device 310 / RX device 320 can also be part of a machine-type device, which can be an Internet of Things (IoT), Narrowband Internet of Things (NB-IoT), or Industrial Internet of Things (IIoT) device, such as a non-movable or fixed device, a home device, a wired communication device, or a computing device. For example, TX device 310 / RX device 320 can be implemented in a smart thermostat, a smart refrigerator, a smart door lock, a wireless speaker, or a home control center.
[0072] The TX device 310 / RX device 320 can be part of a network device, which can be a network node, such as a satellite, base station, small cell, router, or gateway. For example, the TX device 310 / RX device 320 can be implemented in an eNodeB in an LTE network, a gNB in a 5G / New Radio (NR) network, an IoT, NB-IoT, or IIoT network, or a satellite or base station in a 6G network.
[0073] Alternatively, the TX device 310 / RX device 320 may be implemented as one or more integrated circuit (IC) chips, such as, but not limited to, 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. The TX device 310 / RX device 320 may include... Figure 3 At least some components are shown, such as processors 312 / 322. The TX device 310 / RX device 320 may also include one or more other components unrelated to this disclosure (e.g., internal power supply, display device, and / or user interface device); therefore, for brevity, these components of the TX device 310 / RX device 320 are... Figure 3 It is not shown in the text, nor is it described below.
[0074] In one aspect, each of processors 312 and 322 may be implemented as one or more single-core processors, one or more multi-core processors, or one or more CISC processors. That is, although the singular term "processor" is used herein to refer to processors 312 and 322, each of processors 312 and 322 may include multiple processors in some implementations and a single processor in others, depending on the different implementations of this disclosure. In another aspect, each of processors 312 and 322 may be implemented in hardware (and optionally firmware) and includes, for example, but not limited to, 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 transformers, these electronic components being configured and arranged to achieve the specific purposes of this disclosure. In other words, in at least a partial implementation, each of processors 312 and 322 is a dedicated machine specifically designed, arranged, and configured to perform a particular task, including processing Packet Data Convergence Protocol (PDCP) Packet Data Units (PDUs) in devices (e.g., represented by TX device 310 / RX device 320) and networks (e.g., represented by TX device 310 / RX device 320) in accordance with various implementations of this disclosure.
[0075] In some implementations, the TX device 310 / RX device 320 may further include a transceiver 316 / 326 coupled to the processor 312 / 322 and capable of wirelessly transmitting and receiving data. In other words, the processor 312 / 322 can transmit and receive data, such as configurations, messages, signals, information, and indications, through the transceiver 316 / 326. In some implementations, the TX device 310 / RX device 320 may further include a memory 314 / 324 coupled to the processor 312 / 322 and capable of being accessed and storing data by the processor 312 / 322. Therefore, the TX device 310 and the RX device 320 can communicate wirelessly through the transceiver 316 and transceiver 326, respectively. For ease of understanding, the following description of the operation, function, and capabilities of the TX device 310 and the RX device 320 is given in the context of a mobile communication environment, where the TX device 310 / RX device 320 is implemented as a communication device or user equipment, or as a network node in a communication network.
[0076] In some implementations, each of memories 314 and 324 may include a random-access memory (RAM), such as dynamic RAM (DRAM), static RAM (SRAM), thyristor RAM (T-RAM), and / or zero-capacitor RAM (Z-RAM). Alternatively, or additionally, each of memories 314 and 324 may include a read-only memory (ROM), such as a mask ROM, a programmable ROM (PROM), an erasable programmable ROM (EPROM), and / or an electrically erasable programmable ROM (EEPROM). Alternatively, each of memories 314 and 324 may include a non-volatile random-access memory (NVRAM), such as flash memory, solid-state memory, ferroelectric RAM (FeRAM), magnetoresistive RAM (MRAM), and / or phase-change memory.
[0077] Example Process
[0078] Figure 4 An example flow 400 implemented according to this disclosure is shown. Flow 400 may be an example implementation of the above-described scenario / scheme, whether partial or complete, for the PDCP grouping processing of this disclosure. Flow 400 may represent one aspect of the functional implementation of RX device 320. Flow 400 may include one or more operations, actions, or functions, as shown in one or more modules 410 to 430 of flow 400. Although represented as discrete modules, the individual modules of flow 400 may be divided into more modules, merged into fewer modules, or omitted as required for implementation. Furthermore, the modules of flow 400 may be implemented according to... Figure 4 The process can be executed in the order shown, or in a different order. Process 400 can be implemented by RX device 320 or any suitable user equipment, network node, or machine type device. For illustrative purposes only and without limitation, process 400 is described below in the context of RX device 320. Process 400 may begin with module 410.
[0079] In module 410, process 400 may involve the processor 322 of RX device 320 determining that the difference between a first current time and a first timestamp of a first box is greater than a threshold. The first box is associated with a first set of PDCP PDUs. Process 400 can proceed from module 410 to module 420.
[0080] In module 420, process 400 may involve the processor 322 of RX device 320 forwarding one or more first received PDCP PDUs from the first group of PDCP PDUs to the upper layer. Process 400 may enter module 430 from module 420.
[0081] In block 430, process 400 may involve the processor 322 of RX device 320 discarding one or more first unreceived packet data convergence protocol (PDCP) packet data units (PDUs) in the first group of PDCP PDUs if one or more first unreceived packet data convergence protocol (PDCP) packet data units (PDUs) are identified as lost.
[0082] In some implementations, process 400 may further involve processor 322 forwarding one or more second received PDCP PDUs from a second set of PDCP PDUs, following one or more first received PDCP PDUs from the first set of PDCP PDUs, to the upper layer. The second set of PDCP PDUs may be associated with a second box.
[0083] In some implementations, one or more second received PDCP PDUs in the second group are prioritized in sequence number order over unreceived PDCP PDUs.
[0084] In some implementations, process 400 may further involve processor 322 determining that the difference between the second current time and the second timestamp of the first box is greater than a threshold. Process 400 may further involve processor 322 discarding one or more second unreceived PDCP PDUs in the second group of PDCP PDUs if one or more second unreceived PDCP PDUs are identified as lost. Process 400 may further involve processor 322 forwarding the remaining received PDCP PDUs in the second group of PDCP PDUs to the upper layer.
[0085] In some implementations, the first timestamp and the first set of PDCP PDUs may be associated with the first entry of the buffer delay map.
[0086] In some implementations, the buffer delay mapping includes a first-in-first-out (FIFO) queue, and the first entry includes the head entry.
[0087] In some implementations, the first entry can be popped from the buffer delay map when the first set of PDCP PDUs is processed.
[0088] In some implementations, the number of entries for the buffer delay map can be determined based on a threshold and a time granularity parameter.
[0089] In some implementations, the current time is obtained based on a time granularity parameter.
[0090] In some implementations, the first timestamp may include a PDCP PDU reception timestamp or a PDCP PDU transmission timestamp.
[0091] Additional notes
[0092] The topics described herein sometimes demonstrate different components contained within or connected to different other components. It should be understood that such illustrated architectures are merely examples, and many other architectures can actually be implemented to achieve the same functionality. Conceptually, any arrangement of components to achieve the same functionality is effectively “associated” to achieve the desired function. Therefore, any two components combined in this document to achieve a specific function can be considered “associated” to achieve the desired function, regardless of the architecture or intermediate components. Similarly, any two such associated components can also be considered “operationally connected” or “operationally coupled” to achieve the desired function, and any two components that can be suchly associated can also be considered “operationally coupled” to achieve the desired function. Specific examples of operational coupling include, but are not limited to, physically matable and / or physically interactive components and / or wirelessly interactive components and / or logically interactive and / or logically interactive components.
[0093] Furthermore, regarding the use of almost all plural and / or singular terms in this document, those skilled in the art can appropriately convert plural to singular and / or singular to plural depending on the context and / or application. For clarity, various singular / plural permutations may be explicitly listed herein.
[0094] Furthermore, those skilled in the art will understand that the terms used herein, particularly in appended claims, such as the body portion of appended claims, are generally intended as “open” terms; for example, “comprising” should be interpreted as “comprising but not limited to,” “having” should be interpreted as “having at least,” and “including” should be interpreted as “including but not limited to,” etc. Those skilled in the art will also understand that if a claim expressly intends to introduce a particular quantity, that intention will be expressly stated in the claim, and if no such statement is made, that intention does not exist. For example, for ease of understanding, the following appended claims may contain the phrases “at least one” and “one or more” that introduce the statement of a claim. However, the use of such phrases should not be construed as limiting any particular claim containing such a statement to containing only one such statement, even if the same claim contains the phrases “one or more” or “at least one” and the indefinite article “a,” for example, “a” should be interpreted as “at least one” or “one or more”; the same applies to the use of definite articles to introduce the statement of a claim. Furthermore, even when a specific quantity is explicitly stated, those skilled in the art will recognize that such a statement should be interpreted as at least the stated quantity. For example, the phrase "two statements" alone, without any other modifiers, means at least two statements, or two or more statements. Additionally, when using conventions such as "at least one A, B, and C, etc.", this structure is generally intended to convey the meaning understood by those skilled in the art. For example, "a system having at least one A, B, and C" includes, but is not limited to, systems with only A, only B, only C, A and B, A and C, B and C, and systems with A, B, and C, etc. Similarly, when using conventions such as "at least one A, B, or C, etc.", this structure is generally intended to convey the meaning understood by those skilled in the art. For example, "a system having at least one A, B, or C" includes, but is not limited to, systems with only A, only B, only C, A and B, A and C, B and C, and systems with A, B, and C, etc. Those skilled in the art will also understand that almost all extractives and / or phrases presenting two or more alternative terms in the specification, claims, or drawings should be understood to include one, any, or both terms. For example, the phrase “A or B” should be understood as including the possibility of “A” or “B” or “A and B”.
[0095] As can be seen from the foregoing, various embodiments of this disclosure have been described herein for illustrative purposes, and various modifications may be made without departing from the scope and spirit of this disclosure. Therefore, the various embodiments disclosed herein are not intended to be limiting, and the true scope and spirit are indicated by the following claims.
Claims
1. A method comprising: The processor of the device determines that the difference between the first current time and the first timestamp of the first box is greater than a threshold, wherein the first box is associated with the first group of packet data aggregation protocol packet data units; The processor forwards one or more of the first received packet data convergence protocol packet data units from the first group of packet data convergence protocol packet data units to the upper layer; as well as If the processor identifies one or more first unreceived packet data convergence protocol packet data units in the first group of packet data convergence protocol packet data units as lost, it will discard the one or more first unreceived packet data convergence protocol packet data units.
2. The method of claim 1, further comprising: The processor forwards one or more second received packet data aggregation protocol packet data units from a second group of packet data aggregation protocol packet data units that follow the one or more first received packet data aggregation protocol packet data units in the first group of packet data aggregation protocol packet data units to the upper layer, wherein the second group of packet data aggregation protocol packet data units is associated with the second box.
3. The method of claim 2, wherein the one or more second received packet data convergence protocol packet data units in the second group are prioritized in sequence number order over unreceived packet data convergence protocol packet data units.
4. The method of claim 3, further comprising: The processor determines that the difference between the second current time and the second timestamp of the first box is greater than the threshold. If the processor is identified as having lost one or more second unreceived packet data convergence protocol packet data units in the second group of packet data convergence protocol packet data units, it will discard the one or more second unreceived packet data convergence protocol packet data units. as well as The processor forwards the remaining received packet data aggregation protocol packet data units in the second group of packet data aggregation protocol packet data units to the upper layer.
5. The method of claim 1, wherein the first timestamp and the first group of packet data aggregation protocol packet data units are associated with a first entry of the buffer delay mapping.
6. The method of claim 5, wherein the buffer delay mapping comprises a first-in-first-out queue, and the first entry comprises a head entry.
7. The method of claim 5, wherein the first entry is popped from the buffer delay map when the first group of packet data convergence protocol packet data units is processed.
8. The method of claim 5, wherein the number of entries in the buffer delay mapping is determined based on the threshold and the time granularity parameter.
9. The method of claim 8, wherein the current time is obtained according to the time granularity parameter.
10. The method of claim 1, wherein the first timestamp includes a Packet Data Convergence Protocol (PDCP) packet data unit (PDU) reception timestamp or a PDP packet data unit (PDU) transmission timestamp.
11. An apparatus comprising: A transceiver that communicates wirelessly with a wireless network during operation; as well as A processor, communicatively coupled to the transceiver, enables the processor to perform operations during operation including the following: Determine that the difference between the first current time and the first timestamp of the first box is greater than a threshold, wherein the first box is associated with the first group of packet data aggregation protocol packet data units; Forward one or more of the first received packet data aggregation protocol packet data units in the first group of packet data aggregation protocol packet data units to the upper layer; as well as If one or more first unreceived packet data aggregation protocol packet data units in the first group of PDCP PDUs are identified as lost, the one or more first unreceived packet data aggregation protocol packet data units shall be discarded.
12. The apparatus of claim 11, wherein during operation, the processor further performs operations including: One or more second received packet data aggregation protocol packet data units from a second group of packet data aggregation protocol packet data units that follow the one or more first received packet data aggregation protocol packet data units in the first group of packet data aggregation protocol packet data units are forwarded to the upper layer, wherein the second group of packet data aggregation protocol packet data units is associated with the second box.
13. The apparatus of claim 12, wherein the one or more second received packet data convergence protocol packet data units in the second group are in sequence order prior to unreceived packet data convergence protocol packet data units.
14. The apparatus of claim 13, wherein during operation, the processor further performs operations including the following: Determine that the difference between the second current time and the second timestamp of the first box is greater than the threshold. If one or more second unreceived packet data aggregation protocol packet data units in the second group of packet data aggregation protocol packet data units are identified as lost, the one or more second unreceived packet data aggregation protocol packet data units shall be discarded; and The remaining received packet data aggregation protocol packet data units in the second group of packet data aggregation protocol packet data units are forwarded to the upper layer.
15. The apparatus of claim 11, wherein the first timestamp and the first set of packet data aggregation protocol packet data units are associated with a first entry of the buffer delay mapping.
16. The apparatus of claim 15, wherein the buffer delay mapping comprises a first-in-first-out queue, and the first entry comprises a head entry.
17. The apparatus of claim 15, wherein the first entry is popped from the buffer delay map when the first group of packet data convergence protocol packet data units is processed.
18. The apparatus of claim 15, wherein the number of entries in the buffer delay map is determined based on the threshold and the time granularity parameter.
19. The apparatus of claim 18, wherein the current time is obtained according to the time granularity parameter.
20. The apparatus of claim 11, wherein the first timestamp includes a Packet Data Convergence Protocol (PDCP) packet data unit (PDU) receiving timestamp or a PDP packet data unit (PDU) sending timestamp.