ROUTER AND METHODS USING NETWORK ADDRESSES FOR VIRTUALIZATION
First Claim
1. A method performed by a router for routing frames in a network, the router comprising a managing processor and a plurality of routing processors, each routing processor for receiving frames from the network, for routing frames to the network, and for routing frames to the managing processor, the method performed by the managing processor comprising:
- a step for executing a plurality of proxy processes, each proxy process associated with a destination of a set of destinations used for communication between the managing processor and the plurality of routing processors;
a step for receiving from a routing processor of the plurality a frame comprising indicia of a particular destination of the set;
a step for parsing the frame to determine a particular proxy process of the plurality in accordance with the indicia of the particular destination by parsing the frame; and
a step for providing at least a payload of the frame to the particular proxy process.
16 Assignments
0 Petitions
Accused Products
Abstract
A router for use in a network includes a scalable architecture and performs methods for implementing quality of service on a logical unit behind a network port; and for implementing storage virtualization. The architecture includes a managing processor, a supervising processor; and a plurality of routing processors coupled to a fabric. The managing processor has an in-band link to a routing processor. A routing processor receives a frame from the network, determines by parsing the frame, the protocol and logical unit number, and routes the frame to a queue according to a traffic class associated with the logical unit number in routing information prepared for the processors. An arbitration scheme empties the queue in accordance with a deficit round robin technique. If a routing processor detects the frame"s destination is a virtual entity, and so is part of a virtual transaction, the router conducts a nonvirtual transaction in concert with the virtual transaction. The nonvirtual transaction accomplishes the intent of the virtual transaction but operates on an actual network port, for example, a storage device.
284 Citations
85 Claims
-
1. A method performed by a router for routing frames in a network, the router comprising a managing processor and a plurality of routing processors, each routing processor for receiving frames from the network, for routing frames to the network, and for routing frames to the managing processor, the method performed by the managing processor comprising:
-
a step for executing a plurality of proxy processes, each proxy process associated with a destination of a set of destinations used for communication between the managing processor and the plurality of routing processors; a step for receiving from a routing processor of the plurality a frame comprising indicia of a particular destination of the set; a step for parsing the frame to determine a particular proxy process of the plurality in accordance with the indicia of the particular destination by parsing the frame; and a step for providing at least a payload of the frame to the particular proxy process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 41, 42, 43, 44)
the network address comprises a domain value, an area value, and a port value and each member of the set comprises the same domain value and the same area value.
-
-
7. The method of claim 1 wherein each indicia of destination comprises a virtual address.
-
8. The method of claim 1 wherein each proxy process performs a step for maintaining a state of a respective virtual target.
-
41. The method of claim 8 wherein the particular proxy process further performs a step for completing a function of a SCSI protocol with respect to the target.
-
42. The method of claim 1 wherein the payload is part of a virtual transaction.
-
43. The method of claim 42 wherein the payload is part of a control frame.
-
44. The method of claim 1 wherein the payload is part of a SCSI non-I/O R/W transaction affecting the state of a virtual target.
-
9. A method performed by a router for routing frames in a network, the router comprising a managing processor and a plurality of routing processors, each routing processor for receiving frames from the network, for routing frames to the network, and for routing frames to the managing processor, the method performed by the managing processor comprising:
-
a step for maintaining an association between indicia of a first destination and indicia of a second destination, the indicia of first destination being a member of a set used for communication between the managing processor and a routing processor of the plurality; a step for receiving from the routing processor a first frame of a first transaction comprising indicia of the first destination; a step for determining the indicia of the second destination by parsing the first frame and referring to the association; a step for passing a second frame to the routing processor for routing to the network to initiate a second transaction, the second frame comprising indicia of the second destination. - View Dependent Claims (10, 11, 12, 13, 14, 15, 45, 46, 47, 48, 49, 50)
the router includes a distributing circuit; and
the first frame and the second frame are communicated between the routing processor and the managing processor via the distributing circuit.
-
-
14. The method of claim 9 wherein the first frame conveys a payload for a SCSI non-I/O R/W virtual transaction.
-
15. The method of claim 14 wherein the second frame conveys the payload for a nonvirtual transaction.
-
45. The method of claim 9 wherein the first transaction comprises a control frame.
-
46. The method of claim 45 wherein the first transaction comprises a virtual control transaction.
-
47. The method of claim 9 wherein the first transaction comprises a SCSI non-I/O R/W transaction affecting the state of a virtual target.
-
48. The method of claim 9 wherein the second transaction comprises a control frame.
-
49. The method of claim 48 wherein the second transaction comprises a nonvirtual control transaction.
-
50. The method of claim 9 wherein the second transaction comprises a SCSI non-I/O R/W transaction affecting the state of a virtual target.
-
16. A method performed by a router for routing frames in a network, the router comprising a managing processor and a plurality of routing processors, each routing processor for receiving frames from the network, for routing frames to the network, and for routing frames to the managing processor, the network comprising a nonvirtual target having a first page and a second page, the method performed by the managing processor comprising:
-
a step for receiving from the routing processor a first frame for accessing a page of a virtual target; a step for passing to the routing processor a second frame identified to the nonvirtual target for accessing a portion of the first page; and a step for passing to the routing processor a third frame identified to the nonvirtual target for accessing a portion of the second page. - View Dependent Claims (17, 18, 19, 20, 51, 52, 53, 54, 55, 56, 57, 58)
a step for referring to a predetermined page size to determine that the page of the virtual target crosses the page boundary of the nonvirtual target.
-
-
52. The method of claim 51 wherein the method performed by the managing processor further comprises:
a step for transferring indicia of the page size to at least one routing processor of the plurality.
-
53. The method of claim 16 wherein the first frame comprises a data frame.
-
54. The method of claim 53 wherein the first frame is part of a virtual data transaction.
-
55. The method of claim 54 wherein the data transaction comprises a SCSI I/O R/W transaction.
-
56. The method of claim 16 wherein the second frame comprises a data frame.
-
57. The method of claim 56 wherein the second frame is part of a nonvirtual data transaction.
-
58. The method of claim 57 wherein the data transaction comprises a SCSI I/O R/W transaction.
-
21. A router for routing frames in a network, the router comprising:
-
a managing processor; a plurality of routing processors, each routing processor for receiving frames from the network, for routing frames to the network, and for routing frames to the managing processor; means for executing a plurality of proxy processes, each proxy process associated with a destination of a set of destinations used for communication between the managing processor and the plurality of routing processors; means for receiving from a routing processor of the plurality a frame comprising indicia of a particular destination of the set; means for determining a particular proxy process of the plurality in accordance with the indicia of the particular destination; and means for providing at least a payload of the frame to the particular proxy process. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 70)
-
-
29. A router for routing frames in a network, the router comprising:
-
a managing processor; a plurality of routing processors, each routing processor for receiving frames from the network, for routing frames to the network, and for routing frames to the managing processor; means for maintaining an association between indicia of a first destination and indicia of a second destination, the indicia of first destination being a member of a set used for communication between the managing processor and a routing processor of the plurality; means for receiving from the routing processor a first frame of a first transaction comprising indicia of the first destination; means for determining the indicia of the second destination by parsing the first frame and referring to the association; and means for initiating a second transaction by passing a second frame to the routing processor for routing to the network, the second frame comprising indicia of the second destination. - View Dependent Claims (30, 31, 32, 33, 34, 35, 63, 64, 65, 66, 67, 68)
the router further includes a distributing circuit; and
the first frame and the second frame are communicated between the routing processor and the managing processor via the distributing circuit.
-
-
34. The router of claim 29 wherein the first frame conveys a payload for a virtual data transaction.
-
35. The router of claim 34 wherein the second frame conveys the payload for a nonvirtual data transaction.
-
63. The router of claim 29 wherein the first transaction comprises a control frame.
-
64. The router of claim 63 wherein the first transaction comprises a virtual control transaction.
-
65. The router of claim 29 wherein the first transaction comprises a SCSI non-I/O R/W transaction affecting the state of a virtual target.
-
66. The router of claim 29 wherein the second transaction comprises a control frame.
-
67. The router of claim 66 wherein the second transaction comprises a nonvirtual control transaction.
-
68. The router of claim 29 wherein the second transaction comprises a SCSI non-I/O R/W transaction affecting the state of a virtual target.
-
36. A router for routing frames in a network, the network including a nonvirtual target having a first page and a second page, the router comprising:
-
a managing processor; a plurality of routing processors, each routing processor for receiving frames from the network, for routing frames to the network, and for routing frames to the managing processor; means for receiving from a particular routing processor of the plurality a first frame for accessing a page of a virtual target; means for passing to the particular routing processor a second frame identified to the nonvirtual target for accessing a portion of the first page; and means for passing to the particular routing processor a third frame identified to the nonvirtual target for accessing a portion of the second page. - View Dependent Claims (37, 38, 39, 40, 69)
-
-
71. A router for routing frames in a network, the router comprising:
-
a first means for processing processor that performs a proxy process for a virtual member of the network, the proxy process responsive to a frame addressed in accordance with a first network address, the virtual member corresponding to at least a portion of a nonvirtual member of the network, the nonvirtual member responsive to frames addressed in accordance with a second network address; and a second means for processing that performs a routing process that routes frames addressed in accordance with the first network address and of a first type to the proxy process;
that in response to receiving frames in accordance with the first network address and of a second type, provides a corresponding frame revised in accordance with the second network address; and
that routes the revised frames to the nonvirtual member in accordance with the second network address.- View Dependent Claims (72, 73, 74, 75, 76, 77, 78, 79)
means for storing; means for parsing; a plurality of queues that receive data enqueued by the means for parsing; and means for submitting that submits data from a queue of the plurality to the means for storing to provide a result;
whereinthe second means for processing determines the second network address in accordance with the result.
-
-
73. The router of claim 72 wherein:
-
the means for storing provides a first result in accordance with first data submitted from the means for parsing, the first data comprising a flag; and the means for storing provides the result in accordance with second data, the second data submitted from the second means for processing, in accordance with the flag.
-
-
74. The router of claim 73 wherein the result comprises at least one of a resource identifier, a network address of a proxy, and logical unit number.
-
75. The router of claim 72 wherein the first means for processing stores indicia of the second network address in a routing table in the means for storing.
-
76. The router of claim 75 wherein the first means for processing further stores indicia of a resource identifier in association with the indicia of the second network address, and the second means for processing routes frames in accordance with the indicia of the resource identifier.
-
77. The router of claim 76 wherein the resource identifier comprises a logical unit number
-
78. The router of claim 71 further comprising:
-
a third means for processing that provides first data to the first means for processing;
wherein;the first means for processing further provides the first data to the second means for processing; and the second means for processing distinguishes the first type from the second type in accordance with the first data.
-
-
79. The router of claim 78 wherein the first data further comprises routing information.
-
80. A router for use in a network, the router comprising:
-
means for participating as a virtual target in a virtual transaction initiated by an initiator of the network; and means for initiating a nonvirtual transaction with a target of the network to accomplish an intent of the virtual transaction. - View Dependent Claims (81, 82, 83)
-
-
84. A router for use in a network including a virtual member associated with first network port identifier and including a nonvirtual member corresponding to the virtual member, the nonvirtual member associated with a second network port identifier, the router comprising:
-
a first means for processing that performs a proxy process for the virtual member, wherein the proxy process responds to a control frame; and a second means for processing that performs a routing process that routes the control frame to the proxy process in accordance with the first network port identifier; and
, on receiving a data frame comprising the first network port identifier, routes to the nonvirtual member a substitute data frame in accordance with the second network port identifier.- View Dependent Claims (85)
the control frame comprises the first network port identifier as a destination address; the data frame comprises the first network port identifier as a destination address; and the substitute frame comprises the second network port identifier as a destination address.
-
Specification