Method and system for queuing packet data units at the media access control layer

By directly decoding the RLC and PDCP headers in the MAC sublayer and sorting user data packets in memory based on the sequence number, the problem of inefficient sorting in the new 5G air interface system is solved, and more efficient resource utilization is achieved.

CN115088300BActive Publication Date: 2025-07-29伟光有限公司(CN)
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080093717.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-01-23
Filing Date
2020-09-14
Publication Date
2025-07-29
Estimated Expiration
2040-09-14

AI Technical Summary

Technical Problem

The prior art consumes valuable time and power resources in the sorting process of user data packets in the new 5G air interface system. The traditional multi-step method cannot efficiently utilize the hardware capabilities of each protocol layer, resulting in inefficient sorting.

Method used

The RLC and PDCP headers are directly decoded in the MAC sublayer, determine whether the user data packet is unsegmented and is a user data packet, and then sort it directly in the memory based on the sequence number and insert it into the storage location, reducing the processing requirements for subsequent sublayers.

Benefits of technology

By directly sorting user packets in the MAC sublayer, bus cycle and power consumption are reduced, packet sorting efficiency is improved, and resource utilization is optimized.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115088300B_ABST
    Figure CN115088300B_ABST
Patent Text Reader

Abstract

This document describes systems and methods for improving traditional multi-step methods for sorting unsegmented data packets arriving at a sublayer of Layer 2 of a 5G New Radio system. The techniques taught in this document are applied at the sublayer when two conditions are met: First, the data packet is unsegmented; Second, the data packet is a user data packet rather than a control data packet. If these two conditions are met, the hardware at the sublayer decodes the PDCP header to determine the sequence number of the user data packet. Using this sequence number, the hardware maps the sequence number to a queue position and inserts the user data packet into that queue position. These techniques can be applied to multiple data packets to form a sequence of consecutively numbered user data packets, which can be forwarded to another sublayer of Layer 2.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - reference to related applications

[0002] This application claims priority to U.S. Provisional Patent Application No. 62 / 964,810, filed on January 23, 2020, with the title "Accelerating PDCP Re - ordering via a MAC - based Proactive Scheme", the entire content of which is incorporated herein by reference. Technical Field

[0003] The disclosed teachings relate to wireless communication. More specifically, the disclosed teachings relate to techniques for sorting packet data units (PDUs) in the medium access control (MAC) sub - layer of a wireless telecommunication system (e.g., 5th generation new radio (5G NR)). Background Art

[0004] Wireless network systems typically have two communication paths: uplink and downlink. During the uplink, data is transmitted from a mobile station (e.g., a cellular phone) to a base station (e.g., a cellular site). During the downlink, data is transmitted from the base station to the mobile station. The data packets transmitted during the uplink and downlink encapsulate control data on the control plane and / or user data on the data plane. Control data provides data for identifying, selecting, executing, or modifying another set of data. User data contains the content to be transmitted to the base station or the mobile station.

[0005] In the downlink of the data plane, a wireless receiver receives data packets at the sub - layers of a multi - layer protocol stack. Each protocol sub - layer can perform tasks such as reading and removing headers, organizing data content, or differentiating between user data packets and control data packets. After the tasks are performed at the sub - layer, the data packets are transmitted to another sub - layer that performs its own tasks. Thus, the data packets are parsed through the layered multi - layer protocol stack. Summary of the Invention

[0006] This document introduces at least one technique for processing data packets through the protocol stack of the fifth-generation new radio system. For example, one technique may include: hardware in a sublayer of the data link layer (e.g., media access control) receives user data packets including packet data convergence protocol (PDCP) data packet data unit (PDU) headers. This sublayer decodes the PDCP data PDU headers to obtain the sequence numbers of the user data packets. Based on the sequence numbers, the sublayer can queue the user data packets to assemble a set of consecutively numbered user data packets. At least a portion of the set of consecutively numbered user data packets can be transmitted to another sublayer of the data link layer. In another example, the user data packets may also include radio link control (RLC) headers. The sublayer can decode the RLC headers to determine that the user data packets are not segmented. Additionally, the sublayer can decode the PDCP data PDU headers to determine that the user data packets are not control packets.

[0007] The present invention content is provided to introduce a selection of concepts, and the above-mentioned selection of concepts is further described in the following detailed implementation. The present invention content is not intended to identify the key features or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. According to the drawings and the detailed implementation, other aspects of the disclosed embodiments will be apparent. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] This embodiment is shown by way of example and is not intended to be limited to the figures in the following drawings.

[0009] Figure 1 Shows the protocol stack of the fifth-generation new radio system for processing data packets.

[0010] Figure 2 Shows the process of sorting packet data convergence protocol (PDCP) data packet data units (PDUs) in the media access control (MAC) sublayer.

[0011] Figure 3 Is a flowchart showing a method for sorting PDCP data PDUs in the MAC sublayer.

[0012] Figure 4 Is a block diagram showing a graphical representation of a machine in the form of an example of a computer system for performing aspects of the disclosed technology. DETAILED DESCRIPTION

