Intelligent network interface system and method for protocol processing
First Claim
1. A method for receiving data by a network interface that is coupled to a computer by an input/output (I/O) bus, the method comprising:
- running, on the computer, a protocol processing stack including an Internet Protocol (IP) layer and a Transmission Control Protocol (TCP) layer, with an upper layer running above the TCP layer;
storing, on the network interface, a TCP connection defined by source and destination IP addresses and source and destination TCP ports;
receiving, by the network interface, a network packet having an IP header, a TCP header and data;
parsing, by the network interface, the IP header and TCP header; and
storing, by the network interface, the data in a memory location of the computer allocated by the upper layer.
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 INIC or CPD provides a fast-path that avoids host protocol processing for most large multipacket messages, greatly accelerating data communication. The INIC or CPD also assists the host for those message packets that are chosen for processing by host software layers. A communication control block (CCB) 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 CCB can be passed back to the host for message processing by the host. The INIC or CPD contains hardware circuits configured for protocol processing that can perform that specific task faster than the host CPU. One embodiment includes a processor providing transmit, receive and management processing, with full duplex communication for four fast Ethernet nodes.
-
Citations
20 Claims
-
1. A method for receiving data by a network interface that is coupled to a computer by an input/output (I/O) bus, the method comprising:
-
running, on the computer, a protocol processing stack including an Internet Protocol (IP) layer and a Transmission Control Protocol (TCP) layer, with an upper layer running above the TCP layer; storing, on the network interface, a TCP connection defined by source and destination IP addresses and source and destination TCP ports; receiving, by the network interface, a network packet having an IP header, a TCP header and data; parsing, by the network interface, the IP header and TCP header; and storing, by the network interface, the data in a memory location of the computer allocated by the upper layer. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for receiving data by a network interface that is coupled to a computer by an input/output (I/O) bus, the method comprising:
-
running, on the computer, a protocol processing stack including an Internet Protocol (IP) layer and a Transmission Control Protocol (TCP) layer, with an upper layer running above the TCP layer; storing, on the network interface, a TCP connection defined by source and destination IP addresses and source and destination TCP ports; receiving, by the network interface, a network packet having an IP header, a TCP header and data; updating, by the network interface, the TCP connection to record receiving the packet; and storing, by the network interface, the data in a memory location of the computer allocated by the upper layer. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus comprising:
-
a computer running a protocol processing stack including an Internet Protocol (IP) layer and a Transmission Control Protocol (TCP) layer, with an upper layer running above the TCP layer, the computer having a memory, the memory having a buffer allocated by the upper layer for storing data corresponding to the upper layer; and a network interface that is coupled to the computer by an input/output (I/O) bus, the network interface having an interface memory storing a TCP connection defined by source and destination IP addresses and source and destination TCP ports, the network interface including a mechanism for receiving a network packet having an IP header, a TCP header and data, parsing the IP header and the TCP header, and storing the data in the buffer. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification