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 of transferring data of a message from a network interface device into a host memory of a host computer, the host computer having an operating system, the network interface device being coupled to receive the message from a packet-switched network, the network interface device being coupled such that the network interface device can write into the host memory, the message consisting of a first packet and a plurality of subsequent packets, each of the plurality of subsequent packets containing a header portion and a data portion, the method comprising:
- (a) the network interface device supplying at least a portion of the first packet to the operating system of the host computer, the operating system using the at least a portion of the first packet to obtain a destination in the host memory for the data of the message, the operating system obtaining this destination without being supplied by the network interface device any portion of any of the subsequent packets, the operating system communicating an indication of the destination to the network interface device; and
(b) the network interface device using the indication of the destination to write the data portion of each of the plurality of subsequent packets into the destination in the host memory, the network interface device writing the data portions from the plurality of subsequent packets into the destination without writing a header portion of any of the subsequent packets 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.
324 Citations
20 Claims
-
1. A method of transferring data of a message from a network interface device into a host memory of a host computer, the host computer having an operating system, the network interface device being coupled to receive the message from a packet-switched network, the network interface device being coupled such that the network interface device can write into the host memory, the message consisting of a first packet and a plurality of subsequent packets, each of the plurality of subsequent packets containing a header portion and a data portion, the method comprising:
-
(a) the network interface device supplying at least a portion of the first packet to the operating system of the host computer, the operating system using the at least a portion of the first packet to obtain a destination in the host memory for the data of the message, the operating system obtaining this destination without being supplied by the network interface device any portion of any of the subsequent packets, the operating system communicating an indication of the destination to the network interface device; and
(b) the network interface device using the indication of the destination to write the data portion of each of the plurality of subsequent packets into the destination in the host memory, the network interface device writing the data portions from the plurality of subsequent packets into the destination without writing a header portion of any of the subsequent packets into the destination. - View Dependent Claims (2, 3)
-
-
4. A method of transferring data of a message from a network interface device to a host computer, the network interface device being coupled to receive the message from a packet-switched network, the network interface device being coupled to the host computer such that the network interface device can write into a host memory on the host computer, the message consisting of a first packet and a plurality of subsequent packets, each of the plurality of subsequent packets containing a header portion and a data portion, the method comprising:
-
(a) transferring at least a portion of the first packet from the network interface device to the host computer, the host computer using the at least a portion of the first packet to allocate a destination in the host memory for the data of the message, the host computer doing this allocation without receiving from the network interface device any portion of any of the subsequent packets, the host computer communicating an indication of the destination to the network interface device; and
(b) the network interface device using the indication of the destination to write the data portion of each of the plurality of subsequent packets from the network interface device directly into the destination, the network interface device writing the data portions from the plurality of subsequent packets into the destination without writing a header portion of any of the subsequent packets into the destination. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. A method for communicating a message from a packet-switched network, through a network interface device, and to a host computer, the message comprising a plurality of packets, each of the plurality of packets comprising a data portion, the host computer having a memory, the network interface device being coupled to the host computer such that the network interface device can write to the memory of the host computer, the method comprising:
-
(a) passing a first part of the first packet of the message from the network interface device to a buffer in the memory of the host computer, a first part of the first packet including a first part of the data portion of the first packet, a second part of the data portion of the first packet not being passed from the network interface device to the buffer;
(b) passing from the host computer to the network interface device an indication of a destination in the memory of the host computer where data from the message is to be placed;
(c) the host computer transferring the first part of the data portion of the first packet from the buffer to the destination;
(d) the network interface device using the indication of the destination to transfer the second part of the data portion of the first packet from the network interface device to the destination without the second part of the data portion being written into the buffer; and
(e) the network interface device using the indication of the destination to transfer the data portions of the rest of the plurality of packets from the network interface device to the destination without the data portions being written into the buffer. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A system, comprising:
-
a host computer comprising;
host memory, an operating system and an application program, the application program identifying a destination in the host memory where data from a message is to be placed, the message comprising a plurality of packets, each of the packets comprising a header portion and a data portion; and
a network interface device coupled to a packet-switched network and coupled to the host computer, the network interface device being coupled to the host computer by a parallel bus, the network interface device receiving the packets of the message and placing the data portions of the packets of the message into the destination in host memory, the network interface device placing the data portions into the destination without placing any of the header portions into the destination. - View Dependent Claims (16, 17)
means for performing fast-path processing such that the network interface device places the data portions of the packets of the session layer message into the destination on the host computer without the protocol stack of the host computer doing any transport layer or network layer processing of any of the packets in the session layer message, the means also being for facilitating slow-path processing on a second session layer message such that the protocol stack of the host computer does transport layer and network layer processing on packets of the second session layer message.
-
-
18. A method of transferring data of a message from a network interface device to a host computer, the network interface device being coupled to receive the message from a packet-switched network, the network interface device being coupled to the host computer such that the network device can write into a host memory on the host computer, the message consisting of a first packet and a plurality of subsequent packets, the first packet including at least a session layer header, each of the plurality of subsequent packets containing a header portion and a data portion, the method comprising:
-
transferring, from the network interface device to the host computer, at least a portion of the first packet including at least the session layer header;
allocating, by the host computer processing the at least a portion of the first packet, a destination in the host memory for the data of the message;
communicating, from the host computer to the network interface device, an indication of the destination to the network interface device; and
writing, by the network interface device in accordance with the indication, the data portion of each of the plurality of subsequent packets from the network interface device into the destination, without writing a header portion of any of the subsequent packets into the destination. - View Dependent Claims (19, 20)
-
Specification