Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
First Claim
1. A method for use by a network interface for a host computer running an application, the method comprising:
- running, on the network interface, a TCP connection for the application;
receiving, by the network interface, multi-packet message including a first packet and a plurality of subsequent packets, each of the plurality of subsequent packets containing a TCP header portion, an IP header portion and a data portion;
passing, by the network interface, at least a portion of the first packet of the multi-packet message to the host computer;
receiving, by the network interface, an indication of a destination in memory on the host computer, the destination controlled by the application; and
writing, by the network interface, the data portions of the subsequent packets into the destination without writing any TCP header portion into the destination and without writing any IP header portion into the destination.
3 Assignments
0 Petitions
Accused Products
Abstract
A Network Interface device (NI device) coupled to a host computer receives a multi-packet message from a network (for example, the Internet) and DMAs the data portions of the various packets directly into a destination in application memory on the host computer. The address of the destination is determined by supplying a first part of the first packet to an application program such that the application program returns the address of the destination. The address is supplied by the host computer to the NI device so that the NI device can DMA the data portions of the various packets directly into the destination. In some embodiments the NI device is an expansion card added to the host computer, whereas in other embodiments the NI device is a part of the host computer.
-
Citations
14 Claims
-
1. A method for use by a network interface for a host computer running an application, the method comprising:
-
running, on the network interface, a TCP connection for the application; receiving, by the network interface, multi-packet message including a first packet and a plurality of subsequent packets, each of the plurality of subsequent packets containing a TCP header portion, an IP header portion and a data portion; passing, by the network interface, at least a portion of the first packet of the multi-packet message to the host computer; receiving, by the network interface, an indication of a destination in memory on the host computer, the destination controlled by the application; and writing, by the network interface, the data portions of the subsequent packets into the destination without writing any TCP header portion into the destination and without writing any IP header portion into the destination. - View Dependent Claims (2, 3, 4)
-
-
5. A method comprising:
-
receiving, by a network interface device for a host computer, a message containing a plurality of packets having a TCP header and a data portion; passing at least a portion of a first of the packets from the network interface device to the host computer, wherein said at least a portion includes a session layer header; receiving, by the network interface device, an indication of a destination in host memory, in response to the passing at least a portion of the first packet to the host computer; and transferring, by the network interface device, the data portions of any of the plurality of packets subsequent to the first packet into the destination without writing any TCP header portion of any of the subsequent packets into the destination. - View Dependent Claims (6, 7, 8)
-
-
9. A method comprising:
-
receiving, by a network interface device for a host computer, a message containing a first packet and a plurality of subsequent packets having a TCP header portion and a data portion, the TCP header portion indicating an application in the host computer; passing a first part of the first packet, but not a second part of the first packet, from the network interface device to the host computer, the first part of the first packet including a session layer header portion; receiving, by the network interface device from the host computer, an indication of a destination in host memory provided by the application; and transferring, by the network interface device, the data portions of the subsequent packets into the destination without writing any TCP header portion of any of the subsequent packets into the destination. - View Dependent Claims (10, 11, 12, 13, 14)
-
Specification