IP Library Granted Patent US 7,899,945
Granted Patent B2
US 7,899,945 · App. 12/771,403 · Granted Mar 1, 2011

Interface device and method for command processing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,899,945
App. No.
12/771,403
Granted
Mar 1, 2011
Kind
B2
Abstract

Embodiments of the present invention provide an interface device and method for command processing for commands requiring data flow in both directions on a Fiber Channel or other data transport protocol exchange. The commands can include proprietary commands, SCSI linked commands or other commands known in the art. According to one embodiment, and interface device can assign a command a data flow direction indicator. When a reply to the command is received, the interface device can determine if the reply is expected or unexpected based on the data flow direction specified by the data flow direction indicator. If the reply is unexpected, the interface device can determine whether to process the reply. According to one embodiment, the data flow direction indicator can be the exchange identification.

Claims (53)

1. A method of processing commands at an interface device between a first data transport protocol and a second data transport protocol, comprising:

providing an interface device comprising an interface for a first transport medium, a first controller for the first interface, a second interface for a second transport medium, a second controller, and interface logic comprising instructions executable to perform the steps of:

receiving a first command according to the first data transport protocol over a network at the interface device, wherein at least a portion of the first command specifies a first data flow direction;

assigning the first command an exchange identification that indicates a second data flow direction, wherein the second data flow direction is opposite the first data flow direction;

forwarding the first command according to the second data transport protocol using the exchange identification indicating a second data flow direction, wherein the forwarded first command is linked to one or more additional commands;

receiving a reply to the first command including an exchange identification;

when the reply to the first command contains an exchange identification corresponding to the second data flow direction and a response corresponding to the second data flow direction, processing the command; and

when the reply contains an exchange identification corresponding to the second data flow direction and a response corresponding to the first data flow direction, determining if the reply is associated with the first command;

wherein when the reply is associated with the first command, processing the reply;

when the reply is not associated with the first command, treating the reply as an error; and

assigning the exchange identification assigned to the first command to at least one additional command that specifies data flow in the second direction and is linked to the first command and forwarding the at least one additional command so that data flow of the first command and the at least one additional command occurs in the first and second direction on a same exchange.

2. The method of claim 1 , wherein the first data transport medium is SCSI and the second data transport medium is Fibre Channel.

3. The method of claim 2 , wherein the first command is a SCSI command.

4. The method of claim 1 , wherein the first data transport medium and the second data transport medium are different.

5. The method of claim 1 , wherein the first data transport protocol and the second data transport protocol are different.

6. The method of claim 1 , wherein the first command is a linked command.

7. The method of claim 1 , further comprising assigning the first command a data flow direction.

8. An interface device capable, comprising:

a first controller configured to:

receive a first command over a first data transport medium according to a first data transport protocol;

a second controller configured to:

connect to a second data transport medium operating according to a second data transport protocol; and

interface logic configured to:

receive the first command from the first controller, wherein at least a portion of the first command specifies a first data flow direction;

assign the first command an exchange identification that indicates a second data flow direction, wherein the second data flow direction is opposite the first data flow direction;

provide the first command to the second controller to forward the first command according to the second data transport protocol using the exchange identification indicating a second data flow direction, wherein the forwarded first command is linked to one or more additional commands;

receive a reply to the first command including an exchange identification;

when the reply to the first command contains an exchange identification corresponding to the second data flow direction and a response corresponding to the second data flow direction, processing the command; and

when the reply contains an exchange identification corresponding to the second data flow direction and a response corresponding to the first data flow direction, determining if the reply is associated with the first command;

wherein when the reply is associated with the first command, processing the reply;

when the reply is not associated with the first command, treating the reply as an error; and

assign the exchange identification assigned to the first command to at least one additional command that specifies data flow in the second direction and is linked to the first command and forwarding the at least one additional command so that data flow of the first command and the at least one additional command occurs in the first and second direction on a same exchange.

9. The interface device of claim 8 , wherein the first data transport medium is SCSI and the second data transport medium is Fibre Channel.

10. The interface device of claim 9 , wherein the first command is a SCSI command.

11. The interface device of claim 8 , wherein the first data transport medium and the second data transport medium are different.

12. The interface device of claim 8 , wherein the first data transport protocol and the second data transport protocol are different.

13. The interface device of claim 8 , wherein the first command is a linked command.

14. The interface device of claim 8 , wherein the interface logic is further configure to assign the first command a data flow direction.

15. A non-transitory computer readable medium comprising instructions for:

receiving a first command according to a first data transport protocol over a network at an interface device on a first transport medium, wherein at least a portion of the first command specifies a first data flow direction;

assigning the first command an exchange identification that indicates a second data flow direction, wherein the second data flow direction is opposite the first data flow direction;

forwarding the first command according to over a second data transport medium according to a second data transport protocol using the exchange identification indicating a second data flow direction, wherein the forwarded first command is linked to one or more additional commands;

receiving a reply to the first command including an exchange identification;

when the reply to the first command contains an exchange identification corresponding to the second data flow direction and a response corresponding to the second data flow direction, processing the command; and

when the reply contains an exchange identification corresponding to the second data flow direction and a response corresponding to the first data flow direction, determining if the reply is associated with the first command;

wherein when the reply is associated with the first command, processing the reply;

when the reply is not associated with the first command, treating the reply as an error; and

assigning the exchange identification assigned to the first command to at least one additional command that specifies data flow in the second direction and is linked to the first command and forwarding the at least one additional command so that data flow of the first command and the at least one additional command occurs in the first and second direction on a same exchange.

16. The non-transitory computer readable medium of claim 15 , wherein the first data transport medium is SCSI and the second data transport medium is Fibre Channel.

17. The non-transitory computer readable medium of claim 16 , wherein the first command is a SCSI command.

18. The non-transitory computer readable medium of claim 15 , wherein the first data transport medium and the second data transport medium are different.

19. The non-transitory computer readable medium of claim 15 , wherein the first data transport protocol and the second data transport protocol are different.

20. The non-transitory computer readable medium of claim 15 , wherein the first command is a linked command.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2014
From: FORTRESS CREDIT CO LLC
To: CF DB EZ LLC
Reel/Frame 033706/0340 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: CROSSROADS SYSTEMS, INC.
To: FORTRESS CREDIT CO LLC
Reel/Frame 030935/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2013
From: CROSSROADS SYSTEMS, INC.
To: KIP CR P1 LP
Reel/Frame 030935/0916 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: KIP CR P1 LP
To: FORTRESS CREDIT CO LLC
Reel/Frame 030935/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2010
From: HAECHTEN, JOHN B.; TYNDALL, JOHN F.
To: CROSSROADS SYSTEMS, INC.
Reel/Frame 024818/0885 →