IP Library Granted Patent US 8,804,507
Granted Patent B2
US 8,804,507 · App. 13/077,577 · Granted Aug 12, 2014

Method and apparatus for temporal-based flow distribution across multiple packet processors

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,804,507
App. No.
13/077,577
Granted
Aug 12, 2014
Kind
B2
Abstract

A method, apparatus and computer program product for temporal-based flow distribution across multiple packet processors is presented. A packet is received and a hash identifier (ID) is computed for the packet. The hash ID is used to index into a State Table and to retrieve a corresponding record. When a time credit field of the record is zero then the time credit field is set to a to a new value; a Packet Processing Engine (PE) whose First-In-First-Out buffer (FIFO) has the lowest fill level is selected; and a PE number field in the state table record is updated with the selected PE number. When the time credit field of the record is non-zero then the packet is sent to a PE based on the value stored in the record; and the time credit field in the record is decremented if the time credit field is greater than zero.

Claims (52)

1. A computer-implemented method in which a computer system performs operations comprising:

receiving a packet as part of an m-tuple flow, wherein m is a non-zero value indicating a number of tuples;

computing a hash identifier (ID) for said packet;

using said hash ID to index into a State Table and retrieving a corresponding record, wherein said record includes a time credit field and a Packet Processing Engine (PE) number and does not include m-tuple flow information; and

when a time credit field of said record is zero then:

setting said time credit field to a new value;

selecting the Packet Processing Engine whose First-In-First-Out buffer (FIFO) has the lowest fill level; and

updating a PE number field in the state table record with the selected PE number; and

when the time credit field of said record is non-zero then:

sending the packet to the PE based on the value stored in said record; and

decrementing said time credit field in the record only if said time credit field is greater than zero.

2. The method of claim 1 , wherein said setting said time credit field to a new value comprises setting said time credit field to a maximum value.

3. The method of claim 1 , wherein an average m-tuple flow bandwidth is at least an order of magnitude less than a high speed link bandwidth.

4. The method of claim 1 , wherein average inter-packet arrival time within said m-tuple flow is larger than the packet processing latency.

5. The method of claim 1 , wherein an input rate to each FIFO is ‘r’, wherein r is an input port rate.

6. The method of claim 5 , wherein a sustained output rate is r/n where n is the number of PEs.

7. The method of claim 1 , wherein said using a time credit field to determine which packet processing engine is used provides fair bandwidth distribution and packet order within a flow.

8. A non-transitory computer readable storage medium having computer readable code thereon for temporal-based flow distribution across multiple packet processors, the medium including instructions in which a computer system performs operations comprising:

receiving a packet as part of an m-tuple flow, wherein m is a non-zero value indicating a number of tuples;

computing a hash identifier (ID) for said packet;

using said hash ID to index into a State Table and retrieving a corresponding record wherein said record includes a time credit field and a Packet Processing Engine (PE) number and does not include m-tuple flow information; and

when a time credit field of said record is zero then:

setting said time credit field to a new value;

selecting the Packet Processing Engine whose First-In-First-Out buffer (FIFO) has the lowest fill level; and

updating a PE number field in the state table record with selected PE number; and

when the time credit field of said record is non-zero then:

sending the packet to the PE based on the value stored in said record; and

decrementing said time credit field in the record only if said time credit field is greater than zero.

9. The non-transitory computer readable storage medium of claim 8 , wherein said setting said time credit field to a new value comprises setting said time credit field to a maximum value.

10. The non-transitory computer readable storage medium of claim 8 , wherein an average m-tuple flow bandwidth is at least an order of magnitude less than a high speed link bandwidth.

11. The non-transitory computer readable storage medium of claim 8 , wherein average inter-packet arrival time within an m-tuple flow is larger than the packet processing latency.

12. The non-transitory computer readable storage medium of claim 8 , wherein an input rate to each FIFO is ‘r’, wherein r is an input port rate.

13. The non-transitory computer readable storage medium of claim 12 , wherein a sustained output rate is r/n where n is the number of PEs.

14. The non-transitory computer readable storage medium of claim 8 , wherein said using a time credit field to determine which packet processing engine is used provides fair bandwidth distribution and packet order within a flow.

15. A computer system comprising a flow distributor and a plurality of Packet Processing Engines (PEs), each of said flow distributor and said PEs comprising:

a memory;

a processor;

a communications interface;

an interconnection mechanism coupling the memory, the processor and the communications interface; and

wherein the memory is encoded with an application providing for temporal-based flow distribution across multiple packet processors, that when performed, provides a process for processing information, the process causing the computer system to perform the operations of:

receiving a packet as part of an m-tuple flow, wherein m is a non-zero value indicating a number of tuples;

computing a hash identifier (ID) for said packet;

using said hash ID to index into a State Table and retrieving a corresponding record wherein said record includes a time credit field and a Packet Processing Engine (PE) number and does not include m-tuple flow information; and

when a time credit field of said record is zero then:

setting said time credit field to a new value;

selecting the Packet Processing Engine whose First-In-First-Out buffer (FIFO) has the lowest fill level; and

updating a PE number field in the state table record with selected PE number; and

when the time credit field of said record is non-zero then:

sending the packet to the PE based on the value stored in said record; and

decrementing said time credit field in the record only if said time credit field is greater than zero.

16. The computer system of claim 15 , wherein average inter-packet arrival time within an m-tuple flow is larger than a packet processing latency.

17. The computer system of claim 15 , wherein said using a time credit field to determine which packet processing engine is used provides fair bandwidth distribution and packet order within a flow.

Assignments (13)
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 044891/0801 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: AVAYA INC.; AVAYA COMMUNICATION ISRAEL LTD; AVAYA HOLDINGS LIMITED
To: EXTREME NETWORKS, INC.
Reel/Frame 043569/0047 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Jan 10, 2013
From: AVAYA, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 029608/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2011
From: ASSARPOUR, HAMID
To: AVAYA INC.
Reel/Frame 026057/0990 →