Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
APPARATUS AND METHOD FOR SERVICE DATA UNIT SEGMENT REASSEMBLY
Document Type and Number:
WIPO Patent Application WO/2023/239365
Kind Code:
A1
Abstract:
According to one aspect of the present disclosure, a baseband chip is provided. The baseband chip may include receive end Layer 2 circuitry configured to receive, from transmit end Layer 2 circuitry, a plurality of service data unit segments each having a length and a segment offset within an SDU. The baseband chip may include a segment reassembly buffer to maintain, in order of SO within the SDU, the plurality of SDU segments. The baseband chip may further include overlap removal circuitry configured to assign a first label to a first SDU segment, a second label to a second SDU segment, and a third label to a third SDU segment. The overlap removal circuitry may, in response to identifying SDU segment overlap, implement, in sequence, a set of overlap removal procedures based on the first label, the second label, and the third label to remove SDU segment overlap.

Inventors:
MA TIANAN (US)
HONG HAUSTING (US)
LI JIANZHOU (US)
LOW SU-LIN (US)
Application Number:
PCT/US2022/032895
Publication Date:
December 14, 2023
Filing Date:
June 09, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZEKU TECH SHANGHAI CORP LTD (CN)
International Classes:
H04W80/02
Domestic Patent References:
WO2013086362A12013-06-13
Foreign References:
US20200274651A12020-08-27
US20150052103A12015-02-19
US20190146096A12019-05-16
US20220030659A12022-01-27
Attorney, Agent or Firm:
ZOU, Zhiwei (US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A baseband chip, comprising: receive end Layer 2 circuitry configured to: receive, from transmit end Layer 2 circuitry, a plurality of service data unit (SDU) segments each having a length (LEN) and a segment offset (SO) within an SDU, information associated with the LEN and the SO being included in an SDU header; a segment reassembly buffer configured to: maintain, in order of SO within the SDU, the plurality of SDU segments; and overlap removal circuitry configured to: assign, at a first time, a first label to a first SDU segment of the plurality of SDU segments with a smallest SO, a second label to a second SDU segment of the plurality of SDU segments with the smallest SO or a next smallest SO, and a third label to a third SDU segment of the plurality of SDU segments with a largest SO; and in response to determining that two or more of the first SDU segment, the second SDU segment, or the third SDU segment overlap, implement, in sequence, a set of overlap removal procedures based on the first label, the second label, and the third label assigned at the first time to remove any overlap of the second SDU segment and the third SDU segment.

2. The baseband chip of claim 1, wherein: the set of overlap removal procedures comprises a first overlap removal procedure, a second overlap removal procedure, and a third overlap removal procedure, the first SDU segment has a first LEN and a first SO, the second SDU segment has a second LEN and a second SO, and the third SDU segment has a third LEN and a third SO, and the overlap removal circuitry is configured to implement, in sequence, the set of overlap removal procedures at the first time by: in response to determining that a first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the first overlap removal procedure; in response to determining that the first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the second overlap removal procedure; and in response to determining that the second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a third set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the third overlap removal procedure, wherein the first set of overlap criteria, the second set of overlap criteria, and the third set of overlap criteria are different.

3. The baseband chip of claim 2, wherein the first set of overlap criteria comprises: a sum of the second SO and the second LEN of the second SDU segment being greater than the third SO of the third SDU segment; and a sum of the second SO and the second LEN of the second SDU segment being less than or equal to a sum of the third SO and the third LEN of the third SDU segment.

4. The baseband chip of claim 3, wherein the overlap removal circuitry is configured to implement the first overlap removal procedure by: removing a first overlap between the second SDU segment and the third SDU segment by setting the second LEN equal to the third SO minus the second SO.

5. The baseband chip of claim 2, wherein the second set of overlap criteria comprises: a sum of the second SO and the second LEN being greater than or equal to a sum of the third SO and the third LEN.

6. The baseband chip of claim 5, wherein the overlap removal circuitry is configured to implement the second overlap removal procedure by: removing the third SDU segment from the segment reassembly buffer; and assigning, at a second time, the second label to the first SDU segment and the third label to the second SDU segment. 7. The baseband chip of claim 6, wherein the overlap removal circuitry is further configured to: reimplement, in sequence, the set of overlap removal procedures based on the second label assigned to the first SDU segment and the third label assigned to the second SDU segment at the second time to remove any overlap between the first SDU segment and the second SDU segment.

8. The baseband chip of claim 2, wherein the third set of overlap criteria comprises: a sum of the second SO and the second LEN of the second SDU segment being less than the third SO of the third SDU segment.

9. The baseband chip of claim 8, wherein the overlap removal circuitry is configured to implement the third overlap removal procedure by: assigning, at a second time, the second label to the first SDU segment, the third label to the second SDU segment, and a fourth label to the third SDU segment.

10. The baseband chip of claim 9, wherein the overlap removal circuitry is further configured to: reimplement, in sequence, the set of overlap removal procedures based on the second label assigned to the first SDU segment, the third label assigned to the second SDU segment, and the fourth label assigned to the third SDU segment at the second time to remove any overlap of the first SDU segment and the second SDU segment.

11. A baseband chip, comprising: receive end Layer 2 circuitry configured to: receive, from transmit end Layer 2 circuitry, a first SDU segment having a first SO and a first LEN, information associated with the first SO and the first LEN being indicated by an SDU header included with the first SDU segment; a segment reassembly buffer configured to: maintain, a second SDU segment having a second SO and a second LEN, the second SO being greater than or equal to the first SO of the first SDU segment; and overlap removal circuitry configured to: in response to determining that the first SDU segment and the second SDU segment overlap, implement, at a first time, a set of overlap removal procedures in sequence based on the first SO, the first LEN, the second SO, and the second LEN.

12. The baseband chip of claim 11, wherein: the set of overlap removal procedures comprises a first overlap removal procedure, a second overlap removal procedure, a third overlap removal procedure, and an SDU segment storage procedure, the overlap removal circuitry is configured to implement, in sequence, the set of overlap removal procedures at the first time by: in response SDU overlap between the first SDU segment and the second SDU segment being identified and in response to a first set of overlap criteria associated with the first SDU segment and the second SDU segment being met, implementing the first overlap removal procedure; in response to the first set of overlap criteria associated with the first SDU segment and the second SDU segment not being met and in further response to a second set of overlap criteria associated with the first SDU segment and the second SDU segment being met, implementing the second overlap removal procedure; in response to the second set of overlap criteria associated with the first SDU segment and the second SDU segment not being met and in further response to a third set of overlap criteria associated with the first SDU segment and the second SDU segment being met, implementing the third overlap removal procedure; and in response to no SDU overlap being identified after implementing the first overlap removal procedure, the second overlap removal procedure, and the third overlap removal procedure, implementing the SDU segment storage procedure to maintain the first SDU segment in the SDU reassembly buffer.

13. The baseband chip of claim 12, wherein: the first set of overlap criteria comprises no overlap between the first SDU segment and the second SDU segment, and the second set of overlap criteria comprises: a sum of the first SO and the first LEN of the first SDU segment being greater than the second SO of the second SDU segment; and a sum of the first SO and the first LEN of the first SDU segment being less than or equal to a sum of the second SO and the second LEN of the second SDU segment.

14. The baseband chip of claim 13, wherein the overlap removal circuitry is configured to implement the second overlap removal procedure by: removing a first overlap between the first SDU segment and the second SDU segment by setting the first LEN equal to the second SO minus the first SO.

15. The baseband chip of claim 12, wherein the third set of overlap criteria comprises: a sum of the first SO and the first LEN being greater than or equal to a sum of the second SO and the second LEN.

16. The baseband chip of claim 15, wherein the overlap removal circuitry is configured to implement the third overlap removal procedure by: removing the second SDU segment from the segment reassembly buffer.

17. The baseband chip of claim 12, wherein the fourth set of overlap criteria comprises: a sum of the first SO and the first LEN of the first SDU segment being less than the second SO of the second SDU segment.

18. The baseband chip of claim 17, wherein: the segment reassembly buffer is further configured to: maintain a third SDU segment having a third SO and a third LEN, the third SO being less than or equal to the first SO of the first SDU segment, and the overlap removal circuitry is configured to implement the fourth overlap removal procedure by: reimplementing, at a second time, the set of overlap removal procedures in sequence based on the first SO, the first LEN, the third SO, and the third LEN to remove any overlap of the first SDU segment and the third SDU segment.

19. A method of wireless communication of a baseband chip, comprising: receiving, by a receive end Layer 2 protocol stack layer at the baseband chip, a plurality of service data unit (SDU) segments from a transmit end Layer 2 protocol stack layer at the baseband chip, each of the plurality of SDU segments having a length (LEN) and a segment offset (SO) within the SDU, information associated with the LEN and the SO being included in an SDU header; maintain, by a segment reassembly buffer, the plurality of SDU segments in order of SO within the SDU; and assigning, by overlap removal circuitry at a first time, a first label to a first SDU segment of the plurality of SDU segments with a smallest SO, a second label to a second SDU segment of the plurality of SDU segments with the smallest SO or a next smallest SO, and a third label to a third SDU segment of the plurality of SDU segments with a largest SO; and in response to determining that two or more of the first SDU segment, the second SDU segment, or the third SDU segment overlap, implementing, by the overlap removal circuitry, a set of overlap removal procedures in sequence based on the first label, the second label, and the third label assigned at the first time to remove any overlap of the second SDU segment and the third SDU segment.

20. The method of claim 19, wherein: the set of overlap removal procedures comprises a first overlap removal procedure, a second overlap removal procedure, and a third overlap removal procedure, the first SDU segment has a first LEN and a first SO, the second SDU segment has a second LEN and a second SO, and the third SDU segment has a third LEN and a third SO, and the implementing the set of overlap removal procedures in sequence at the first time comprises: in response to determining that a first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the first overlap removal procedure; in response to determining that the first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the second overlap removal procedure; and in response to determining that the second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a third set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the third overlap removal procedure, wherein the first set of overlap criteria, the second set of overlap criteria, and the third set of overlap criteria are different.

Description:
APPARATUS AND METHOD FOR SERVICE DATA UNIT SEGMENT REASSEMBLY

BACKGROUND

[0001] Embodiments of the present disclosure relate to apparatus and method for wireless communication.

[0002] Wireless communication systems are widely deployed to provide various telecommunication services such as telephony, video, data, messaging, and broadcasts. In cellular communication, such as the 4th-generation (4G) Long Term Evolution (LTE) and the 5th- generation (5G) New Radio (NR), the 3rd Generation Partnership Project (3GPP) defines various operations for service data unit (SDU) segment reassembly.

SUMMARY

[0003] According to one aspect of the present disclosure, a baseband chip is provided. The baseband chip may include receive end Layer 2 circuitry configured to receive, from transmit end Layer 2 circuitry, a plurality of SDU segments each having a length (LEN) and a segment offset (SO) within an SDU. Information associated with the LEN and the SO may be included in an SDU header. The baseband chip may include a segment reassembly buffer configured to maintain, in order of SO within the SDU, the plurality of SDU segments. The baseband chip may further include overlap removal circuitry configured to assign, at a first time, a first label to a first SDU segment of the plurality of SDU segments with a smallest SO, a second label to a second SDU segment of the plurality of SDU segments with the smallest SO or a next smallest SO, and a third label to a third SDU segment of the plurality of SDU segments with a largest SO. The overlap removal circuitry may be configured to, in response to determining that two or more of the first SDU segment, the second SDU segment, or the third SDU segment overlap, implement, in sequence, a set of overlap removal procedures based on the first label, the second label, and the third label assigned at the first time to remove any overlap of the second SDU segment and the third SDU segment.

[0004] According to another aspect of the present disclosure, a baseband chip is provided. The baseband chip may include receive end Layer 2 circuitry configured to receive, from transmit end Layer 2 circuitry, a first SDU segment having a first SO and a first LEN. Information associated with the first SO and the first LEN may be included in an SDU header. The baseband chip may include a segment reassembly buffer configured to maintain, a second SDU segment having a second SO and a second LEN. In some embodiments, the second SO may be greater than or equal to the first SO of the first SDU segment. The baseband chip may include overlap removal circuitry configured to, in response to determining that the first SDU segment and the second SDU segment overlap, implement, at a first time, a set of overlap removal procedures in sequence based on the first SO, the first LEN, the second SO, and the second LEN.

[0005] According to yet another aspect of the present disclosure, a method of wireless communication of a baseband chip is provided. The method may include receiving, by a receive end Layer 2 protocol stack layer at the baseband chip, a plurality of SDU segments from a transmit end Layer 2 protocol stack layer at the baseband chip. Information associated with the LEN and the SO may be included in an SDU header. In some embodiments, each of the plurality of SDU segments may have an LEN and an SO within the SDU. The method may include maintain, by a segment reassembly buffer, the plurality of SDU segments in order of SO within the SDU. The method may include assigning, by overlap removal circuitry at a first time, a first label to a first SDU segment of the plurality of SDU segments with a smallest SO, a second label to a second SDU segment of the plurality of SDU segments with the smallest SO or a next smallest SO, and a third label to a third SDU segment of the plurality of SDU segments with a largest SO. The method may include, in response to determining that two or more of the first SDU segment, the second SDU segment, or the third SDU segment overlap, implementing, by the overlap removal circuitry, a set of overlap removal procedures in sequence based on the first label, the second label, and the third label assigned at the first time to remove any overlap of the second SDU segment and the third SDU segment.

[0006] These illustrative embodiments are mentioned not to limit or define the present disclosure, but to provide examples to aid understanding thereof. Additional embodiments are discussed in the Detailed Description, and further description is provided there.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments of the present disclosure and, together with the description, further serve to explain the principles of the present disclosure and to enable a person skilled in the pertinent art to make and use the present disclosure.

[0008] FIG. 1 A illustrates a first header format of a first example SDU segment. [0009] FIG. IB illustrates a second header format of a second example SDU segment.

[0010] FIG. 2 illustrates an exemplary wireless network, according to some embodiments of the present disclosure.

[0011] FIG. 3 illustrates a block diagram of an exemplary node, according to some embodiments of the present disclosure.

[0012] FIG. 4A illustrates a block diagram of an apparatus including a baseband chip, a radio frequency (RF) chip, and a host chip, according to some embodiments of the present disclosure.

[0013] FIG. 4B illustrates a segment reassembly buffer, according to some embodiments of the present disclosure.

[0014] FIGs. 5A-5C illustrate a first exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0015] FIGs. 6A and 6B illustrate a second exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0016] FIGs. 7A-7C illustrate a third exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0017] FIGs. 8A-8C illustrate a fourth exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0018] FIGs. 9A-9C illustrate a fourth exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0019] FIGs. 10 A- 10C illustrate a fifth exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0020] FIGs. 11A-11D illustrate a sixth exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0021] FIGs. 12A-12C illustrate a seventh exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0022] FIGs. 13A-13C illustrate an eighth exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0023] FIGs. 14A-14C illustrate a ninth exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure.

