Radio link control reassembling techniques in wireless systems

Methods, systems, and devices for wireless communication are described. In some wireless communications systems, a transmitting device may identify a Radio Link Control (RLC) service data unit (SDU) to be transmitted to a receiving device. In some cases, the transmitting device may not have access to sufficient resources to transmit the entire RLC SDU. As such, the transmitting device may segment the RLC SDU into RLC SDU segments, and the transmitting device may transmit the RLC SDU segments to the receiving device. If an RLC layer at the receiving device receives one or more RLC SDU segments out of sequence, the RLC layer may initiate a reassembly (or reordering) timer. The RLC layer may reassemble the successfully received RLC SDU segments to be passed to upper layers. Once the timer expires, the RLC layer may declare that the missing RLC SDU segments are lost.

CROSS REFERENCES

The present 371 Application for Patent claims priority to International Patent Application No. PCT/CN2018/099621 to Zheng et al., entitled “RADIO LINK CONTROL REASSEMBLING TECHNIQUES IN WIRELESS SYSTEMS,” filed Aug. 9, 2018 and to International Patent Application No. PCT/CN2017/097059 to Zheng et, al, entitled “RADIO LINK CONTROL REASSEMBLING TECHNIQUES IN WIRELESS SYSTEMS,” filed Aug. 11, 2017, each of which is assigned to the assignee hereof.

BACKGROUND

The following relates generally to wireless communication and more specifically to Radio Link Control (RLC) reassembling techniques in wireless systems.

A wireless multiple-access communications system may include a number of base stations or access network nodes, each simultaneously supporting communication for multiple communication devices, which may be otherwise known as user equipment (UE). In some wireless communications systems, a transmitting device may process data at multiple layers of a layered protocol stack prior to transmitting the data to a receiving device. One example of a protocol layer is an RLC layer which may be used to connect upper layers of the protocol stack to lower layers of the protocol stack, in some examples, an RLC layer at a transmitting device may receive an RLC service data unit (SDU) from upper layers for further processing and for transmission to a receiving device.

In some cases, the transmitting device may not have access to sufficient resources to transmit the entire RLC SDU to the receiving device. Accordingly, the transmitting device may segment the RLC SDU into RLC SDU segments, and the transmitting device may transmit the RLC SDU segments to the receiving device on different resources. In such cases, when the receiving device receives only a portion of the entire RLC SDU (i.e., not all segments of the RLC SDU), the receiving device may not be able to determine whether the missing RLC SDU segments were lost in transmission or were not transmitted by the transmitting device. As such, the receiving device may not be able to process the received RLC SDU segments correctly, which may result in degraded communications in a wireless system.

SUMMARY

In some wireless communications systems, a transmitting device may identify a Radio Link Control (RLC) service data unit (SDU) to be transmitted to a receiving device. In some cases, the transmitting device may not have access to sufficient resources to transmit the entire RLC SDU. As such, the transmitting device may segment the RLC SDU into RLC SDU segments, and the transmitting device may transmit the RLC SDU segments to the receiving device. If an RLC layer at the receiving device receives one or more RLC SDU segments out of sequence, the RLC layer may initiate a reassembly (or reordering) timer. Once the timer expires, the RLC layer may declare that the missing RLC SDU segments are lost, and the RLC layer may reassemble the successfully received RLC SDU segments to be passed to upper layers.

A method for wireless communication is described. The method may include receiving, at an RLC layer, an RLC SDU segment of a protocol data unit (PDU), determining that a sequence number associated with the RLC SDU segment is greater than a value of a state variable corresponding to a highest sequence number associated with previously received PDUs or previously received RLC SDU segments, determining that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order, and updating the value of the state variable corresponding to the highest sequence number and initiating a reassembly timer based at least in part on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order.