[0013] In the telecommunications field, a 5G network is a digital cellular network that uses cellular radio waves to communicate between mobile devices and local antennas. The local antennas are connected to the telephone network and the Internet via high-bandwidth fiber optic or wireless backhaul connections. The communication between mobile devices and local antennas is managed by a hierarchical structure, with each layer having its own protocol stack. The protocol stack of the 5G New Radio (NR) system can be divided into a host layer and a media layer. The media layer includes Layer 1 to Layer 3, and the host layer includes Layer 4 to Layer 7.

[0014] Layer 1 is usually referred to as the physical layer, whose function is to transmit and receive raw bitstreams over the physical medium. Layer 2 is the data link layer, which performs the reliable transmission of data frames between two nodes connected by Layer 1. Layer 3 is the network layer, which manages multi-node networks by addressing, routing, and controlling traffic. The remaining layers are usually related to data transmission, exchange, presentation, and applications between nodes.

[0015] More specifically, Layer 2 of the 5G New Radio (NR) system contains a protocol stack that includes four sublayers: Medium Access Control (MAC), Radio Link Control (RLC), Packet Data Convergence Protocol (PDCP), and Service Data Adaptation Protocol (SDAP). The MAC sublayer controls the hardware responsible for interacting with the transmission medium. Among other tasks, the RLC sublayer segments and sizes data packets for transmission to another sublayer. The PDCP sublayer delivers user data and control data to other sublayers while compressing and encrypting the user data and control data. The SDAP sublayer is responsible for service quality flow processing across the air interface.

[0016] In the downlink of the data plane of Layer 2, two types of data packets can reach the MAC sublayer: control data and user data (also known as data packet data units, PDCP data packet data units, or user data packets). Control data is used to identify, select, execute, or modify another set of data. User data contains payloads (e.g., text messages, pictures, videos). Since the protocol sublayers perform different tasks for each type of data, it is necessary to distinguish between user data and control data. Specifically, it is necessary to sort user data packets.

[0017] User data packets can be sorted based on their sequence numbers (SNs). During transmission, the order of user data packets may be disrupted due to data loss during transmission or the multi-path transmission of packets in the network. Therefore, it is necessary to sort the user data packets so that they reach the end user in the same order as when they were sent. For example, if the words or letters are out of order, the receiver of the text message will not be able to understand the text message. In another example, if the pixels are randomly placed, the image will not be recognizable. To avoid such errors, it is necessary to sort the user data packets.

[0018] Figure 1 The protocol stack of a 5G NR system for processing data packets is shown. As shown, the protocol stack 100 includes sub-layers of the second layer of the 5G NR system. The protocol stack 100 includes a MAC sub-layer 102, an RLC sub-layer 104, a PDCP sub-layer 106, and an SDAP sub-layer 108. As Figure 1 shown, these sub-layers are arranged in order. In particular, the MAC sub-layer is the lowest sub-layer in the second layer, the next sub-layer is the RLC sub-layer, then the PDCP sub-layer, and then the SDAP sub-layer, which is closest to the third layer.

[0019] Each sub-layer is shown to have multiple user data packets 110-1 to 110-3, which have associated headers and service data units (SDUs). Generally, the SDU encapsulates the headers and SDUs of the subsequent sub-layers. For example, the MAC SDU encapsulates the RLC header and the RLC SDU. Subsequently, the RLC SDU encapsulates the PDCP header and the PDCP PDU. The PDCP SDU encapsulates the SDAP header and the SDAP SDU.

[0020] To sort the user data packets 110-1 to 110-3, the SNs of the user data packets 110-1 to 110-3 are mapped to memory locations. For example, the sequence number of the user data packet 110-1 can be 15, and this sequence number 15 can be mapped to the memory location associated with SN 15. The conventional method for sorting the user data packets 110-1 to 110-3 (by mapping the user data packets 110-1 to 110-3 to memory locations) includes a three-step process involving each sub-layer of the second layer.

[0021] First, the hardware implementing the MAC sublayer 102 reads and removes the MAC header from the user data packet 110-1 and notifies the RLC sublayer 104 that the user data packet 110-1 is incoming. Second, the hardware implementing the RLC sublayer 104 reads and removes the RLC header from the user data packet 110-1 and routes the user data packet 110-1 to the PDCP sublayer 106. Third, the PDCP sublayer 106 receives the user data packet 110-1, parses the PDCP header to obtain the SN of the user data packet 110-1, and inserts the user data packet 110-1 into the corresponding memory location based on the SN. After inserting the user data packet 110-1 into the corresponding memory location, the user data packet 110-2 and the user data packet 110-3 can be inserted into their corresponding memory locations to form a sequence. Once the sequence is formed, the user data packets 110-1 to 110-3 can be sent to the SDAP sublayer 108.

[0022] In addition, when the user data packets 110-1 to 110-3 arrive at the MAC sublayer 102, these user data packets may be unsegmented or segmented. The RLC header of the user data packet includes information indicating whether the user data packet is segmented or unsegmented. For example, the user data packet 110-1 can arrive at the RLC sublayer 104 from the MAC sublayer 102. Then the hardware implementing the RLC sublayer 104 can read the RLC header of the user data packet 110-1 to determine that the user data packet 110-1 is segmented. Since the user data packet 110-1 is segmented, the PDCP sublayer 108 may not need to sort the user data packet 110-1 when the user data packet 110-1 arrives at the PDCP sublayer 108.

[0023] Alternatively, the hardware implementing the RLC sublayer 104 can determine that the user data packet 110-2 is unsegmented based on reading the RLC header of the user data packet 110-2. Since the user data packet 110-2 is unsegmented, the PDCP sublayer 108 can read the PDCP header of the user data packet 110-2 to determine its SN, map the SN to the memory location, and insert the user data packet 110-2 into the memory location.

[0024] In addition, for each newly arrived user data packet, the PDCP sublayer 106 maps the user data packet to the corresponding memory location. The traditional method is to compare the SN of the newly arrived user data packet with the SN of each previously inserted user data packet to determine the memory location corresponding to the SN of the newly arrived user data packet. For example, when the tenth user data packet arrives, the PDCP sublayer 106 may be storing nine user data packets. The SNs of the nine user data packets can be from 21 to 29. The SN of the newly arrived user data packet can be 20. Therefore, in the traditional method, starting from the user data packet with SN 29, the SN of the newly arrived user data packet is compared with the SN of each user data packet. Through this process, the newly arrived user data packet will eventually be inserted into the memory location adjacent to the user data packet with SN 21. Such a step-by-step process cannot efficiently utilize the hardware capabilities of each protocol layer, nor can it efficiently utilize the bus cycles and power to sort the user data packets.

[0025] Therefore, before transmitting to the SDAP sublayer 108, the traditional multi-step method spends time (e.g., bus cycles) and power to sort the user data packets. Time and power are precious resources in the 5G New Radio system. Therefore, there is a need to provide methods to reduce the time and power consumption caused by the traditional multi-step method.

[0026] This document describes techniques for improving the traditional multi-step method for sorting unsegmented data packets. The disclosed embodiments enable the MAC sublayer to receive unsegmented data packets and directly send an ordered sequence of user data packets from the MAC sublayer to the PDCP sublayer. In particular, the disclosed embodiments use the hardware implementing the MAC sublayer to perform tasks previously performed by multiple consecutive sublayers. Processing at the MAC sublayer is triggered when two criteria are met. First, the hardware implementing the MAC sublayer can decode the RLC header to determine whether the data packet is unsegmented. Second, the hardware implementing the MAC sublayer decodes the PDCP header to determine whether the data packet is a user data packet. If these two criteria are met, the hardware implementing the MAC sublayer can decode the PDCP header to determine the SN of the user data packet. Subsequently, the hardware implementing the MAC sublayer can match this SN with the memory location (also referred to herein as a slot). Then the user data packet can be inserted into the memory location for subsequent transmission to another sublayer of the protocol stack (e.g., the SDAP sublayer). In some cases, multiple data packets can be inserted into an ordered sequence of slots based on the sequence numbers of the multiple data packets, and these data packets are transmitted to the SDAP sublayer as an ordered sequence of data packets.

[0027] Figure 2Illustrates the process of sorting the PDCP data PDU sequence at the MAC sublayer. This process is illustrated along a timeline 200 that includes times T0, T1, T2, T3, and T4. Timeline 200 depicts the events that occur at the MAC sublayer when user data packets arrive. In particular, Figure 2 The arrangement of the sequence of user data packets at each time instance is included. At T0, the sequence of user data packets with SNs 110 to 116 is inserted into the memory locations corresponding to the SNs of these user data packets. Thus, these user data packets are forwarded to the SDAP sublayer. Additionally, at T0, a data packet with SN 117 arrives at the MAC sublayer 102.

[0028] Before implementing the techniques described herein for sending an ordered sequence of user data packets to the PDCP sublayer, the hardware implementing the MAC sublayer analyzes the user data packet to determine if the user data packet meets two criteria. First, the hardware decodes the RLC header to determine if the user data packet is non - segmented (e.g., not part of an ordered sequence). Second, the hardware decodes the PDCP header to determine if the user data packet is user data rather than control data. After these two checks, if the hardware determines that the user data packet is both non - segmented and a user data packet, the hardware can trigger the techniques described herein.

[0029] For example, a data packet can arrive at the MAC sublayer. The hardware implementing the MAC sublayer can determine if the data packet meets these two criteria. The hardware can determine if the data packet is segmented by decoding the RLC header; in this case, the data packet is handled in a manner known in the art. In another case, the hardware can determine that the data packet is non - segmented, but after decoding the PDCP header, the hardware may determine that the data packet is a control data packet. Again, the data packet will be handled in a manner known in the art. In another case, if the hardware determines that the data packet is both non - segmented and a user data packet, the techniques described herein can be initiated.

