IP Library Granted Patent US 7,801,144
Granted Patent B2
US 7,801,144 · App. 11/395,769 · Granted Sep 21, 2010

Switch-based network processor

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,801,144
App. No.
11/395,769
Granted
Sep 21, 2010
Kind
B2
Abstract

A network processor comprises an input interface, an output interface, a switch coupled between the input and output interfaces, and a plurality of processing elements coupled to respective bidirectional ports of the switch. Such processing elements include, in an illustrative embodiment, a scheduler, a security engine, a classification engine, a stream editor, etc. Information associated with a given packet received via the input interface is sequentially processed through multiple ones of the processing elements in a serial processing order based on switching operations of the switch. In the illustrative embodiment, the switch can permit any desired interconnection of the various processing elements so as to achieve a particular packet processing flow appropriate for a given application.

Claims (57)

1. A network processor comprising:

an input interface;

an output interface;

a switch having an input coupled to the input interface, an output coupled to the output interface, and a plurality of bidirectional ports; and

a plurality of processing elements coupled to respective ones of the bidirectional ports and configured to perform different functions, the processing elements and the bidirectional ports being separate from the input interface and the output interface;

wherein information associated with a given packet received via the input interface is sequentially processed through multiple ones of the processing elements in a serial processing order based on switching operations of the switch, wherein each of the multiple ones of the processing elements receives the information associated with the given packet via the switch;

wherein the switch is configurable to provide controllable selection between at least first and second serial processing orders each involving different interconnections of respective sets of the processing elements, said first and second serial processing orders comprising different sequences of functions, said sets including at least first and second sets with at least one of the processing elements being common to both the first and second sets;

wherein the switch is utilized to provide different serial processing orders through respective sets of the processing elements for different packets received via the input interface;

wherein a given one of the different serial processing orders is provided by configuring each non-final processing element in the corresponding set of processing elements to identify a next processing element to which a given packet received via the switch is to be routed when processing is completed in that processing element and the given packet is returned by that processing element to the switch; and

wherein one of the processing elements identifies the next processing element by associating a next address tag with the given packet before returning the given packet to the switch.

2. The processor of claim 1 wherein the switch comprises a shared-memory packet switch having a memory shared by two or more of the processing elements.

3. The processor of claim 1 wherein a given one of the different serial processing orders includes multiple passes through at least one of the processing elements in the corresponding set of processing elements.

4. The processor of claim 1 wherein the plurality of processing elements comprises one or more of a stream editor, a transmission control protocol (TCP) offload engine, a scheduler, a security engine and a classification engine.

5. The processor of claim 4 wherein the classification engine shares a bidirectional port of the switch with a pattern matching engine.

6. The processor of claim 4 wherein the classification engine is coupled between a statistics engine and the switch.

7. The processor of claim 1 wherein at least one of the processing elements comprises a microprocessor offload port that is connectable to a corresponding input port of an external microprocessor.

8. The processor of claim 1 wherein the processing elements perform functions associated with a secure transaction server application.

9. The processor of claim 1 wherein the processing elements perforin functions associated with a firewall application.

10. The processor of claim 9 wherein the processing elements perform functions associated with an SSL VPN firewall application.

11. The processor of claim 10 wherein the processing elements perform functions associated with an IPSEC VPN firewall application.

12. The processor of claim 1 wherein the processor is configured as an integrated circuit.

13. A network processor comprising:

an input interface;

an output interface;

a switch having an input coupled to the input interface, an output coupled to the output interface, and a plurality of bidirectional ports; and

a plurality of processing elements coupled to respective ones of the bidirectional ports;

wherein information associated with a given packet received via the input interface is sequentially processed through multiple ones of the processing elements in a serial processing order based on switching operations of the switch;

wherein the plurality of processing elements comprises one or more of a stream editor, a transmission control protocol (TCP) offload engine, a scheduler, a security engine and a classification engine; and

wherein the classification engine comprises a joint classification and reassembly engine.

14. A network processor comprising:

an input interface;

an output interface;

a switch having an input coupled to the input interface, an output coupled to the output interface, and a plurality of bidirectional ports; and

a plurality of processing elements coupled to respective ones of the bidirectional ports;

wherein information associated with a given packet received via the input interface is sequentially processed through multiple ones of the processing elements in a serial processing order based on switching operations of the switch;

wherein the plurality of processing elements comprises one or more of a stream editor, a transmission control protocol (TCP) offload engine, a scheduler, a security engine and a classification engine;

wherein the classification engine is coupled between a statistics engine and the switch; and

wherein the statistics engine comprises a joint statistics and policing engine.

15. A processing system comprising:

a network processor; and

a microprocessor coupled to the network processor;

the network processor comprising:

an input interface;

an output interface;

a switch coupled between the input and output interfaces; and

a plurality of processing elements coupled to respective bidirectional ports of the switch and configured to perform different functions, the processing elements and the bidirectional ports being separate from the input interface and the output interface;

wherein information associated with a given packet received via the input interface is sequentially processed through multiple ones of the processing elements in a serial processing order based on switching operations of the switch, wherein each of the multiple ones of the processing elements receives the information associated with the given packet via the switch; and

wherein the switch is configurable to provide controllable selection between at least first and second serial processing orders each involving different interconnections of respective sets of the processing elements, said first and second serial processing orders comprising different sequences of functions, said sets including at least first and second sets with at least one of the processing elements being common to both the first and second sets;

wherein the switch is utilized to provide different serial processing orders through respective sets of the processing elements for different packets received via the input interface;

wherein a given one of the different serial processing orders is provided by configuring each non-final processing element in the corresponding set of processing elements to identify a next processing element to which a given packet received via the switch is to be routed when processing is completed in that processing element and the given packet is returned by that processing element to the switch; and

wherein one of the processing elements identifies the next processing element by associating a next address tag with the given packet before returning the given packet to the switch.

16. A method for use in processing packets in a network processor, the network processor comprising an input interface, an output interface, a switch coupled between the input and output interfaces, and a plurality of processing elements coupled to respective bidirectional ports of the switch and configured to perform different functions, the processing elements and the bidirectional ports being separate from the input interface and the output interface, the method comprising the step of:

sequentially processing information associated with a given packet received via the input interface through multiple ones of the processing elements in a serial processing order based on switching operations of the switch, wherein each of the multiple ones of the processing elements receives the information associated with the given packet via the switch; and

wherein the switch is configurable to provide controllable selection between at least first and second serial processing orders each involving different interconnections of respective sets of the processing elements, said first and second serial processing orders comprising different sequences of functions, said sets including at least first and second sets with at least one of the processing elements being common to both the first and second sets;

wherein the switch is utilized to provide different serial processing orders through respective sets of the processing elements for different packets received via the input interface;

wherein a given one of the different serial processing orders is provided by configuring each non-final processing element in the corresponding set of processing elements to identify a next processing element to which a given packet received via the switch is to be routed when processing is completed in that processing element and the given packet is returned by that processing element to the switch; and

wherein one of the processing elements identifies the next processing element by associating a next address tag with the given packet before returning the given packet to the switch.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: AGERE SYSTEMS LLC
To: LSI CORPORATION
Reel/Frame 034245/0655 →
CERTIFICATE OF CONVERSION Recorded Oct 19, 2014
From: AGERE SYSTEMS INC.
To: AGERE SYSTEMS LLC
Reel/Frame 034014/0846 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2006
From: LANGNER, PAUL ALLEN
To: AGERE SYSTEMS INC.
Reel/Frame 017719/0317 →