An apparatus for wireless communication is described. The apparatus may include means for receiving, at an RLC layer, an RLC SDU segment of a PDU, means for determining that a sequence number associated with the RLC SDU segment is greater than a value of a state variable corresponding to a highest sequence number associated with previously received PDUs or previously received RLC SDU segments, means for determining that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order, and means for updating the value of the state variable corresponding to the highest sequence number and initiating a reassembly timer based at least in part on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order.

Another apparatus for wireless communication is described. The apparatus may include a processor, memory in electronic communication with the processor, and instructions stored in the memory. The instructions may be operable to cause the processor to receive, at an RLC layer, an RLC SDU segment of a PDU, determine that a sequence number associated with the RLC SDU segment is greater than a value of a state variable corresponding to a highest sequence number associated with previously received PDUs or previously received RLC SDU segments, determine that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order, and update the value of the state variable corresponding to the highest sequence number and initiating a reassembly timer based at least in part on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order.

A non-transitory computer readable medium for wireless communication is described. The non-transitory computer-readable medium may include instructions operable to cause a processor to receive, at an RLC layer, an RLC SDU segment of a PDU, determine that a sequence number associated with the RLC SDU segment is greater than a value of a state variable corresponding to a highest sequence number associated with previously received PDUs or previously received RLC SDU segments, determine that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order, and update the value of the state variable corresponding to the highest sequence number and initiating a reassembly timer based at least in part on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order.

In some examples of the method, apparatus, and non-transitory computer-readable medium described above, determining that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment may be received out of order includes determining that a first byte of the sequence number associated with the received RLC SDU segment is not in a receive buffer at the RLC layer. In some examples of the method, apparatus, and non-transitory computer-readable medium described above, determining that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment may be received out of order includes determining that the buffered RLC SDU segments with the same sequence number is not in consecutive byte order.

In some examples of the method, apparatus, and non-transitory computer-readable medium described above, updating the value of the state variable corresponding to the highest sequence number includes updating the value of the state variable corresponding to the highest sequence number with the sequence number associated with the RLC SDU segment or with a number greater than the sequence number associated with the RLC SDU segment. In some examples of the method, apparatus, and non-transitory computer-readable medium described above, the value of the state variable may be initially set to zero.

In some examples of the method, apparatus, and non-transitory computer-readable medium described above, determining that the sequence number associated with the RLC SDU segment may be greater than the value of the state variable corresponding to the highest sequence number includes determining that the sequence number associated with the RLC SDU segment may be greater than zero. In some examples of the method, apparatus, and non-transitory computer-readable medium described above, the reassembly timer includes a t-reassembly timer or a t-reordering timer.

DETAILED DESCRIPTION

Some wireless devices may support the use of protocol layers for processing data to be transmitted to another wireless device, or for processing data received from another wireless device. One example of a protocol layer may be a Radio Link Control (RLC) layer which may be used to perform packet segmentation and reassembly for communication over logical channels. In addition to the above functions, the RLC layer may be used to connect upper layers of a protocol stack to lower layers of the protocol stack. At a transmitting device, the RLC layer may receive RLC service data units (SDUs) from upper layers, process these SDUs to generate RLC protocol data units (PDUs), and pass the RLC PDUs to lower layers. At a receiving device, the RLC layer may receive RLC PDUs from lower layers, process these RLC PDUs to generate RLC SDUs, and pass the RLC SDUs to upper layers.

As an example, an RLC layer at a transmitting device may receive an RLC SDU from an upper layer for processing at the RLC layer and transmission to a receiving device (e.g., after further processing at lower layers). Once the RLC SDU is transmitted to the receiving device, the RLC layer at the receiving device may receive the RLC SDU and pass the RLC SDU to upper layers. In some cases, the receiving device may fail to receive the RLC SDU from the transmitting device. In such instances, the transmitting device may be triggered to retransmit the RLC SDU (e.g., based on the results of a poll request). However, the transmitting device may not have access to sufficient resources to retransmit the entire RLC SDU. As such, the transmitting device may transmit a segment of the RLC SDU to the receiving device.