[0024] FIGs. 15A-15D illustrate a tenth exemplary SDU segment reassembly procedure, according to some embodiments of the present disclosure. [0025] FIG. 16 illustrates a flow chart of an exemplary method of SDU segment reassembly, according to some embodiments of the present disclosure.

[0026] Embodiments of the present disclosure will be described with reference to the accompanying drawings.

DETAILED DESCRIPTION

[0027] Although specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the pertinent art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the present disclosure. It will be apparent to a person skilled in the pertinent art that the present disclosure can also be employed in a variety of other applications.

[0028] It is noted that references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” “some embodiments,” “certain embodiments,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of a person skilled in the pertinent art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

[0029] In general, terminology may be understood at least in part from usage in context. For example, the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures or characteristics in a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again, may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context. In addition, the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for existence of additional factors not necessarily expressly described, again, depending at least in part on context.

[0030] Various aspects of wireless communication systems will now be described with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, modules, units, components, circuits, steps, operations, processes, algorithms, etc. (collectively referred to as “elements”). These elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends upon the particular application and design constraints imposed on the overall system.

[0031] The techniques described herein may be used for various wireless communication networks, such as code division multiple access (CDMA) system, time division multiple access (TDMA) system, frequency division multiple access (FDMA) system, orthogonal frequency division multiple access (OFDMA) system, single-carrier frequency division multiple access (SC- FDMA) system, wireless local area network (WLAN) system, and other networks. The terms “network” and “system” are often used interchangeably. A CDMA network may implement a radio access technology (RAT), such as Universal Terrestrial Radio Access (UTRA), evolved UTRA (E-UTRA), CDMA 2000, etc. A TDMA network may implement a RAT, such as the Global System for Mobile Communications (GSM). An OFDMA network may implement a RAT, such as LTE or NR. A WLAN system may implement a RAT, such as Wi-Fi. The techniques described herein may be used for the wireless networks and RATs mentioned above, as well as other wireless networks and RATs.

[0032] In wireless communication, a data packet of transmit end Layer 2 circuitry (e.g., medium access control (MAC) layer circuitry) may be segmented into service data units (SDUs) before transmission to receive end Layer 2 circuitry (e.g., radio link control (RLC) layer), where they are reassembled. The transmit end Layer 2 circuitry may include header information in each data packet transmitted to the receive end Layer 2 circuitry to characterize the positioning within the SDU of the SDU segment included in the data packet. Thus, in this context, a data packet may include header information arranged in various header fields and an SDU segment located in a data field.

[0033] FIGs. 1A and IB each depict different header formats 100, 115 of a data packet carrying an SDU segment. In FIG. 1A, the header information is included in the header fields located in octet 1 to octet 4, while the data information (e.g., the SDU segment) is included in the data field located in octet 5 to octet N. In FIG. IB, the header information is included in the header fields located in octet 1 to octet 5, while the SDU segment is included in octet 6 to octet N. In each of FIGs. 1A and IB, the header fields may include, e.g., a data or control field (D/C), a resegmentation indication field (RF), a polling request field (P), framing information field (FI), an enable header format expansion (E) field, a sequence number (SN) field, a last segment flag (LSF) field, a segment offset (SO) field, and a reserved (Rl) field. Other header formats are equally applicable, e.g., such as those for 5GNR. Although not shown, for 5GNR, the header information may include a length indicator (LI) field that indicates the SDU segment length (LEN) as well as an SO field to characterize the starting and/or ending position of the SDU segment within its associated SDU. Referring to FIGs. lA and IB, the SO is a 15-bit or 16-bit number which indicates the first byte position of the SDU segment in relationship with the beginning of the SDU. For the data packet that carries the SDU segment positioned at the beginning of the SDU, the SO field may include all Os.

[0034] In scenarios in which one or more SDU segments are not properly received and/or decoded by the receive end Layer 2 circuitry, the transmit end Layer 2 circuitry may re-segment certain SDU segments before retransmission to the receive end Layer 2 circuitry. When this occurs, various SDU segments received by receive end Layer 2 circuitry may overlap. In some systems, SDU segment overlap removal may be performed by the central processing unit (CPU) or another processor (e.g., located at the baseband chip or elsewhere). Performing SDU segment overlap removal using a CPU and/or processor consumes an undesirable amount of power, requires additional data buffers, and may be associated with high processing latency and low performance. These disadvantages may be particularly detrimental in high-throughput scenarios when high packet rates are required.

[0035] There exists an unmet need for an SDU segment overlap removal technique that consumes less power, has fewer computational resources, reduces processing latency, and increases system performance, as compared with those techniques performed by other systems.

[0036] To overcome these and other challenges, the present disclosure provides exemplary overlap removal circuitry (e.g., a hardware sequencer) at the baseband chip that performs an exemplary SDU segment overlap removal technique. The exemplary SDU segment overlap removal technique may include a multi-step hardware-based procedure that is performed insequence until all SDU segment overlap is removed. By implementing a hardware-based SDU segment overlap removal technique, the exemplary overlap removal circuity is able to resolve SDU segment overlap faster and using less power, as compared to the CPU-based techniques of other systems. Additional details of the overlap removal circuitry and the exemplary SDU segment overlap removal technique are described below in connection with FIGs. 2-16.

[0037] FIG. 2 illustrates an exemplary wireless network 200, in which some aspects of the present disclosure may be implemented, according to some embodiments of the present disclosure. As shown in FIG. 2, wireless network 200 may include a network of nodes, such as a user equipment 202, an access node 204, and a core network element 206. User equipment 202 may be any terminal device, such as a mobile phone, a desktop computer, a laptop computer, a tablet, a vehicle computer, a gaming console, a printer, a positioning device, a wearable electronic device, a smart sensor, or any other device capable of receiving, processing, and transmitting information, such as any member of a vehicle to everything (V2X) network, a cluster network, a smart grid node, or an Internet-of-Things (loT) node. It is understood that user equipment 202 is illustrated as a mobile phone simply by way of illustration and not by way of limitation.

[0038] Access node 204 may be a device that communicates with user equipment 202, such as a wireless access point, a base station (BS), a Node B, an enhanced Node B (eNodeB or eNB), a next-generation NodeB (gNodeB or gNB), a cluster master node, or the like. Access node 204 may have a wired connection to user equipment 202, a wireless connection to user equipment 202, or any combination thereof. Access node 204 may be connected to user equipment 202 by multiple connections, and user equipment 202 may be connected to other access nodes in addition to access node 204. Access node 204 may also be connected to other user equipments. When configured as a gNB, access node 204 may operate in millimeter wave (mmW) frequencies and/or near mmW frequencies in communication with the user equipment 202. When access node 204 operates in mmW or near mmW frequencies, the access node 204 may be referred to as an mmW base station. Extremely high frequency (EHF) is part of the RF in the electromagnetic spectrum. EHF has a range of 30 GHz to 300 GHz and a wavelength between 1 millimeter and 10 millimeters. Radio waves in the band may be referred to as a millimeter wave. Near mmW may extend down to a frequency of 3 GHz with a wavelength of 200 millimeters. The super high frequency (SHF) band extends between 3 GHz and 30 GHz, also referred to as centimeter wave. Communications using the mmW or near mmW radio frequency band have extremely high path loss and a short range. The mmW base station may utilize beamforming with user equipment 202 to compensate for the extremely high path loss and short range. It is understood that access node 204 is illustrated by a radio tower by way of illustration and not by way of limitation.

[0039] Access nodes 204, which are collectively referred to as E-UTRAN in the evolved packet core network (EPC) and as NG-RAN in the 5G core network (5GC), interface with the EPC and 5GC, respectively, through dedicated backhaul links (e.g., SI interface). In addition to other functions, access node 204 may perform one or more of the following functions: transfer of user data, radio channel ciphering and deciphering, integrity protection, header compression, mobility control functions (e.g., handover, dual connectivity), inter-cell interference coordination, connection setup and release, load balancing, distribution for non-access stratum (NAS) messages, NAS node selection, synchronization, radio access network (RAN) sharing, multimedia broadcast multicast service (MBMS), subscriber and equipment trace, RAN information management (RIM), paging, positioning, and delivery of warning messages. Access nodes 204 may communicate directly or indirectly (e.g., through the 5GC) with each other over backhaul links (e.g., X2 interface). The backhaul links may be wired or wireless.

[0040] Core network element 206 may serve access node 204 and user equipment 202 to provide core network services. Examples of core network element 206 may include a home subscriber server (HSS), a mobility management entity (MME), a serving gateway (SGW), or a packet data network gateway (PGW). These are examples of core network elements of an evolved packet core (EPC) system, which is a core network for the LTE system. Other core network elements may be used in LTE and in other communication systems. In some embodiments, core network element 206 includes an access and mobility management function (AMF), a session management function (SMF), or a user plane function (UPF) of the 5GC for the NR system. The AMF may be in communication with a Unified Data Management (UDM). The AMF is the control node that processes the signaling between the user equipment 202 and the 5GC. Generally, the AMF provides QoS flow and session management. All user Internet protocol (IP) packets are transferred through the UPF. The UPF provides user equipment (UE) IP address allocation as well as other functions. The UPF is connected to the IP Services. The IP Services may include the Internet, an intranet, an IP Multimedia Subsystem (IMS), a PS Streaming Service, and/or other IP services. It is understood that core network element 206 is shown as a set of rack-mounted servers by way of illustration and not by way of limitation.

[0041] Core network element 206 may connect with a large network, such as the Internet 208, or another Internet Protocol (IP) network, to communicate packet data over any distance. In this way, data from user equipment 202 may be communicated to other user equipments connected to other access points, including, for example, a computer 210 connected to Internet 208, for example, using a wired connection or a wireless connection, or to a tablet 212 wirelessly connected to Internet 208 via a router 214. Thus, computer 210 and tablet 212 provide additional examples of possible user equipments, and router 214 provides an example of another possible access node. [0042] A generic example of a rack-mounted server is provided as an illustration of core network element 206. However, there may be multiple elements in the core network including database servers, such as a database 216, and security and authentication servers, such as an authentication server 218. Database 216 may, for example, manage data related to user subscription to network services. A home location register (HLR) is an example of a standardized database of subscriber information for a cellular network. Likewise, authentication server 218 may handle authentication of users, sessions, and so on. In the NR system, an authentication server function (AUSF) device may be the entity to perform user equipment authentication. In some embodiments, a single server rack may handle multiple such functions, such that the connections between core network element 206, authentication server 218, and database 216, may be local connections within a single rack.