[0030] Then, the hardware implementing the MAC sublayer decodes the PDCP header to determine the SN of the user data packet. Based on this SN information, the MAC sublayer maps the SN to a memory location and inserts the user data packet into the memory location. For example, the user data packet can reach the MAC sublayer. Then, the MAC sublayer can decode the PDCP header to determine that the SN of the user data packet is 30. Based on this SN information, the MAC sublayer can create a time slot associated with SN 30 in the memory and insert the user data packet into the memory time slot. Thus, when this user data packet reaches the PDCP sublayer, the PDCP sublayer does not need to waste bus cycles to sort this user data packet relative to other user data packets. For example, the SNs of the next user data packets can be 31 and 32. Thus, the MAC sublayer can directly insert the user data packets into the associated memory time slots and send these user data packets to the PDCP sublayer in an ordered sequence. Here, for example, the user data packet with SN 30 can be inserted in the first memory location, the user data packet with SN 31 can be inserted in the second adjacent memory location, and the user data packet with SN 32 can be inserted in the third memory location.

[0031] In some embodiments, the user data packets can be stored in local memory or external memory. Since local memory has a limited capacity compared to external memory, the location where the user data packets are stored is determined based on the need to efficiently use local memory. Thus, the limited capacity of local memory can be used more efficiently for the user data packets to be sent to the SDAP sublayer. For example, at T0, SN 117 is the next data packet that needs to be forwarded to the SDAP sublayer. Thus, this data packet can be stored in local memory.

[0032] In the example shown, at T0, since it is determined that the minimum number of user data packets has been placed in an ordered sequence, the sequence of user data packets with SNs 110 to 116 can be forwarded to the SDAP sublayer. For example, during the development of the protocol stack, the above minimum number of user data packets can be pre-programmed. For example, the minimum number of ordered user data packets can be 7. Thus, the above sequence can be forwarded to the SDAP sublayer without waiting for the user data packet with SN 117. Alternatively, the minimum number can be 8, in which case the system will wait until the user data packet with SN 117 arrives. In some embodiments, the MAC sublayer forwards the user data packet directly to the SDAP sublayer. For example, when there is a sequence of user data packets (e.g., SN 110 to SN 116) as at T0, the MAC sublayer can directly forward the user data packet to the SDAP sublayer. Alternatively, the data packet can be forwarded to the PDCP sublayer.

[0033] In some embodiments, a complete sequence of ordered user data packets may not be required before being forwarded to the SDAP sublayer. If the SN of a single user data packet is the next SN after a previously forwarded sequence, then that single user data packet can be forwarded to the SDAP sublayer. For example, at T1, the user data packet with SN 117 is forwarded to the SDAP sublayer. SN 117 is the next one in the sequence after the previously forwarded user data packet (e.g., SN 116).

[0034] In the example shown, the MAC sublayer creates time slots in the memory for the missing user data packets. For example, at T1, the user data packet with SN 117 has been forwarded to the SDAP sublayer, and the SN of the next user data packet to arrive is 121. Therefore, the MAC sublayer creates time slots from SN 118 to SN 121, inserts the newly arrived user data packet at the time slot associated with SN 121, and leaves the remaining time slots 118, 119, and 120 empty. Additionally, since there are empty time slots, the packet with SN 121 can be stored in an external memory to avoid using the local memory while waiting to receive the user data packet corresponding to the empty time slot.

[0035] At T2, more out-of-order user data packets arrive. Similar to T1, the MAC sublayer 102 can create time slots for the entire sequence from SN 118 to SN129. In the sequence, some time slots can be filled with user data packets while other time slots are empty. The MAC sublayer can know the empty time slots and does not forward the sequence of time slots to another sublayer. In some embodiments, it can be decided whether to forward the sequence with empty time slots based on the SN associated with the empty time slot. For example, if the time slot associated with a smaller and adjacent SN is empty, the MAC sublayer can decide not to forward the packet sequence. For example, at T2, the time slot associated with SN 118 is empty; therefore, the time slots associated with SN 119 to 121 are not forwarded. In some embodiments, if the empty time slot is associated with a higher and adjacent SN, the user data packet sequence can be forwarded to another sublayer.

[0036] At T3, the user data packet with SN 122 is inserted into the associated empty time slot to form a sequence of user data packets from SN 119 to SN123. However, the user data packet associated with SN 118 has not arrived yet. Since the time slot associated with a smaller and adjacent SN (e.g., SN 118) is still empty, the MAC sublayer can decide not to forward this user data packet sequence. Additionally, the user data packet with SN 129 has been inserted into the time slot, but this user data packet is not forwarded to another sublayer. This may be because this time slot is not continuous with other filled time slots, or this time slot is not the next SN relative to the previous sequence of forwarded user data packets.

[0037] In some embodiments, the user data packets forming a sequence may continue to be stored in the external memory. At T3, the user data packet with SN 122 is stored in the external memory, even though the user data packet forms a sequence with adjacent user data packets. The MAC sublayer 106 may decide to do so because the sequence will not be forwarded until the user data packet with SN 118 arrives. Therefore, since the capacity of the local memory is limited, it is more efficient to store the user data packet with SN 122 in the external memory.

