Intelligent network interface system method for protocol processing
First Claim
1. A method for communication between a network and a host computer having a processor and a sequential stack of protocol layers, the method comprising:
- receiving, by said host from said network, a message packet including data and a plurality of headers corresponding to said stack of protocol layers, said data intended for placement in said host according to protocol processing of said headers, processing, sequentially as a group, said plurality of headers, including creating a summary of said group of headers, and choosing, dependent upon said summary, whether to process said packet by said protocol layers or to avoid processing by said protocol layers, for storing said data in a destination in said host.
4 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 INIC provides a fast-path that avoids protocol processing for most large multipacket messages, greatly accelerating data communication. The INIC also assists the host for those message packets that are chosen for processing by host software layers. A communication control block for a message is defined that allows DMA controllers of the INIC to move data, free of headers, directly to or from a destination or source in the host. The context is stored in the IMC as a communication control block (CCB) that can be passed back to the host for message processing by the host. The INIC 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 with separate processors devoted to transmit, receive and management processing, with full duplex communication for four fast Ethernet nodes.
-
Citations
23 Claims
-
1. A method for communication between a network and a host computer having a processor and a sequential stack of protocol layers, the method comprising:
-
receiving, by said host from said network, a message packet including data and a plurality of headers corresponding to said stack of protocol layers, said data intended for placement in said host according to protocol processing of said headers, processing, sequentially as a group, said plurality of headers, including creating a summary of said group of headers, and choosing, dependent upon said summary, whether to process said packet by said protocol layers or to avoid processing by said protocol layers, for storing said data in a destination in said host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for network communication by a host computer having a processor, a memory and a sequential stack of protocol layers, the method comprising:
-
receiving by the host from the network a packet including data and a plurality of headers relating to the stack of protocol layers, said packet destined for said host, categorizing said packet with a hardware logic sequencer, including classifying said headers and creating a summary of said packet, and choosing, dependent upon said summary, whether to process said packet to with said stack of protocol layers or to bypass said stack of protocol layers by transferring said data to a destination in said host. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
receiving by said host from said network a second packet of said message, said second packet including additional data and additional headers, categorizing said second packet with said hardware logic sequencer, including classifying said additional headers and creating a second packet summary, choosing, dependent upon said second packet summary, whether to send said second packet to said stack of protocol layers or to bypass said stack of protocol layers and send said additional data to said destination, wherein only one of said first and second packets is sent to said stack of protocol layers.
-
-
13. The method of claim 11, further comprising:
-
sending said packet to said stack of protocol layers, processing said packet with said stack of protocol layers and thereby creating a context including said destination for said message, receiving by said host from said network a related packet including additional data and additional headers, and employing said context for sending said additional data to said destination.
-
-
14. The method of claim 11, further comprising creating a context for a message including said packet, said context defining a connection between said host and a remote host, wherein choosing whether to process said packet with said stack of protocol layers or to bypass said stack of protocol layers includes comparing said summary with said context.
-
15. The method of claim 11, further comprising bypassing said stack of protocol layers by sending said data without said headers to said destination in a form suitable for said destination.
-
16. The method of claim 11, further comprising:
-
sending said packet to said stack of protocol layers, processing said packet with said stack of protocol layers and thereby creating a context for said message, creating a context for a message including said packet, said context defining a connection between said host and a remote host, and employing said context for transmitting a reply to said network from said host, including prepending a transmission header to reply data, said transmission header including control information regarding each of said protocol layers.
-
-
17. The method of claim 11, wherein said destination is a file cache in said host.
-
18. The method of claim 11, wherein the host is connected to the network with a network interface device, and said receiving occurs in said device.
-
19. A method for communication between a network and a host computer having a processor and a stack of protocol layers, the method comprising:
-
a step for receiving, by said host from said network, a message packet including data and a plurality of headers corresponding to said stack of protocol layers, wherein said data has been sent to the host for placement in the host according to protocol processing of said headers, and said headers are made of a series of bytes, a step for categorizing said series of bytes to obtain a status of said packet, and a step for choosing whether to process said packet by said protocol layers, said step for choosing dependent on said status. - View Dependent Claims (20, 21, 22, 23)
-
Specification