When the RLC layer at the receiving device receives the RLC SDU segment from the transmitting device, the RLC layer may determine that the entire RLC SDU was not received. Accordingly, the receiving device may wait to receive the remaining segments of the RLC SDU before reassembling the RLC SDU to be passed to upper layers. To limit delays in the reassembly process and to detect reception failures, the RLC layer may utilize a reassembly timer that sets a maximum time for waiting to receive missing RLC SDU segments. Once the timer expires and the receiving device fails to receive the remaining RLC SDU segments, the RLC layer may declare that the remaining RLC SDU segments are lost, and the RLC layer may reassemble the successfully received RLC SDU segments to be passed to upper layers.

Because the transmitting device described above would have to transmit an entire RLC SDU before retransmitting an RLC SDU segment (e.g., in Long Term Evolution (LTE) systems), these techniques for detecting reception failures of RLC SDU segments may be acceptable. That is, the determination made by the receiving device that the remaining RLC SDU segments are lost may not be because the remaining RLC SDU segments have not been transmitted since the entire RLC SDU was transmitted before the RLC SDU segments were retransmitted.

In some other wireless communications systems (e.g., New Radio (NR) systems), a transmitting device may transmit a segment of an RLC SDU to a receiving device without first transmitting the entire RLC SDU to the receiving device (e.g., when the transmitting device does not have access to sufficient resources to transmit the entire RLC SDU Similar to the techniques described above, when the receiving device receives the RLC SDU segment, the receiving device may determine to wait to receive the remaining segments of the RLC SDU before reordering RLC SDU segments to be passed to upper layers. In such cases, however, if the receiving device uses a reassembly timer to set a maximum time to wait to receive missing RLC SDU segments, the receiving device may incorrectly declare that the remaining RLC SDU segments are lost after the timer expires, even when the remaining RLC SDU segments have not yet been transmitted by the transmitting device. As a result, a wireless communications system may experience degraded communications.

As described herein, a wireless communications system may support efficient techniques for triggering a reassembly timer to allow a receiving device to correctly detect reception failures and limit delays in the reassembly process. In one example, when a receiving device receives an RLC SDU segment, the receiving device may determine whether the RLC SDU segment is received out of sequence prior to initiating the reassembly timer. If the receiving device determines that the RLC SDU segment is received in sequence, the receiving device may refrain from initiating the reassembly timer. Alternatively, if the receiving device determines that the RLC SDU segment is received out of sequence, the receiving device may initiate the reassembly timer, and the receiving device may wait to receive the remaining RLC SDU segments until the timer expires. Because the transmitting device may transmit the RLC SDU segments in sequence, these techniques allow the receiving device to correctly determine whether the transmission of an RLC SDU segment was unsuccessful.

Aspects of the disclosure introduced above are described below in the context of a wireless communications system. Examples of processes and signaling exchanges that support RLC reassembling techniques in wireless systems are then described. Aspects of the disclosure are further illustrated by and described with reference to apparatus diagrams, system diagrams, and flowcharts that relate to RLC reassembling techniques in wireless systems.

Wireless communications system100may be a packet-based network that operates according to a layered protocol stack. In the user plane, communications at the bearer or packet data convergence protocol (PDCP) layer may be IP-based, A Media Access Control (MAC) layer may perform priority handling and multiplexing of logical channels into transport channels. In some cases, the MAC layer may use HARQ to provide retransmission at the MAC layer to improve link efficiency. In the control plane, the RRC protocol layer may provide establishment, configuration, and maintenance of an RRC connection between a UE115and a base station105or core network130supporting radio bearers for user plane data. At the Physical (PHY) layer, transport channels may be mapped to physical channels.

In addition to the above layers, the layered protocol stack may include an RLC layer which may connect upper layers (e.g., the PDCP layer) to lower layers (e.g., the MAC layer). Furthermore, the RLC layer may perform packet segmentation and reassembly to communicate over logical channels. As an example, if an incoming data packet (i.e., an RLC SDU) is too large for transmission (e.g., when limited resources are available), the RLC layer may segment it into several smaller RLC SDU segments. In such cases, when these RLC SDU segments are transmitted, and a receiving device fails to receive one or more of the RLC SDU segments, it may be challenging for the receiving device to process the successfully received RLC SDU segments correctly. A receiving device in wireless communications system100may support efficient techniques for processing successfully received RLC SDU segments and, in some aspects, requesting retransmission of missing RLC SDU segments from a transmitting device.

FIG. 2illustrates an example of a wireless communications system200that supports RLC reassembling techniques in accordance with various aspects of the present disclosure. Wireless communications system200includes base station105-aand UE115-a, which may be examples of the corresponding devices described with reference toFIG. 1. Base station105-amay provide communication coverage to UEs115within coverage area110-a. Base station105-amay communicate with UE115-aon resources of a carrier205. In some cases, base station105-aand UE115-amay operate using NR technology (e.g., via a millimeter-wave (mmW) spectrum).

Wireless communications system200may implement aspects of wireless communications system100. For example, wireless communications system200may be a packet-based network that operates according to a layered protocol stack. Each protocol layer of the layered protocol stack may perform different functions to process data to be transmitted to another wireless device or to process data received from another wireless device. One example of a protocol layer may be an RLC layer which may be used to perform packet segmentation and reassembly for communication over logical channels. In addition to the above functions, the RLC layer may connect upper layers of a protocol stack and lower layers of the protocol stack.

At a transmitting device (e.g., base station105-aor UE115-a), the RLC layer may receive an RLC SDU from an upper layer (e.g., a PDCP layer), in some cases, the transmitting device may not have access to sufficient resources to transmit the entire RLC SDU. As such, the transmitting device may segment the RLC SDU and transmit multiple RLC SDU segments to a receiving device. When the RLC layer at the receiving device receives the RLC SDU segments from the transmitting device, the RLC layer may reassemble the RLC SDU segments received to generate the complete RLC SDU, and the RLC layer may pass the reassembled RLC SDU to an upper layer (e.g., a PDCP layer).

In some cases, however, the RLC layer at the receiving device may fail to receive one or more of the RLC SDU segments from a transmitting device. In such cases, the RLC layer at the receiving device may use the techniques described herein to determine whether to declare that the missing RLC SDU segments are lost and reassemble the successfully received RLC SDU segments to be passed to an upper layer. For example, the RLC layer may determine to initiate a reassembly timer that sets a maximum time for waiting to receive missing RLC SDU segments from the transmitting device based on whether the successfully received RLC SDU segments (e.g., stored in a buffer at the receiving device) are in sequence.

If the receiving device determines that the successfully received RLC SDU segments are in sequence, the receiving device may refrain from initiating the reassembly timer. That is, the receiving device may detect that the transmitting device may not have transmitted the remaining RLC SDU segments, and the receiving device may wait to receive these segments from the transmitting device. Alternatively, if the receiving device determines that the successfully received RLC SDU segments are out of sequence, the receiving device may initiate the reassembly timer. That is, since the transmitting device transmits the RLC SDU segments in sequence, the receiving device may determine that a missing RLC SDU segment was transmitted but not received if the successfully received RLC SDU segments are out of sequence. Once the reassembly timer expires, the receiving device may reassemble the successfully received RLC SDU segments and pass these segments to an upper layer.

FIGS. 3A-3Dillustrate examples of RLC SDU segments300-a,300-b,300-c, and300-d, which may be generated by a transmitting device a base station or a UE) in accordance with various aspects of the present disclosure.