[0038] At T4, the user data packet with SN 118 has not arrived yet. The MAC sublayer uses a timer to determine when to give up waiting for the lost user data packet (e.g., SN 118). The timer can be a decrement timer that starts from a pre-programmed value and decrements for each bus cycle. For example, the decrement timer can be programmed to count down from a starting value of 2. For each bus cycle, the timer can be decremented by 1. For example, when there is a sequence of two or more ordered user data packets and only one user data packet (e.g., SN 118) is missing between the previously forwarded sequence and the un-forwarded sequence, or for other similar reasons, the timer can be started. In Figure 2 , for example, the decrement timer can start at T2 with a starting value of 2. The timer may be decremented by 1 at T3 and again at T4. At T4, the timer reaches 0 and the user data packet with SN 118 has not arrived yet. Therefore, the MAC sublayer 102 can determine that the user data packet with SN 118 is permanently lost and forward the user data packets with SN 119 to 123 to the SDAP sublayer.

[0039] In some embodiments, the timer can be an increment timer with a pre-programmed maximum value. For example, the MAC sublayer can be programmed to wait for ten bus cycles before considering the lost user data packet as permanently lost. In some embodiments, the starting value or the ending value of the timer can depend on the number of lost user data packets. For example, each lost user data packet can be equivalent to two bus cycles of waiting time. Therefore, if three user data packets are lost between the previously forwarded sequence and the current sequence, the decrement timer will start from 6, while the increment timer will start from 0 and count up to 6.

[0040] In some embodiments, a lost user data packet (e.g., SN 118) may arrive after the timer has reached 0 and the adjacent user data packets have been forwarded. In such a case, for example, the MAC sublayer may forward the user data packet when it arrives, store the user data packet in an external memory or a local memory, consider the user data packet as permanently lost, or other similar options. After forwarding the user data packet and determining that the user data packet with SN 118 is permanently lost, the MAC sublayer continues to receive user data packets corresponding to the next set of time slots (e.g., SN 124 to 128).

[0041] Figure 3 is a flowchart showing a method for sorting PDCP data PDUs in the MAC sublayer. It can be implemented by the MAC sublayer of the data link layer (e.g., Layer 2) of a 5G New Radio system Figure 2 the method shown. For example, the system can be a handheld mobile device including a processor and a memory. The memory can store instructions which, when executed, can cause the processor to execute Figure 2 the method shown. The memory can be an external memory or a local memory that can communicate with the processor via a communication interface.

[0042] At 302, the system receives user data packets (e.g., PDCP data PDUs). In some embodiments, the system is hardware that implements a sublayer of the protocol stack (e.g., the MAC sublayer). In some embodiments, the system may receive multiple data packets. Each data packet may include, for example, a PDCP header, an RLC header, and a PDCP data PDU. At 304, the system determines whether the user data packet is unsegmented or segmented. To do this, the system decodes the RLC header of the user data packet. If the user data packet is segmented, the method terminates. Instead, if the user data packet is unsegmented, the system proceeds to 306.

[0043] At 306, the system determines whether the user data packet is a control packet. To do this, the system decodes the PDCP header of the user data packet. This may include differentiating control data and user data. If the user data packet is a control packet, the method terminates. Or, if the user data packet is not a control packet, the system proceeds to 308.

[0044] At 308, the system decodes the PDCP header of the user data packet to obtain the sequence number of the user data packet. At 310, the system queues the user data packet based on the decoded sequence number. Queuing the user data packet can include mapping a queue position in a set of consecutive queue positions to the above-mentioned sequence number. For example, a queue is a stored data row or sequence that can be retrieved in order. Thus, a queue position is a position in the queue. In some embodiments, the queue position can be a queue of memory locations within the device or one of the device memory locations in a sequence. In some embodiments, the system can map multiple queue positions to the sequence numbers of multiple user data packets. Queuing the user data packet can also include placing the user data packet in the queue position mapped to the sequence number of the data packet. In some embodiments, by filling the queue positions with user data packets, the system can form a set of consecutively numbered user data packets. In some embodiments, the system may not receive user data packets for each position in the set of consecutive queue positions. However, the system can map consecutive sequence numbers to consecutive queue positions. In this case, after placing the consecutively numbered user data packets in the queue positions, the system will then form at least a portion of a set of consecutively numbered user data packets.

[0045] In some embodiments, the system can receive a new user data packet whose sequence number is not consecutive with the sequence number of the previous user data packet. When this occurs, the system can map the new user data packet to a queue position based on the sequence number of the new user data packet. In addition, the system can determine that there is at least one intermediate queue position between the new user data packet and the previous user data packet. In addition, the new user data packet and the previous user data packet can form a set of consecutive queue positions that includes the intermediate queue position without a user data packet and the two user data packets.

[0046] In some embodiments, the system can determine that the queue position between two sets of consecutively numbered user data packets is empty. Similar to when there is a single user data packet separated by an empty queue position, the system can still form a set of consecutive queue positions that includes the two sets of consecutively numbered user data packets and the empty queue position between the two sets of consecutively numbered user data packets.

