IP Library › Granted Patent US 10,764,781
Granted Patent B2
US 10,764,781 · App. 15/495,482 · Granted Sep 1, 2020

Systems and methods for reordering data received from a plurality of radio access technologies (RATs)

Inventors: Alok Mitra (San Diego, CA); Vaibhav Kumar (Encinitas, CA); Shailesh Maheshwari (San Diego, CA); Uppinder Babbar (San Diego, CA); Gang Xiao (San Diego, CA); Vanitha Kumar (San Diego, CA); Srinivas Reddy Mudireddy (San Diego, CA); Arunn Krishnamurthy (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04W28/06H04L47/34H04W28/10H04L47/125H04L49/9057
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,764,781
App. No.
15/495,482
Granted
Sep 1, 2020
Kind
B2
Abstract

A method for reordering data by an electronic device is described, including receiving a first set of data packets via a first radio access technology (RAT). The method also includes receiving a second set of data packets via a second RAT. The first and second sets of data packets are from a data stream. The method further includes providing at least a portion of the first set of data packets or of the second set of data packets to an application processor. The method additionally includes buffering, in application processor memory, the at least the portion of the first set of data packets or the at least the portion of the second set of data packets. The method also includes reordering the at least the portion of the first set of data packets or the at least the portion of the second set of data packets.

Claims (38)

1. A method for reordering data by an electronic device, the method comprising:

receiving, by a modem processor, a first set of data packets via a first radio access technology (RAT);

receiving, by the modem processor, a second set of data packets via a second radio access technology (RAT), wherein the first set of data packets and the second set of data packets are from a data stream;

providing, by the modem processor, at least a portion of the first set of data packets or at least a portion of the second set of data packets to an application processor;

buffering, in application processor memory, the at least the portion of the first set of data packets or the at least the portion of the second set of data packets to offload modem memory while the modem processor determines an order of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets;

determining, by the modem processor, a first reordering information or a second reordering information based on sequence numbering of the portion of the first set of data packets or of the portion of the second set of data packets, wherein the first reordering information or the second reordering information comprises one or more completion events;

providing, by the modem processor, the first reordering information for the at least the portion of the first set of data packets or the second reordering information for the at least the portion of the second set of data packets to the application processor, wherein the first reordering information or the second reordering information is sent in an order for packet consumption by the application processor; and

reordering, by the application processor, the at least the portion of the first set of data packets or the at least the portion of the second set of data packets based on the first reordering information or the second reordering information provided by the modem processor.

2. The method of claim 1 , wherein determining the first reordering information or the second reordering information comprises reordering an out of order event ring based on the sequence numbering.

3. The method of claim 1 , wherein the at least the portion of the first set of data packets is a first aggregated set of packets in contiguous order or the at least the portion of the second set of data packets is a second aggregated set of packets in contiguous order.

4. The method of claim 3 , further comprising determining the first reordering information or the second reordering information by determining a first sequence number and a last sequence number for the first aggregated set of packets or for the second aggregated set of packets.

5. The method of claim 1 , wherein the at least the portion of the first set of data packets or the at least the portion of the second set of data packets are provided to an application processor for storage in a single frame regardless of whether the at least the portion of the first set of data packets or the at least the portion of the second set of data packets are in contiguous order, and wherein the method further comprises determining the first reordering information or the second reordering information by determining a length, an offset, and an end indicator for at least a contiguous portion of a first aggregated set of packets or for at least a contiguous portion of a second aggregated set of packets.

6. The method of claim 1 , wherein the first reordering information or the second reordering information comprises a sequence indicator for each of the data packets of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets, a bearer indicator for each of the data packets of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets, and a link indicator for each of the data packets of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets.

7. The method of claim 1 , further comprising:

detecting, by the modem processor, a flushing condition; and providing, by the modem processor, a flush command to the application processor.

8. The method of claim 1 , further comprising controlling, by the modem processor, reordering logic in the application processor in order to perform one or more of stopping, starting, and flushing out of order buffers in the application processor memory.

9. The method of claim 1 , wherein the application processor is included in a host of the electronic device and the modem processor is included in a modem device of the electronic device.

10. An electronic device, comprising:

a modem processor configured to receive a first set of data packets via a first radio access technology (RAT), to receive a second set of data packets via a second radio access technology (RAT), wherein the first set of data packets and the second set of data packets are from a data stream, to provide at least a portion of the first set of data packets or at least a portion of the second set of data packets to an application processor, to determine a first reordering information or a second reordering information based on sequence numbering of the portion of the first set of data packets or of the portion of the second set of data packets, wherein the first reordering information or the second reordering information comprises one or more completion events, and to provide the first reordering information for the at least the portion of the first set of data packets or the second reordering information for the at least the portion of the second set of data packets to the application processor, wherein the first reordering information or the second reordering information is sent in an order for packet consumption by the application processor; and

application processor memory configured to buffer the at least the portion of the first set of data packets or the at least the portion of the second set of data packets to offload modem memory while the modem processor determines an order of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets, wherein the application processor is configured to reorder the at least the portion of the first set of data packets or the at least the portion of the second set of data packets based on the first reordering information or the second reordering information provided by the modem processor.

11. The electronic device of claim 10 , wherein the modem processor is configured to determine the first reordering information or the second reordering information by reordering an out of order event ring based on the sequence numbering.

12. The electronic device of claim 10 , wherein the at least the portion of the first set of data packets is a first aggregated set of packets in contiguous order or the at least the portion of the second set of data packets is a second aggregated set of packets in contiguous order.

13. The electronic device of claim 12 , wherein the modem processor is configured to determine the first reordering information or the second reordering information by determining a first sequence number and a last sequence number for the first aggregated set of packets or for the second aggregated set of packets.

14. The electronic device of claim 10 , wherein the modem processor is configured to provide the at least the portion of the first set of data packets or the at least the portion of the second set of data packets to the application processor for storage in a single frame regardless of whether the at least the portion of the first set of data packets or the at least the portion of the second set of data packets are in contiguous order, and wherein the modem device is configured to determine the first reordering information or the second reordering information by determining a length, an offset, and an end indicator for at least a contiguous portion of a first aggregated set of packets or for at least a contiguous portion of a second aggregated set of packets.

15. The electronic device of claim 10 , wherein the first reordering information or the second reordering information comprises a sequence indicator for each of the data packets of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets, a bearer indicator for each of the data packets of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets, and a link indicator for each of the data packets of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets.

16. The electronic device of claim 10 , wherein the modem processor is configured to detect a flushing condition, and to provide a flush command to the application processor.

17. The electronic device of claim 10 , wherein the modem processor is configured to control reordering logic in the application processor in order to perform one or more of stopping, starting, and flushing out of order buffers in the application processor memory.

18. A non-transitory tangible computer-readable medium storing computer executable code, comprising:

code for causing an electronic device to receive, by a modem processor, a first set of data packets via a first radio access technology (RAT);

code for causing the electronic device to receive, by the modem processor, a second set of data packets via a second radio access technology (RAT), wherein the first set of data packets and the second set of data packets are from a data stream;

code for causing the electronic device to provide, by the modem processor, at least a portion of the first set of data packets or at least a portion of the second set of data packets to an application processor;

code for causing the electronic device to buffer, in application processor memory, the at least the portion of the first set of data packets or the at least the portion of the second set of data packets to offload modem memory while the modem processor determines an order of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets;

code for causing the electronic device to determine, by the modem processor, a first reordering information or a second reordering information based on sequence numbering of the portion of the first set of data packets or of the portion of the second set of data packets, wherein the first reordering information or the second reordering information comprises one or more completion events;

code for causing the electronic device to provide, by the modem processor, the first reordering information for the at least the portion of the first set of data packets or the second reordering information for the at least the portion of the second set of data packets to the application processor, wherein the first reordering information or the second reordering information is sent in an order for packet consumption by the application processor; and

code for causing the electronic device to reorder, by the application processor, the at least the portion of the first set of data packets or the at least the portion of the second set of data packets based on the first reordering information or the second reordering information provided by the modem processor.

19. An apparatus, comprising:

modem processing means for receiving a first set of data packets via a first radio access technology (RAT), for receiving a second set of data packets via a second radio access technology (RAT), wherein the first set of data packets and the second set of data packets are from a data stream, for providing at least a portion of the first set of data packets or at least a portion of the second set of data packets to an application processing means, for determining a first reordering information or a second reordering information based on sequence numbering of the portion of the first set of data packets or of the portion of the second set of data packets, wherein the first reordering information or the second reordering information comprises one or more completion events, and for providing the first reordering information for the at least the portion of the first set of data packets or the second reordering information for the at least the portion of the second set of data packets to the application processor, wherein the first reordering information or the second reordering information is sent in an order for packet consumption by the application processor; and

application processing memory means for buffering the at least the portion of the first set of data packets or the at least the portion of the second set of data packets to offload modem memory means while the modem processor means determines an order of the at least the portion of the first set of data packets or the at least the portion of the second set of data packets, wherein the application processing means reorders the at least the portion of the first set of data packets or the at least the portion of the second set of data packets based on the first reordering information or the second reordering information provided by the modem processing means.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2017
From: MITRA, ALOK; KUMAR, VAIBHAV; MAHESHWARI, SHAILESH; BABBAR, UPPINDER; XIAO, GANG; KUMAR, VANITHA; MUDIREDDY, SRINIVAS REDDY; KRISHNAMURTHY, ARUNN
To: QUALCOMM INCORPORATED
Reel/Frame 042486/0672 →
Continuity (3)
Provisional Application 62331337 · May 3, 2016
Provisional Application 62331340 · May 3, 2016
Related Publication 20170325124A1 · Nov 9, 2017
Cited By (1)
US 12,255,752