In these examples, an RLC layer at a transmitting device may segment an RLC SDU into multiple RLC SDU segments, and the transmitting device may transmit some or all of the RLC SDU segments to a receiving device. When the RLC layer at the receiving device receives one of the RLC SDU segments, the RLC layer may determine whether the RLC SDU segment has a sequence number that is greater than the value of a state variable corresponding to the highest sequence number associated with previously received PDUs or previously received RLC SDU segments. The value of the state variable may be initially set to zero.

If the RLC layer determines that a received RLC SDU segment has a sequence number that is greater than the value of the state variable described above, the RLC layer may further determine if there are any gaps in the RLC SDU segments received from the transmitting device. In some cases, the RLC layer may determine whether there are any gaps in the RLC SDU segments based on determining whether the buffered RLC SDU segments (e.g., associated with the same sequence number as the received RLC SDU segment) are in sequence or out of sequence. If the RLC layer determines that the received RLC SDU segment has a sequence number that is greater than the value of the state variable, and the RLC layer determines that there is a gap in the RLC SDU segments (e.g., the RLC SDU segments are out of sequence), the RLC layer may update the value of the state variable and initiate a reassembly timer. In some examples, the RLC layer may update the value of the state variable with the sequence number associated with the received RLC SDU segment or with a number greater than the sequence number associated with the received RLC SDU segment.

In the example ofFIG. 3A, the RLC layer may determine that the buffered RLC SDU segments are in sequence since only the first RLC SDU segment305-ais received. Accordingly, the RLC layer may refrain from updating the state variable and initiating the reassembly timer, and the RLC layer may wait to receive the remaining missing RLC SDU segment310-afrom the transmitting device.

In the example ofFIG. 3B, the RLC layer may determine that the buffered RLC SDU segments are out of sequence since the first RLC SDU segment305-band the third RLC SDU segment305-cwere received and the second RLC SDU segment310-bis missing. That is, the RLC layer may determine that the buffered RLC SDU segments are out of sequence since the buffered RLC SDU segments with the same sequence number are not in consecutive byte order. Accordingly, the RLC layer may update the state variable and initiate the reassembly timer, and the RLC layer may wait to receive the missing RLC SDU segment310-bfrom the transmitting device for the duration of the timer. Once the timer expires, the RLC layer may reassemble the successfully received RLC SDU segments and pass these segments to the layer above the RLC layer.

In the example ofFIG. 3C, the RLC layer may determine that the buffered RLC SDU segments are out of sequence since the first RLC SDU segment305-d, the third RLC SDU segment305-e, and the fifth RLC SDU segment305-fwere received and the second RLC SDU segment310-cand the fourth RLC SDU segment310-dare missing. That is, the RLC layer may determine that the buffered RLC SDU segments are out of sequence since the buffered RLC SDU segments with the same sequence number are not in consecutive byte order. Accordingly, the RLC layer may update the state variable and initiate the reassembly timer, and the RLC layer may wait to receive the missing RLC SDU segments (i.e., the second RLC SDU segment310-cand the fourth RLC SDU segment310-d) from the transmitting device for the duration of the timer. Once the timer expires, the RLC layer may reassemble the successfully received RLC SDU segments and pass these segments to the layer above the RLC layer. In this example, although multiple RLC SDU segments may be missing, the RLC layer may initiate a single reassembly timer.

In the example ofFIG. 3D, the RLC layer may determine that the buffered RLC SDU segments are out of sequence since the second RLC SDU segment305-gwas received and the first RLC SDU segment310-eis missing. That is, the RLC layer may determine the received RLC SDU segment305-g, which may be stored in the buffer after reception, is received prior to the RLC SDU segment310-ethat contains the first byte of the RLC SDU. Accordingly, the RLC layer may update the state variable and initiate the reassembly timer, and the RLC layer may wait to receive the missing RLC SDU segments (i.e., the first RLC SDU segment310-e) from the transmitting device for the duration of the timer. The RLC layer may reassemble the successfully received RLC SDU segments and pass these segments to the layer above the RLC layer. If the RLC SDU segment310-eis not received prior to expiration of the reassembly timer, the RLC layer may determine to discard the received RLC SDU segment305-g(and all other unassembled RLC SDU segments in the buffer).