[0047] In some embodiments, when there are empty queue positions between two user data packets already placed in queue positions, the system may store the placed user data packets in external memory. In some embodiments, when there are queue positions in a set of consecutive queue positions that are not filled with user data packets, the system may start a timer. The timer may then communicate with the processor regarding when to perform an operation. In some embodiments, the system may not start the timer based on the number of empty queue positions or the position in a sequence of empty queue positions. For example, if there are two or more empty queue positions between multiple sets of consecutive queue positions filled with user data packets, the system may not start the timer. In another example, if the empty position is the second-to-last queue position in a filled set of consecutive queue positions, the system may start the timer. If the timer expires before the empty queue position is filled with a user data packet, the system may proceed to 312. If the empty queue position is filled before the timer expires, the system may proceed to 312.

[0048] At 312, the system transmits at least a portion of the consecutively numbered user data packets to another sublayer of the data link layer (e.g., the SDAP sublayer). In some embodiments, this other sublayer may receive the user data packets from the RLC sublayer. In some embodiments, the system may receive new user data packets whose sequence numbers are consecutive with a previously transmitted set of user data packets. In such a case, the system may transmit the new user data packets individually to the other sublayer. In some embodiments, before transmitting the set of consecutively numbered user data packets, the system may store the user data packets in local memory. After transmission to the other sublayer, the method is complete.

[0049] Figure 4 is a block diagram that illustrates an example form of a machine in the form of a computer system for performing aspects of the disclosed techniques. Computing system 400 can be a 5G NR system, a component of a 5G NR system, a server computer, a client computer, a personal computer (PC), a user device, a tablet PC, a laptop computer, a personal digital assistant (PDA), a cellular phone, an iPhone, an iPad, a BlackBerry, a processor, a telephone, a web device, a network router, a switch or bridge, a console, a handheld console, a (handheld) gaming device, a music player, any portable, mobile, handheld device, a wearable device, or any machine capable of executing a set of instructions (sequentially or otherwise) that specify actions to be taken by that machine.

[0050] The computing system 400 may include one or more central processing units (“processors”) 401, a memory 402, input / output devices 404 (e.g., a keyboard and a pointing device, a touch device, a display device), a storage device 403 (e.g., a disk drive), and a network adapter 405 (e.g., a network interface), each connected to an interconnect 406. The interconnect 406 is shown as an abstraction representing any one or more individual physical buses and / or point-to-point connections connected by appropriate bridges, adapters, or controllers. Thus, the interconnect 406 may include, for example, a system bus, a peripheral component interconnect (PCI) bus, or a PCI-Express bus, a HyperTransport bus, or an industry standard architecture (ISA) bus, a small computer system interface (SCSI) bus, a universal serial bus (USB), an IIC (I2C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) standard 1394 bus (e.g., Firewire).

[0051] The memory 402 and the storage device 403 are computer-readable storage media that may store instructions for implementing at least a portion of the various embodiments. Additionally, data structures and message structures may be stored or transmitted via a data transmission medium (e.g., signals on a communication link). Various communication links may be used (e.g., the Internet, a local area network, a wide area network, or a point-to-point dial-up connection). Thus, computer-readable media may include computer-readable storage media (e.g., non-transitory media) and computer-readable transmission media.

[0052] The instructions stored in the memory 402 may be implemented as software and / or firmware to program the processor 401 to perform the actions described above. In some embodiments, such software or firmware may be downloaded from a remote system to the computing system 400 (e.g., via the network adapter 405) to initially provide such software or firmware to the computing system 400.

[0053] The various embodiments described herein can be implemented by, for example, programmable circuitry (e.g., one or more microprocessors programmed with software and / or firmware), or entirely by dedicated hardwired circuitry (e.g., non-programmable circuitry), or in combinations of these forms. The dedicated hardwired circuitry can be in the form of, for example, one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), and the like.

[0054] Conclusion

[0055] The embodiments described herein represent the necessary information enabling those skilled in the art to practice these embodiments and set forth the best mode of practicing the embodiments. When reading the specification in light of the drawings, those skilled in the art will understand the concepts of the present disclosure and will recognize applications of those concepts not particularly set forth herein. These concepts and applications fall within the scope of the present disclosure and the appended claims.

[0056] The foregoing specification and drawings are illustrative and should not be construed as restrictive. Numerous specific details are described to provide a thorough understanding of the present disclosure. However, in some instances, well-known details are not described to avoid obscuring the specification. Additionally, various modifications may be made without departing from the scope of the embodiments.

[0057] As used herein, unless specifically stated otherwise, terms such as "processing," "computing," "operating," "determining," "displaying," "generating," etc. refer to actions and processes of a computer or similar electronic computing device that manipulates and transforms data represented as physical (electronic) quantities within a computer memory or register into other data similarly represented as physical quantities within a computer memory, register, or other such storage medium, transmission medium, or display device.

[0058] As used herein, the phrase "an embodiment" or "embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. The phrase "in an embodiment" appearing in various places in the specification is not necessarily all referring to the same embodiment, nor are they necessarily separate or alternative embodiments mutually exclusive of other embodiments. Additionally, various features are described that may be exhibited by some embodiments but not by others. Similarly, various requirements are described that may be requirements of some embodiments but not of others.