[0043] Each element in FIG. 2 may be considered a node of wireless network 200. More detail regarding the possible implementation of a node is provided by way of example in the description of a node 300 in FIG. 3. Node 300 may be configured as user equipment 202, access node 204, or core network element 206 in FIG. 2. Similarly, node 300 may also be configured as computer 210, router 214, tablet 212, database 216, or authentication server 218 in FIG. 2. As shown in FIG. 3, node 300 may include a processor 302, a memory 304, and a transceiver 306. These components are shown as connected to one another by a bus, but other connection types are also permitted. When node 300 is user equipment 202, additional components may also be included, such as a user interface (UI), sensors, and the like. Similarly, node 300 may be implemented as a blade in a server system when node 300 is configured as core network element 206. Other implementations are also possible.

[0044] Transceiver 306 may include any suitable device for sending and/or receiving data. Node 300 may include one or more transceivers, although only one transceiver 306 is shown for simplicity of illustration. An antenna 308 is shown as a possible communication mechanism for node 300. Multiple antennas and/or arrays of antennas may be utilized for receiving multiple spatially multiplex data streams. Additionally, examples of node 300 may communicate using wired techniques rather than (or in addition to) wireless techniques. For example, access node 204 may communicate wirelessly to user equipment 202 and may communicate by a wired connection (for example, by optical or coaxial cable) to core network element 206. Other communication hardware, such as a network interface card (NIC), may be included as well.

