TCP/IP processor and engine using RDMA
First Claim
1. A TCP/IP stack providing transport layer remote direct memory access capability for use in transporting information in active sessions or connections over IP networks, said stack providing an interface to the upper layer protocol functions in a host processor to carry data traffic, and performing at least one of the hardware implemented functions of:
- a. sending and receiving data, including upper layer data;
b. establishing transport sessions and session teardown functions;
c. executing error handling functions;
d. executing time-outs;
e. executing retransmissions;
f. executing segmenting and sequencing operations;
g. maintaining protocol information regarding said active transport sessions;
h. maintaining TCP/IP state information for each of said one or more session connections. i. fragmenting and defragmenting data packets;
j. routing and forwarding data and control information;
k. sending to and receiving from a peer, memory regions reserved for RDMA;
l. recording said memory regions reserved for RDMA in an RDMA database and maintaining said database;
m. executing operations provided by RDMA capability;
n. executing security management functions;
o. executing policy management and enforcement functions;
p. executing virtualization functions;
q. communicating errors;
r. processing Layer 2 media access functions to receive and transmit data packets, validate the packets, handle errors, communicate errors and other Layer 2 functions;
s. processing physical layer interface functions;
t. executing TCP/IP checksum generation and verification functions;
u. processing Out of Order packet handling;
v. CRC calculation functions;
w. processing Direct Data Placement/Transfer;
x. Upper Layer Framing functions;
y. processing functions and interface to socket API'"'"'s;
z. forming packet headers for TCP/IP for transmitted data and extraction of payload from received packets; and
aa. processing header formation and payload extraction for Layer 2 protocols of data to be transmitted and received data packets;
respectively.
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.
-
Citations
37 Claims
-
1. A TCP/IP stack providing transport layer remote direct memory access capability for use in transporting information in active sessions or connections over IP networks, said stack providing an interface to the upper layer protocol functions in a host processor to carry data traffic, and performing at least one of the hardware implemented functions of:
-
a. sending and receiving data, including upper layer data;
b. establishing transport sessions and session teardown functions;
c. executing error handling functions;
d. executing time-outs;
e. executing retransmissions;
f. executing segmenting and sequencing operations;
g. maintaining protocol information regarding said active transport sessions;
h. maintaining TCP/IP state information for each of said one or more session connections. i. fragmenting and defragmenting data packets;
j. routing and forwarding data and control information;
k. sending to and receiving from a peer, memory regions reserved for RDMA;
l. recording said memory regions reserved for RDMA in an RDMA database and maintaining said database;
m. executing operations provided by RDMA capability;
n. executing security management functions;
o. executing policy management and enforcement functions;
p. executing virtualization functions;
q. communicating errors;
r. processing Layer 2 media access functions to receive and transmit data packets, validate the packets, handle errors, communicate errors and other Layer 2 functions;
s. processing physical layer interface functions;
t. executing TCP/IP checksum generation and verification functions;
u. processing Out of Order packet handling;
v. CRC calculation functions;
w. processing Direct Data Placement/Transfer;
x. Upper Layer Framing functions;
y. processing functions and interface to socket API'"'"'s;
z. forming packet headers for TCP/IP for transmitted data and extraction of payload from received packets; and
aa. processing header formation and payload extraction for Layer 2 protocols of data to be transmitted and received data packets;
respectively. - View Dependent Claims (2, 3)
-
-
4. A TCP/IP processor engine having RDMA capability, said processor for processing Internet Protocol packets and comprising at least one of each of:
-
a. an RDMA mechanism for performing RDMA data transfer;
b. a checksum hardware for performing checksum operations;
c. a data memory for storing data used in the TCP/IP processor engine;
d. an instruction memory for storing instructions used in the TCP/IP processor;
e. an instruction fetch mechanism for fetching said instructions;
f. an instruction decoder for decoding said instructions;
g. an instruction sequencer for sequencing said instructions;
h. a session database memory for storing TCP/IP session data;
ori. a session database memory controller for controlling said session database memory;
or a combination of any of the foregoing items a through i; and
a host interface, or a fabric interface, or bus controller, or memory controller or combination of any of the foregoing for coupling to host or a fabric. - View Dependent Claims (5, 6)
-
-
7. A TCP/IP processor implemented in hardware and capable of implementing transport level RDMA functions, said processor including a session memory for storing session information for a plurality of sessions.
-
8. 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;
adata 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 (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29)
-
- 27. The process, using a hardware TCP/IP processor capable of executing a transport layer RDMA protocol, of transferring data from a host processor to an output media interface of said host system using said RDMA protocol, said process including said TCP/IP processor forming headers and forming segmentation for said data to be transferred.
-
30. A TCP/IP processor having transport level RDMA capability for enabling TCP or other session oriented protocols, over IP networks, said processor comprising:
-
a. an RDMA mechanism for performing RDMA data transfer b. at least one TCP/IP processor engine for processing IP packets;
c. a session memory for storing session information;
d. at least one memory controller for controlling memory accesses;
e. at least one media interface for coupling to at least one network; and
f. a host interface for coupling to at least one host or a fabric interface for coupling to a fabric. - View Dependent Claims (31)
-
-
32. A TCP/IP processor having transport level RDMA capability for enabling TCP over IP networks, said processor including a TCP/IP stack providing TCP/IP protocol termination and origination, said processor comprising:
-
a. An RDMA mechanism for performing RDMA data transfer;
b. At least one TCP/IP processor engine for processing IP packets;
c. A session memory for storing session information;
d. At least one memory controller for controlling memory accesses;
e. At least one media interface for coupling to at least one network; and
f. A host interface for coupling to at least one host or fabric interface for coupling to a fabric. - View Dependent Claims (33, 37)
-
-
34. A TCP/IP processor having transport level RDMA capability for enabling TCP over IP networks, said processor 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 processor comprising:
-
a. An RDMA mechanism for performing RDMA data transfer;
b. At least one TCP/IP processor engine for processing IP packets;
c. A session memory for storing session information;
d. At least one memory controller for controlling memory accesses;
e. A media interface for coupling to at least one network; and
f. A host interface for coupling to at least one host or fabric interface for coupling to a fabric. - View Dependent Claims (35, 36)
-
Specification