Claims
- 1. A method comprising:
receiving a work request in a network offload engine from a host; in response to receiving the work request, registering in a translation table a memory region associated with the host.
- 2. The method of claim 1, wherein the work request includes memory protection information associated with the memory region and the method further includes:
storing the memory protection information in the translation table.
- 3. The method of claim 1, wherein the work request is received through a send queue.
- 4. The method of claim 1, further comprising:
in response to registering the memory region, returning a tag to the host, wherein the tag is associated with the memory region.
- 5. The method of claim 4, wherein the tag includes an index into the translation table.
- 6. The method of claim 1, further comprising:
in response to registering the memory region, placing a completion queue element on a completion queue.
- 7. The method of claim 1, wherein the work request includes an iSCSI command.
- 8. The method of claim 7, wherein the memory region is registered in response to processing an iSCSI command and the method further includes:
performing a transaction in fulfillment of the iSCSI command; receiving an iSCSI response associated with the transaction; and in response to receiving the iSCSI response, deregistering the memory region associated with the iSCSI transaction.
- 9. The method of claim 1, further comprising:
generating a tag associated with the memory region; and performing an input/output transaction over a connection protocol in a network with a remote node using the tag to refer to the memory region, wherein in the input/output transaction data is transferred using direct access to the memory region.
- 10. The method of claim 9, wherein the connection protocol is transmission control protocol (TCP).
- 11. The method of claim 1, further comprising:
establishing data representing a setting associated with the memory region, wherein the setting indicates that the memory region is configured to be valid for a single access by a remote node, such that the memory region will be invalidated in response to the memory region being accessed in fulfillment of a valid, incoming remote operation.
- 12. The method of claim 1, wherein the memory region is registered in response to processing a combined register memory region and send work request associated with a transaction in an upper level protocol and the method further includes:
receiving an incoming transaction send message in the upper level protocol, wherein the transaction send message includes a request to deregister a tag associated with the memory region; and in response to receiving the send message, deregistering the memory region associated with the tag.
- 13. A method comprising:
placing a work request on a send queue in a network offload engine, wherein the work request contains an identification of a memory region to be registered with the network offload engine; and receiving from the network offload engine a tag associated with the memory region as registered.
- 14. A method comprising:
registering a memory region in a network offload engine for transactional use with respect to a remote node; performing a single transaction with the remote node with respect to the memory region; and in response to performing the single transaction, deregistering the memory region.
- 15. A method comprising:
receiving from a remote node a tag associated with a memory region; determining whether the memory region associated with the tag has been deregistered; and in response to a determination that the memory region associated with the tag has been deregistered, indicating an error condition.
- 16. A computer program product in at least one computer-readable medium comprising functional descriptive material that, when executed by a computer, enables the computer to perform acts including:
receiving a work request in a network offload engine from a host; in response to receiving the work request, registering in a translation table a memory region associated with the host.
- 17. The computer program product of claim 16, wherein the work request includes memory protection information associated with the memory region and the computer program product includes additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
storing the memory protection information in the translation table.
- 18. The computer program product of claim 16, wherein the work request is received through a send queue.
- 19. The computer program product of claim 16, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
in response to registering the memory region, returning a tag to the host, wherein the tag is associated with the memory region.
- 20. The computer program product of claim 19, wherein the tag includes an index into the translation table.
- 21. The computer program product of claim 16, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
in response to registering the memory region, placing a completion queue element on a completion queue.
- 22. The computer program product of claim 16, wherein the work request includes an iSCSI command.
- 23. The computer program product of claim 22, wherein the memory region is registered in response to processing an iSCSI command and the computer program product includes additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
performing a transaction in fulfillment of the iSCSI command; receiving an iSCSI response associated with the transaction; and in response to receiving the iSCSI response, deregistering the memory region.
- 24. The computer program product of claim 16, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
generating a tag associated with the memory region; and performing an input/output transaction over transmission control protocol/internet protocol (TCP/IP) in a network with a remote node using the tag to refer to the memory region, wherein in the input/output transaction data is transferred using direct access to the memory region.
- 25. The computer program product of claim 16, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
establishing data representing a setting associated with the memory region, wherein the setting indicates that the memory region is configured to be valid for a single access by a remote node, such that the memory region will be invalidated in response to the memory region being accessed in fulfillment of a valid, incoming remote operation.
- 26. The computer program product of claim 16, wherein the memory region is registered in response to processing a combined register memory region and send work request associated with a transaction in an upper level protocol, and the computer program product includes additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
receiving an incoming transaction send message in the upper level protocol, wherein the transaction send message includes a request to deregister a tag associated with the memory region; and in response to receiving the send message, deregistering the memory region associated with the tag.
- 27. A computer program product in at least one computer-readable medium comprising functional descriptive material that, when executed by a computer, enables the computer to perform acts including:
placing a work request on a send queue in a network offload engine, wherein the work request contains an identification of a memory region to be registered with the network offload engine; and receiving from the network offload engine a tag associated with the memory region as registered.
- 28. A computer program product in at least one computer-readable medium comprising functional descriptive material that, when executed by a computer, enables the computer to perform acts including:
registering a memory region in a network offload engine for transactional use with respect to a remote node; performing a single transaction with the remote node with respect to the memory region; and in response to performing the single transaction, deregistering the memory region.
- 29. A computer program product in at least one computer-readable medium comprising functional descriptive material that, when executed by a computer, enables the computer to perform acts including:
receiving from a remote node a tag associated with a memory region; determining whether the memory region associated with the tag has been deregistered; and in response to a determination that the memory region associated with the tag has been deregistered, indicating an error condition.
- 30. A network offload engine comprising:
means for receiving a work request from a host; means, responsive to receiving the work request, for registering in a translation table a memory region associated with the host.
- 31. The network offload engine of claim 30, wherein the work request is received through a send queue.
- 32. The network offload engine of claim 30, further comprising:
means for generating a tag associated with the memory region; and means for performing an input/output transaction over transmission control protocol/internet protocol (TCP/IP) in a network with a remote node using the tag to refer to the memory region, wherein in the input/output transaction data is transferred using direct access to the memory region.
- 33. A host data processing system comprising:
means placing a work request on a send queue in a network offload engine associated with the host, wherein the work request contains an identification of a memory region to be registered with the network offload engine; and means for receiving from the network offload engine a tag associated with the memory region as registered.
- 34. The network offload engine of claim 33, wherein the tag includes an index into the translation table.
- 35. A data processing system comprising:
means for registering a memory region for transactional use with respect to a remote node; means for performing a single transaction with the remote node with respect to the memory region; and means, responsive to performing the single transaction, for deregistering the memory region.
- 36. A network offload engine comprising:
means for receiving from a remote node a tag associated with a memory region; means for determining whether the memory region associated with the tag has been deregistered; and means, responsive to a determination that the memory region associated with the tag has been deregistered, for indicating an error condition.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is related to an application entitled iSCSI DRIVER TO ADAPTER INTERFACE PROTOCOL, Ser. No. ______, attorney docket no. AUS920020127US1, filed even date hereof, assigned to the same assignee, and incorporated herein by reference.