Although the examples described above discuss updating the state variable and initiating the reassembly timer when the RLC layer at a receiving device detects a gap in the buffered RLC SDU segments (e.g., the buffered SDU segments are out of sequence), the RLC layer may, in other examples, be configured to update the state variable and initiate the reassembly timer without detecting a gap in the buffered RLC SDU segments. For example, the RLC layer may update the state variable and initiate the reassembly timer after determining that the received RLC SDU segment has a sequence number that is greater than the value of the state variable regardless of whether there are any gaps in the buffered RLC SDU segments. In these examples, the complexity of the reassembly process may be reduced. However, these techniques may cause false alarms when, for example, an RLC layer reports, to a transmitting device, whether an RLC SDU segment was received.

FIG. 4shows a block diagram400of a wireless device405that supports RLC reassembling techniques in wireless systems in accordance with aspects of the present disclosure. Wireless device405may be an example of aspects of a UE115or base station105as described herein. Wireless device405may include receiver410, communications manager415, and transmitter420. Wireless device405may also include a processor. Each of these components may be in communication with one another (e.g., via one or more buses).

Receiver410may receive information such as packets, user data, or control information associated with various information channels (e.g., control channels, data channels, and information related to RLC reassembling techniques in wireless systems, etc.). Information may be passed on to other components of the device. The receiver410may be an example of aspects of the transceiver635or the transceiver735described with reference toFIGS. 6 and 7. The receiver410may utilize a single antenna or a set of antennas.

Communications manager415may be an example of aspects of the UE communications manager615or base station communications manager715described with reference toFIGS. 6 and 7. Communications manager415and/or at least some of its various sub-components may be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions of the communications manager415and/or at least some of its various sub-components may be executed by a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), an field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described in the present disclosure.

Communications manager415may receive, at an RLC layer, an RLC SDU segment of a PDU, determine that a sequence number associated with the RLC SDU segment is greater than a value of a state variable corresponding to a highest sequence number associated with previously received PDUs or previously received RLC SDU segments, determine that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order, and update the value of the state variable corresponding to the highest sequence number and initiate a reassembly timer based on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order.

Transmitter420may transmit signals generated by other components of the device. In some examples, the transmitter420may be collocated with a receiver410in a transceiver module. For example, the transmitter420may be an example of aspects of the transceiver635or transceiver735described with reference toFIGS. 6 and 7. The transmitter420may utilize a single antenna or a set of antennas.

FIG. 5shows a block diagram500of a wireless device505that supports RLC reassembling techniques in wireless systems in accordance with aspects of the present disclosure. Wireless device505may be an example of aspects of a wireless device405or a UE115or base station105as described with reference toFIG. 4. Wireless device505may include receiver510, communications manager515, and transmitter520. Wireless device505may also include a processor. Each of these components may be in communication with one another (e.g., via one or more buses).

Receiver510may receive information such as packets, user data, or control information associated with various information channels (e.g., control channels, data channels, and information related to RLC reassembling techniques in wireless systems, etc.). Information may be passed on to other components of the device. The receiver510may be an example of aspects of the transceiver635or transceiver735described with reference toFIGS. 6 and 7. The receiver510may utilize a single antenna or a set of antennas.

Communications manager515may be an example of aspects of the UE communications manager615or the base station communications manager715described with reference toFIGS. 6 and 7. Communications manager515may include RLC layer525, SDU sequence number manager530, SDU segment buffer manager535, and SDU reassembly manager540. RLC layer525may receive an RLC SDU segment of a PDU.

