Offloading data path functions
AssigneeIntel Corporation
InventorsMark Wunderlich, Hemal Shah, Anshuman Thakur, Daniel Manseau
Life of this patent
Estimating the term…
Abstract
Input/Output (I/O) protocol operations such as iSCSI protocol operations may be selectively offloaded to an I/O protocol offload device, or retained by a host driver software. In one embodiment, iSCSI data transfer functions are offloaded to an offload device while session and connection establishing and maintenance operations are retained by host driver software. Other features are described and claimed.
Claims30
A method of transferring data between an initiator and a target in accordance with an Input/Output (I/O) protocol, comprising:
- a host software driver for an offload device of the initiator establishing and maintaining a session between the initiator and the target wherein the session comprises one or more transport connections;
- said initiator driver selectively issuing a data transfer command of said I/O protocol for said target to said initiator offload device and identifying to said initiator offload device host memory locations for data to be transferred in connection with said data transfer command;
- said initiator offload device forwarding said data transfer command to said target;
- said initiator offload device transferring data between said target and said identified initiator host memory locations independently of said initiator host driver;
- and
- upon completion of said data transfer command, said initiator offload device issuing a data transfer command completion notification to said initiator driver.
An article comprising a medium having a plurality of machine accessible instructions, wherein when the instructions are executed by devices including a host processor and an offload device, the instructions provide for:
- a host processor establishing and maintaining a session between an initiator and a target in accordance with an I/O protocol wherein the session comprises one or more transport connections;
- said initiator host processor selectively issuing a data transfer command of said I/O protocol for said target to an offload device of said initiator and identifying to said initiator offload device host memory locations for data to be transferred in connection with said data transfer command;
- said initiator offload device forwarding said data transfer command to said target;
- said initiator offload device transferring data between said target and said identified initiator host memory locations independently of said initiator host processor;
- and
- upon completion of said data transfer command, said initiator offload device issuing a data transfer command completion notification to said initiator host processor.
A system for use with a network and a target coupled to the network, comprising:
- an initiator having at least one host memory which includes an operating system and host memory locations, a host processor coupled to the memory, a controller for managing operations in accordance with an Input/Output (I/O) protocol, said controller including at least one offload device, and a device driver executable by the processor in the memory and adapted to:
- establish and maintain a session between said initiator and a target in accordance with said I/O protocol wherein the session comprises one or more transport connections;
- and selectively issue a data transfer command of said I/O protocol for said target to said offload device of said initiator and identifying to said initiator offload device host memory locations for data to be transferred in connection with said data transfer command;
- wherein said initiator offload device is adapted to forward said data transfer command to said target;
- and to transfer data between said target and said identified initiator host memory locations independently of said initiator host processor;
- and upon completion of said data transfer command, issue a data transfer command completion notification to said initiator host processor.
A controller for use in network having an initiator and in a system which functions as a target in accordance with an I/O protocol wherein said target includes a host driver and a host memory, said controller comprising:
- a target offload device adapted to:
- in response to a data transfer instruction from said target host driver to said target offload device, which instruction identifies to said target offload device target host memory locations for data to be transferred in connection with said data transfer instruction, transfer data between said initiator and said identified target host memory locations independently of said target host driver;
- and upon completion of said data transfer command, and in response to a data transfer response command to said target offload device, forward a data transfer response command to said initiator;
- and
- issue a data transfer response command completion notification to said target host driver.
Dependencies are inferred from the claim text.