IP Library Granted Patent US 7,151,744
Granted Patent B2
US 7,151,744 · App. 09/957,751 · Granted Dec 19, 2006

Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover

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 7,151,744
App. No.
09/957,751
Granted
Dec 19, 2006
Kind
B2
Abstract

The present invention provides a multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover. Routers and switches according to the present invention can instantaneously direct the flow of traffic to another port should there be a failure on a link, efficiently handle multicast traffic and provide multiple service classes. The fabric interface interfaces the switch fabric with the ingress and egress functions provided at a network node and provides virtual input and output queuing with backpressure feedback, redundancy for high availability applications, and packet segmentation and reassembly into variable length cells. The user configures fixed and variable-length cells. Virtual input and output queues are coupled to a switch fabric. Statistics regarding the virtual input and output queues are collected and packet queuing for the virtual input and output queues is controlled using the collected statistic to provide congestion control for the virtual input and output queues and the switch fabric.

Claims (49)

1. A switching method, comprising:

providing virtual input and output queues coupled to a switch fabric comprising switch elements;

collecting statistics regarding the virtual input and output queues;

and controlling packet queuing for the virtual input and output queues by:

using the collected statistic to provide congestion control for the virtual input and output queues and the switch fabric, and

applying a multilevel backpressure indication that is fed back to the virtual output queue to prevent violation of a threshold condition caused by storage of a new packet by the virtual input queues.

2. The method of claim 1 wherein the multilevel backpressure indication may be selected to reduce an instantaneous rate for a virtual output queue associated with the packet causing congestion or to reduce an average transmission rate of a virtual output queue associated with the packet causing congestion.

3. The method of claim 1 wherein the applying multilevel backpressure further comprises dynamically allocating buffers in the virtual output queues to ensure fairness under congestion control.

4. The method of claim 3 wherein the buffers are dynamically allocated using per queue thresholds.

5. A switching method, comprising:

providing virtual input and output queues coupled to a switch fabric comprising switch elements;

collecting statistics regarding the virtual input and output queues;

and controlling packet queuing for the virtual input and output queues by:

using the collected statistic to provide congestion control for the virtual input and output queues and the switch fabric, and

providing efficient multicast data transfer by combining multiple enqueueing via the virtual output queues and fabric replication.

6. A switching method, comprising:

providing virtual input and output queues coupled to a switch fabric comprising switch elements;

collecting statistics regarding the virtual input and output queues; and controlling packet queuing for the virtual input and output queues by:

using the collected statistic to provide congestion control for the virtual input and output queues and the switch fabric, and

reassiging packets to the virtual input and output queues to provide rapid failover.

7. The method of claim 6 wherein the controlling packet queuing for the virtual input and output queues further comprises instructing a virtual output queue to drop a packet routed to a virtual input queue experiencing congestion based upon the collected statistics.

8. The method of claim 7 wherein the dropping of the packet at the virtual output queue reduces a number of resources used in the switch fabric.

9. The method of claim 6 wherein the controlling packet queuing further comprises instructing a virtual output queue to reroute a packet routed to a virtual input queue experiencing congestion based upon the collected statistics.

10. A switching method, comprising:

providing virtual input and output queues coupled to a switch fabric comprising switch elements;

collecting statistics regarding the virtual input and output queues; and controlling packet queuing for the virtual input and output queues by:

using the collected statistic to provide congestion control for the virtual input and output queues and the switch fabric, and

mapping packets to the virtual input and output queues to allow rapid failover for a queue that fails to meet a selected failover criteria.

11. A switch, comprising:

virtual input and output queues for storing packets;

a switch fabric, coupled to the virtual input and output queues, the switch fabric including switch elements for receiving packets from a virtual output queue and routing the packet to a virtual input queue;

a statistics interface for collecting statistics regarding the virtual input and output queues; and a fabric interface controlling packet queuing for the virtual input and output queues by applying a multilevel backpressure indication that is fed back to the virtual output queue to balance loads based upon the collected statistics, the fabric interface providing congestion control for the virtual input and output queues and the switch fabric.

12. The switch of claim 11 wherein the multilevel backpressure indication may be selected to reduce an instantaneous rate for a virtual output queue associated with the packet causing congestion or to reduce an average transmission rate of a virtual output queue associated with the packet causing congestion.

13. The switch of claim 11 wherein the fabric interface applies multilevel backpressure by dynamically allocating buffers in the virtual output queues to ensure fairness under congestion control.

14. The switch of claim 13 wherein the buffers are dynamically allocated using per queue thresholds.

15. A switch, comprising:

virtual input and output queues for storing packets;

a switch fabric, coupled to the virtual input and output queues, the switch fabric including switch elements for receiving packets from a virtual output queue and routing the packet to a virtual input queue; a statistics interface for collecting statistics regarding the virtual input and output queues; and

a fabric interface controlling packet queuing for the virtual input and output queues, the fabric interface providing congestion control for the virtual input and output queues and the switch fabric and wherein the fabric interface provides efficient multicast data transfer by using multiple enqueueing via the virtual output queues and fabric replication.

16. A switch, comprising:

virtual input and output queues for storing packets;

a switch fabric, coupled to the virtual input and output queues, the switch fabric including switch elements for receiving packets from a virtual output queue and routing the packet to a virtual input queue; a statistics interface for collecting statistics regarding the virtual input and output queues;

a fabric interface controlling packet queuing for the virtual input and output queues, the fabric interface providing congestion control for the virtual input and output queues and the switch fabric; and

a programmable mapping table, the mapping table programmed to map each of the virtual input and output queues according to traffic characteristics governing packet flows the mapping table providing rapid failover through reassignment of packets to the virtual input and output queues.

17. The switch of claim 16 wherein the mapping table maps different queues for different service classes.

18. The switch of claim 16 wherein the mapping table enables rapid failover for a queue that fails to meet a selected failover criteria.

19. The switch of claim 16 wherein the fabric interface comprises a backpressure flow controller, the backpressure flow controller providing a multilevel backpressure indicator for instructing a virtual output queue to drop a packet routed to a virtual input queue experiencing congestion based upon the collected statistics.

20. The switch of claim 19 wherein the dropping of the packet at the virtual output queue reduces a number of resources used in the switch fabric.

21. The switch of claim 16 wherein the fabric interface comprises a backpressure flow controller, the backpressure flow controller providing a multilevel backpressure indicator for instructing a virtual output queue to reroute a packet routed to a virtual input queue experiencing congestion based upon the collected statistics.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2011
From: SLT LOGIC LLC
To: RPX CORPORATION
Reel/Frame 026867/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2004
From: TERAGO COMMUNICATIONS, INC.
To: SLT LOGIC LLC
Reel/Frame 014763/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2001
From: SARKINEN, SCOTT A.; DAVIDSON, SCOTT A.
To: TERAGO COMMUNICATIONS, INC.
Reel/Frame 012196/0935 →