High performance IP processor
DCFirst Claim
1. An Internet Protocol (IP) processor system for enabling Transmission Control Protocol (TCP) or Stream Control Transmission Protocol (SCTP), or User Datagram Protocol (UDP), or other session oriented protocols over IP networks, said IP processor system comprising:
- a. a plurality of packet processors for processing a plurality of packets including a first packet and a second packet, wherein the first packet and the second packet each have a connection ID associated therewith;
b. a session memory for storing IP session information related to the packets;
c. at least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets;
d. at least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network;
e. a host interface configured to communicate a command to said IP processor system, and coupled to at least one host or a fabric interface coupled to a fabric; and
f. a scheduler configured to assign the first packet to one of the packet processors executing the second packet based on at least the connection ID associated with each of the first packet and the second packet.
5 Assignments
Litigations
0 Petitions
Accused Products
Abstract
An architecture provides capabilities to transport and process Internet Protocol (IP) packets from Layer 2 through transport protocol Layer and may also provide packet inspection through Layer 7. A set of engines may perform pass-through packet classification, policy processing and/or security processing enabling packet streaming through the architecture at nearly the full line rate. A scheduler schedules packets to packet processors for processing. An internal memory or local session database cache stores a session information database for a certain number of active sessions. The session information that is not in the internal memory is stored and retrieved to/from an additional memory.
-
Citations
22 Claims
-
1. An Internet Protocol (IP) processor system for enabling Transmission Control Protocol (TCP) or Stream Control Transmission Protocol (SCTP), or User Datagram Protocol (UDP), or other session oriented protocols over IP networks, said IP processor system comprising:
-
a. a plurality of packet processors for processing a plurality of packets including a first packet and a second packet, wherein the first packet and the second packet each have a connection ID associated therewith; b. a session memory for storing IP session information related to the packets; c. at least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets; d. at least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network; e. a host interface configured to communicate a command to said IP processor system, and coupled to at least one host or a fabric interface coupled to a fabric; and f. a scheduler configured to assign the first packet to one of the packet processors executing the second packet based on at least the connection ID associated with each of the first packet and the second packet. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A hardware implemented Internet Protocol (IP) network application processor for providing Transmission Control Protocol/Internet Protocol (TCP/IP) operations in sessions on a plurality of information packets transported between an initiator computer system and a target computer system, said hardware implemented IP network application processor comprising:
-
a. a plurality of data processing resources including at least one programmable packet processor for processing said packets; b. a TCP/IP session cache and memory controller configured to track progress of and configured to control a memory useful in the processing performed on said packets; c. a host interface controller capable of controlling an interface to a host processor in the initiator computer system or the target computer system or a fabric interface controller capable of controlling an interface to a fabric; and d. a media independent interface capable of controlling an interface to a network media in the initiator computer system or the target computer system.
-
-
7. An Internet Protocol (IP) processor system for enabling Transmission Control Protocol (TCP) or other session oriented protocols over IP networks, said IP processor system comprising:
-
a. at least one packet processor for processing a plurality of packets including a first packet and a second packet; b. a session memory for storing IP session information related to the packets; c. at least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets; d. at least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network; and e. a host interface configured to communicate a command to said IP processor system, and coupled to at least one host or a fabric interface coupled to a fabric; i. wherein said IP processor system operates in multiple stages including at least two of (1) receiving the packets;
(2) providing security for the packets;
(3) classifying the packets;
(4) scheduling the packets for processing, wherein the second packet is executed on one of the packet processors and the first packet is executed on the packet processor executing the second packet based on a connection ID associated with each of the first packet and the second packet;
(5) executing data processing operations on the packets;
(6) providing direct memory access for transferring the packets to or from a memory of a system external to said IP processor system;
(7) transmitting the packets onto the at least one network;
(8) executing packet processing operations on data or commands forming the packets; and
(9) providing security for the packets, and(a) wherein a first stage of the at least two stages is configured to operate on the first packet concurrently with an operation performed by a second one of the at least two stages on the second packet.
-
-
8. A Transmission Control Protocol (TCP)/Internet Protocol (IP) (TCP/IP) processor system for enabling TCP, Stream Control Transmission Protocol (SCTP), or User Datagram Protocol (UDP) or other session oriented protocols, over IP networks, said TCP/IP processor system comprising:
-
a. a plurality of packet processor engines for processing a plurality of packets including a first packet and a second packet, wherein one of the packet processor engines comprises a TCP/IP processor engine configured to execute a TCP/IP protocol on the packets and wherein the first packet and the second packet each have a connection ID associated therewith; b. a session memory for storing session information related to the packets; c. at least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets; d. at least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network; e. a host interface configured to communicate a command to said TCP/IP processor system, and coupled to at least one host or a fabric interface coupled to a fabric; and f. a scheduler configured to assign the first packet to the one of the packet processor engines executing the second packet based on at least the connection ID associated with each of the first packet and the second packet. - View Dependent Claims (9)
-
-
10. An Internet Protocol (IP) Storage processor system for enabling IP Storage protocols over IP networks, said IP Storage processor system comprising:
-
a. a plurality of packet processor engines configured to process a plurality of storage packets including a first storage packet and a second storage packet, wherein said packet processor engines comprise at least one IP Storage processor engine for applying an Internet Protocol to the storage packets, wherein the first storage packet and the second storage packet each have a connection ID associated therewith; b. an IP Storage session memory for storing session information related to the storage packets; c. at least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the storage packets; d. at least one media interface for coupling to at least one network, wherein the storage packets are communicated via the at least one network; e. a host interface configured to communicate a command to said IP Storage processor, and coupled to at least one host or a fabric interface coupled to a fabric; and f. a scheduler configured to assign the first storage packet to one of the packet processor engines executing the second packet based on at least the connection ID associated with each of the first storage packet and the second storage packet. - View Dependent Claims (11)
-
-
12. An Internet protocol (IP) processor system for enabling TCP or other session oriented protocols over IP networks, said IP processor system comprising:
-
a. at least one packet processor for processing a plurality of packets including a first packet and a second packet, wherein the first packet and the second packet each have a connection ID associated therewith; b. a session memory for storing IP session information related to the packets; c. at least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets; d. at least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network; e. a host interface configured to communicate a command to said IP processor system, and coupled to at least one host or a fabric interface coupled to a fabric; and i. wherein said IP processor system operates in multiple stages including at least two of (1) receiving the packets;
(2) providing security for processing the packets if needed;
(3) classifying the packets;
(4) scheduling the packets for processing, wherein the second packet is executed on one of the packet processors and the first packet is executed on the packet processor executing the second packet based on a connection ID associated with each of the first packet and the second packet;
(5) executing data and/or processing operations on the packets;
(6) providing direct memory access for transferring the packets to or from a memory of a system external to said IP processor system;
(7) executing protocol processing operations on data or commands forming the packets;
(8) providing processing security for the packets, if needed; and
(9) transmitting the packets onto the at least one network; andii. wherein a first stage of the at least two stages is configured to operate on the first packet concurrently with an operation performed by a second one of the at least two stages on the second packet. - View Dependent Claims (13)
-
-
14. A Transmission Control Protocol (TCP)/Internet Protocol (IP) (TCP/IP) processor system for enabling TCP over IP networks, said TCP/IP processor system including a TCP/IP stack providing TCP/IP protocol termination and origination, said TCP/IP processor system comprising:
-
a. A plurality of packet processor engines for processing a plurality of packets including a first packet and a second packet, wherein the first packet and the second packet each have a connection ID herewith, wherein one of the packet processor engines comprises a TCP/IP processor engine configured to execute a TCP/IP protocol on the packets; b. A session memory for storing session information related to the packets; c. At least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets; d. At least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network, wherein said packet processor engines are configured to be scaled based on a line rate of the at least one network; e. A host interface configured to communicate a command to said IP processor, and coupled to at least one host or a fabric interface coupled to a fabric; and f. A scheduler configured to assign the first packet to one of the packet processor engines executing the second packet based on at least the connection ID associated with each of the first packet and the second packet. - View Dependent Claims (15, 20)
-
-
16. A Transmission Control Protocol (TCP)/Internet Protocol (IP) (TCP/IP) processor system for enabling TCP over IP networks, said TCP/IP processor system including a TCP/IP stack providing TCP/IP protocol termination and origination, said stack providing an interface to sockets layer functions in a host processor to transport data traffic, said TCP/IP processor system comprising:
-
a. A plurality of packet processor engines for processing a plurality of packets including a first packet and a second packet, wherein one of the packet processor engines comprises a TCP/IP processor engine configured to execute a TCP/IP protocol on the packets, wherein said packet processor engines are located on the same chip, wherein the first packet and the second packet each have a connection ID associated therewith; b. A session memory for storing session information related to the packets; c. At least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets; d. At least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network; e. A host interface configured to communicate a command to said IP processor, and coupled to at least one host or a fabric interface coupled to a fabric; and f. A scheduler configured to assign the first packet to one of the packet processor engines executing the second packet based on at least the connection ID associated with each of the first packet and the second packet. - View Dependent Claims (17, 21)
-
-
18. An Internet Protocol (IP) Storage processor system for enabling IP Storage protocols over IP networks, said IP Storage processor system including an IP Storage stack providing IP Storage protocol termination and origination, transporting information in active sessions over IP networks by transporting Protocol Data Units (PDU'"'"'s) specified by the IP storage standard, said IP processor system comprising:
-
a. A plurality of packet processor engines for processing a plurality of packets, wherein one of said packet processor engines includes an IP Storage processor engine configured to apply an Internet Small Computer System Interface (iSCSI) protocol to the packets, wherein said packet processor engines including a first storage packet and a second storage packet, wherein the first packet and the second packet each have a connection ID associated therewith; b. An IP Storage session memory for storing session information related to the packets; c. At least one memory controller for controlling memory accesses, wherein the memory accesses are performed to obtain session information of the packets; d. At least one media interface for coupling to at least one network, wherein the packets are communicated via the at least one network; e. A host interface configured to communicate a command to said IP Storage processor, and coupled to at least one host or a fabric interface coupled to a fabric; and f. A scheduler configured to assign the first packet to one of the packet processor engines executing the second packet based on at least the connection ID associated with each of the first packet and the second packet. - View Dependent Claims (19, 22)
-
Specification