TCP/IP processor and engine using RDMA
First Claim
1. A programmable TCP/IP processor engine, said processor having RDMA capability and used for processing Internet Protocol packets, said TCP/IP processor engine comprising:
- a checksum component for TCP/IP checksum verification and for new checksum generation;
a data memory for storing said packets;
an execution resource;
a packet look-up interface for assisting an execution resource and an instruction sequencer for providing access to said data packets or predetermined data packet fields thereof;
an instruction decoder to direct said TCP/IP processor engine operation based on the results of a classification processor;
a sequence and window operation manager providing specific segmenting, sequencing and windowing operations for use in TCP/IP data sequencing calculations;
and further comprising;
a hash engine used to perform hash operations against predetermined fields of the packet to perform a hash table walk to determine the correct session entry for said packet;
a register file for extracting predetermined header fields from said packets for TCP processing;
pointer registers for indicating data source and destination;
context register sets for holding multiple contexts for packet execution;
said multiple contexts allowing, in response to a given packet execution stalling, another context to be invoked to enable said TCP/IP processor engine to continue the execution of another packet stream;
said TCP/IP processor engine having a cache for holding recently or frequently used session entries, including connection IDs, for local use;
and further having an interface for informing a packet scheduler of the connection IDs that are cached for each TCP/IP processor engine resource.
5 Assignments
0 Petitions
Accused Products
Abstract
A TCP/IP processor and data processing engines for use in the TCP/IP processor is disclosed. The TCP/IP processor can transport data payloads of Internet Protocol (IP) data packets using an architecture that 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. The 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 TCP/IP session information database and may also store a storage information session 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. An application running on an initiator or target can in certain instantiations register a region of memory, which is made available to its peer(s) for access directly without substantial host intervention through RDMA data transfer.
218 Citations
20 Claims
-
1. A programmable TCP/IP processor engine, said processor having RDMA capability and used for processing Internet Protocol packets, said TCP/IP processor engine comprising:
-
a checksum component for TCP/IP checksum verification and for new checksum generation; a data memory for storing said packets; an execution resource; a packet look-up interface for assisting an execution resource and an instruction sequencer for providing access to said data packets or predetermined data packet fields thereof; an instruction decoder to direct said TCP/IP processor engine operation based on the results of a classification processor; a sequence and window operation manager providing specific segmenting, sequencing and windowing operations for use in TCP/IP data sequencing calculations; and further comprising; a hash engine used to perform hash operations against predetermined fields of the packet to perform a hash table walk to determine the correct session entry for said packet; a register file for extracting predetermined header fields from said packets for TCP processing; pointer registers for indicating data source and destination; context register sets for holding multiple contexts for packet execution; said multiple contexts allowing, in response to a given packet execution stalling, another context to be invoked to enable said TCP/IP processor engine to continue the execution of another packet stream;
said TCP/IP processor engine having a cache for holding recently or frequently used session entries, including connection IDs, for local use;
and further having an interface for informing a packet scheduler of the connection IDs that are cached for each TCP/IP processor engine resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification