IP Library Granted Patent US 8,971,345
Granted Patent B1
US 8,971,345 · App. 12/729,127 · Granted Mar 3, 2015

Method and apparatus for scheduling a heterogeneous communication flow

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 8,971,345
App. No.
12/729,127
Granted
Mar 3, 2015
Kind
B1
Abstract

A method and apparatus are provided for scheduling a heterogeneous communication flow. A heterogeneous flow is a flow comprising packets with varying classes or levels of service, which may correspond to different priorities, qualities of service or other service characteristics. When a packet is ready for scheduling, it is queued in order in a flow queue that corresponds to the communication flow. The flow queue then migrates among class queues that correspond to the class or level of service of the packet at the head of the flow queue. Thus, after the head packet is scheduled, the flow queue may be dequeued from its current class queue and requeued at the tail of another class queue. If the subsequent packet has the same classification, it may be requeued at the tail of the class queue or may remain in place for another servicing round.

Claims (51)

1. A method of servicing packets according to a class-based scheduler, the method comprising:

dequeuing a flow queue from a first class queue corresponding to a first class of service of a first packet of the flow queue, wherein the flow queue comprises multiple packets having multiple classes of service;

dequeuing the first packet from the flow queue;

servicing the first packet;

classifying a second packet at a head of the flow queue to identify a second class of service; and

enqueuing the flow queue in a second class queue corresponding to the second class of service, based solely on the second class of service;

wherein:

the second class of service of the second packet matches the first class of service of the first packet;

the second class queue comprises the first class queue; and

said enqueuinq the flow queue within a second class queue comprises re-queuing the flow queue within the first class queue.

2. The method of claim 1 , wherein:

the flow queue comprises references to packets.

3. The method of claim 2 , wherein:

each of the first class queue and the second class queue is configured to comprise references to flow queues.

4. The method of claim 1 , further comprising:

receiving a new packet; and

enqueuing the new packet within the flow queue.

5. The method of claim 1 , further comprising:

storing a storage location of the flow queue.

6. The method of claim 5 , wherein:

said enqueuing a flow queue within a first class queue comprises writing to an electronic storage area associated with the first class queue a reference to the storage location of the flow queue.

7. A method of migrating a heterogeneous flow of data among multiple class queues, the method comprising:

enqueuing a flow queue within a first class queue associated with a first class of service assigned to a first packet in the flow queue, wherein the flow queue comprises multiple packets having multiple classes of service;

dequeuinq the first packet from the flow queue; and

after the first packet is scheduled, enqueuing the flow queue within a second class queue associated with a class of service assigned to a second packet in the flow queue, without regard to classes of service assigned to other packets in the flow queue;

wherein:

the second class of service of the second packet matches the first class of service of the first packet;

the second class queue comprises the first class queue; and

said enqueuinq the flow queue within a second class queue comprises re-queuing the flow queue within the first class queue.

8. The method of claim 7 , wherein:

the flow queue comprises multiple packets having multiple different classes of service; and

the first class queue comprises multiple other flow queues also comprising multiple packets having multiple different classes of service.

9. A non-transitory computer-readable medium storing instructions that, when executed by a computer, cause the computer to perform a method of servicing packets according to a class-based scheduler, the method comprising:

dequeuing a flow queue from a first class queue corresponding to a first class of service of a first packet of the flow queue, wherein the flow queue comprises multiple packets having multiple classes of service;

dequeuing the first packet from the flow queue;

servicing the first packet;

classifying a second packet at a head of the flow queue to identify a second class of service; and

enqueuing the flow queue in a second class queue corresponding to the second class of service, based solely on the second class of service;

wherein:

the second class of service of the second packet matches the first class of service of the first packet;

the second class queue comprises the first class queue; and

said enqueuinq the flow queue within a second class queue comprises re-queuing the flow queue within the first class queue.

10. The computer-readable medium storing instructions of claim 9 , wherein:

the flow queue comprises references to packets.

11. The computer-readable medium storing instructions of claim 10 , wherein:

each of the first class queue and the second class queue is configured to comprise references to flow queues.

12. The computer-readable medium storing instructions of claim 9 , wherein the method further comprises:

receiving a new packet; and

enqueuing the new packet within the flow queue.

13. The computer-readable medium storing instructions of claim 9 , wherein the method further comprises:

storing a storage location of the flow queue.

Assignments (19)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT Recorded Mar 5, 2021
From: RIVERBED TECHNOLOGY, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0249 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED ON REEL 035521 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENTS. Recorded Jun 2, 2015
From: JPMORGAN CHASE BANK, N.A.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035807/0680 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 28, 2015
From: BARCLAYS BANK PLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035521/0069 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2013
From: RIVERBED TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032421/0162 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2010
From: MCCANNE, STEVEN; TRAC, LAP NATHAN; SWAN, ANDREW
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 024326/0325 →