[0059] The terms used in this specification generally have their ordinary meanings in the art, in the context of the present disclosure, and in the particular context in which each term is used. Certain terms for describing the present disclosure are discussed above or elsewhere in this specification to provide additional guidance to those skilled in the art regarding the description of the present disclosure. For convenience, some terms may be highlighted, for example, using italics and / or quotation marks. The highlighting has no effect on the scope and meaning of the term; in the same context, the scope and meaning of the term are the same whether or not the term is highlighted. It should be understood that the same thing can be described in many ways.

[0060] Accordingly, for any one or more of the terms discussed herein, alternative languages and synonyms may be used, and there is no particular significance as to whether a term is set forth or discussed herein. Synonyms for certain terms are provided. The listing of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification (including examples of any of the terms discussed herein) is illustrative only and is not intended to further limit the scope and meaning of the present disclosure or any example term. Similarly, the present disclosure is not limited to the various embodiments given in this specification.

[0061] Examples of instruments, devices, methods, and their related results according to embodiments of the present disclosure are given above, and are not intended to further limit the scope of the present disclosure. Note that for ease of reading, headings or subheadings may be used in the examples, which should not limit the scope of the present disclosure. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present disclosure pertains. In case of conflict, the present document (including definitions) shall prevail.

[0062] From the foregoing, it will be understood that, for purposes of illustration, specific embodiments of the invention have been described herein, but various modifications may be made without departing from the scope of the invention. Accordingly, the invention is limited only by the appended claims.

Claims

1. A method for sorting user data packets, the method comprising: Receiving, by hardware of a sublayer of the data link layer, a user data packet including a Packet Data Convergence Protocol (PDCP) data packet data unit (PDU) header; The user data packet includes a Radio Link Control (RLC) header; the sublayer is the Medium Access Control (MAC) sublayer of the data link layer; Decoding, in the sublayer, the RLC header to determine that the user data packet is not segmented; And Decoding, in the sublayer, the PDCP data PDU header to determine that the user data packet is not a control data packet; Decoding, in the sublayer, the PDCP data PDU header to obtain a sequence number of the user data packet; Queueing, in the sublayer, the received user data packet according to the sequence number of the user data packet to assemble a set of consecutively numbered user data packets; And Transmitting at least a part of the set of consecutively numbered user data packets from the sublayer to another sublayer of the data link layer.

2. The method according to claim 1, wherein The user data packet is a first user data packet, the PDCP data PDU header is a first PDCP data PDU header, and the sequence number is a first sequence number. The method further comprises: Mapping, in the sublayer, a first queue position in a set of consecutive queue positions to the first sequence number of the first user data packet; Causing, in the sublayer, the first user data packet to be placed in the first queue position in the set of consecutive queue positions, Wherein each queue position in the set of consecutive queue positions matches a sequence number in a set of sequence numbers; Receiving, in the sublayer, a second user data packet including a second PDCP data PDU header; Decoding, in the sublayer, the second PDCP data PDU header to obtain a second sequence number of the second user data packet, Wherein the second sequence number is not numerically consecutive with respect to the first sequence number; Mapping, in the sublayer, a second queue position in the set of consecutive queue positions to the second sequence number of the second user data packet; Determining, in the sublayer, one or more intermediate queue positions between the first queue position and the second queue position; and Causing, in the sublayer, the second user data packet to be placed in the mapped second queue position in the set of consecutive queue positions, Wherein the set of consecutive queue positions includes the first user data packet, the second user data packet, and the one or more intermediate queue positions.

3. The method according to claim 2, further comprising: Starting a timer when determining the one or more intermediate queue positions; Determining that the timer has expired; And In response to the timer expiring, transmitting the user data packets in the set of consecutive queue positions to the sublayer regardless of whether the one or more intermediate queue positions are filled with any user data packets.

4. The method according to claim 2, further comprising, before inserting the second user data packet into the mapped second queue position: In response to determining the one or more intermediate queue positions, storing at least the second user data packet in an external memory.

5. The method according to claim 1, further comprising: Mapping, at the sublayer, queue positions in a set of consecutive queue positions to the sequence numbers of the user data packets; Causing, at the sublayer, the user data packets to be placed in the mapped queue positions in the set of consecutive queue positions, wherein each queue position in the set of consecutive queue positions matches a sequence number in a set of sequence numbers; Determining that a first queue position in the set of consecutive queue positions does not include a first user data packet, wherein the first queue position matches the lowest sequence number in the set of sequence numbers; In response to determining that the first queue position does not include the first user data packet, starting a timer; Determining that the timer expires; and In response to the timer expiring, transmitting the set of consecutively numbered user data packets to the other sublayer.

6. The method according to any one of claims 1 or 5, wherein The other sublayer receives the set of consecutively numbered user data packets from a radio link control (RLC) layer.

7. The method according to claim 1, further comprising: In response to transmitting at least a portion of the set of consecutively numbered user data packets to the sublayer, receiving a second user data packet associated with a second sequence number, the second sequence number being numerically consecutive with the set of consecutively numbered user data packets; and Transmitting the second user data packet to the other sublayer.

8. The method according to any one of claims 1 to 5 and 7, wherein, The other sublayer is a service data adaptation protocol (SDAP) sublayer of the data link layer.

9. The method according to claim 1, wherein Decoding the PDCP data PDU header further comprises: Distinguishing control data and user data.

