Apparatus and method for supporting received data processing in an offload of network protocol processing
First Claim
1. A method, in a data processing system, for transferring data to a host system from a network adapter, comprising:
- receiving, in the network adapter, the data for transferring to the host system;
determining whether a connection specific application buffer is allocated for a connection associated with the data;
determining whether to wait for a specific application buffer to be allocated for the connection associated with the data, responsive to a determination that a connection specific application buffer has not been allocated for the connection;
selecting a non-connection specific application buffer from a pool of buffers to receive the data responsive to a determination not to wait for a specific application buffer to be allocated;
transferring the data to the selected non-connection specific application buffer;
examining descriptors generated by the network adapter for the data;
determining whether the descriptors reference a consecutive physical address space; and
providing the descriptors to the host system in a single bulk transaction between the network adapter and the host system responsive to a determination that the descriptors reference a consecutive physical address space.
1 Assignment
0 Petitions
Accused Products
Abstract
A number of improvements in network adapters that offload protocol processing from the host processor are provided. Specifically, an improved mechanism for handling receipt of data packets in a system utilizing an offload network adapter. The offload network adapter may include logic that permits the offload network adapter to delay notification of data reception to the host system in different ways. The advantage of delaying the notice of data packet reception to the host system is the potential for aggregation of several data packets, which can arrive immediately after the first one, for example, in a single notification. Given a stream with continuous data packet arrival, a value may be set, either statically or dynamically, for notification delay and this value may be configurable for the host system per communication socket.
52 Citations
33 Claims
-
1. A method, in a data processing system, for transferring data to a host system from a network adapter, comprising:
-
receiving, in the network adapter, the data for transferring to the host system; determining whether a connection specific application buffer is allocated for a connection associated with the data; determining whether to wait for a specific application buffer to be allocated for the connection associated with the data, responsive to a determination that a connection specific application buffer has not been allocated for the connection; selecting a non-connection specific application buffer from a pool of buffers to receive the data responsive to a determination not to wait for a specific application buffer to be allocated; transferring the data to the selected non-connection specific application buffer; examining descriptors generated by the network adapter for the data;
determining whether the descriptors reference a consecutive physical address space; andproviding the descriptors to the host system in a single bulk transaction between the network adapter and the host system responsive to a determination that the descriptors reference a consecutive physical address space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer program product in a computer recordable medium for transferring data to a host system from a network adapter, comprising:
-
first instructions for receiving, in the network adapter, the data for transferring to the host system; second instructions for determining whether a connection specific application buffer is allocated for a connection associated with the data; third instructions for determining whether to wait for a specific application buffer to be allocated for the connection associated with the data, responsive to a determination that a connection specific application buffer has not been allocated for the connection; fourth instructions for selecting a non-connection specific application buffer from a pool of buffers to receive the data responsive to a determination not to wait for a specific application buffer to be allocated; fifth instructions for transferring the data to the selected non-connection specific application buffer; sixth instructions for examining descriptors generated by the network adapter for the data; seventh instructions for determining whether the descriptors reference a consecutive physical address space; and eighth instructions for providing the descriptors to the host system in a single bulk transaction between the network adapter and the host system responsive to a determination that the descriptors reference a consecutive physical address space. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system for transferring data to a host system from a network adapter, comprising:
-
mechanism for receiving, in the network adapter, the data for transferring to the host system; mechanism for determining whether a connection specific application buffer is allocated for a connection associated with the data; mechanism for determining whether to wait for a specific application buffer to be allocated for the connection associated with the data, responsive to a determination that a connection specific application buffer has not been allocated for the connection; mechanism for selecting a non-connection specific application buffer from a pool of buffers to receive the data responsive to a determination not to wait for a specific application buffer to be allocated; mechanism for transferring the data to the selected non-connection specific application buffer; mechanism for examining descriptors generated by the network adapter for the data; mechanism for determining whether the descriptors reference a consecutive physical address space; and mechanism for providing the descriptors to the host system in a single bulk transaction between the network adapter and the host system responsive to a determination that the descriptors reference a consecutive physical address space. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification