IP Library Granted Patent US 9,237,112
Granted Patent B2
US 9,237,112 · App. 14/672,665 · Granted Jan 12, 2016

Systems and methods for prioritizing and scheduling packets in a communication network

Inventors: Kenneth L. Stanwood (Vista, CA); David Gell (San Diego, CA); Yiliang Bao (San Diego, CA)
Assignee: WI-LAN LABS, INC.
H04L47/6295H04L47/2425H04L47/2458H04L47/2475H04L47/62H04L47/6275H04N21/262H04N21/64322H04N21/64707H04N21/64723H04N21/64784H04W28/24H04L47/629H04W72/1242
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 9,237,112
App. No.
14/672,665
Granted
Jan 12, 2016
Kind
B2
Abstract

Systems and methods provide a parameterized scheduling system that incorporates end-user application awareness and can be used with scheduling groups that contain data streams from heterogeneous applications. Individual data queues within a scheduling group can be created based on application class, specific application, individual data streams or some combination thereof. Application information and Application Factors (AF) are used to modify scheduler parameters such as weights and credits to differentiate between data streams assigned to a scheduling group. Dynamic AF settings may adjust relative importance of user applications to maximize user Quality of Experience (QoE) in response to recurring network patterns, one-time events, application characteristics, protocol characteristics, device characteristics, service level agreements, or combinations thereof. Scheduling parameters may be dynamic and incorporate the notions of “duration neglect” and “recency effect” in an end-user's perception of video quality in order to optimally manage video traffic during periods of congestion.

Claims (31)

1. A method for operating a communication device for scheduling transmission of data packets, the method comprising:

receiving a plurality of data packets from a communication network;

determining at least one application that is associated with at least one of the data packets;

inserting each of the data packets into one of a plurality of data queues based at least in part on an application class associated with the at least one application;

determining a scheduler parameter for one or more of the plurality of data queues, the scheduler parameter corresponding to the at least one application;

scheduling the data packets from one or more of the plurality of data queues to an output queue based at least in part on the scheduler parameter for the one or more of the plurality of data queues; and

transmitting the data packets from the output queue to the communication network.

2. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a specific application associated with the at least one application.

3. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a data stream associated with the data packets.

4. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a service level agreement (SLA) associated with the data packets.

5. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a logical connection associated with the data packets.

6. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on quality of service class identifier (QCI) associated with the data packets.

7. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a user ID associated with the data packets.

8. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a bearer ID associated with the data packets.

9. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a tunnel ID associated with the data packets.

10. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a port number associated with the data packets.

11. The method of claim 1 , wherein inserting each of the data packets into one of the plurality of data queues is further based at least in part on a session ID associated with the data packets.

12. A communication device, comprising:

a classification and queuing module configured to receive a plurality of data packets, the classification and queuing module comprising a packet inspection module configured to analyze attributes of the data packets, to determine at least one application associated with at least one of the data packets, and to output information about the at least one application, the classification and queuing module is further configured to output each of the data packets into one of a plurality of data queues based at least in part on an application class associated with the at least one application;

a scheduler parameter calculation module configured to calculate and output a scheduler parameter for one or more of the plurality of data queues, the scheduler parameter corresponding to the at least one application; and

a scheduler module configured to select the data packets from one or more of the plurality of data queues in an order based at least in part on the scheduler parameter for the one or more of the plurality of data queues and to insert the selected data packets into an output queue for transmission over a physical communication layer.

13. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a specific application associated with the at least one application.

14. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a data stream associated with the data packets.

15. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a service level agreement (SLA) associated with the data packets.

16. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a logical connection associated with the data packets.

17. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a quality of service class identifier (QCI) associated with the data packets.

18. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a user ID associated with the data packets.

19. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a bearer ID associated with the data packets.

20. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a tunnel ID associated with the data packets.

21. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a port number associated with the data packets.

22. The communication device of claim 12 , wherein the classification and queuing module is further configured to output each of the data packets into one of the plurality of data queues further based at least in part on a session ID associated with the data packets.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2017
From: WI-LAN LABS, INC.
To: TAIWAN SEMICONDUCTOR MANUFACTURING CO., LTD.
Reel/Frame 041627/0873 →
CHANGE OF NAME Recorded Mar 30, 2015
From: CYGNUS BROADBAND, INC.
To: WI-LAN LABS, INC.
Reel/Frame 035335/0793 →
Continuity (11)
Continuation 14155138 · Jan 14, 2014
Continuation 13396503 · Feb 14, 2012
Continuation In Part 13236308 · Sep 19, 2011
Continuation In Part 13166660 · Jun 22, 2011
Continuation In Part 13155102 · Jun 7, 2011
Continuation In Part 12813856 · Jun 11, 2010
Provisional Application 61421510 · Dec 9, 2010
Provisional Application 61186707 · Jun 12, 2009
Provisional Application 61187113 · Jun 15, 2009
Provisional Application 61187118 · Jun 15, 2009
Related Publication 20150207748A1 · Jul 23, 2015