10. The method according to claim 1, wherein, At least a portion of the set of consecutively numbered user data packets is stored in a local memory before being transmitted to the other sublayer.

11. A method for sorting data packets, comprising: Receiving, by hardware of a sublayer of a data link layer, a plurality of data packets, the sublayer being a media access control (MAC) sublayer of the data link layer; wherein each data packet includes a packet data convergence protocol (PDCP) header and a radio link control (RLC) header, and wherein each data packet includes a PDCP data packet data unit (PDU); For each data packet: Decoding, at the sublayer, the PDCP header to determine that the data packet includes a data PDU rather than a control PDU, Decoding, at the sublayer, the RLC header to determine that the data packet includes an unsegmented PDCP data PDU rather than a segmented PDCP data PDU, and In response to determining that the data packet includes the unsegmented PDCP data PDU, decoding, at the sublayer, the PDCP header to obtain the sequence number of the PDCP data PDU; Queueing, at the sublayer, the plurality of data packets according to the sequence numbers of each PDCP data PDU of the plurality of data packets to assemble at least a portion of a set of consecutively numbered PDCP data PDUs; and Cause another sublayer of the data link layer to receive at least a portion of the set of consecutively numbered PDCP data PDUs at the sublayer.

12. The method according to claim 11, wherein, The plurality of data packets are a first plurality of data packets, and the method further includes: Map queue positions in a first set of consecutive queue positions to the sequence numbers of each PDCP data PDU of the first plurality of data packets at the sublayer; Fill the first set of consecutive queue positions with the PDCP data PDUs of the first plurality of data packets at the sublayer; Receive a second plurality of data packets at the sublayer, wherein each data packet in the second plurality of data packets includes a corresponding PDCP header and a corresponding PDCP data PDU; For each data packet in the second plurality of data packets: Decode the corresponding PDCP data PDU at the sublayer to obtain the sequence number of the corresponding PDCP data PDU, and Determine at the sublayer that the sequence number is not numerically consecutive with the set of consecutively numbered PDCP data PDUs; map each queue position in a second set of consecutive queue positions to the sequence number of each corresponding PDCP data PDU of the second plurality of data packets at the sublayer; Fill at least a portion of the second set of consecutive queue positions with the corresponding PDCP data PDUs of the second plurality of data packets at the sublayer, wherein the second set of consecutive queue positions is numerically consecutive with the first set of consecutive queue positions; and Determine one or more intermediate queue positions between the first set of consecutive queue positions and the second set of consecutive queue positions at the sublayer, wherein the intermediate queue positions do not include corresponding PDCP data PDUs.

13. The method according to claim 12, further comprising: Start a timer when determining the one or more intermediate queue positions; Determine that the timer has expired; And In response to the expiration of the timer, transmit the PDCP data PDUs of the second plurality of data packets to a service data adaptation protocol (SDAP) sublayer.

14. The method according to any one of claims 12 or 13, wherein The first queue position in the first set of consecutive queue positions does not include a first PDCP data PDU, and wherein the first queue position is the second last in a set of consecutively numbered queue positions, the method further includes: Start a timer; and In response to the first PDCP data PDU being inserted into the first queue position before the expiration of the timer, transmit the set of consecutively numbered PDCP data PDUs to the other sublayer.

15. The method according to claim 12, wherein, The first set of consecutive queue positions is not numerically consecutive with the second set of consecutive queue positions, the method further includes: Determine that there are two or more intermediate queue positions between the first set of consecutive queue positions and the second set of consecutive queue positions; and Transmit user data packets of the first set of consecutive queue positions to the other sublayer.

16. The method according to any one of claims 1 to 5, 7, 9 to 13, 15, the method being performed at layer 2 of a fifth generation new radio (5G-NR) system during a downlink of the data plane.

17. A communication system, comprising: A processor; And A memory storing instructions which, when executed by the processor, cause the system to: At a hardware of a sublayer of the data link layer, receive a user data packet including a Packet Data Convergence Protocol (PDCP) data packet data unit (PDU) header; the user data packet includes a Radio Link Control (RLC) header; the sublayer is the Medium Access Control (MAC) sublayer of the data link layer; At the sublayer, decode the RLC header to determine that the user data packet is not segmented; And At the sublayer, decode the PDCP data PDU header to determine that the user data packet is not a control data packet; At the sublayer, decode the PDCP data PDU header to obtain the sequence number of the user data packet; At the sublayer, queue the received user data packet according to the decoded sequence number of the user data packet to assemble a set of consecutively numbered user data packets; And At the sublayer, transmit at least a part of the set of consecutively numbered user data packets to another sublayer of the data link layer.

18. The system according to claim 17, further comprising: A communication interface for communicating with an external memory device; And A timer for communicating with the processor via the communication interface.

19. The system according to claim 17, further comprising: A handheld mobile device, the handheld mobile device including the processor and the memory.

Citation Information

Patent Citations

  • Method for dropping packet data, radio communication device, and mobile communication system

    CN101494887A

  • Information transmission method and device

    CN108632302A

  • Method and system for sending and receiving data

    US20190306871A1