SDU sequence number manager530may determine that a sequence number associated with the PIC SDU segment is greater than a value of a state variable corresponding to a highest sequence number associated with previously received. PDUs or previously received RLC SDU segments. In some cases, the value of the state variable is initially set to zero. In some examples, determining that the sequence number associated with the RLC SDU segment is greater than the value of the state variable corresponding to the highest sequence number includes determining that the sequence number associated with the RLC SDU segment is greater than zero.

SDU segment buffer manager535may determine that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order. In some cases, determining that buffered PLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order includes determining that a first byte of the sequence number associated with the received RLC SDU segment is not in a receive buffer at the RLC layer. In some examples, determining that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order includes determining that the buffered RLC SDU segments with the same sequence number are not in consecutive byte order.

SDU reassembly manager540may update the value of the state variable corresponding to the highest sequence number and initiating a reassembly timer based on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order. In some cases, updating the value of the variable corresponding to the highest sequence number includes updating the value of the variable corresponding to the highest sequence number with the sequence number associated with the RLC SDU segment or with a number greater than the sequence number associated with the RLC SDU segment. In some examples, the reassembly timer includes a t-reassembly timer or a t-reordering timer.

Transmitter520may transmit signals generated by other components of the device. In some examples, the transmitter520may be collocated with a receiver510in a transceiver module. For example, the transmitter520may be an example of aspects of the transceiver635or transceiver735described with reference toFIGS. 6 and 7, The transmitter520may utilize a single antenna or a set of antennas.

FIG. 6shows a diagram of a system600including a device605that supports RLC reassembling techniques in wireless systems in accordance with aspects of the present disclosure. Device605may be an example of or include the components of wireless device405, wireless device505, or a UE115as described above, e.g., with reference toFIGS. 4 and 5. Device605may include components for bi-directional voice and data communications including components for transmitting and receiving communications, including UE communications manager615, processor620, memory625, software630, transceiver635, antenna640, and I/O controller645. These components may be in electronic communication via one or more buses (e.g., bus610). Device605may communicate wirelessly with one or more base stations105.

Processor620may include an intelligent hardware device, (e.g., a general-purpose processor, a DSP, a central processing unit (CPU), a microcontroller, an ASIC, an FPGA, a programmable logic device, a discrete gate or transistor logic component, a discrete hardware component, or any combination thereof), In some cases, processor620may be configured to operate a memory array using a memory controller. In other cases, a memory controller may be integrated into processor620. Processor620may be configured to execute computer-readable instructions stored in a memory to perform various functions (e.g., functions or tasks supporting RLC reassembling techniques in wireless systems).

Memory625may include random access memory (RAM) and read only memory (ROM). The memory625may store computer-readable, computer-executable software630including instructions that, when executed, cause the processor to perform various functions described herein. In some cases, the memory625may contain, among other things, a basic input/output system (BIOS) which may control basic hardware or software operation such as the interaction with peripheral components or devices.

Software630may include code to implement aspects of the present disclosure, including code to support RLC reassembling techniques in wireless systems. Software630may be stored in a non-transitory computer-readable medium such as system memory or other memory. In some cases, the software630may not be directly executable by the processor but may cause a computer (e.g., when compiled and executed) to perform functions described herein.

In some cases, the wireless device may include a single antenna640. However, in some cases the device may have more than one antenna640, which may be capable of concurrently transmitting or receiving multiple wireless transmissions.

I/O controller645may manage input and output signals for device605. I/O controller645may also manage peripherals not integrated into device605. In some cases, I/O controller645may represent a physical connection or port to an external peripheral. In some cases, I/O controller645may utilize an operating system such as iOS®, ANDROID®, MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, LINUX®, or another known operating system. In other cases, I/O controller645may represent or interact with a modem, a keyboard, a mouse, a touchscreen, or a similar device. In some cases, I/O controller645may be implemented as part of a processor. In some cases, a user may interact with device605via I/O controller645or via hardware components controlled by I/O controller645.

