A method and system for transferring iSCSI protocol data units ("PDUs") to
a host system is provided. The HBA includes, a direct memory access
engine operationally coupled to a pool of small buffers and a pool of
large buffers, wherein an incoming PDU size is compared to the size of a
small buffer and if the PDU fits in the small buffer, then the PDU is
placed in the small buffer. The incoming PDU size is compared to a large
buffer size and if the incoming PDU size is less than the large buffer
size then the incoming PDU is placed in the large buffer. If the coming
PDU size is greater than a large buffer, then the incoming PDU is placed
is more than one large buffer and a pointer to a list of large buffers
storing the incoming PDU is placed in a small buffer.