[0045] As shown in FIG. 3, node 300 may include processor 302. Although only one processor is shown, it is understood that multiple processors can be included. Processor 302 may include microprocessors, microcontroller units (MCUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout the present disclosure. Processor 302 may be a hardware device having one or more processing cores. Processor 302 may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Software can include computer instructions written in an interpreted language, a compiled language, or machine code. Other techniques for instructing hardware are also permitted under the broad category of software. [0046] As shown in FIG. 3, node 300 may also include memory 304. Although only one memory is shown, it is understood that multiple memories can be included. Memory 304 can broadly include both memory and storage. For example, memory 304 may include random-access memory (RAM), read-only memory (ROM), static RAM (SRAM), dynamic RAM (DRAM), ferroelectric RAM (FRAM), electrically erasable programmable ROM (EEPROM), compact disc readonly memory (CD-ROM) or other optical disk storage, hard disk drive (HDD), such as magnetic disk storage or other magnetic storage devices, Flash drive, solid-state drive (SSD), or any other medium that can be used to carry or store desired program code in the form of instructions that can be accessed and executed by processor 302. Broadly, memory 304 may be embodied by any computer-readable medium, such as a non-transitory computer-readable medium.

[0047] Processor 302, memory 304, and transceiver 306 may be implemented in various forms in node 300 for performing wireless communication functions. In some embodiments, processor 302, memory 304, and transceiver 306 of node 300 are implemented (e.g., integrated) on one or more system-on-chips (SoCs). In one example, processor 302 and memory 304 may be integrated on an application processor (AP) SoC (sometimes known as a “host,” referred to herein as a “host chip”) that handles application processing in an operating system (OS) environment, including generating raw data to be transmitted. In another example, processor 302 and memory 304 may be integrated on a baseband processor (BP) SoC (sometimes known as a “modem,” referred to herein as a “baseband chip”) that converts the raw data, e.g., from the host chip, to signals that can be used to modulate the carrier frequency for transmission, and vice versa, which can run a real-time operating system (RTOS). In still another example, processor 302 and transceiver 306 (and memory 304 in some cases) may be integrated on an RF SoC (sometimes known as a “transceiver,” referred to herein as an “RF chip”) that transmits and receives RF signals with antenna 308. It is understood that in some examples, some or all of the host chip, baseband chip, and RF chip may be integrated as a single SoC. For example, a baseband chip and an RF chip may be integrated into a single SoC that manages all the radio functions for cellular communication.

[0048] Referring back to FIG. 2, in some embodiments, user equipment 202 may be configured with exemplary overlap removal circuitry (e.g., a hardware sequencer) at the baseband chip that performs the SDU segment overlap removal technique described herein. The hardware sequencer used for the overlap removal circuitry may sequencer be designed sequence through the set of operations A-D, described below. To that end, with a set of identified finite operations, the overlap removal circuitry can be designed to solve all the problems related to SDU overlap, as described below. In some embodiments, the exemplary SDU segment overlap removal technique may include a four-step hardware-based procedure that is performed in-sequence until all SDU segment overlap is removed. By implementing a hardware-based SDU segment overlap removal technique, user equipment 202 may be able to resolve SDU segment overlap faster and using less power, as compared to the CPU-based techniques of other systems. Additional details of the overlap removal circuitry included in user equipment 202 and the exemplary SDU segment overlap removal technique it performs are described below in connection with FIGs. 4-16.

[0049] FIG. 4A illustrates a block diagram of an apparatus 400 including a baseband chip 402, an RF chip 404, and a host chip 406, according to some embodiments of the present disclosure. Apparatus 400 may be implemented as user equipment 202 of wireless network 200 in FIG. 2. As shown in FIG. 4A, apparatus 400 may include baseband chip 402, RF chip 404, host chip 406, and one or more antennas 410. In some embodiments, baseband chip 402 is implemented by processor 302 and memory 304, and RF chip 404 is implemented by processor 302, memory 304, and transceiver 306, as described above with respect to FIG. 3. Besides the on-chip memory 418 (also known as “internal memory,” e.g., registers, buffers, or caches) on each chip 402, 404, or 406, apparatus 400 may further include an external memory 408 (e.g., the system memory or main memory) that can be shared by each chip 402, 404, or 406 through the system/main bus. Although baseband chip 402 is illustrated as a standalone SoC in FIG. 4A, it is understood that in one example, baseband chip 402 and RF chip 404 may be integrated as one SoC; in another example, baseband chip 402 and host chip 406 may be integrated as one SoC; in still another example, baseband chip 402, RF chip 404, and host chip 406 may be integrated as one SoC, as described above.

[0050] In the uplink, host chip 406 may generate raw data and send it to baseband chip 402 for encoding, modulation, and mapping. Interface 414 of baseband chip 402 may receive the data from host chip 406. Baseband chip 402 may also access the raw data generated by host chip 406 and stored in external memory 408, for example, using the direct memory access (DMA). Baseband chip 402 may first encode (e.g., by source coding and/or channel coding) the raw data and modulate the coded data using any suitable modulation techniques, such as multi-phase shift keying (MPSK) modulation or quadrature amplitude modulation (QAM). Baseband chip 402 may perform any other functions, such as symbol or layer mapping, to convert the raw data into a signal that can be used to modulate the carrier frequency for transmission. In the uplink, baseband chip 402 may send the modulated signal to RF chip 404 via interface 414. RF chip 404, through the transmitter (TX), may convert the modulated signal in the digital form into analog signals, i.e., RF signals, and perform any suitable front-end RF functions, such as filtering, digital pre-distortion, up-conversion, or sample-rate conversion. Antenna 410 (e.g., an antenna array) may transmit the RF signals provided by the transmitter of RF chip 404.

[0051] In the downlink, antenna 410 may receive RF signals from an access node or other wireless device. The RF signals may be passed to the receiver (Rx) of RF chip 404. RF chip 404 may perform any suitable front-end RF functions, such as filtering, IQ imbalance compensation, down-paging conversion, or sample-rate conversion, and convert the RF signals (e.g., transmission) into low-frequency digital signals (baseband signals) that can be processed by baseband chip 402.

[0052] Still referring to FIG. 4A, baseband chip 402 may include, e.g., transmit end Layer 2 circuitry 420 (also referred to herein as “a transmit end Layer 2 protocol stack layer”), receive end Layer 2 circuitry 422 (also referred to herein as “a receive end Layer 2 protocol stack layer”), segment reassembly buffer 424, and overlap removal circuitry 426. Transmit end Layer 2 circuitry 420 may include, e.g., medium access control (MAC) circuitry /MAC Layer 2 protocol stack layer, radio link control (RLC) circuitry/RLC Layer 2 protocol stack layer, packet data convergence protocol (PDCP) circuitry/PDCP Layer 2 protocol stack layer, etc. Similarly, receive end Layer 2 circuitry may include, e.g., MAC circuitry /MAC Layer 2 protocol stack layer, RLC circuitry/RLC Layer 2 protocol stack layer, PDCP circuitry/PDCP Layer 2 protocol stack layer, etc. The transmit end Layer 2 circuitry 420 and receive end Layer 2 circuitry 422 may include the circuitry associated with any two adjacent layers in the Layer 2 protocol stack. By way of example and not limitation, in the downlink, the transmit end Layer 2 circuitry 420 may include the MAC circuitry, and the receive end Layer 2 circuitry 422 may include the RLC circuitry. On the other hand, in the uplink, the transmit end Layer 2 circuitry 420 may include the RLC circuitry, and the receive end Layer 2 circuitry 422 may include the MAC circuitry.

[0053] In either the uplink or the downlink, transmit end Layer 2 circuitry may generate an SDU and segment it into a plurality of SDU segments. Each SDU segment may be sent to the receive end Layer 2 circuitry 422 in a different data packet, for example. In this context, a data packet may include a header and SDU segment, among other things. When in acknowledged mode (AMD), receive end Layer 2 circuitry 422 may indicate (to transmit end Layer 2 circuitry 420) when a data packet is not properly received or cannot be properly decoded. When this happens, transmit end Layer 2 circuitry 420 may retransmit the SDU segment to receive end Layer 2 circuitry 422. However, for various reasons, transmit end Layer 2 circuitry 420 may re-segment the SDU segment into a different size such that it partially overlaps with other SDU segments received by receive end Layer 2 circuitry 422 and maintained by segment reassembly buffer 424. This overlap of SDU segments may include redundant data. Moreover, the SDU segments may be received out of order. After performing its associated receive end processing of an SDU segment, receive end Layer 2 circuitry 422 may send the SDU to segment reassembly buffer 424, which keeps track of which SDU segments have been received. As shown in FIG. 4B, segment reassembly buffer 424 (e.g., a linear buffer) maintains each SDU segment 450 in order of its SO, according to some embodiments.

[0054] For each SDU segment that comes out of the receive end processing at receive end Layer 2 circuitry 422, overlap removal circuitry 426 may determine whether it overlaps with one or more SDU segments maintained by segment reassembly buffer 424. To that end, overlap removal circuitry 426 may start from the last SDU segment (e.g., the SDU segment with the largest SO) maintained in segment reassembly buffer 424 and move up the queue. When SDU overlap of the newly received SDU segment with at least one SDU segment maintained by segment reassembly buffer 424 is identified, overlap removal circuitry 426 may assign labels to the newly received SDU segment and a pair of SDU segments proximate or adjacent to the detected overlap. [0055] Once SDU segment overlap associated with the newly received SDU segment is removed (or if no SDU segment overlap is detected), the newly received SDU segment may be stored in order of its SO in segment reassembly buffer 424. Overlap removal circuitry 426 may implement the exemplary hardware-based overlap removal procedure by performing a set of operations (e.g., operation A, operation B, operation C, and operation D) in sequence. Each of the operations in the set is associated with a different set of overlap criteria, as described below. When overlap removal circuitry 426 determines that the set of overlap criteria for one of the operations is met, overlap removal circuitry 426 performs the overlap removal procedure associated with that operation; otherwise, the overlap removal circuitry 426 moves on to the next operation in the sequence to determine whether its set of operation criteria is met, and so on.

[0056] To begin, overlap removal circuitry 426 performs operation A to determine whether a newly received SDU segment overlaps with the last SDU segment maintained by segment reassembly buffer 424. In response to determining that the newly received SDU segment does not overlap with the last SDU segment, overlap removal circuitry 426 moves on to the SDU segment with the second largest SO maintained by segment reassembly buffer 424 and performs operation A. Moving up segment reassembly buffer 424, overlap removal circuitry 426 continues performing operation A until it detects SDU overlap between the newly received SDU segment and at least one of the maintained SDU segments. If no SDU overlap between the newly received SDU segment and those SDU segment(s) maintained by segment reassembly buffer 424, the newly received SDU segment is stored in order of its SO in segment reassembly buffer 424. It is understood that although the performance of the set of operations is in sequence, but the arrangement of the set of operations may have any suitable permutations and combinations. For example, in some embodiments, the sequential arrangement is performed Operation A — Operation B — Operation D — Operation C.

[0057] However, when SDU overlap of the newly received SDU segments is detected, overlap removal circuitry 426 assigns a set of labels to the newly received SDU segment, the SDU segment for which overlap was detected, and another SDU segment located either before or after the SDU segment for which overlap was detected. The set of labels may be assigned based on the SO of each of the three SDU segments, as described below in connection with FIGs. 5A-5C, 6A- 6B, 7A-7C, 8A-8C, 9A-9C, 10A-10C, 11A-11D, 12A-12C, 13A-13C, 14A-14C, and 15A-15D. By way of example and not limitation, a first SDU segment (newly received or maintained) of the three SDU segments with the smallest SO may be assigned a first label, the SDU segment of the three SDU segments with an SO greater than or equal to the smallest SO may be assigned a second label, and the SDU segment of the three SDU segments with the largest SO may be assigned a third label. By way of example and non-limitation, the first label may be “SO nextup,” the second label may be “SO current,” and the third label may be “SO_previous.” It is understood that the first, second, and third labels are not limited to the illustrative examples used herein. Instead, any type of label (e.g., text-based, number-based, symbol-based, any combination thereof, etc.) may be used by overlap removal circuitry 426 to distinguish between the three SDU segments when performing operations B, C, and D without departing from the scope of the present disclosure.

[0058] Once the labels are assigned, overlap removal circuitry 426 initiates operation B. Operation B may be performed to remove SDU overlap between the SDU segment assigned the second label (e.g., SO current) and the SDU segment assigned the third label (e.g., SO_previous). Before performing a first overlap removal procedure associated with operation B, overlap removal circuitry 426 may determine whether a first set of overlap criteria associated with operation B is met. When the first set of overlap criteria are met, overlap removal circuitry 426 may perform a first overlap removal procedure to remove SDU overlap of the SDU segment assigned the second label (e.g., SO current) and the SDU segment assigned the third label (e.g., SO_previous).

[0059] Overlap removal circuitry 426 may determine whether the first set of overlap criteria are met by performing a set of computations, e.g., such as those represented below as expressions (1) and (2).

(SO current + LEN current > S © previous) (1); and

(SO_current+LEN_current < SO _previous + LEN previous) (2).

[0060] When both expressions (1) and (2) are true, overlap removal circuitry 426 may determine that the first set of overlap criteria is met. When the first set of overlap criteria is met, overlap removal circuitry 426 may perform the first overlap removal procedure associated with operation B. The first overlap removal procedure may result in removal (e.g., trimming off) of SDU overlap between the SDU segments assigned the second label (e.g., SO current) and the third label (e.g., SCUprevious). Overlap removal circuitry 426 may remove the overlap of these SDU segments by reducing the length (e.g., LEN current) of the SDU segment assigned the second label (e.g., SO current) according to expression (3).

LEN current = SO _previous - SO current (3).

[0061] When LEN current = 0 according to expression (3), this means the entire SDU segment assigned the second label (e.g., SO current) is encompassed by the SDU segment assigned the third label (e.g., SCUprevious). In this instance, overlap removal circuitry 426 may discard the entire SDU segment assigned the second label (e.g., SO current). This is because all data carried in this SDU segment is redundant to the data previously received and contained in the SDU segment assigned the third label (e.g., SO_previous). Thus, the SDU segment assigned the second label (e.g., SO current) may be discarded. Overlap removal circuitry 426 may discard the SDU segment assigned the second label (e.g., SO current) by including a dummy entry in segment reassembly buffer 424, for example. The dummy entry indicates that this dummy SDU should be skipped during segment reassembly.

[0062] If overlap removal circuitry determines that either expression (1) and/or expression (2) is/are not true, overlap removal circuitry 426 does not perform the first overlap procedure associated with operation B and moves on to operation C using the same labels assigned to the same SDU segments.

[0063] After determining that one or more of expression(s) (1) and/or (2) are not true or after completing the first overlap removal procedure associated with expression (3), overlap removal circuitry 426 may move on to operation C.

[0064] Operation C may be performed to remove SDU overlap between the SDU segments assigned the second label (e.g., SO current) and the third label (e.g., SO_previous). Overlap removal circuitry 426 may determine whether a second set of overlap criteria associated with operation C is met. When the second set of overlap criteria is met, overlap removal circuitry 426 may perform a second overlap removal procedure to remove any SDU overlap between the SDU segment assigned the second label (e.g., SO current) and the third label (e.g., SO_previous). On the other hand, when the second set of overlap criteria is not met, overlap removal circuitry 426 may move on to operation D.

[0065] To determine whether the second set of overlap criteria, overlap removal circuitry 426 may perform the computation represented below as expression (4).

SO_current + LEN_current SO _previous + LEN previous (4).

[0066] When expression (4) is true, the SDU segment assigned the second label (e.g., SO current) is greater than or equal to the size of the SDU segment assigned the third label (e.g., SO _previous). In other words, all data contained in the SDU segment assigned the third label (e.g., SO_previous) is encompassed by and redundant to at least a portion of the data contained in the SDU segment assigned the second label (e.g., SO current).

[0067] Thus, when expression (4) is true, overlap removal circuitry 426 may implement the second overlap removal procedure to discard the redundant data contained in the SDU segment assigned the third label (e.g., SO _previous). Overlap removal circuitry 426 may discard the SDU segment assigned the third label (e.g., SO current) by including, in its place, a dummy entry (e.g., no data) in segment reassembly buffer 424, for example. The dummy entry indicates that this entry should be skipped during segment reassembly. After the second overlap removal procedure is complete, the SDU segment that was assigned the fourth label (e.g., SO_past) after operation B may be reassigned the third label (e.g., SO_previous). In other words, the SDU segment labeled SO_past after operation B may be relabeled SO previous after operation C. However, the SDU segment assigned the second label (e.g., SO current) may retain the same label.

[0068] After determining that one or more of expression (4) is not true or after completing the second overlap removal procedure, overlap removal circuitry 426 may move on to operation D. Operation D may be performed to remove any SDU overlap between the SDU segments assigned the second label (e.g., SO current) and the third label (e.g., SO_previous), overlap removal circuitry 426 may determine whether a third set of overlap criteria associated with operation D is met. When the third set of overlap criteria is met, overlap removal circuitry 426 may perform a third overlap removal procedure to remove any SDU overlap between the SDU segment assigned the second label (e.g., SO current) and the third label (e.g., SO_previous). Overlap removal circuitry 426 may determine whether the third set of overlap criteria is met by performing the computation represented below as expression (5).

SO current + LEN current < SO _previous (5).

[0069] Due to the labeling mechanism and sequence of operations B and C, expression (5) may always be true. If, after operation B or C, the SDU segment with the smallest SO has the second label (e.g., SO current) assigned thereto, then overlap removal circuitry 426 may determine that all SDU overlap caused by the newly received SDU segment has been resolved.

[0070] When the SDU segments still have assigned the original labels in order of SO, overlap removal circuitry performs a third overlap removal procedure by reassigning the SDU segment with the smallest SO to the second label (e.g., SO current), the SDU segment with the next smallest (or equal to the smallest) SO the third label (e.g., SO _previous), and the SDU segment with the largest SO the fourth label (e.g., SO _past). Then, overlap removal circuitry 426 performs each of operations B-D again using the labels reassigned by the third overlap removal procedure. This process continues until the SDU overlap caused by the newly received SDU is removed. Once the SDU overlap is removed, the newly received SDU segment is maintained in order of its SO in segment reassembly buffer 424. However, as mentioned above, in some instances, the newly received SDU segment may be discarded, e.g., such as those instances in which its data is entirely redundant to that of a previously received SDU segment.

[0071] Additional details of the overlap removal procedure(s) performed by overlap removal circuitry 426 are described below in connection with FIGs. 5A-5C, 6A-6B, 7A-7C, 8A- 8C, 9A-9C, 10A-10C, 11A-11D, 12A-12C, 13A-13C, 14A-14C, and 15A-15D.

[0072] FIGs. 5A-5C illustrate a first exemplary SDU segment reassembly procedure 500, 515, 525, according to some embodiments of the present disclosure. FIGs. 6A and 6B illustrate a second exemplary SDU segment reassembly procedure 600, 615, according to some embodiments of the present disclosure. FIGs. 7A-7C illustrate a third exemplary SDU segment reassembly procedure 700, 715, 725, according to some embodiments of the present disclosure. FIGs. 8A-8C illustrate a fourth exemplary SDU segment reassembly procedure 800, 815, 825, according to some embodiments of the present disclosure. FIGs. 9A-9C illustrate a fourth exemplary SDU segment reassembly procedure 900, 915, 925, according to some embodiments of the present disclosure. FIGs. 10 A- 10C illustrate a fifth exemplary SDU segment reassembly procedure 1000, 1015, 1025, according to some embodiments of the present disclosure. FIGs. 11A-11D illustrate a sixth exemplary SDU segment reassembly procedure 1100, 1115, 1125, 1135 according to some embodiments of the present disclosure. FIGs. 12A-12C illustrate a seventh exemplary SDU segment reassembly procedure 1200, 1215, 1225, according to some embodiments of the present disclosure. FIGs. 13A-13C illustrate an eighth exemplary SDU segment reassembly procedure 1300, 1315, 1325, according to some embodiments of the present disclosure. FIGs. 14A-14C illustrate a ninth exemplary SDU segment reassembly procedure 1400, 1415, 1425, according to some embodiments of the present disclosure. FIGs. 15A-15D illustrates a tenth exemplary SDU segment reassembly procedure 1500, 1515, 1525, 1535 according to some embodiments of the present disclosure.

[0073] Each figure group (e.g., FIGs. 5A-5C being one figure group, FIGs. 6A and 6B being another figure group, etc.) depicts a different SDU overlap scenario and illustrate how the set of operations performed in sequence results in the removal of SDU overlap in each case. In each of FIGs. 5A-5C, 6A-6B, 7A-7C, 8A-8C, 9A-9C, 10A-10C, 11A-11D, 12A-12C, 13A-13C, 14A-14C, and 15A-15D the newly received SDU segment is shown in dashed lines and the previously received SDU segments stored in segment reassembly buffer 424 are shown with solid lines.

[0074] Referring to FIGs. 5A-5C, a first SDU segment 502, a second SDU segment 504, and a third SDU segment 506 are shown. Second SDU segment 504 is a newly received SDU segment. Overlap removal circuitry 426 determines that second SDU segment 504 overlaps with first SDU segment 502. Thus, according to SO position, first SDU segment 502 is assigned the first label (e.g., SO nextup), the second SDU segment 504 is assigned the second label (e.g., SO current), and the third SDU segment 506 is assigned the third label (e.g., SO_previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 5A at a first time and the set of operations (e.g., operation B) depicted in FIGs. 5B and 5C at a second time.

[0075] As depicted in FIG. 5A, neither the first set of overlap criteria associated with operation B nor the second set of overlap criteria associated with operation C are met. Thus, the original labels assigned before performing operation B remain when the overlap removal procedure performs operation D and determines that the third set of overlap removal criteria (shown above as expression (5)) is met. Thus, because the third set of overlap removal criteria is met, overlap removal circuitry 426 may implement the third overlap removal procedure to reassign the second label (e.g., SO current) to the first SDU segment 502, the third label (e.g., SO _previous) to second SDU segment 504, and a fourth label (SO _past) to the third SDU segment 506. However, if neither operation B nor operation C is performed, overlap removal circuitry 426 may reassign each of the SDU segments with the aforementioned labels without performing the computation associated with expression (5). This is because in such a scenario, expression (5) may always be true.

[0076] In any event, once the third overlap removal procedure associated with operation D is complete, overlap removal circuitry 426 may reimplement the set of operations in sequence (e.g., at a second time), as depicted in FIG. 5B. Referring to FIG. 5B, overlap removal procedure determines that the first set of overlap criteria (e.g., expressions (1) and (2)) associated with operation B are met; hence, overlap removal circuitry 426 may implement the first overlap removal procedure to remove the portion of the SDU segment assigned the second label (e.g., SO current) that overlaps with the SDU segment assigned the third label (e.g., SO_previous). In the example scenario illustrated in FIG. B, the first overlap removal procedure removes the portions of the first SDU segment 502 that overlaps with second SDU segment 504. The first overlap removal procedure may be implemented by shorting the length (e.g., LEN current in FIG. 5B) of second SDU segment 504 according to expression (3) to LEN current' , as depicted in FIG. 5C. Referring to FIG. 5C, after determining that the second set of operation criteria associated with operation C is not met, overlap removal circuitry 426 may determine that the SDU segment with the smallest SO (e.g., first SDU segment 502) is assigned the second label (e.g., SO current) and that no overlap is present with third SDU segment 506. When this happens, overlap removal circuitry 426 may determine that all overlap associated with second SDU segment 504 (the newly received SDU segment) has been removed. Thus, second SDU segment 504 may be maintained in segment reassembly buffer 424.

[0077] Referring to FIGs. 6A and 6B, first SDU segment 602, a second SDU segment 604, and a third SDU segment 606 are shown. In this example, first SDU segment 602 and third SDU segment 606 are previously received SDU segments stored in segment reassembly buffer 424, and second SDU segment 604 is a newly received SDU segment. In this overlap scenario, overlap removal circuitry 426 determines that second SDU segment 604 overlaps with third SDU segment 606. Thus, according to SO position, first SDU segment 602 is assigned the first label (e.g., SO nextup), second SDU segment 604 is assigned the second label (e.g., SO current), and the third SDU segment 606 is assigned the third label (e.g., SO _previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIGs. 6A and 6B at a first time.

[0078] In the example depicted in FIG. 6A, overlap removal circuitry 426 determines that the first set of overlap criteria are met, e.g., according to expressions (1) and (2). Hence, overlap removal circuitry 426 may perform the first overlap removal procedure to reduce the length (e.g., LEN current) of second SDU segment 604 to LEN current’, e.g., according to expression (3). Once the first overlap removal procedure is complete, overlap removal circuitry 426 may move on to operations C and D, and because the second set of overlap criteria is not met and the third set of overlap criteria are met, overlap removal circuitry 426 may reassign the labels of each of the three SDU segments, as depicted in FIG. 6B. In the example depicted in FIG. 6B, first SDU segment 602 is assigned the second label (e.g., SO current), second SDU segment 604 is assigned the third label (e.g., SO_previous), and third SDU segment 606 is assigned the fourth label (e.g., SO_past). Thus, LEN_previous' is a relabeling of LEN current' mentioned above in connection with FIG. 6A. In the present example, at a second time, overlap removal circuitry 426 determines that the first set of overlap criteria associated with operation B is not second set of overlap criteria associated with operation C is not met; hence, overlap removal circuitry 426 moves on to operation D, as depicted in FIG. 6B. Here, overlap removal circuitry 426 determines the third set of overlap criteria is met and that the first label (e.g., SO current) is assigned to first SDU segment 602, which indicates there is no longer SDU overlap associated with second SDU segment 604. Second SDU segment 604 with reduced length LEN_previous' may be maintained in segment reassembly buffer 424.

[0079] Referring to FIGs. 7A-7C, first SDU segment 702, a second SDU segment 704, and a third SDU segment 706 are shown. In this example, first SDU segment 702 and third SDU segment 706 are previously received SDU segments stored in segment reassembly buffer 424, and second SDU segment 704 is a newly received SDU segment. In this overlap scenario, overlap removal circuitry 426 determines that second SDU segment 704 overlaps with third SDU segment 706. Thus, according to SO position, first SDU segment 702 is assigned the first label (e.g., SO nextup), second SDU segment 704 is assigned the second label (e.g., SO current), and the third SDU segment 706 is assigned the third label (e.g., SO _previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 7A at a first time and the set of operations (e.g., operations B, C, and D) depicted in FIGs. 7B and 7C at a second time different than the first time.

[0080] Referring to FIG. 7A, overlap removal circuitry 426 may determine that the first set of overlap criteria associated with operation B is met by performing the computations associated with expressions (1) and (2). In response to the first set of overlap criteria being met at the first time, overlap removal circuitry 426 may perform the first overlap removal procedure to reduce the length (e.g., LEN current) of second SDU segment 704 according to expression (3). In the example depicted in FIG. 7A, the first overlap removal procedure removes SDU segment overlap of second SDU segment 704 and third SDU segment 706. After the first overlap removal procedure is performed at the first time, the length of second SDU segment 704 is LEN current', which is equal to LEN_previous' depicted in FIG. 7B. Then, in this example, overlap removal circuitry 426 may determine that the second set of overlap removal criteria associated with operation C, which is represented above as expression (4)), is not met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels so the second label (e.g., SO current) is assigned to first SDU segment 702, the third label (e.g., SO_previous) is assigned to second SDU segment 704, and the fourth label (e.g., SO_past) is assigned to third SDU segment 706. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIGs. 7B and 7C.

[0081] Referring to FIG. 7B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are met once again with the reassigned labels. In response to the first set of overlap criteria being met at the second time, overlap removal circuitry 426 may perform the first overlap removal procedure to reduce the length (e.g., LEN current) of first SDU segment 702 according to expression (3). In the example depicted in FIGs. 7B and 7C, the first overlap removal procedure removes SDU segment overlap of first SDU segment 702 and second SDU segment 704. After the first overlap removal procedure is performed at the second time, the length of first SDU segment 702 is LEN current', as depicted in FIG. 7C. Then, at the second time, overlap removal circuitry 426 may determine that the second set of overlap removal criteria associated with operation C is not met, in this example. Because the third set of overlap removal criteria associated with operation D is met and the SDU segment assigned the first label (e.g., SO current) is the SDU segment of the three SDU segments with the smallest SO, overlap removal circuitry 426 may determine that all SDU overlap associated with second SDU segment 704 is removed. Thus, the operation concludes, and second SDU segment 704 is saved in segment reassembly buffer 424 in order of its SO.

[0082] Referring to FIGs. 8A-8C, first SDU segment 802, a second SDU segment 804, and a third SDU segment 806 are shown. In this example, first SDU segment 802 and third SDU segment 806 are previously received SDU segments stored in segment reassembly buffer 424, and second SDU segment 804 is a newly received SDU segment. In this overlap scenario, overlap removal circuitry 426 determines that second SDU segment 804 overlaps with first SDU segment 802. Thus, according to SO position, first SDU segment 802 is assigned the first label (e.g., SO nextup), second SDU segment 804 is assigned the second label (e.g., SO current), and the third SDU segment 806 is assigned the third label (e.g., SO _previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 8A at a first time and the set of operations (e.g., operations B, C, and D) depicted in FIG. 8B at a second time different than the first time, and the set of operations (e.g., operations B, C, and D) depicted in FIG. 8C at a third time different than the first and second times.

[0083] Referring to FIG. 8A, overlap removal circuitry 426 may determine that neither the first set of overlap criteria (e.g., expressions (1) and (2)) nor the second set of overlap criteria (e.g., represented by expression (4)) are met, but the third set of overlap criteria (e.g., represented by expression (5)) is met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels, so the second label (e.g., SO current) is assigned to first SDU segment 802, the third label (e.g., SO _previous) is assigned to second SDU segment 804, and the fourth label (e.g., SO_past) is assigned to third SDU segment 806. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIG. 8B. [0084] Referring to FIG. 8B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are not met. However, in this example, overlap removal circuitry 426 may determine the second set of overlap criteria (e.g., represented by expression (4)) is met. Accordingly, overlap removal circuitry 426 may implement the second overlap removal procedure, which includes discarding second SDU segment 804. This is because the data carried by second SDU segment 804 was previously received in its entirety in first SDU segment 802. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met, and hence, may reassign the third label (e.g., SO_previous) to third SDU segment 806.

[0085] Referring to FIG. 8C, overlap removal circuitry 426 may determine that the first and second sets of overlap criteria associated with operations B and C, respectively, are not met, and that the third set of overlap criteria associated with operation D is met. Furthermore, because the first label (e.g., SO current) is assigned to the SDU segment with the smallest SO (e.g., first SDU segment 802), the operation may conclude.

[0086] Referring to FIGs. 9A-9C, first SDU segment 902, a second SDU segment 904, and a third SDU segment 906 are shown. In this example, first SDU segment 902 is a newly received SDU segment, and second SDU segment 904 and third SDU segment 906 are previously received SDU segments stored in segment reassembly buffer 424. In this overlap scenario, overlap removal circuitry 426 determines that first SDU segment 902 overlaps with second SDU segment 904. Thus, according to SO position, first SDU segment 902 is assigned the first label (e.g., SO nextup), second SDU segment 904 is assigned the second label (e.g., SO current), and the third SDU segment 906 is assigned the third label (e.g., SO_previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 9A at a first time and the set of operations (e.g., operations B, C, and D) depicted in FIG. 9B at a second time different than the first time, and the set of operations (e.g., operations B, C, and D) depicted in FIG. 9C at a third time different than the first and second times.

[0087] Referring to FIG. 9A, overlap removal circuitry 426 may determine that neither the first set of overlap criteria (e.g., expressions (1) and (2)) nor the second set of overlap criteria (e.g., represented by expression (4)) are met, but the third set of overlap criteria (e.g., represented by expression (5)) is met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels, so the second label (e.g., SO current) is assigned to first SDU segment 902, the third label (e.g., SO _previous) is assigned to second SDU segment 904, and the fourth label (e.g., SO_past) is assigned to third SDU segment 906. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIG. 9B.

[0088] Referring to FIG. 9B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are not met. However, in this example, overlap removal circuitry 426 may determine the second set of overlap criteria (e.g., represented by expression (4)) is met. Accordingly, overlap removal circuitry 426 may implement the second overlap removal procedure, which includes discarding second SDU segment 904. Here, overlap removal circuitry 426 may delete second SDU segment 904 from segment reassembly buffer 424. In its place, overlap removal circuitry 426 may include a dummy entry to indicate this entry should be skipped during SDU segment reassembly. This is because the data carried by second SDU segment 904 is received in its entirety in first SDU segment 902. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met, and hence, may reassign the third label (e.g., SO_previous) to third SDU segment 906.

[0089] Referring to FIG. 9C, overlap removal circuitry 426 may determine that the first and second sets of overlap criteria associated with operations B and C, respectively, are not met, and that the third set of overlap criteria associated with operation D is met. Furthermore, because the first label (e.g., SO current) is assigned to the SDU segment with the smallest SO (e.g., first SDU segment 902), the operation may conclude.

[0090] Referring to FIGs. 10 A- 10C, first SDU segment 1002, a second SDU segment 1004, and a third SDU segment 1006 are shown. In this example, first SDU segment 1002 and third SDU segment 1006 are previously received SDU segments stored in segment reassembly buffer 424, and second SDU segment 1004 is a newly received SDU segment. In this overlap scenario, overlap removal circuitry 426 determines that second SDU segment 1004 overlaps with third SDU segment 1006. Thus, according to SO position, first SDU segment 1002 is assigned the first label (e.g., SO nextup), second SDU segment 1004 is assigned the second label (e.g., SO current), and the third SDU segment 1006 is assigned the third label (e.g., SO_previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 10A at a first time and the set of operations (e.g., operations B, C, and D) depicted in FIGs. 10B and 10C at a second time different than the first time. [0091] Referring to FIG. 10A, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., expressions (1) and (2)) is not met and that the second set of overlap criteria (e.g., represented by expression (4)) is met. Thus, overlap removal circuitry 426 may implement the second overlap removal procedure by discarding third SDU segment 1006. In its place, overlap removal circuitry 426 may include a dummy entry to indicate this entry should be skipped during SDU segment reassembly. This is because the data carried by third SDU segment 1006 is received in its entirety in second SDU segment 1004. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met, and hence, may reassign the second label (e.g., SO current) to first SDU segment 1002 and the third label (e.g., SO _previous) to second SDU segment 1004.

[0092] Referring to FIG. 10B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are met with the reassigned labels. In response to the first set of overlap criteria being met at the second time, overlap removal circuitry 426 may perform the first overlap removal procedure to reduce the length (e.g., LEN current) of first SDU segment 1002 according to expression (3). In the example depicted in FIGs. 10B and 10C, the first overlap removal procedure removes SDU segment overlap of first SDU segment 1002 and second SDU segment 1004. After the first overlap removal procedure is performed at the second time, the length of first SDU segment 1002 is LEN current', as depicted in FIG. 10C. Then, at the second time, overlap removal circuitry 426 may determine that the second set of overlap removal criteria associated with operation C is not met, in this example. Because the third set of overlap removal criteria associated with operation D is met and the SDU segment assigned the first label (e.g., SO current) is the SDU segment with the smallest SO, overlap removal circuitry 426 may determine that all SDU overlap associated with second SDU segment 1004 is removed. Thus, the operation concludes, and second SDU segment 1004 is saved in segment reassembly buffer 424 in order of its SO.

[0093] Referring to FIGs. 11A-11D, first SDU segment 1102, a second SDU segment 1104, and a third SDU segment 1106 are shown. In this example, first SDU segment 1102 is a newly received SDU segment, and second SDU segment 1104 third SDU segment 1106 are previously received SDU segments stored in segment reassembly buffer 424. In this overlap scenario, overlap removal circuitry 426 determines that second SDU segment 1104 overlaps with at least third SDU segment 1106. Thus, according to SO position, first SDU segment 1102 is assigned the first label (e.g., SO nextup), second SDU segment 1104 is assigned the second label (e.g., SO current), and the third SDU segment 1106 is assigned the third label (e.g., SO_previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 11 A at a first time, the set of operations (e.g., operations B, C, and D) depicted in FIG. 1 IB at a second time different than the first time, and the set of operations (e.g., operations B, C, and D) depicted in FIGs. 11C and 1 ID at a third time different than the first and second times.

[0094] Referring to FIG. 11 A, overlap removal circuitry 426 may determine that neither the first set of overlap criteria (e.g., expressions (1) and (2)) nor the second set of overlap criteria (e.g., represented by expression (4)) are met, but the third set of overlap criteria (e.g., represented by expression (5)) is met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels, so the second label (e.g., SO current) is assigned to first SDU segment 1102, the third label (e.g., SO_previous) is assigned to second SDU segment 1104, and the fourth label (e.g., SO _past) is assigned to third SDU segment 1106. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIG. 1 IB.

[0095] Referring to FIG. 1 IB, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are not met. However, in this example, overlap removal circuitry 426 may determine the second set of overlap criteria (e.g., represented by expression (4)) is met. Accordingly, overlap removal circuitry 426 may implement the second overlap removal procedure, which includes discarding second SDU segment 1104. This is because the data contained in second SDU segment 1104 is received in its entirety in first SDU segment 1102, thereby rendering the second SDU segment 1104 redundant. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met, and hence, may reassign the third label (e.g., SO_previous) to third SDU segment 1106.

[0096] Referring to FIG. 11C, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are met with the reassigned labels. In response to the first set of overlap criteria being met at the third time, overlap removal circuitry 426 may perform the first overlap removal procedure to reduce the length (e.g., LEN current) of first SDU segment 1002 according to expression (3). In the example depicted in FIGs. 11C and 11D, the first overlap removal procedure removes SDU segment overlap of first SDU segment 1002 and second SDU segment 1004. After the first overlap removal procedure is performed at the third time, the length of first SDU segment 1002 is LEN current', as depicted in FIG. 1 ID. Then, at the third time, overlap removal circuitry 426 may determine that the second set of overlap removal criteria associated with operation C is not met, in this example. Because the third set of overlap removal criteria associated with operation D is met and the SDU segment assigned the first label (e.g., SO current) is the SDU segment with the smallest SO (e.g., first SDU segment 1102), overlap removal circuitry 426 may determine that all SDU overlap associated with first SDU segment 1102 is removed. Thus, the operation concludes, and first SDU segment 1102 is saved in segment reassembly buffer 424 in order of its SO.

[0097] Referring to FIGs. 12A-12C, first SDU segment 1202, a second SDU segment 1204, and a third SDU segment 1206 are shown. In this example, first SDU segment 1202 is a newly received SDU segment, and second SDU segment 1204 and third SDU segment 1206 are previously received SDU segments stored in segment reassembly buffer 424. In this overlap scenario, overlap removal circuitry 426 determines that first SDU segment 1202 overlaps with second SDU segment 1204. Moreover, overlap removal circuitry 426 may determine that first SDU segment 1202 and second SDU segment 1204 have the same SO. In this scenario, first SDU segment 1202 may be assigned the first label (e.g., SO_nextup) and second SDU segment 1204 may be assigned the second label (e.g., SO current), in some implementations. Third SDU segment 1206 may be assigned the third label (e.g., SO_previous). However, as described below in connection with FIGs. 13A-13C, the labels of the first and second SDU segments may be reversed and still result in the proper removal of SDU overlap by the exemplary overlap removal procedure. Still referring to FIGs. 12A-12C, overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 12A at a first time, the set of operations (e.g., operations B, C, and D) depicted in FIG. 12B at a second time different than the first time, and the set of operations (e.g., operations B, C, and D) depicted in FIG. 12C at a third time different than the first and second times.

[0098] Referring to FIG. 12 A, overlap removal circuitry 426 may determine that neither the first set of overlap criteria (e.g., expressions (1) and (2)) nor the second set of overlap criteria (e.g., represented by expression (4)) are met, but the third set of overlap criteria (e.g., represented by expression (5)) is met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels, so the second label (e.g., SO current) is assigned to first SDU segment 1202, the third label (e.g., SO_previous) is assigned to second SDU segment 1204, and the fourth label (e.g., SO _past) is assigned to third SDU segment 1206. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIG. 12B.

[0099] Referring to FIG. 12B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are not met. However, in this example, overlap removal circuitry 426 may determine the second set of overlap criteria (e.g., represented by expression (4)) is met. Accordingly, overlap removal circuitry 426 may implement the second overlap removal procedure, which includes discarding second SDU segment 1204. Here, overlap removal circuitry 426 may delete second SDU segment 1204 from segment reassembly buffer 424. In its place, overlap removal circuitry 426 may include a dummy entry to indicate this entry should be skipped during SDU segment reassembly. This is because the data carried by second SDU segment 1204 is received in its entirety in first SDU segment 1202, which is a larger SDU segment. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met, and hence, may reassign the third label (e.g., SO_previous) to third SDU segment 1206, which are the labels in FIG. 12C.

[0100] Referring to FIG. 12C, overlap removal circuitry 426 may determine that the first and second sets of overlap criteria associated with operations B and C, respectively, are not met, and that the third set of overlap criteria associated with operation D is met. Furthermore, because the first label (e.g., SO current) is assigned to the SDU segment with the smallest SO (e.g., first SDU segment 1202), the operation may conclude.

[0101] Referring to FIGs. 13A-13C, first SDU segment 1302, a second SDU segment 1304, and a third SDU segment 1306 are shown. In this example, second SDU segment 1304 is a newly received SDU segment, and first SDU segment 1302 and third SDU segment 1306 are previously received SDU segments stored in segment reassembly buffer 424. In this overlap scenario, overlap removal circuitry 426 determines that first SDU segment 1302 overlaps with second SDU segment 1304. Moreover, overlap removal circuitry 426 may determine that first SDU segment 1302 and second SDU segment 1304 have the same SO. In this scenario, first SDU segment 1302 may be assigned the first label (e.g., SO nextup) and second SDU segment 1304 may be assigned the second label (e.g., SO current), in some implementations. Third SDU segment 1306 may be assigned the third label (e.g., SO_previous). Overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 13 A at a first time, the set of operations (e.g., operations B, C, and D) depicted in FIG. 13B at a second time different than the first time, and the set of operations (e.g., operations B, C, and D) depicted in FIG. 13C at a third time different than the first and second times.

[0102] Referring to FIG. 13 A, overlap removal circuitry 426 may determine that neither the first set of overlap criteria (e.g., expressions (1) and (2)) nor the second set of overlap criteria (e.g., represented by expression (4)) are met, but the third set of overlap criteria (e.g., represented by expression (5)) is met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels, so the second label (e.g., SO current) is assigned to first SDU segment 1302, the third label (e.g., SO_previous) is assigned to second SDU segment 1304, and the fourth label (e.g., SO _past) is assigned to third SDU segment 1306. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIG. 13B.

[0103] Referring to FIG. 13B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) is not met. Thus, overlap removal circuitry 426 may perform the first overlap removal procedure to reduce the length of first SDU segment 1302 assigned the second label (e.g., SO current), according to expression (3). In this example, LEN current is equal to zero after the first overlap removal procedure is performed. This is because first SDU segment 1302 is completely overlapped by second SDU segment 1304, and hence, first SDU segment 1302 may be discarded. Here, overlap removal circuitry 426 may delete first SDU segment 1302 from segment reassembly buffer 424. In its place, overlap removal circuitry 426 may include a dummy entry to indicate this entry should be skipped during SDU segment reassembly. This is because the data contained in first SDU segment 1302 is received in its entirety in second SDU segment 1304, which is a larger SDU segment. After implementing the first overlap removal procedure, overlap removal circuitry 426 may determine that the second set of overlap criteria (e.g., represented by expression (4)) is not met and that the third set of overlap criteria (e.g., represented by expression (5)) is met. Hence, overlap removal circuitry 426 may reassign the second label (e.g., SO current) to second SDU segment 1304 and the third label (e.g., SO_previous) to third SDU segment 1306, which are the labels in FIG. 13C.

[0104] Referring to FIG. 13C, overlap removal circuitry 426 may determine that the first and second sets of overlap criteria associated with operations B and C, respectively, are not met, and that the third set of overlap criteria associated with operation D is met. Furthermore, because the first label (e.g., SO current) is assigned to the SDU segment with the smallest SO (e.g., first SDU segment 1302), the operation may conclude.

[0105] Referring to FIGs. 14A-14C, first SDU segment 1402, a second SDU segment 1404, and a third SDU segment 1406 are shown. In this example, first SDU segment 1402 is a newly received SDU segment, and second SDU segment 1404 and third SDU segment 1406 are previously received SDU segments stored in segment reassembly buffer 424. In this overlap scenario, overlap removal circuitry 426 determines that first SDU segment 1402 overlaps with second SDU segment 1404. In this scenario, first SDU segment 1402 may be assigned the first label (e.g., SO nextup), second SDU segment 1404 may be assigned the second label (e.g., SO current), and third SDU segment 1406 may be assigned the third label (e.g., SO_previous). Still referring to FIGs. 14A-14C, overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 14A at a first time, the set of operations (e.g., operations B, C, and D) depicted in FIG. 14B, at a second time different than the first time, and the set of operations (e.g., operations B, C, and D) depicted in FIG. 14C at a third time different than the first and second times.

[0106] Referring to FIG. 14A, overlap removal circuitry 426 may determine that neither the first set of overlap criteria (e.g., expressions (1) and (2)) nor the second set of overlap criteria (e.g., represented by expression (4)) are met, but the third set of overlap criteria (e.g., represented by expression (5)) is met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels, so the second label (e.g., SO current) is assigned to first SDU segment 1402, the third label (e.g., SO_previous) is assigned to second SDU segment 1404, and the fourth label (e.g., SO _past) is assigned to third SDU segment 1406. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIG. 14B.

[0107] Referring to FIG. 14B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are not met. However, in this example, overlap removal circuitry 426 may determine the second set of overlap criteria (e.g., represented by expression (4)) is met. Accordingly, overlap removal circuitry 426 may implement the second overlap removal procedure, which includes discarding second SDU segment 1404. Here, overlap removal circuitry 426 may delete second SDU segment 1404 from segment reassembly buffer 424. In its place, overlap removal circuitry 426 may include a dummy entry to indicate this entry should be skipped during SDU segment reassembly. This is because the data carried by second SDU segment 1404 is received in its entirety in first SDU segment 1402, which is a larger SDU segment. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met, and hence, may reassign the third label (e.g., SO_previous) to third SDU segment 1406, which are the labels in FIG. 14C.

[0108] Referring to FIG. 14C, overlap removal circuitry 426 may determine that the first and second sets of overlap criteria associated with operations B and C, respectively, are not met, and that the third set of overlap criteria associated with operation D is met. Furthermore, because the first label (e.g., SO current) is assigned to the SDU segment with the smallest SO (e.g., first SDU segment 1402), the operation may conclude.

[0109] Referring to FIGs. 15A-15D, first SDU segment 1502, a second SDU segment 1504, and a third SDU segment 1506 are shown. In this example, first SDU segment 1502 is a newly received SDU segment, and second SDU segment 1504 and third SDU segment 1506 are previously received SDU segments stored in segment reassembly buffer 424. In this overlap scenario, overlap removal circuitry 426 determines that first SDU segment 1502 overlaps with second SDU segment 1504. In this scenario, first SDU segment 1502 may be assigned the first label (e.g., SO nextup), second SDU segment 1504 may be assigned the second label (e.g., SO current), and third SDU segment 1506 may be assigned the third label (e.g., SO_previous). Still referring to FIGs. 15A-15D, overlap removal circuitry 426 may perform the set of operations (e.g., operations B, C, and D) depicted in FIG. 15 A at a first time, the set of operations (e.g., operations B, C, and D) depicted in FIG. 15B at a second time different than the first time, the set of operations (e.g., operations B, C, and D) depicted in FIG. 15C at a third time different than the first and second times, and the set of operations (e.g., operations B, C, and D) depicted in FIG. 15D at a fourth time different than the first, second, and third times.

[0110] Referring to FIG. 15 A, overlap removal circuitry 426 may determine that neither the first set of overlap criteria (e.g., expressions (1) and (2)) nor the second set of overlap criteria (e.g., represented by expression (4)) are met, but the third set of overlap criteria (e.g., represented by expression (5)) is met. Because the third set of overlap removal criteria associated with operation D is met, overlap removal circuitry 426 may reassign labels, so the second label (e.g., SO current) is assigned to first SDU segment 1502, the third label (e.g., SO_previous) is assigned to second SDU segment 1504, and the fourth label (e.g., SO _past) is assigned to third SDU segment 1506. These labels are used to perform the set of operations (e.g., operations B, C, and D) at the second time, as shown in FIG. 15B. [0111] Referring to FIG. 15B, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are not met. However, in this example, overlap removal circuitry 426 may determine the second set of overlap criteria (e.g., represented by expression (4)) is met. Accordingly, overlap removal circuitry 426 may implement the second overlap removal procedure, which includes discarding second SDU segment 1504. Here, overlap removal circuitry 426 may delete second SDU segment 1504 from segment reassembly buffer 424. In its place, overlap removal circuitry 426 may include a dummy entry to indicate this entry should be skipped during SDU segment reassembly. This is because the data carried by second SDU segment 1504 is received in its entirety in first SDU segment 1502, which is a larger SDU segment. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met, and hence, may reassign the third label (e.g., SO_previous) to third SDU segment 1506, which is the label used in FIG. 15C.

[0112] Referring to FIG. 15C, overlap removal circuitry 426 may determine that the first set of overlap criteria (e.g., represented by expressions (1) and (2)) are not met. However, in this example, overlap removal circuitry 426 may determine the second set of overlap criteria (e.g., represented by expression (4)) is met using the reassigned labels. Accordingly, overlap removal circuitry 426 may implement the second overlap removal procedure, which includes discarding third SDU segment 1506. Here, overlap removal circuitry 426 may delete third SDU segment 1506 from segment reassembly buffer 424. In its place, overlap removal circuitry 426 may include a dummy entry to indicate this entry should be skipped during SDU segment reassembly. This is because the data carried by third SDU segment 1506 is also received in its entirety in first SDU segment 1502, which is a larger SDU segment. After implementing the second overlap removal procedure, overlap removal circuitry 426 may determine that the third set of overlap criteria (e.g., represented by expression (5)) is met. Because only first SDU segment 1502 remains, label reassignment may not be performed.

[0113] Referring to FIG. 15D, overlap removal circuitry 426 may determine that the first and second sets of overlap criteria associated with operations B and C, respectively, are not met, and that the third set of overlap criteria associated with operation D is met. Furthermore, because the first label (e.g., SO current) is assigned to the SDU segment with the smallest SO (e.g., first SDU segment 1502), the operation may conclude.

[0114] Thus, as described above in connection with FIGs. 5A-5C, 6A-6B, 7A-7C, 8A-8C, 9A-9C, 10A-10C, 11A-11D, 12A-12C, 13A-13C, 14A-14C, and 15A-15D, the exemplary hardware-based overlap removal procedure implemented by exemplary overlap removal circuitry 426 may efficiently and effectively remove SDU segment overlap with reduced power consumption, processing latency, and fewer computational resources than those techniques performed by other systems.

[0115] FIGs. 16A and 16B illustrate a flowchart of an exemplary method 1600 of wireless communication, according to embodiments of the disclosure. Exemplary method 1600 may be performed by an apparatus for wireless communication, e.g., such as user equipment 202, node 300, apparatus 400, baseband chip 402, transmit end Layer 2 circuitry 420, receive end Layer 2 circuitry 422, segment reassembly buffer 424, and/or overlap removal circuitry 426. Method 1600 may include steps 1602-1624 as described below. It is to be appreciated that some of the steps may be optional, and some of the steps may be performed simultaneously, or in a different order than shown in FIGs. 16A and 16B.

[0116] Referring to FIG. 16A, at 1602, the apparatus may receive, from transmit end Layer 2 circuitry, a plurality of SDU segments each having a LEN and an SO within an SDU. For example, referring to FIG. 4A, Transmit end Layer 2 circuitry 420 may include, e.g., medium access control (MAC) circuitry, radio link control (RLC) circuitry, packet data convergence protocol (PDCP) circuitry, etc. Similarly, receive end Layer 2 circuitry may include, e.g., MAC circuitry, RLC circuitry, PDCP circuitry, etc. The transmit end Layer 2 circuitry 420 and receive end Layer 2 circuitry 422 may include the circuitry associated with any two adjacent layers in the Layer 2 protocol stack. By way of example and not limitation, in the downlink, the transmit end Layer 2 circuitry 420 may include the MAC circuitry, and the receive end Layer 2 circuitry 422 may include the RLC circuitry. On the other hand, in the uplink, the transmit end Layer 2 circuitry 420 may include the RLC circuitry, and the receive end Layer 2 circuitry 422 may include the MAC circuitry. In either the uplink or the downlink, transmit end Layer 2 circuitry may generate an SDU and segment it into a plurality of SDU segments. Each SDU segment may be sent to the receive end Layer 2 circuitry 422 in a different data packet, for example. In this context, a data packet may include a header and SDU segment. When in acknowledged mode (AMD), receive end Layer 2 circuitry 422 may indicate (to transmit end Layer 2 circuitry 420) when a data packet is not properly received or cannot be properly decoded. When this happens, transmit end Layer 2 circuitry 420 may retransmit the SDU segment to receive end Layer 2 circuitry 422. However, for various reasons, transmit end Layer 2 circuitry 420 may re-segment the SDU segment into a different size such that it partially overlaps with other SDU segments received by receive end Layer 2 circuitry 422. This overlap of SDU segments may include redundant data. Moreover, the SDU segments may be received out of order.

[0117] At 1604, the apparatus may maintain, in order of SO within the SDU, the plurality of SDU segments. For example, referring to FIGs. 4 A and 4B, after performing its associated receive end processing of an SDU segment, receive end Layer 2 circuitry 422 may send the SDU to segment reassembly buffer 424, which keeps track of which SDU segments have been received. As shown in FIG. 4B, segment reassembly buffer 424 (e.g., a linear buffer) maintains each SDU segment 450 in order of its SO.

[0118] At 1606, the apparatus may determine whether there is SDU overlap between two or more of the first SDU segment, the second SDU segment, or the third SDU segment. In some embodiments, the SDU overlap may be between a newly received SDU segment and one or more SDU segments maintained by a segment reassembly buffer. For example, referring to FIG. 4 A, for each SDU segment that comes out of the receive end processing, overlap removal circuitry 426 may determine whether any SDU segment overlap exists between the newly received SDU segment and those maintained in segment reassembly buffer 424. To that end, overlap removal circuitry 426 starts from the last SDU segment (e.g., the SDU segment with the largest SO) maintained in segment reassembly buffer 424 and moves up the queue, performing the sequence of overlap removal procedures for each SDU segment that is checked against the newly received SDU segment. When SDU overlap for a newly received SDU segment is not detected (at 1606: NO), the operations may move to 1624. Otherwise, when it is determined that the newly received SDU segment overlaps with at least one SDU segment maintained by segment reassembly buffer 424 (at 1606: YES), the operations may move to 1608.

[0119] At 1608, the apparatus may assign, at a first time, a first label to a first SDU segment of the plurality of SDU segments with the smallest SO, a second label to a second SDU segment of the plurality of SDU segments with the smallest SO or a next smallest SO, and a third label to a third SDU segment of the plurality of SDU segments with a largest SO. For example, referring to FIG. 4A, when SDU overlap of the newly received SDU segments with at least one of the maintained SDU segments is detected, overlap removal circuitry 426 assigns a set of labels to the newly received SDU segment, the SDU segment for which overlap was detected, and another SDU segment located either before or after the SDU segment for which overlap was detected. The set of labels may be assigned based on the SO of each of the three SDU segments, as described below in connection with FIGs. 5A-5C, 6A-6B, 7A-7C, 8A-8C, 9A-9C, 10A-10C, 11A-11D, 12A-12C, 13A-13C, 14A-14C, and 15A-15D. By way of example and not limitation, a first SDU segment (newly received or maintained) of the three SDU segments with the smallest SO may be assigned a first label, the SDU segment of the three SDU segments with an SO greater than or equal to the smallest SO may be assigned a second label, and the SDU segment of the three SDU segments with the largest SO may be assigned a third label. By way of example and non-limitation, the first label may be “SO nextup,” the second label may be “SO current,” and the third label may be “SO_previous.” It is understood that the first, second, and third labels are not limited to the illustrative examples used herein. Instead, any type of label (e.g., text-based, number-based, symbol-based, any combination thereof, etc.) may be used by overlap removal circuitry 426 to distinguish between the three SDU segments when performing operations B, C, and D without departing from the scope of the present disclosure.

[0120] At 1610, the apparatus may determine whether a first set of overlap criteria associated with a first overlap removal procedure is/are met. For example, referring to FIG. 4A, once the labels are assigned, overlap removal circuitry 426 initiates operation B. Operation B may be performed to remove SDU overlap between the SDU segment assigned the second label (e.g., SO current) and the SDU segment assigned the third label (e.g., SO _previous). Before performing a first overlap removal procedure associated with operation B, overlap removal circuitry 426 may determine whether a first set of overlap criteria associated with operation B is met. When the first set of overlap criteria are met, overlap removal circuitry 426 may perform a first overlap removal procedure to remove SDU overlap of the SDU segment assigned the second label (e.g., SO current) and the SDU segment assigned the third label (e.g., SO_previous). Overlap removal circuitry 426 may determine whether the first set of overlap criteria are met by performing a set of computations, e.g., such as those represented above as expressions (1) and (2). When both expressions (1) and (2) are true, overlap removal circuitry 426 may determine that the first set of overlap criteria are met. In response to determining the first set of overlap criteria are met (YES: at 1610), the operations may move to 1612. Otherwise, in response to determining that the first set of overlap criteria are not met (NO: at 1610), the operations may move to 1614.

[0121] At 1612, the apparatus may implement the first overlap removal procedure. For example, referring to FIG. 4 A, when both expressions (1) and (2) are true, overlap removal circuitry 426 may determine that the first set of overlap criteria is met. When the first set of overlap criteria is met, overlap removal circuitry 426 may perform the first overlap removal procedure associated with operation B. The first overlap removal procedure may result in removal (e.g., trimming off) of SDU overlap between the SDU segments assigned the second label (e.g., SO current) and the third label (e.g., SO previous). Overlap removal circuitry 426 may remove the overlap of these SDU segments by reducing the length (e.g., LEN current) of the SDU segment assigned the second label (e.g., SO current) according to expression (3), shown above. When LEN current = 0 according to expression (3), this means the entire SDU segment assigned the second label (e.g., SO current) is encompassed by the SDU segment assigned the third label (e.g., SO _previous). In this instance, overlap removal circuitry 426 may discard the entire SDU segment assigned the second label (e.g., SO current). This is because all data carried in this SDU segment is redundant to the data previously received and contained in the SDU segment assigned the third label (e.g., SO_previous). Thus, the SDU segment assigned the second label (e.g., SO current) may be discarded. Overlap removal circuitry 426 may discard the SDU segment assigned the second label (e.g., SO current) by including a dummy entry in segment reassembly buffer 424, for example. The dummy entry indicates that this dummy SDU should be skipped during segment reassembly.

[0122] At 1614, the apparatus may determine whether a second set of overlap criteria associated with a second overlap removal procedure is/are met. For example, referring to FIG. 4A, to determine whether the second set of overlap criteria, overlap removal circuitry 426 may perform the computation represented above as expression (4). When expression (4) is true, the SDU segment assigned the second label (e.g., SO current) is greater than or equal to the size of the SDU segment assigned the third label (e.g., SO _previous). In other words, all data contained in the SDU segment assigned the third label (e.g., SO _previous) is encompassed by and redundant to at least a portion of the data contained in the SDU segment assigned the second label (e.g., SO current). When the second set of overlap criteria is/are met (YES: at 1614), the operations may move to 1616 in FIG. 16B. Otherwise, when the second set of overlap criteria is/are not met (NO: at 1614), the operations may move to 1618 in FIG. 16B.

[0123] Referring to FIG. 16B, at 1616, the apparatus may implement the second overlap removal procedure. For example, referring to FIG. 4A, when expression (4) is true, overlap removal circuitry 426 may implement the second overlap removal procedure to discard the redundant data contained in the SDU segment assigned the third label (e.g., SO _previous). Overlap removal circuitry 426 may discard the SDU segment assigned the third label (e.g., SO current) by including, in its place, a dummy entry (e.g., no data) in segment reassembly buffer 424, for example. The dummy entry indicates that this entry should be skipped during segment reassembly. [0124] At 1618, the apparatus may determine whether a third set of overlap criteria associated with a third overlap removal procedure is/are met. For example, referring to FIG. 4B, after determining that one or more of expression (4) is not true or after completing the second overlap removal procedure, overlap removal circuitry 426 may move on to operation D. Operation D may be performed to remove any SDU overlap between the SDU segments assigned the second label (e.g., SO current) and the third label (e.g., SO _previous), overlap removal circuitry 426 may determine whether a third set of overlap criteria associated with operation D is met. When the third set of overlap criteria is met, overlap removal circuitry 426 may perform a third overlap removal procedure to remove any SDU overlap between the SDU segment assigned the second label (e.g., SO current) and the third label (e.g., SO_previous). Overlap removal circuitry 426 may determine whether the third set of overlap criteria is met by performing the computation represented above as expression (5). Due to the labeling mechanism and sequence of operations B and C, expression (5) may always be true. If, after operation B or C, the SDU segment with the smallest SO has the second label (e.g., SO current) assigned thereto, then all SDU overlap caused by the newly received SDU segment has been eliminated. On the other hand, if neither of operation B or C has been performed during a first run through of the set of operations, the SDU segment with the smallest SO may still have assigned thereto the first label (e.g., SO nextup), the SDU segment with the next smallest (or equal to the smallest) SO may still be assigned the second label (e.g., SO current), and the SDU segment with the largest SO may still be assigned the third label (e.g., SO _previous) when overlap removal circuitry 426 begins operation D. When the third set of overlap criteria are met (YES: at 1618), the operations may move to 1620. Otherwise, when the third set of overlap criteria is/are not met (NO: at 1618), the operations may move to 1622.

[0125] At 1620, the apparatus may determine whether the SDU segment with the smallest SO is assigned the second label. For example, referring to FIG. 4A, if after operation B or C, the SDU segment with the smallest SO has the second label (e.g., SO current) assigned thereto, then overlap removal circuitry 426 may determine that all SDU overlap caused by the newly received SDU segment has been eliminated. On the other hand, if neither of operation B or C has been performed during a first run through of the set of operations, the SDU segment with the smallest SO may still have assigned thereto the first label (e.g., SO nextup), the SDU segment with the next smallest (or equal to the smallest) SO may still be assigned the second label (e.g., SO current), and the SDU segment with the largest SO may still be assigned the third label (e.g., SO _previous) when overlap removal circuitry 426 begins operation D. When the SDU segment with the smallest SO is assigned the second label, and the SDU segment with the largest SDU segment is assigned the third label (YES: at 1620), the operations may move to 1624 in FIG. 16A. Otherwise, when one or more of the SDU segments with the smallest SO is not assigned the second label, and the SDU segment with the largest SDU segment is not assigned the third label (NO: at 1620), the operations may move to 1622.

[0126] At 1622, the apparatus may implement the third overlap removal procedure. For example, referring to FIG. 4A, due to the labeling mechanism and sequence of operations B and C, expression (5) may always be true. If, after operation B or C, the SDU segment with the smallest SO has the second label (e.g., SO current) assigned thereto, then overlap removal circuitry 426 may determine that all SDU overlap caused by the newly received SDU segment has been eliminated. On the other hand, if neither of operation B or C has been performed during a first run through (at a first time) of the set of operations, the SDU segment with the smallest SO may still have assigned thereto the first label (e.g., SO nextup), the SDU segment with the next smallest (or equal to the smallest) SO may still be assigned the second label (e.g., SO current), and the SDU segment with the largest SO may still be assigned the third label (e.g., SO _previous) when overlap removal circuitry 426 begins operation D. When the SDU segments still have assigned the original labels in order of SO, overlap removal circuitry performs a third overlap removal procedure by reassigning the SDU segment with the smallest SO the second label (e.g., SO current), the SDU segment with the next smallest (or equal to the smallest) SO the third label (e.g., SO_previous), and the SDU segment with the largest SO the fourth label (e.g., SO _past). Then, overlap removal circuitry 426 performs each of operations B-D again (at a second time) using the labels reassigned by the third overlap removal procedure. If overlap removal circuitry 426 performs operations B- D again at a third time, the third overlap removal procedure may reassign the SDU segment with the largest SO to the third label (e.g., SO_previous).

[0127] At 1624, the apparatus may maintain the SDU segment. For example, referring to FIG. 4A, once the SDU overlap is removed, the newly received SDU segment is maintained in order of its SO in segment reassembly buffer 424.

[0128] According to one aspect of the present disclosure, a baseband chip is provided. The baseband chip may include receive end Layer 2 circuitry configured to receive, from transmit end Layer 2 circuitry, a plurality of SDU segments each having a LEN and an SO within an SDU. Information associated with the LEN and the SO may be included in an SDU header. The baseband chip may include a segment reassembly buffer configured to maintain, in order of SO within the SDU, the plurality of SDU segments. The baseband chip may further include overlap removal circuitry configured to assign, at a first time, a first label to a first SDU segment of the plurality of SDU segments with the smallest SO, a second label to a second SDU segment of the plurality of SDU segments with the smallest SO or a next smallest SO, and a third label to a third SDU segment of the plurality of SDU segments with a largest SO. The overlap removal circuitry may be configured to, in response to determining that two or more of the first SDU segment, the second SDU segment, or the third SDU segment overlap, implement, in sequence, a set of overlap removal procedures based on the first label, the second label, and the third label assigned at the first time to remove any overlap of the second SDU segment and the third SDU segment.

[0129] In some embodiments, the set of overlap removal procedures may include a first overlap removal procedure, a second overlap removal procedure, and a third overlap removal procedure. In some embodiments, the first SDU segment may have a first LEN and a first SO, the second SDU segment may have a second LEN and a second SO, and the third SDU segment may have a third LEN and a third SO. In some embodiments, the overlap removal circuitry may be configured to implement, in sequence, the set of overlap removal procedures at the first time by, in response to determining that a first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the first overlap removal procedure. In some embodiments, the overlap removal circuitry may be configured to implement, in sequence, the set of overlap removal procedures at the first time by, in response to determining that the first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the second overlap removal procedure. In some embodiments, the overlap removal circuitry may be configured to implement, in sequence, the set of overlap removal procedures at the first time by, in response to determining that the second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a third set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the third overlap removal procedure. In some embodiments, the first set of overlap criteria, the second set of overlap criteria, and the third set of overlap criteria may be different.

[0130] In some embodiments, the first set of overlap criteria may include a sum of the second SO and the second LEN of the second SDU segment being greater than the third SO of the third SDU segment. In some embodiments, the first set of overlap criteria may include a sum of the second SO and the second LEN of the second SDU segment being less than or equal to a sum of the third SO and the third LEN of the third SDU segment.

[0131] In some embodiments, the overlap removal circuitry may be configured to implement the first overlap removal procedure by removing a first overlap between the second SDU segment and the third SDU segment by setting the second LEN equal to the third SO minus the second SO.

[0132] In some embodiments, the second set of overlap criteria may include a sum of the second SO and the second LEN being greater than or equal to a sum of the third SO and the third LEN.

[0133] In some embodiments, the overlap removal circuitry may be configured to implement the second overlap removal procedure by removing the third SDU segment from the segment reassembly buffer. In some embodiments, the overlap removal circuitry may be configured to implement the second overlap removal procedure by assigning, at a second time, the second label to the first SDU segment and the third label to the second SDU segment.

[0134] In some embodiments, the overlap removal circuitry may be further configured to reimplement, in sequence, the set of overlap removal procedures based on the second label assigned to the first SDU segment and the third label assigned to the second SDU segment at the second time to remove any overlap between the first SDU segment and the second SDU segment.

[0135] In some embodiments, the third set of overlap criteria may include a sum of the second SO and the second LEN of the second SDU segment being less than the third SO of the third SDU segment.

[0136] In some embodiments, the overlap removal circuitry may be configured to implement the third overlap removal procedure by assigning, at a second time, the second label to the first SDU segment, the third label to the second SDU segment, and a fourth label to the third SDU segment.

[0137] In some embodiments, the overlap removal circuitry may be further configured to reimplement, in sequence, the set of overlap removal procedures based on the second label assigned to the first SDU segment, the third label assigned to the second SDU segment, and the fourth label assigned to the third SDU segment at the second time to remove any overlap of the first SDU segment and the second SDU segment.

[0138] According to another aspect of the present disclosure, a baseband chip is provided. The baseband chip may include receive end Layer 2 circuitry configured to receive, from transmit end Layer 2 circuitry, a first SDU segment having a first SO and a first LEN. Information associated with the first SO and the first LEN may be included in an SDU header received with the first SDU segment. The baseband chip may include a segment reassembly buffer configured to maintain, a second SDU segment having a second SO and a second LEN. In some embodiments, the second SO may be greater than or equal to the first SO of the first SDU segment. The baseband chip may include overlap removal circuitry configured to, in response to determining that the first SDU segment and the second SDU segment overlap, implement, at a first time, a set of overlap removal procedures in sequence based on the first SO, the first LEN, the second SO, and the second LEN.

[0139] In some embodiments, the set of overlap removal procedures may include a first overlap removal procedure, a second overlap removal procedure, a third overlap removal procedure, and an SDU segment storage procedure. In some embodiments, the overlap removal circuitry may be configured to implement, in sequence, the set of overlap removal procedures at the first time by, in response SDU overlap between the first SDU segment and the second SDU segment being identified and in response to a first set of overlap criteria associated with the first SDU segment and the second SDU segment being met, implementing the first overlap removal procedure. In some embodiments, the overlap removal circuitry may be configured to implement, in sequence, the set of overlap removal procedures at the first time by, in response to the first set of overlap criteria associated with the first SDU segment and the second SDU segment not being met and in further response to a second set of overlap criteria associated with the first SDU segment and the second SDU segment being met, implementing the second overlap removal procedure. In some embodiments, the overlap removal circuitry may be configured to implement, in sequence, the set of overlap removal procedures at the first time by, in response to the second set of overlap criteria associated with the first SDU segment and the second SDU segment not being met and in further response to a third set of overlap criteria associated with the first SDU segment and the second SDU segment being met, implementing the third overlap removal procedure. In some embodiments, the overlap removal circuitry may be configured to implement, in sequence, the set of overlap removal procedures at the first time by, in response to no SDU overlap being identified after implementing the first overlap removal procedure, the second overlap removal procedure, and the third overlap removal procedure, implementing the SDU segment storage procedure to maintain the first SDU segment in the SDU reassembly buffer.

[0140] In some embodiments, the first set of overlap criteria may include no overlap between the first SDU segment and the second SDU segment. In some embodiments, the second set of overlap criteria may include a sum of the first SO and the first LEN of the first SDU segment being greater than the second SO of the second SDU segment. In some embodiments, the first set of overlap criteria may include a sum of the first SO and the first LEN of the first SDU segment being less than or equal to a sum of the second SO and the second LEN of the second SDU segment. [0141] In some embodiments, the overlap removal circuitry may be configured to implement the second overlap removal procedure by removing a first overlap between the first SDU segment and the second SDU segment by setting the first LEN equal to the second SO minus the first SO.

[0142] In some embodiments, the third set of overlap criteria may include a sum of the first SO and the first LEN being greater than or equal to a sum of the second SO and the second LEN. [0143] In some embodiments, the overlap removal circuitry may be configured to implement the third overlap removal procedure by removing the second SDU segment from the segment reassembly buffer.

[0144] In some embodiments, the fourth set of overlap criteria may include a sum of the first SO and the first LEN of the first SDU segment being less than the second SO of the second SDU segment.

[0145] In some embodiments, the segment reassembly buffer may be further configured to maintain a third SDU segment having a third SO and a third LEN, the third SO being less than or equal to the first SO of the first SDU segment. In some embodiments, the overlap removal circuitry may be configured to implement the fourth overlap removal procedure by reimplementing, at a second time, the set of overlap removal procedures in sequence based on the first SO, the first LEN, the third SO, and the third LEN to remove any overlap of the first SDU segment and the third SDU segment.

[0146] According to yet another aspect of the present disclosure, a method of wireless communication of a baseband chip is provided. The method may include receiving, by a receive end Layer 2 protocol stack layer at the baseband chip, a plurality of SDU segments from a transmit end Layer 2 protocol stack layer at the baseband chip. Information associated with the LEN and the SO may be included in an SDU header. In some embodiments, each of the plurality of SDU segments may have an LEN and an SO within the SDU. The method may include maintain, by a segment reassembly buffer, the plurality of SDU segments in order of SO within the SDU. The method may include assigning, by overlap removal circuitry at a first time, a first label to a first SDU segment of the plurality of SDU segments with a smallest SO, a second label to a second SDU segment of the plurality of SDU segments with the smallest SO or a next smallest SO, and a third label to a third SDU segment of the plurality of SDU segments with a largest SO. The method may include, in response to determining that two or more of the first SDU segment, the second SDU segment, or the third SDU segment overlap, implementing, by the overlap removal circuitry, a set of overlap removal procedures in sequence based on the first label, the second label, and the third label assigned at the first time to remove any overlap of the second SDU segment and the third SDU segment.

[0147] In some embodiments, the set of overlap removal procedures may include a first overlap removal procedure, a second overlap removal procedure, and a third overlap removal procedure. In some embodiments, the first SDU segment has a first LEN and a first SO, the second SDU segment has a second LEN and a second SO, and the third SDU segment has a third LEN and a third SO. In some embodiments, the implementing the set of overlap removal procedures in sequence at the first time may include, in response to determining that a first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the first overlap removal procedure. In some embodiments, the implementing the set of overlap removal procedures in sequence at the first time may include, in response to determining that the first set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the second overlap removal procedure. In some embodiments, the implementing the set of overlap removal procedures in sequence at the first time may include, in response to determining that the second set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are not met and in further response to determining that a third set of overlap criteria associated with the second SDU segment assigned the second label and the third SDU segment assigned the third label at the first time are met, implementing the third overlap removal procedure. In some embodiments, the first set of overlap criteria, the second set of overlap criteria, and the third set of overlap criteria may be different.

[0148] The foregoing description of the specific embodiments will so reveal the general nature of the present disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.

[0149] Embodiments of the present disclosure have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.

[0150] The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present disclosure as contemplated by the inventor(s), and thus, are not intended to limit the present disclosure and the appended claims in any way.

[0151] Various functional blocks, modules, and steps are disclosed above. The particular arrangements provided are illustrative and without limitation. Accordingly, the functional blocks, modules, and steps may be re-ordered or combined in different ways than in the examples provided above. Likewise, certain embodiments include only a subset of the functional blocks, modules, and steps, and any such subset is permitted.

[0152] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.