FIG. 7shows a diagram of a system700including a device705that supports RLC reassembling techniques in wireless systems in accordance with aspects of the present disclosure. Device705may be an example of or include the components of wireless device405, wireless device505, or a base station105as described above, e.g., with reference toFIGS. 4 and 5. Device705may include components for bi-directional voice and data communications including components for transmitting and receiving communications, including base station communications manager715, processor720, memory725, software730, transceiver735, antenna740, network communications manager745, and inter-station communications manager750. These components may be in electronic communication via one or more buses (e.g., bus710). Device705may communicate wirelessly with one or more UEs115.

Memory725may include RAM and ROM. The memory725may store computer-readable, computer-executable software730including instructions that, when executed, cause the processor to perform various functions described herein. In some cases, the memory725may contain, among other things, a BIOS which may control basic hardware or software operation such as the interaction with peripheral components or devices.

Software730may include code to implement aspects of the present disclosure, including code to support RLC reassembling techniques in wireless systems. Software730may be stored in a non-transitory computer-readable medium such as system memory or other memory. In some cases, the software730may not be directly executable by the processor but may cause a computer (e.g., when compiled and executed) to perform functions described herein.

In some cases, the wireless device may include a single antenna740. However, in some cases the device may have more than one antenna740, which may be capable of concurrently transmitting or receiving multiple wireless transmissions.

Network communications manager745may manage communications with the core network (e.g., via one or more wired backhaul links). For example, the network communications manager745may manage the transfer of data communications for client devices, such as one or more UEs115.

FIG. 8shows a flowchart illustrating a method800for RLC reassembling techniques in wireless systems in accordance with aspects of the present disclosure. The operations of method800may be implemented by a UE115or base station105or its components as described herein. For example, the operations of method800may be performed by a communications manager as described with reference toFIGS. 4 and 5. In some examples, a UE115or base station105may execute a set of codes to control the functional elements of the device to perform the functions described below. Additionally or alternatively, the UE115or base station105may perform aspects of the functions described below using special-purpose hardware.

At805, the UE115or base station105may receive, at an RLC layer, an RLC SDU segment of a PDU. The operations at805may be performed according to the methods described herein. In certain examples, aspects of the operations at805may be performed by an RLC layer as described with reference toFIG. 5.

At810, the UE115or base station105may determine that a sequence number associated with the RLC SDU segment is greater than a value of a state variable corresponding to a highest sequence number associated with previously received PDUs or previously received RLC SDU segments. The operations at810may be performed according to the methods described herein. In certain examples, aspects of the operations at810may be performed by a SDU sequence number manager as described with reference toFIG. 5.

At815, the UE115or base station105may determine that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order. The operations at815may be performed according to the methods described herein. In certain examples, aspects of the operations at815may be performed by a SDU segment buffer manager as described with reference toFIG. 5.

At820, the UE115or base station105may update the value of the state variable corresponding to the highest sequence number based at least in part on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order. The operations at820may be performed according to the methods described herein. In certain examples, aspects of the operations at820may be performed by a SDU reassembly manager as described with reference toFIG. 5.

At825, the UE115or base station105may initiate a reassembly timer based at least in part on the determination that the sequence number associated with the RLC SDU segment is greater than the value of the state variable and the determination that buffered RLC SDU segments associated with the same sequence number as the received RLC SDU segment are received out of order. The operations at825may be performed according to the methods described herein, in certain examples, aspects of the operations at825may be performed by a SDU reassembly manager as described with reference toFIG. 5.

Computer-readable media includes both non-transitory computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A non-transitory storage medium may be any available medium that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, non-transitory computer-readable media may include RAM, ROM, electrically erasable programmable ROM (EEPROM), flash memory, compact disk (CD) ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor.

The description herein is provided to enable a person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the scope of the disclosure. Thus, the disclosure is not limited to the examples and designs described herein, but is to be accorded the broadest scope consistent with the principles and novel features disclosed herein. the timer expires, the RLC layer may declare that the missing RLC SDU segments are lost.