Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
DC CAFCFirst Claim
1. A method comprising:
- receiving, by a network interface that is coupled to a computer, a plurality of packets each containing data, a network layer header and a transport layer header;
obtaining a destination for the data in a memory of the computer, such that information that is later stored in the destination will be controlled by an application running on the computer that is above the transport layer;
providing an indication of the destination from the computer to the network interface; and
transferring the data to the destination, without transferring the network layer headers or the transport layer headers of the plurality of packets to the destination, and without processing the network layer headers or the transport layer headers by the computer.
3 Assignments
Litigations
4 Petitions
Reexamination
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.
296 Citations
20 Claims
-
1. A method comprising:
-
receiving, by a network interface that is coupled to a computer, a plurality of packets each containing data, a network layer header and a transport layer header; obtaining a destination for the data in a memory of the computer, such that information that is later stored in the destination will be controlled by an application running on the computer that is above the transport layer; providing an indication of the destination from the computer to the network interface; and transferring the data to the destination, without transferring the network layer headers or the transport layer headers of the plurality of packets to the destination, and without processing the network layer headers or the transport layer headers by the computer. - View Dependent Claims (2, 3, 4, 5, 6, 20)
-
-
7. A method comprising:
-
receiving, by a network interface that is coupled to a computer, a plurality of packets each containing data, a network layer header and a transport layer header, wherein the data is for an application running on the computer; providing, by the network interface to the computer, a session layer header from one of the packets; analyzing, by the computer, the session layer header, including obtaining a destination for the data in a memory of the computer, such that information that is later stored in the destination will be controlled by the application; and transferring the data to the destination, without transferring the network layer headers or the transport layer headers of the plurality of packets to the destination, and without processing the network layer headers or the transport layer headers by the computer. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
receiving, by a network interface that is coupled to a computer, a plurality of packets each containing data, a network layer header and a transport layer header, wherein the data is for an application running on the computer; providing, by the network interface to the computer, a header portion of one of the packets; analyzing, by the computer, the header portion, including obtaining a destination for the data in a memory of the computer, such that information that is later stored in the destination will be controlled by the application; and transferring the data to the destination, without transferring the network layer headers or the transport layer headers of the plurality of packets to the destination, and without processing the network layer headers or the transport layer headers by the computer. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
Specification