System and method for processing commands
First Claim
1. A method for processing commands comprising:
- maintaining a knowledgebase of command protocols at a routing device;
receiving a command destined for a target from an initiator over a first data transport medium which implements a first data transport protocol, wherein the target is a SCSI based device;
determining command protocols supported by the initiator and the target;
modifying the command from a first command protocol supported by the initiator to a second command protocol supported by the target based on the knowledgebase of command protocols maintained at the routing device, wherein the first command protocol supported by the initiator is in a first version of the SCSI standard, wherein the second command protocol supported by the target is in a second version of the SCSI standard, and wherein the routing device comprises a processing unit for mapping the first data transport protocol to a second data transport protocol;
forwarding the modified command which is in the second command protocol to the target over a second data transport medium which implements the second data transport protocol;
receiving a response from the target over the second data transport medium; and
modifying the response from the second command protocol in the second version of the SCSI standard supported by the target to the first command protocol in the first version of the SCSI standard supported by the initiator based on the knowledgebase of command protocols maintained at the routing device wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide for conversion between command protocols. A routing device, or other device in the command path, can receive a command from an initiator, determine if the initiator and target for the command support the same command protocol and, if not, convert the command and/or response between the command protocols used by the initiator and the target. For commands not supported by the target or for particular predetermined commands, the device can generate a response to the command rather than passing the command to the target. Additionally, the device can modify responses from the target to include additional data and indications of errors according to the command protocol supported by the initiator.
29 Citations
33 Claims
-
1. A method for processing commands comprising:
-
maintaining a knowledgebase of command protocols at a routing device; receiving a command destined for a target from an initiator over a first data transport medium which implements a first data transport protocol, wherein the target is a SCSI based device; determining command protocols supported by the initiator and the target; modifying the command from a first command protocol supported by the initiator to a second command protocol supported by the target based on the knowledgebase of command protocols maintained at the routing device, wherein the first command protocol supported by the initiator is in a first version of the SCSI standard, wherein the second command protocol supported by the target is in a second version of the SCSI standard, and wherein the routing device comprises a processing unit for mapping the first data transport protocol to a second data transport protocol; forwarding the modified command which is in the second command protocol to the target over a second data transport medium which implements the second data transport protocol; receiving a response from the target over the second data transport medium; and modifying the response from the second command protocol in the second version of the SCSI standard supported by the target to the first command protocol in the first version of the SCSI standard supported by the initiator based on the knowledgebase of command protocols maintained at the routing device wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of processing responses to commands comprising:
-
maintaining a knowledgebase of command protocols at a routing device; determining that an initiator supports a first command protocol and a target supports a second command protocol, wherein the target is a SCSI based device, wherein the first command protocol supported by the initiator is in a first version of the SCSI standard, wherein the second command protocol supported by the target is in a second version of the SCSI standard; receiving a command destined for the target from the initiator over a first data transport medium which implements a first data transport protocol; mapping the first data transport protocol to a second data transport protocol at the routing device; forwarding the command to the target over a second data transport medium which implements the second data transport protocol, wherein the command is in the first command protocol; receiving a response to the command from the target in accordance with the second command protocol over the second data transport medium; mapping the second data transport protocol to the first data transport protocol at the routing device; modifying the response from the second command protocol in the second version of the SCSI standard to the first command protocol in the first version of the SCSI standard based on the knowledgebase of command protocols maintained at the routing device wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response; and forwarding the modified response to the initiator over the first data transport medium. - View Dependent Claims (9, 10, 11)
-
-
12. A computer program product comprising a set of computer instructions stored on a computer readable medium, wherein the set of computer instructions comprise instructions executable to:
-
maintain a knowledgebase of command protocols at a routing device; determine that an initiator operates according to a first command protocol, wherein the first command protocol supported by the initiator is in a first version of the SCSI standard; determine that a target operates according to a second command protocol, wherein the target is a SCSI based device and wherein the second command protocol supported by the target is in a second version of the SCSI standard; receive a command destined for the target from the initiator over a first data transport medium which implements a first data transport protocol; determine that the command requires conversion to a second command protocol; convert the command to the second command protocol based on the knowledgebase of command protocols maintained at the routing device, wherein the routing device comprises a processing unit for mapping the first data transport protocol to a second data transport protocol; forward the converted command which is in the second command protocol to the target over a second data transport medium which implements the second data transport protocol; and modify a response to the command according to the first command protocol, wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A computer program product comprising a set of computer instructions stored on a computer readable medium, wherein the set of computer instructions comprise instructions executable to:
-
maintain a knowledgebase of command protocols at a routing device; determine that an initiator supports a first command protocol and a target supports a second command protocol, wherein the target is a SCSI based device, wherein the first command protocol supported by the initiator is in a first version of the SCSI standard and wherein the second command protocol supported by the target is in a second version of the SCSI standard; receive a command destined for the target from the initiator over a first data transport medium which implements a first data transport protocol; map the first data transport protocol to a second data transport protocol at the routing device; forward the command to the target over a second data transport medium which implements the second data transport protocol, wherein the command is in the first second command protocol; receive a response to the command from the target in accordance with the second command protocol over the second data transport medium; map the second data transport protocol to the first data transport protocol at the routing device; modify the response from the second command protocol in the second version of the SCSI standard supported by the target to the first command protocol in the first version of the SCSI standard supported by the initiator based on the knowledgebase of command protocols maintained at the routing device, wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response; and forward the modified response to the initiator over the first data transport medium. - View Dependent Claims (19, 20, 21)
-
-
22. A routing device comprising:
-
a first controller comprising a first direct memory access (DMA) interface for interfacing with a first data transport medium; a second controller comprising a second DMA interface for interfacing with a second data transport medium; a buffer connected to the first controller and the second controller, wherein the first DMA interface is to place commands received over the first data transport medium in the buffer and wherein the second DMA interface is to place responses received over the second data transport medium in the buffer; a processing unit connected to the first controller, the second controller and the buffer, wherein the processing unit operates to; determine that an initiator operates according to a first command protocol in a first version of the SCSI standard; determine that a target supports a second command protocol in a second version of the SCSI standard, wherein the target is a SCSI based device; convert a command received at the first controller from the initiator to the second command protocol based on a knowledgebase of command protocols; forward the converted command to the second controller via the second DMA interface, wherein the second controller forwards the command to the target over the second data transport medium; and modify a response to the converted command from the second command protocol in the second version of the SCSI standard to the first command protocol in the first version of the SCSI standard, wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A routing device comprising:
-
a first controller comprising a first direct memory access (DMA) interface for interfacing with a first data transport medium; a second controller comprising a second DMA interface for interfacing with a second data transport medium; a buffer connected to the first controller and the second controller to provide a memory workspace for the routing device, wherein the first DMA interface is to place commands received over the first data transport medium in the buffer and wherein the second DMA interface is to place responses received over the second data transport medium in the buffer; a processing unit connected to the first controller, the second controller and the buffer, wherein the processing unit is operates to; determine that an initiator supports a first command protocol and a target supports a second command protocol, wherein the first command protocol supported by the initiator is in a first version of the SCSI standard, wherein the second command protocol supported by the target is in a second version of the SCSI standard, and wherein the target is a SCSI based device; receive a command from the initiator over the first data transport medium at the first controller; forward the command to the target over the second data transport medium, wherein the command is in the first command protocol; modify a response received at the second controller from the target from the second command protocol in the second version of the SCSI standard supported by the target to the first command protocol in the first version of the SCSI standard supported by the initiator based on a knowledgebase of command protocols maintained at the routing device, wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response; and forward the modified response to the initiator over the first data transport medium. - View Dependent Claims (28, 29, 30)
-
-
31. A method for processing commands comprising:
-
maintaining a knowledgebase of command protocols at a routing device; establishing that an initiator operates according to a first command protocol and a target operates according to a second command protocol, wherein the target is a SCSI based device; receiving a command destined for the target from the initiator over a first data transport medium which implements a first data transport protocol; modifying the command from the first command protocol supported by the initiator to the second command protocol supported by the target based on the knowledgebase of command protocols maintained at the routing device, wherein the first command protocol supported by the initiator is in a first version of the SCSI standard, wherein the second command protocol supported by the target is in a second version of the SCSI standard, and wherein the routing device comprises a processing unit for mapping the first data transport protocol to a second data transport protocol; forwarding the modified command which is in the second command protocol to the target over a second data transport medium which implements the second data transport protocol; receiving a response from the target over the second data transport medium; modifying the response from the second command protocol in the second version of the SCSI standard supported by the target to the first command protocol in the first version of the SCSI standard supported by the initiator based on the knowledgebase of command protocols maintained at the routing device, wherein modifying the response includes adding data to the response, deleting data from the response, or changing a field in the response; and forwarding the modified response which is in the first command protocol to the initiator over the first data transport medium. - View Dependent Claims (32, 33)
-
Specification