IP Library Granted Patent US 6,944,128
Granted Patent B2
US 6,944,128 · App. 10/241,088 · Granted Sep 13, 2005

Method and apparatus for providing differentiated services using a multi-level queuing mechanism

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 6,944,128
App. No.
10/241,088
Granted
Sep 13, 2005
Kind
B2
Abstract

A method and apparatus for providing differentiated services using a multi-level queuing mechanism includes checking whether a packet of data is to receive a preferred level of service, and if the packet is not to receive the preferred level of service, then placing the packet in a first forwarding queue. However, if the packet of data is to receive the preferred level of service then checking whether it is permissible to forward the packet to a device in the network at the current time. If it is permissible to forward the packet to the device at the current time, then placing the packet in a second forwarding queue, otherwise temporarily placing the packet in a holding queue before placing the packet in the second forwarding queue.

Claims (49)

1. A method of providing differentiated services in a network, the method comprising:

(1) checking whether a packet of data is to receive a preferred level of service; and

(2) placing the packet in a first forwarding queue if the packet is not to receive the preferred level of service, otherwise

(a) checking whether it is permissible to send the packet to the network at the current time, and

(b) either (i) placing the packet in a second forwarding queue if it is permissible to forward the packet at the current time or (ii) temporarily placing the packet in a holding queue before placing the packet in the second forwarding queue.

2. The method of claim 1 , further comprising:

forwarding the packet of data to the network from the first forwarding queue and the second forwarding queue, giving priority to packets of data in the second forwarding queue.

3. The method of claim 1 , wherein prior to placing the packet in the holding queue, the method further comprises determining whether there is sufficient space in the holding queue for the packet.

4. The method of claim 3 , wherein placing the packet in the holding queue is conducted if there is sufficient space in the holding queue for the packet.

5. The method of claim 1 , further comprising:

indexing into the holding queue based on the time at which the indexing occurs; and

placing a packet at the indexed location of the holding queue into the second forwarding queue.

6. An apparatus for providing differentiated services in a network, the apparatus comprising:

a first queue;

a second queue;

a holding queue to store packets of data prior to being placed in the second queue; and

a policy meter in communication with the first queue, the second queue and the holding queue, the policy meter to coordinate placement of a packet of data within (i) the first queue if the packet of data is not to receive a preferred level of service, (ii) the second queue if the packet is to receive the preferred level of service and it is permissible to forward the packet of data to the network at a current time, (iii) the holding queue if the packet of data is to receive the preferred level of service, it is permissible to forward the packet of data to the network at the current time and the holding queue is able to store the packet of data.

7. The apparatus of claim 6 , wherein the policy meter to drop the packet of data if the packet of data is to receive the preferred level of service, it is impermissible to forward the packet of data over the network at the current time and the holding queue is unable to store the packet of data.

8. The apparatus of claim 6 , further comprising:

a forwarding engine in communication with the first queue and the second queue, the forwarding queue to forward packets of data to the network from the first queue and the second queue, giving priority to packets of data in the second queue.

9. The apparatus of claim 6 , wherein the policy meter further checking, prior to placing the packet in the holding queue, whether there is sufficient space in the holding queue for the packet.

10. The apparatus of claim 6 , wherein the policy meter further:

updating an indicator of when it is permissible to send a next packet of data; and

using upon receipt of the next packet of data, the indicator to determine whether it is permissible to forward the next packet of data at the current time.

11. The apparatus claim 10 , wherein the policy meter further updating the indicator by adding together the current time and an amount of time required to send the packet of data from the second queue to the network.

12. The apparatus of claim 11 , wherein the policy meter further checking, prior to placing the packet in the holding queue, whether there is sufficient space in the holding queue for the packet and determining that there is insufficient space in the holding queue if a resultant time value being a difference between the indicator and the current time exceeds a predetermined maximum amount of time that the packet of data will be held by the policy meter.

13. An apparatus for providing differentiated services in a network, the apparatus comprising:

first means for forwarding packets of data to the network;

second means for forwarding packets of data to the network;

means for temporarily storing packets of data prior to being provided to the second means for forwarding packets; and

metering means for (i) checking whether a packet of data is to receive a preferred level of service, and, if the packet is not to receive the preferred level of service, then for providing the packet to the first means for forwarding packets, otherwise (ii) checking whether it is permissible to forward the packet over the current time, and if it is permissible to forward the packet to the device at the current time, then providing the packet to the second means for forwarding packets, otherwise providing the packet to the means for temporarily storing packets.

14. The apparatus of claim 13 , further comprising:

means for forwarding packets of data to the network from the first and second means, and giving priority to packets of data from the second means.

15. A machine-readable medium having stored thereon a plurality of instructions, designed to be executed by a processor, for providing differentiated services in a network by implementing a function to:

(1) check whether a packet of data is to receive a preferred level of service; and

(2) place the packet in a first forwarding queue if the packet is not to receive the preferred level of service, otherwise

(a) check whether it is permissible to send the packet to the network at the current time, and

(b) either (i) place the packet in a second forwarding queue if it is permissible to forward the packet at the current time or (ii) temporarily place the packet in a holding queue before placing the packet in the second forwarding queue.

16. The machine-readable medium of claim 15 , wherein the plurality of instructions are further for implementing a function to forward packets of data to the network from the first forwarding queue and the second forwarding queue, giving priority to packets of data in the second forwarding queue.

17. The machine-readable medium of claim 15 , wherein the plurality of instructions are further for implementing a function to:

check, prior to placing the packet in the holding queue, whether there is sufficient space in the holding queue for the packet; and

place the packet in the holding queue if there is sufficient space in the holding queue, and otherwise drop the packet.

18. The machine-readable medium of claim 15 , wherein the plurality of instructions are further for implementing a function to:

index into the holding queue based on the time at which the indexing occurs; and

place a packet at the indexed location of the holding queue into the second forwarding queue.

19. The machine-readable medium of claim 15 , wherein the plurality of instructions are further for implementing a function to:

update an indicator of when it is permissible to send a next packet of data; and

use, upon receipt of the next packet of data, the indicator to determined whether it is permissible to forward the next packet at the current time.

20. The machine-readable medium of claim 19 , wherein the plurality of instructions to update the indicator include instructions to add together the current time and an amount of time required to send the packet of data to the network.

Assignments (6)
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2015
From: ROCKSTAR CONSORTIUM US LP; ROCKSTAR CONSORTIUM LLC; BOCKSTAR TECHNOLOGIES LLC; CONSTELLATION TECHNOLOGIES LLC; MOBILESTAR TECHNOLOGIES LLC; NETSTAR TECHNOLOGIES LLC
To: RPX CLEARINGHOUSE LLC
Reel/Frame 034924/0779 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2014
From: ROCKSTAR CONSORTIUM US LP
To: BOCKSTAR TECHNOLOGIES LLC
Reel/Frame 032399/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2014
From: ROCKSTAR BIDCO, LP
To: ROCKSTAR CONSORTIUM US LP
Reel/Frame 032170/0591 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2011
From: NORTEL NETWORKS LIMITED
To: ROCKSTAR BIDCO, LP
Reel/Frame 027164/0356 →