TCP/IP offload device with reduced sequential processing
First Claim
1. A device comprising:
- a parsing hardware unit that is configured to examine a received packet to determine a socket for the packet, the socket defined by source and destination Internet Protocol (IP) addresses and source and destination Transmission Control Protocol (TCP) ports for the packet;
a hashing hardware unit that is configured to generate, from the socket, a hash value for the packet; and
a socket detector hardware unit that uses the hash value to identify a group of TCP connections, and compares the socket with a plurality of sockets in the group of TCP connections, to identify a TCP connection from the group of TCP connections.
1 Assignment
0 Petitions
Accused Products
Abstract
A TCP Offload Engine (TOE) device includes a state machine that performs TCP/IP protocol processing operations in parallel. In a first aspect, the state machine includes a first memory, a second memory, and combinatorial logic. The first memory stores and simultaneously outputs multiple TCP state variables. The second memory stores and simultaneously outputs multiple header values. In contrast to a sequential processor technique, the combinatorial logic generates a flush detect signal from the TCP state variables and header values without performing sequential processor instructions or sequential memory accesses. In a second aspect, a TOE includes a state machine that performs an update of multiple TCP state variables in a TCB buffer all simultaneously, thereby avoiding multiple sequential writes to the TCB buffer memory. In a third aspect, a TOE involves a state machine that sets up a DMA move in a single state machine clock cycle.
191 Citations
20 Claims
-
1. A device comprising:
-
a parsing hardware unit that is configured to examine a received packet to determine a socket for the packet, the socket defined by source and destination Internet Protocol (IP) addresses and source and destination Transmission Control Protocol (TCP) ports for the packet;
a hashing hardware unit that is configured to generate, from the socket, a hash value for the packet; and
a socket detector hardware unit that uses the hash value to identify a group of TCP connections, and compares the socket with a plurality of sockets in the group of TCP connections, to identify a TCP connection from the group of TCP connections. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. The device of claim A, further comprising a processor running protocol processing instructions to establish the TCP connection.
-
8. A device comprising:
-
a processor running protocol processing instructions to establish Transmission Control Protocol (TCP) connection;
a parsing hardware unit that is configured to examine a received packet to determine a socket for the packet, the socket defined by source and destination Internet Protocol (IP) addresses and source and destination TCP ports for the packet;
a hashing hardware unit that is configured to generate, from the socket, a hash value for the packet; and
a socket detector hardware unit that uses the hash value to identify a group of TCP connections, and compares the socket with a plurality of sockets in the group of TCP connections, to identify a TCP connection from the group of TCP connections. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method comprising:
-
establishing a Transmission Control Protocol (TCP) connection that is identified by a pair of Internet Protocol (IP) addresses and a pair of TCP ports that define a socket, including running protocol processing instructions on a processor;
creating a hash number that is associated with the TCP connection and is based upon the socket;
storing the socket in a socket descriptor memory at an address which is specified by the hash number;
receiving a packet containing a header;
parsing the header of the packet with header parsing hardware to determine source and destination IP addresses and source and destination TCP ports for the packet;
hashing the IP addresses and the TCP ports with a hashing hardware unit to create a hash value for the packet; and
using the hash value to identify a group of sockets that are stored at the address; and
comparing, with a socket detector hardware unit, the source and destination IP addresses and TCP ports with the source and destination IP addresses and TCP ports of the sockets in the group, including identifying the TCP connection defined by the socket. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification