Network packet receiver with buffer logic for reassembling interleaved data packets
First Claim
1. A network packet receiver, comprising:
- receiver means for receiving interleaved streams of data cells, each stream of data cells comprising a data packet;
each said data packet incorporating an embedded error checking value to enable error checking thereof;
a data buffer, coupled to said receiver means, for storing said received streams of data cells;
logic means, coupled to said receiver means, for determining when a complete data packet has been received and stored in said data buffer;
packet processing means, coupled to said data buffer and said logic means, for retrieving a complete data packet from said data buffer, error checking said retrieved complete data packet, and transmitting the data packet to a host computer;
said logic means including space counting means for detecting when said data buffer has less than a threshold amount of free space remaining for storing received data cells, and overflow prevention logic, responsive to said space counting means, for selecting an incomplete data packet stored in said data buffer and for transmitting said incomplete data packet to said host computer without error checking said incomplete data packet;
said logic means further including partial packet handling means for transmitting subsequent portions of said incomplete data packet to said host computer, without error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete data packet; and
loopback means, coupled to said packet processing means, for receiving from said host computer said complete data packet, and for transmitting said complete data packet through said packet processing means back to said host computer.
7 Assignments
0 Petitions
Accused Products
Abstract
A network controller receives encrypted data packets in the form of interleaved streams of cells, and stores the received cells in a buffer until the end of each packet is received, at which time the complete packet is decrypted, error checked, and then transmitted to a host computer. The network controller'"'"'s buffer includes a data storage array in which data packets are stored as linked lists, and a packet directory having a entry for each data packet stored in the buffer. Each directory entry contains a pointer to the first and last location in the buffer where a corresponding data packet is stored, as well as status information for the data packet. When free space in the network controller'"'"'s buffer falls below a specified threshold, the network controller transmits selected partial packets to the host computer without decrypting or error checking, and also stores in its packet directory entry for each transmitted partial packet a "partial transfer" status flag. Additional portions of the partial packets may be sent to the host computer with an indication of the packet to which they belong. Upon receiving the end of a data packet that was partially transferred to the host computer, the remainder of the data packet in the packet buffer is transmitted to the host computer, without decrypting or error checking the partial data packet. The host computer then transmits the complete packet through a loopback path in the network controller for decrypting and error checking.
223 Citations
11 Claims
-
1. A network packet receiver, comprising:
-
receiver means for receiving interleaved streams of data cells, each stream of data cells comprising a data packet;
each said data packet incorporating an embedded error checking value to enable error checking thereof;a data buffer, coupled to said receiver means, for storing said received streams of data cells; logic means, coupled to said receiver means, for determining when a complete data packet has been received and stored in said data buffer; packet processing means, coupled to said data buffer and said logic means, for retrieving a complete data packet from said data buffer, error checking said retrieved complete data packet, and transmitting the data packet to a host computer; said logic means including space counting means for detecting when said data buffer has less than a threshold amount of free space remaining for storing received data cells, and overflow prevention logic, responsive to said space counting means, for selecting an incomplete data packet stored in said data buffer and for transmitting said incomplete data packet to said host computer without error checking said incomplete data packet; said logic means further including partial packet handling means for transmitting subsequent portions of said incomplete data packet to said host computer, without error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete data packet; and loopback means, coupled to said packet processing means, for receiving from said host computer said complete data packet, and for transmitting said complete data packet through said packet processing means back to said host computer. - View Dependent Claims (2)
-
-
3. A network packet receiver, comprising:
-
receiver means for receiving interleaved streams of data cells, each stream of data cells comprising a data packet that includes encrypted data;
each said data packet incorporating an embedded error checking value to enable error checking thereof;a data buffer, coupled to said receiver means, for storing said received streams of data cells; logic means, coupled to said receiver means, for determining when a complete data packet has been received and stored in said data buffer; packet processing means, coupled to said data buffer and said logic means, for retrieving a complete data packet from said data buffer, error checking said retrieved complete data packet, and transmitting the data packet to a host computer; said logic means including space counting means for detecting when said data buffer has less than a threshold amount of free space remaining for storing received data cells, and overflow prevention logic, responsive to said space counting means, for selecting an incomplete data packet stored in said data buffer and for transmitting said incomplete data packet to said host computer without error checking said incomplete data packet; said logic means further including partial packet handling means for transmitting subsequent portions of said incomplete data packet to said host computer, without error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete data packet; and loopback means, coupled to said packet processing means, for receiving from said host computer said complete data packet, and for transmitting said complete data packet through said packet processing means back to said host computer; said packet processing means including means for decrypting said retrieved complete data packet before transmitting the retrieved data packet to a host computer, and for decrypting data packets transmitted therethrough by said loopback means. - View Dependent Claims (4)
-
-
5. A network packet receiver, comprising:
-
receiver means for receiving interleaved streams of data cells, each stream of data cells comprising a data packet;
each said data packet incorporating an embedded error checking value to enable error checking thereof;a data buffer, coupled to said receiver means, for storing each distinct received stream of data cells as a separate linked list of data blocks; logic means, coupled to said receiver means, for determining when a linked list of data blocks in said data buffer stores a complete data packet; packet processing means, coupled to said data buffer and said logic means, for error checking the data blocks comprising a complete data packet and for transmitting the data packet to a host computer; said logic means including space counting means for detecting when said data buffer has less than a threshold number of data blocks remaining for storing received data cells, and overflow prevention logic, responsive to said space counting means, for selecting a linked list of data blocks in said data buffer comprising an incomplete data packet and for transmitting said incomplete data packet to said host computer without error checking said incomplete data packet; said logic means further including partial packet handling means for transmitting subsequent portions of said incomplete data packet to said host computer, without error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete data packet; and loopback means, coupled to said data packet processing means, for receiving from said host computer said complete data packet, and for transmitting said complete data packet through said packet processing means back to said host computer.
-
-
6. A network packet receiver, comprising:
-
receiver means for receiving interleaved streams of data cells, each stream of data cells comprising a data packet that includes encrypted data;
each said data packet incorporating an embedded error checking value to enable error checking thereof;a data buffer, coupled to said receiver means, for storing each distinct received stream of data cells as a separate linked list of data blocks; logic means, coupled to said receiver means, for determining when a linked list of data blocks in said data buffer stores a complete data packet; packet processing means, coupled to said data buffer and said logic means, for error checking the data blocks comprising a complete data packet and for transmitting the data packet to a host computer; said logic means including space counting means for detecting when said data buffer has less than a threshold number of data blocks remaining for storing received data cells, and overflow prevention logic, responsive to said space counting means, for selecting a linked list of data blocks in said data buffer comprising an incomplete data packet and for transmitting said incomplete data packet to said host computer without error checking said incomplete data packet; said logic means further including partial packet handling means for transmitting subsequent portions of said incomplete data packet to said host computer, without error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete data packet; and loopback means, coupled to said packet processing means, for receiving from said host computer said complete data packet, and for transmitting said complete data packet through said packet processing means back to said host computer; said packet processing means including means for decrypting said retrieved complete data packet before transmitting the retrieved data packet to a host computer, and for decrypting data packets transmitted therethrough by said loopback means.
-
-
7. A method of receiving data packets from a communications network, the steps of the method comprising:
-
receiving interleaved streams of data cells, each stream of data cells comprising a data packet;
each said data packet incorporating an embedded error checking value to enable error checking thereof;storing, in a data buffer, each received stream of data cells; determining when a complete data packet has been received and stored in said data buffer; retrieving a complete data packet from said data buffer, error checking said retrieved complete data packet, and transmitting the data packet to a host computer; detecting when said data buffer has less than a threshold amount of free space remaining for storing received data cells, then selecting an incomplete data packet stored in said data buffer and transmitting said incomplete data packet to said host computer without error checking said incomplete data packet; transmitting subsequent portions of said incomplete data packet to said host computer, without error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete data packet; and receiving from said host computer, via a loopback path, said complete data packet, and then error checking the complete data packet and transmitting the data packet back to said host computer. - View Dependent Claims (8)
-
-
9. A method of receiving data packets from a communications network, the steps of the method comprising:
-
receiving interleaved streams of data cells, each stream of data cells comprising a data packet that includes encrypted data;
each said data packet incorporating an embedded error checking value to enable error checking thereof;storing, in a data buffer, each received stream of data cells; determining when a complete data packet has been received and stored in said data buffer; retrieving a complete data packet from said data buffer, decrypting and error checking said retrieved complete data packet, and transmitting the retrieved, decrypted data packet to a host computer; detecting when said data buffer has less than a threshold amount of free space remaining for storing received data cells, then selecting an incomplete data packet stored in said data buffer and transmitting said incomplete data packet to said host computer without error checking said incomplete data packet; transmitting subsequent portions of said incomplete data packet to said host computer, without error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete data packet; and receiving from said host computer, via a loopback path, said complete data packet, and then decrypting and error checking said complete data packet and transmitting said received data packet back to said host computer. - View Dependent Claims (10)
-
-
11. A method of receiving data packets from a communications network, the steps of the method comprising:
-
receiving interleaved streams of data cells, each stream of data cells comprising an encrypted data packet;
each said encrypted data packet incorporating an embedded error checking value to enable error checking thereof;storing, in a data buffer, each distinct received stream of data cells as a separate linked list of data blocks; determining when a linked list of data blocks in said data buffer stores a complete encrypted data packet; decrypting and error checking the data blocks comprising a complete encrypted data packet and transmitting the decrypted data packet to a host computer; detecting when said data buffer has less than a threshold number of data blocks remaining for storing received data cells, and then selecting a linked list of data blocks in said data buffer comprising an incomplete data packet and transmitting said incomplete data packet to said host computer without decrypting and error checking said incomplete data packet; transmitting subsequent portions of said incomplete data packet to said host computer, without decrypting and error checking said subsequent portions of said incomplete data packet, until said host computer receives a complete encrypted data packet; and receiving from said host computer, via a loopback path, said complete encrypted data packet, and then decrypting and error checking the complete encrypted data packet and transmitting the decrypted data packet back to said host computer.
-
Specification