Intelligent network interface system and method for accelerated protocol processing
First Claim
1. A system for communication between a local host and a remote host that are connectable by a network, the system comprising:
- a communication processing device adapted to connect the network and the local host, said communication processing device including hardware logic configured to process network packets, a protocol processing stack disposed in the local host and configured to create a communication control block and passing control of said communication control block to said device, with said communication control block defining a connection between the local host and the remote host, wherein said device and said protocol processing stack are arranged such that a message transferred between the network and the local host is generally processed by said device instead of said protocol processing stack when said device owns said communication control block.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The CPD provides a fast-path that avoids protocol processing for most large multipacket messages, greatly accelerating data communication. The CPD also assists the host CPU for those message packets that are chosen for processing by host software layers. A context for a message is defined that allows DMA controllers of the CPD to move data, free of headers, directly to or from a destination or source in the host. The context can be stored as a communication control block (CCB) that is controlled by either the CPD or by the host CPU. The CPD contains specialized hardware circuits that process media access control, network and transport layer headers of a packet received from the network, saving the host CPU from that processing for fast-path messages.
129 Citations
27 Claims
-
1. A system for communication between a local host and a remote host that are connectable by a network, the system comprising:
-
a communication processing device adapted to connect the network and the local host, said communication processing device including hardware logic configured to process network packets, a protocol processing stack disposed in the local host and configured to create a communication control block and passing control of said communication control block to said device, with said communication control block defining a connection between the local host and the remote host, wherein said device and said protocol processing stack are arranged such that a message transferred between the network and the local host is generally processed by said device instead of said protocol processing stack when said device owns said communication control block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus configured for communicating packets over a network, the packets having data and headers, the apparatus comprising:
-
a memory adapted to store a protocol processing stack, a CPU configured to operate said protocol processing stack to process packets corresponding to a first set of protocols, and a communication processing device adapted to connect the apparatus to the network, said communication processing device including hardware logic configured to receive the packets from the network and categorize the received packets as fast-path packets or slow-path packets, said communication processing device including a mechanism configured to transfer to said memory said slow-path packets and at least the data of said fast-path packets, wherein said slow-path packets are processed by said CPU running said protocol processing stack, and said fast-path packets are not processed by said CPU running said protocol processing stack. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27)
-
-
21. An apparatus configured for communicating packets over a network, the packets having data and headers, the apparatus comprising:
-
a memory adapted to store a protocol processing stack, a CPU operably coupled to said memory and configured to operate said protocol processing stack to process packets corresponding to a first set of protocols, a communication processing device including hardware logic configured to categorize media access control, network and transport layer headers of a packet received from the network, and create a status of said packet, said communication processing device including a comparison mechanism operably coupled to said hardware logic and adapted to reference said status to determine whether to send said packet to said memory for processing by said CPU running said protocol processing stack, or to send at least the data of said packet to said memory, with the data of said packet mapped to a destination in said memory without processing of said media access control, network or transport layer headers by said CPU running said protocol processing stack.
-
Specification