TCP/IP offload network interface device
First Claim
1. A system for receiving a packet from a network and for performing protocol processing on the packet, the packet being communicated to the system via a network connection, the system comprising:
- a device coupled to the network, the device including hardware receive circuitry adapted for accelerating the protocol processing of the packet by the system; and
a protocol processing stack configured for passing control of the network connection to the device, wherein the device and the protocol processing stack are arranged such that the packet is processed by the device instead of the protocol processing stack when the device is maintaining the network connection, wherein microcode instructions are downloaded into the device prior to the device receiving the packet, the device executing the microcode instructions in carrying out the protocol processing on the packet.
3 Assignments
0 Petitions
Accused Products
Abstract
An intelligent network interface card (INIC) or communication processing device (CPD) works with a host computer for data communication. The device provides a fast-path that avoids protocol processing for most messages, greatly accelerating data transfer and offloading time-intensive processing tasks from the host CPU. The host retains a fallback processing capability for messages that do not fit fast-path criteria, with the device providing assistance such as validation even for slow-path messages, and messages being selected for either fast-path or slow-path processing. A context for a connection is defined that allows the device to move data, free of headers, directly to or from a destination or source in the host. The context can be passed back to the host for message processing by the host. The device contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU. A preferred embodiment includes a trio of pipelined processors devoted to transmit, receive and utility processing, providing full duplex communication for four Fast Ethernet nodes.
-
Citations
20 Claims
-
1. A system for receiving a packet from a network and for performing protocol processing on the packet, the packet being communicated to the system via a network connection, the system comprising:
- a device coupled to the network, the device including hardware receive circuitry adapted for accelerating the protocol processing of the packet by the system; and
a protocol processing stack configured for passing control of the network connection to the device, wherein the device and the protocol processing stack are arranged such that the packet is processed by the device instead of the protocol processing stack when the device is maintaining the network connection, wherein microcode instructions are downloaded into the device prior to the device receiving the packet, the device executing the microcode instructions in carrying out the protocol processing on the packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
- a device coupled to the network, the device including hardware receive circuitry adapted for accelerating the protocol processing of the packet by the system; and
-
11. A method, comprising:
-
downloading microcode instructions onto a TCP/IP offload device and storing the microcode instructions on the TCP/IP offload device, the TCP/IP offload device comprising hardware receive circuitry and a processor, the hardware receive circuitry and the processor being disposed on an integrated circuit; receiving a network communication onto the TCP/IP offload device, the network communication including a TCP header;
using the hardware receive circuitry to perform initial TCP protocol processing on the network communication;executing the microcode instructions on the processor such that the processor performs subsequent TCP protocol processing on the network communication, the processor generating processed network communication information; and processing the processed network communication information on a device, the device executing a protocol stack, the device and the protocol stack performing session layer processing on the processed network communication information, the device and protocol stack performing no TCP protocol processing on the processed network communication information. - View Dependent Claims (12, 13)
-
-
14. A method of performing TCP layer protocol processing and IP layer protocol processing, the method comprising:
-
downloading microcode instructions onto a TCP/IP offload device and storing the microcode instructions on the TCP/IP offload device, the TCP/IP offload device comprising hardware receive circuitry and a processor, the hardware receive circuitry and the processor being disposed on a single integrated circuit; receiving a network communication onto the TCP/IP offload device, the network communication including a TCP checksum and an IP checksum; using the hardware receive circuitry to validate the TCP checksum and to validate the IP checksum; executing the microcode instructions on the processor such that the processor performs TCP layer protocol processing and IP layer protocol processing on the network communication; and sending data from the network communication to a device that is coupled to the TCP/IP offload device but not sending any TCP header of the network communication to the device. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification