Method and apparatus for hardware assisted TCP packet re-assembly
First Claim
1. A packet accelerator device, comprising:
- a packet header parser configured to parse packet header fields from incoming packets directed toward a host;
a processing mechanism configured to perform packet re-assembly on packets determined to have valid connections with said host; and
an address filter configured to identify data parsed from said packet header fields needed for packet re-assembly and place that data in a local memory directly accessible by said processing mechanism;
wherein;
said address filter comprises,a hashing mechanism configured to determine an index based on at least part of the parsed header fields,a connection table containing connection information indexed by said hashing mechanism, anda forward engine configured to,retrieve connection table values from said connection table corresponding to the incoming packets and compare the retrieved connection table values with the incoming,discard incoming packets that do not have matching connection information in said connection table,forward the incoming packets to the processing mechanism for re-assembly if the incoming packets have matching connection information in said connection table, andretrieve additional connection table values from said connection table when more than one connection has been stored by reference to said index; and
said connection table comprises a set of first connection address data, each first connection address data is stored at a hashed index location and includes a pointer that is either null, indicating the first connection address data is the only connection address saved at its corresponding hashed index location, or pointing to a next connection address data indicating a next connection address saved at a same hashed index.
8 Assignments
0 Petitions
Accused Products
Abstract
A hardware packet accelerator parses incoming packets to retrieve header data for building a frame status and for verifying the incoming packets are part of an established connection with a host. The accelerator includes a connection database that allows retrieval of connection information based on an index constructed from a hashed TCP connection address. The frame status comprises information needed to perform packet re-assembly and is stored in a memory that is local (directly accessible) by a processing device that performs the packet re-assembly. Among other advantages, the processing device does not need to read packet header data from a packet buffer, saving large amounts of header data retrieval time.
77 Citations
10 Claims
-
1. A packet accelerator device, comprising:
-
a packet header parser configured to parse packet header fields from incoming packets directed toward a host; a processing mechanism configured to perform packet re-assembly on packets determined to have valid connections with said host; and an address filter configured to identify data parsed from said packet header fields needed for packet re-assembly and place that data in a local memory directly accessible by said processing mechanism; wherein; said address filter comprises, a hashing mechanism configured to determine an index based on at least part of the parsed header fields, a connection table containing connection information indexed by said hashing mechanism, and a forward engine configured to, retrieve connection table values from said connection table corresponding to the incoming packets and compare the retrieved connection table values with the incoming, discard incoming packets that do not have matching connection information in said connection table, forward the incoming packets to the processing mechanism for re-assembly if the incoming packets have matching connection information in said connection table, and retrieve additional connection table values from said connection table when more than one connection has been stored by reference to said index; and said connection table comprises a set of first connection address data, each first connection address data is stored at a hashed index location and includes a pointer that is either null, indicating the first connection address data is the only connection address saved at its corresponding hashed index location, or pointing to a next connection address data indicating a next connection address saved at a same hashed index. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of accelerating packet re-assembly, comprising the steps of:
-
parsing a header fields of an incoming packet to determine data needed for packet re-assembly; forwarding the packet to be re-assembled to a re-assembly mechanism; placing the data needed for packet re-assembly in a local memory directly accessible by said re-assembly device; and identifying if the incoming packet is part of an established connection with said host; wherein; said step of determining if the incoming packet is part of an established connection comprises the steps of; hashing at least part of the parsed header fields to determine an index into a connection table; retrieving connection information from the connection table based on said index; comparing the connection information retrieved from the connection table to connection information from the parsed header fields; if the connection information from the connection table matches the connection information from the parsed header fields, then, identifying the incoming packet as being part of an established connection with said host; and if the connection information from the connection table does not match the connection information from the parsed header, then, determining if any additional connection addresses are hashed into the connection table at said index, and if additional connection address are hashed into the connection table at said index, then, retrieving the additional connection addresses, comparing the additional connection addresses to the connection information from the parsed header fields, and if any of the additional connection addresses match the parsed header fields, identifying the incoming packet as being part of an established connection with said host. - View Dependent Claims (8, 9, 10)
-
Specification