Patent ID: 7944920

Claim:
A system comprising: an initiator comprising a host processor configured to request operations, wherein said host processor comprises a Small Computer System Interface (SCSI) command layer and an SCSI over Internet Protocol (iSCSI) driver; and a hardware processor configured to execute a remote direct memory access (RDMA) over a Transmission Control Protocol over Internet Protocol (TCP/IP) over a network to transfer a plurality of data packets from or to said initiator, said hardware processor further configured to provide said plurality of data packets to or from a target said hardware processor comprising: a. an RDMA mechanism; b. a command scheduler scheduling a first set of commands and a second set of commands from the SCSI command layer of said host processor for operation in said hardware processor; c. first command queues queuing the first set of commands from said host processor for a plurality of existing sessions, wherein the existing sessions are established upon a handshake between said initiator and the target; d. second command queues queuing the second set of commands from said host processor for a plurality of non-existing sessions that do not currently exist; e. a database recording a state of one of the existing sessions on which a command within the first set of commands is transported, and recording progress of RDMA for commands within the first set of commands that use RDMA; f. at least one transmit/receive engine and at least one command engine coupled together, said engines configured to interpret the commands within the first set of commands and commands within the second set of commands to perform operations for performing RDMA for retrieving data from or transmitting data to said host processor and for updating the state of said one of the existing sessions; and g. a command state table; wherein the hardware processor is configured to store a status of the command in the command state table, and to update the status of the command stored in the command state table based on termination of the command, and wherein a communication path between said hardware processor and said SCSI command layer of said host processor communicates a status of execution of the commands within the first set of commands to said SCSI command layer for processing.