Patent ID: 7400639

Claim:
A method, comprising: allocating, by a protocol processor included in a network adapter, a memory buffer in a host memory, wherein the host memory is comprised in a host that is coupled to the network adapter; initially processing a packet at the network adapter to generate data for offloading to the memory buffer in the host; offloading, by the protocol processor, the generated data to the memory buffer in the host; and subsequent to the offloading by the protocol processor of the generated data to the memory buffer in the host, processing, by the protocol processor, the offloaded data, wherein the method further comprises: (i) dividing the memory buffer into a plurality of buffers, wherein the plurality of buffers stores packet data associated with a plurality of network sessions, wherein an address of the memory buffer is not exposed directly or indirectly to a host application that executes in the host, and wherein the memory buffer comprises a non-pageable memory; (ii) dividing a buffer into one or more packet regions, wherein a size of a packet region exceeds a size of a maximum transmission unit of packets associated with a protocol; and (iii) storing a first packet data associated with a first packet in a first packet region, wherein if a data payload in the first packet exceeds a size of the host application buffer, then queuing the data payload into the memory buffer.