Techniques, systems, and apparatus for conducting direct data placement of
network message data to a final destination in a user buffer are
disclosed. Generally, the invention is configured to conduct direct data
copying from a NIC memory to a final destination user buffer location
without any intermediate copying to a kernel buffer. The invention
includes a method that involves receiving network delivered messages by a
NIC of a local computer. The message is stored in the memory of the NIC.
The headers are stripped from the message and processed. A ULP handler of
the local computer is invoked to process the ULP header of the network
message. Using information obtained from the processed ULP header,
suitable memory locations in a user buffer are identified and designated
for saving associated message data. The message data is then directly
placed from the NIC memory to the designated memory location in the user
buffer without intermediate copy steps like DMA.