Claims
- 41. A method performed by a router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, the method performed by each routing processor of the plurality, the method comprising:
a step for receiving a frame from the network; a step for preparing a flow lookup in accordance with at least a portion of the frame; a step for obtaining from a memory circuit a first result of the flow lookup; a step for preparing a second lookup in accordance with the first result; a step for obtaining from the memory circuit a second result of the second lookup; and a step for routing the frame to the network in accordance with at least a portion of the second result.
- 42. The method of claim 41 wherein the flow lookup comprises indicia of a source identifier, a destination identifier, and a protocol identifier each in accordance with a respective field of the frame.
- 43. The method of claim 41 wherein the flow lookup comprises a flow identifier; and the step for preparing a second lookup is performed in accordance with the flow identifier.
- 44. The method of claim 43 wherein the flow identifier corresponds to a transaction identifier of the frame.
- 45. The method of claim 41 wherein the second lookup comprises at least one of a subflow lookup and a virtual flow lookup.
- 46. The method of claim 41 wherein the step for routing further comprises:
a step for selecting a queue in accordance with the second result; and a step for enqueueing at least the payload of the frame into the queue.
- 47. The method of claim 46 wherein the router further comprises a fabric for communication among the plurality of routing processors and the step for routing further comprises a step for communicating the frame via the fabric prior to performing the step for enqueueing.
- 48. The method of claim 46 wherein the router further comprises a fabric for communication among the plurality of routing processors and the step for routing further comprises a step for communicating the frame via the fabric after performing the step for enqueueing.
- 49. The method of claim 41 wherein:
the first result comprises a flag; and if the flag is not asserted,
(1) the step for preparing the second lookup, the step for obtaining the second result, and the step for routing are omitted; and (2) the method further comprises a step for routing the frame in accordance with a portion of the first result.
- 50. The method of claim 41 wherein the portion of the second result comprises a resource identifier.
- 51. The method of claim 41 wherein the portion of the second result comprises an identifier of a queue corresponding to at least one of a resource identifier and a policy value.
- 52. The method of claim 51 wherein:
the portion of the second result comprises a policy value; and the step for routing further comprises:
a step for preparing a header comprising indicia of the policy value; a step for selecting a first queue in accordance with the policy value; a step for placing an entry comprising a payload of the frame and the header into the first queue; a step for transmitting the entry via a fabric; a step for receiving the entry from the fabric; a step for enqueueing a payload of the received entry into a second queue in accordance with the indicia of the policy value of the header; and a step for routing to the network the payload of the received entry.
- 53. A method performed by a router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, the method performed by each routing processor of the plurality, the method comprising:
a step for receiving a request from the network, the request comprising a virtual transaction identifier; a step for recalling a first tuple comprising the virtual transaction identifier, a flow identifier, and an output port identifier; a step for recalling a second tuple comprising the virtual transaction identifier and a resource identifier; a step for routing the request in accordance with the output port identifier and the resource identifier.
- 54. The method of claim 53 wherein the request is part of a control transaction.
- 55. A method performed by a router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, the method performed by each routing processor comprising:
a step for receiving a first frame from the network; a step for parsing the first frame to determine a transaction identifier and a resource identifier; a step for receiving a second frame after the first frame has been routed to the network; a step for parsing the second frame to determine the transaction identifier; a step for preparing a flow lookup in accordance with the transaction identifier; a step for obtaining from a memory circuit a first result of the flow lookup; a step for preparing a subflow lookup in accordance with the first result; a step for obtaining from the memory circuit a second result of the subflow lookup, the second result comprising the resource identifier; and a step for routing to the network at least the payload of the second frame in accordance with the resource identifier of the second result.
- 56. The method of claim 55 wherein the step for routing comprises:
a step for selecting a queue in accordance with the resource identifier of the second result; and a step for enqueueing at least the payload of the second frame into the queue.
- 57. A method performed by a router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, the method performed by each routing processor comprising:
a step for receiving a first frame from the network; a step for parsing the first frame to determine a transaction identifier and a resource identifier; a step for storing the resource identifier in association with the transaction identifier; a step for receiving a second frame after the first frame has been routed to the network; a step for parsing the second frame to determine the transaction identifier; a step for recalling the resource identifier in accordance with the transaction identifier; and a step for routing to the network the second frame in accordance with the recalled resource identifier.
- 58. The method of claim 57 wherein the step for recalling further comprises:
a step for preparing a flow lookup in accordance with at least a portion of the second frame; a step for obtaining from a memory circuit a first result of the flow lookup; a step for preparing a second lookup in accordance with the first result; and a step for obtaining from the memory circuit a second result of the second lookup, the second result comprising the recalled resource identifier.
- 59. The method of claim 57 wherein:
the method further comprises a step for recalling a policy value in accordance with the resource identifier; and the step for routing is for routing in further accordance with the recalled policy value.
- 60. The method of claim 57 wherein the step for routing further comprises:
a step for selecting a queue in accordance with the second result; and a step for enqueueing at least a payload of the second frame into the queue.
- 61. The method of claim 60 wherein the router further comprises a fabric for communication among the plurality of routing processors and the step for routing further comprises communication of the second frame via the fabric prior to performing the step for enqueueing.
- 62. The method of claim 60 wherein the router further comprises a fabric for communication among the plurality of routing processors and the step for routing further comprises communication of the second frame via the fabric after performing the step for enqueueing.
- 63. A method performed by a router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, the method performed by each routing processor comprising:
a step for receiving a first frame from the network, the first frame comprising a virtual transaction identifier; a step for determining that the first frame is part of a virtual transaction; a step for assigning and storing a nonvirtual transaction identifier in association with the virtual transaction identifier; a step for receiving a second frame from the network; a step for determining that the second frame is part of the virtual transaction; and a step for routing at least a payload of the second frame in association with the nonvirtual transaction identifier.
- 64. The method of claim 63 wherein the virtual transaction comprises a data transaction.
- 65. The method of claim 63 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 66. The method of claim 63 wherein:
the method further comprises:
a step for determining a nonvirtual destination address; and a step for storing an association of the nonvirtual transaction identifier and the nonvirtual destination address; and the step for routing is further for routing at least a payload of the second frame in further association with the nonvirtual destination address.
- 67. The method of claim 63 wherein:
the method further comprises:
a step for determining a destination address in accordance with field values of the second frame; and a step for determining a nonvirtual logical block address; and the step for routing is further for routing at least a payload of the second frame in further association with the nonvirtual logical block address.
- 68. A method performed by a router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, the method performed by each routing processor of the plurality, the method comprising:
a step for receiving a request from the network, the request comprising a virtual transaction identifier; a step for assigning and storing a tuple comprising the virtual transaction identifier and a nonvirtual transaction identifier; a step for receiving a second request from the network, the second request comprising the virtual transaction identifier; a step for recalling the nonvirtual transaction identifier of the tuple; and a step for routing the second request in accordance with the nonvirtual transaction identifier.
- 69. The method of claim 68 wherein the request is part of a data transaction.
- 70. A method performed by a router for routing frames in a network, the router comprising a memory circuit, a plurality of port logic circuits, and a fabric; each port logic circuit comprising a frame processor and a cross reference circuit, each port logic circuit having access to the memory, each port logic circuit for receiving frames from the network, for routing frames to the network, and for routing frames to other port logic circuits of the plurality via the fabric, the method comprising:
a step for receiving at a first port logic circuit a first frame from the network, the first frame comprising a virtual transaction identifier; a step for determining at the first port logic circuit with reference to the memory that the first frame is part of a virtual transaction; a step for assigning and storing at the first port logic circuit a nonvirtual transaction identifier in association with the virtual transaction identifier in the cross reference circuit of the first port logic circuit; a step for routing to the network at least a payload of the first frame; a step for receiving at a second port logic circuit a second frame from the network; a step for determining at the second port logic circuit with reference to the memory that the second frame is part of the virtual transaction; a step for determining at the second port logic circuit that the association is not stored in the cross reference circuit of the second port logic circuit; a step for routing at least a payload of the second frame to the first port logic circuit via the fabric; and a step for routing to the network at the first port logic circuit the payload of the second frame.
- 71. The method of claim 70 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 72. A method performed by a router for routing frames in a network, the router comprising a parser for preparing lookups, a memory circuit having routing information, a submitter for arbitrating among a plurality of queues to submit a lookup to the memory circuit, a frame processor for analyzing results of lookups, the method comprising:
a step for parsing a frame received from the network; a step for enqueueing into a first queue to the submitter a first lookup in accordance with a field value of the frame; a step for passing to the frame processor a first result of the first lookup to be analyzed; a step for enqueueing into a second queue to the submitter a second lookup in accordance with a result of analysis; a step for recirculating an entry enqueued into the second queue to delay routing; and a step for routing at least a payload of the frame in accordance with a second result of the second lookup.
- 73. A method performed by a router for routing frames in a network, the router comprising a memory circuit, a plurality of port logic circuits, and a fabric; each port logic circuit comprising a frame processor, and a cross reference circuit; each port logic circuit having access to the memory; each port logic circuit for receiving frames from the network, for routing frames to the network, and for routing frames to other port logic circuits of the plurality via the fabric; the method comprising:
a step for receiving at a first port logic circuit a first frame from the network, the first frame comprising a virtual transaction identifier; a step for determining at the first port logic circuit with reference to the memory that the first frame is part of a virtual transaction; a step for assigning and storing at the first port logic circuit a nonvirtual transaction identifier in association with the virtual transaction identifier in the cross reference circuit of the first port logic circuit; a step for routing to the network at least a payload of the first frame; a step for receiving at a second port logic circuit a second frame from the network; a step for determining at the second port logic circuit with reference to the memory that the second frame is part of the virtual transaction; a step for determining at the second port logic circuit that the association is not stored in the cross reference circuit of the second port logic circuit; a step for routing at least a payload of the second frame and a fabric frame header to the first port logic circuit via the fabric; a step for preparing a third frame at the first port logic circuit in accordance with the payload of the second frame and the fabric frame header; and a step for routing the third frame to the network from the first port logic circuit.
- 74. The method of claim 73 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 75. The method of claim 73 wherein the third frame comprises a destination field and the step of preparing the third frame comprises:
a step for determining in accordance with the fabric frame header whether the destination field is to be revised; and if so a step for preparing the third frame to comprise a value in the destination field that differs from a corresponding field value of the second frame.
- 76. A method performed by a router for routing frames in a network, the router comprising a memory circuit, a plurality of port logic circuits, and a fabric; each port logic circuit comprising an ingress buffer, an egress buffer, a frame processor, and a cross reference circuit; each port logic circuit having access to the memory; each port logic circuit for receiving frames from the network, for routing frames to the network, and for routing frames to other port logic circuits of the plurality via the fabric; the method comprising:
a step for receiving at the ingress buffer of a first port logic circuit a first frame from the network, the first frame comprising a virtual transaction identifier; a step for determining at the first port logic circuit with reference to the memory that the first frame is part of a virtual transaction; a step for assigning and storing at the first port logic circuit a nonvirtual transaction identifier in association with the virtual transaction identifier in the cross reference circuit of the first port logic circuit; a step for routing to the network at least a payload of the first frame; a step for receiving at a second port logic circuit a second frame from the network; a step for determining at the second port logic circuit with reference to the memory that the second frame is part of the virtual transaction; a step for determining at the second port logic circuit whether the association is stored in the cross reference circuit of the second port logic circuit; and if not:
a step for routing at least a payload of the second frame and a fabric frame header to the first port logic circuit via the fabric; a step for preparing a third frame in the egress buffer of the first port logic circuit in accordance with the payload of the second frame, the fabric frame header, and the nonvirtual transaction identifier; and a step for routing the third frame to the network from the first port logic circuit; otherwise:
a step for preparing a fourth frame in the ingress buffer of the first port logic circuit in accordance with the payload of the second frame, and the nonvirtual transaction identifier; and a step for routing the fourth frame to the network from the first port logic circuit.
- 77. The method of claim 76 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 78. A method performed by a router for routing frames in a network, the router comprising a memory circuit and a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, the method performed by each routing processor of the plurality, the method comprising:
a step for receiving a first frame from the network, the first frame comprising a first logical block address; a step for determining whether the first frame is a data frame referring to a virtual resource; a step for determining whether the payload crosses a page boundary of a nonvirtual resource corresponding to the virtual resource; and if not a step for preparing a second frame comprising a nonvirtual resource identifier corresponding to the virtual resource and a nonvirtual logical block address corresponding to the first logical block address.
- 79. The method of claim 78 wherein the virtual resource corresponds to at least one of a virtual participant, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 80. A router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, each routing processor comprising:
means for receiving a frame from the network; means for preparing a flow lookup in accordance with at least a portion of the frame; means for obtaining from a means for storing a first result of the flow lookup; means for preparing a second lookup in accordance with the first result; means for obtaining from the means for storing a second result of the second lookup; and means for routing the frame to the network in accordance with at least a portion of the second result.
- 81. The router of claim 80 wherein the flow lookup comprises indicia of a source identifier, a destination identifier, and a protocol identifier each in accordance with a respective field of the frame.
- 82. The router of claim 80 wherein the flow lookup comprises a flow identifier; and the means for preparing a second lookup prepares the second lookup in accordance with the flow identifier.
- 83. The router of claim 82 wherein the flow identifier corresponds to a transaction identifier of the frame.
- 84. The router of claim 80 wherein the second lookup comprises at least one of a subflow lookup and a virtual flow lookup.
- 85. The router of claim 80 wherein the means for routing further comprises:
means for selecting a queue in accordance with the second result; and means for enqueueing at least the payload of the frame into the queue.
- 86. The router of claim 85, wherein:
the router further comprises means for communicating among the plurality of routing processors; and the means for routing routes the frame to another routing processor via the means for communicating prior to enqueueing the payload of the frame into the queue.
- 87. The router of claim 85 wherein:
the router further comprises means for communicating among the plurality of routing processors; and the means for routing routes the frame to another routing processor via the means for communicating after enqueueing the payload of the frame into the queue.
- 88. The router of claim 80 wherein:
the first result comprises a flag; and if the flag is not asserted, the frame is routed in accordance with a portion of the first result.
- 89. The router of claim 80 wherein the portion of the second result comprises a resource identifier.
- 90. The router of claim 80 wherein the portion of the second result comprises an identifier of a queue corresponding to at least one of a resource identifier and a policy value.
- 91. The router of claim 90 wherein:
the portion of the second result comprises a policy value; and the means for routing further comprises:
means for preparing a header comprising indicia of the policy value; means for selecting a first queue in accordance with the policy value; means for placing an entry comprising a payload of the frame and the header into the first queue; means for transmitting the entry via a means for communicating among the plurality of routing processors; means for receiving the entry from the means for communicating; means for enqueueing a payload of the received entry into a second queue in accordance with the indicia of the policy value of the header; and means for routing to the network the payload of the received entry.
- 92. A router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, each routing processor comprising:
means for receiving a request from the network, the request comprising a virtual transaction identifier; means for recalling a first tuple comprising the virtual transaction identifier, a flow identifier, and an output port identifier; means for recalling a second tuple comprising the virtual transaction identifier and a resource identifier; means for routing the request in accordance with the output port identifier and the resource identifier.
- 93. The router of claim 92 wherein the request is part of a control transaction.
- 94. A router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, each routing processor comprising:
means for receiving a first frame from the network; means for parsing the first frame to determine a transaction identifier and a resource identifier; means for receiving a second frame after the first frame has been routed to the network; means for parsing the second frame to determine the transaction identifier; means for preparing a flow lookup in accordance with the transaction identifier; means for obtaining from a memory circuit a first result of the flow lookup; means for preparing a subflow lookup in accordance with the first result; means for obtaining from the memory circuit a second result of the subflow lookup, the second result comprising the resource identifier; and means for routing to the network at least the payload of the second frame in accordance with the resource identifier of the second result.
- 95. The router of claim 94 wherein the means for routing comprises:
means for selecting a queue in accordance with the resource identifier of the second result; and means for enqueueing at least the payload of the second frame into the queue.
- 96. A router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, each routing processor comprising:
means for receiving a first frame from the network; means for parsing the first frame to determine a transaction identifier and a resource identifier; means for storing the resource identifier in association with the transaction identifier; means for receiving a second frame after the first frame has been routed to the network; means for parsing the second frame to determine the transaction identifier; means for recalling the resource identifier in accordance with the transaction identifier; and means for routing to the network the second frame in accordance with the recalled resource identifier.
- 97. The router of claim 96 wherein the means for recalling further comprises:
means for preparing a flow lookup in accordance with at least a portion of the second frame; means for obtaining from a memory circuit a first result of the flow lookup; means for preparing a second lookup in accordance with the first result; and means for obtaining from the memory circuit a second result of the second lookup, the second result comprising the recalled resource identifier.
- 98. The router of claim 96 wherein:
the router further comprises means for recalling a policy value in accordance with the resource identifier; and the means for routing is for routing in further accordance with the recalled policy value.
- 99. The router of claim 96 wherein the means for routing further comprises:
means for selecting a queue in accordance with the second result; and means for enqueueing at least a payload of the second frame into the queue.
- 100. The router of claim 99 wherein the router further comprises a fabric for communication among the plurality of routing processors and the means for routing further comprises communication of the second frame via the fabric prior to performing the means for enqueueing.
- 101. The router of claim 99 wherein the router further comprises a fabric for communication among the plurality of routing processors and the means for routing further comprises communication of the second frame via the fabric after performing the means for enqueueing.
- 102. A router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, each routing processor comprising:
means for receiving a first frame from the network, the first frame comprising a virtual transaction identifier; means for determining that the first frame is part of a virtual transaction; means for assigning and storing a nonvirtual transaction identifier in association with the virtual transaction identifier; means for receiving a second frame from the network; means for determining that the second frame is part of the virtual transaction; and means for routing at least a payload of the second frame in association with the nonvirtual transaction identifier.
- 103. The router of claim 102 wherein the virtual transaction comprises a data transaction.
- 104. The router of claim 102 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 105. The router of claim 102 wherein:
the router further comprises:
means for determining a nonvirtual destination address; and means for storing an association of the nonvirtual transaction identifier and the nonvirtual destination address; and the means for routing is further for routing at least a payload of the second frame in further association with the nonvirtual destination address.
- 106. The router of claim 102 wherein:
the router further comprises:
means for determining a destination address in accordance with field values of the second frame; and means for determining a nonvirtual logical block address; and the means for routing is further for routing at least a payload of the second frame in further association with the nonvirtual logical block address.
- 107. A router for routing frames in a network, the router comprising a plurality of routing processors, each routing processor for receiving frames from the network, and for routing frames to the network, each routing processor of the plurality, the router comprising:
means for receiving a request from the network, the request comprising a virtual transaction identifier; means for assigning and storing a tuple comprising the virtual transaction identifier and a nonvirtual transaction identifier; means for receiving a second request from the network, the second request comprising the virtual transaction identifier; means for recalling the nonvirtual transaction identifier of the tuple; and means for routing the second request in accordance with the nonvirtual transaction identifier.
- 108. The router of claim 107 wherein the request is part of a data transaction.
- 109. A router for routing frames in a network, the router comprising:
a memory circuit; a fabric; a plurality of port logic circuits, wherein:
(1) each port logic circuit comprises a frame processor and a cross reference circuit; (2) each port logic circuit has access to the memory; and (3) each port logic circuit receives frames from the network, routes frames to the network, and routes frames to other port logic circuits of the plurality via the fabric; means for receiving at a first port logic circuit of the plurality a first frame from the network, the first frame comprising a virtual transaction identifier; means for determining at the first port logic circuit with reference to the memory that the first frame is part of a virtual transaction; means for assigning and storing at the first port logic circuit a nonvirtual transaction identifier in association with the virtual transaction identifier in the cross reference circuit of the first port logic circuit; means for routing to the network at least a payload of the first frame; means for receiving at a second port logic circuit of the plurality a second frame from the network; means for determining at the second port logic circuit with reference to the memory that the second frame is part of the virtual transaction; means for determining at the second port logic circuit that the association is not stored in the cross reference circuit of the second port logic circuit; means for routing at least a payload of the second frame to the first port logic circuit via the fabric; and means for routing to the network at the first port logic circuit the payload of the second frame.
- 110. The router of claim 109 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 111. A router for routing frames in a network, the router comprising:
a parser for parsing a frame received from the network and for preparing lookups; a memory circuit having routing information; a submitter for arbitrating among a plurality of queues to submit a lookup to the memory circuit; a frame processor for analyzing results of lookups means for enqueueing into a first queue to the submitter a first lookup in accordance with a field value of the frame; means for passing to the frame processor a first result of the first lookup to be analyzed; means for enqueueing into a second queue to the submitter a second lookup in accordance with a result of analysis; means for recirculating an entry enqueued into the second queue to delay routing; and means for routing at least a payload of the frame in accordance with a second result of the second lookup.
- 112. The router of claim 111 wherein the submitter comprises an arbitrating circuit coupled to each queue of the plurality of queues, wherein the arbitrating circuit selects an entry to provide to the memory circuit as a lookup in accordance with a priority among the queues of the plurality.
- 113. The router of claim 112 wherein the arbitrating circuit services the second queue at a higher priority than the first queue.
- 114. The router of claim 112 wherein at least one of the first result and the second result comprises a stall flag and the means for recirculating effects recirculation in response to the stall flag.
- 115. A router for routing frames in a network, the router comprising:
a memory circuit; a fabric; and a plurality of port logic circuits wherein:
(1) each port logic circuit comprises a frame processor and a cross reference circuit; (2) each port logic circuit has access to the memory; and (3) each port logic circuit receives frames from the network, routes frames to the network, and routes frames to other port logic circuits of the plurality via the fabric; means for receiving at a first port logic circuit of the plurality a first frame from the network, the first frame comprising a virtual transaction identifier; means for determining at the first port logic circuit with reference to the memory that the first frame is part of a virtual transaction; means for assigning and storing at the first port logic circuit a nonvirtual transaction identifier in association with the virtual transaction identifier in the cross reference circuit of the first port logic circuit; means for routing to the network at least a payload of the first frame; means for receiving at a second port logic circuit of the plurality a second frame from the network; means for determining at the second port logic circuit with reference to the memory that the second frame is part of the virtual transaction; means for determining at the second port logic circuit that the association is not stored in the cross reference circuit of the second port logic circuit; means for routing at least a payload of the second frame and a fabric frame header to the first port logic circuit via the fabric; means for preparing a third frame at the first port logic circuit in accordance with the payload of the second frame and the fabric frame header; and means for routing the third frame to the network from the first port logic circuit.
- 116. The router of claim 115 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 117. The router of claim 115 wherein the third frame comprises a destination field and the means of preparing the third frame comprises:
first means for determining in accordance with the fabric frame header whether the destination field is to be revised; and second means for preparing the third frame to comprise a value in the destination field that differs from a corresponding field value of the second frame, wherein the second means is responsive to the first means when the destination is to be revised.
- 118. A router for routing frames in a network, the router comprising:
a memory circuit; a fabric; a plurality of port logic circuits wherein:
(1) each port logic circuit comprises an ingress buffer, an egress buffer, a frame processor, and a cross reference circuit; (2) each port logic circuit has access to the memory; and (3) each port logic circuit receives frames from the network, routes frames to the network, and routes frames to other port logic circuits of the plurality via the fabric; means for receiving at the ingress buffer of a first port logic circuit of the plurality a first frame from the network, the first frame comprising a virtual transaction identifier; means for determining at the first port logic circuit with reference to the memory that the first frame is part of a virtual transaction; means for assigning and storing at the first port logic circuit a nonvirtual transaction identifier in association with the virtual transaction identifier in the cross reference circuit of the first port logic circuit; means for routing to the network at least a payload of the first frame; means for receiving at a second port logic circuit of the plurality a second frame from the network; means for determining at the second port logic circuit with reference to the memory that the second frame is part of the virtual transaction; first means for determining at the second port logic circuit whether the association is stored locally in the cross reference circuit of the second port logic circuit; means for routing at least a payload of the second frame and a fabric frame header to the first port logic circuit via the fabric when the first means determines that the association is not stored locally; means for preparing a third frame in the egress buffer of the first port logic circuit in accordance with the payload of the second frame, the fabric frame header, and the nonvirtual transaction identifier; means for routing the third frame to the network from the first port logic circuit; means for preparing a fourth frame in the ingress buffer of the first port logic circuit in accordance with the payload of the second frame, and the nonvirtual transaction identifier when the first means determines that the association is stored locally; and means for routing the fourth frame to the network from the first port logic circuit.
- 119. The router of claim 118 wherein the virtual transaction identifier identifies at least one of a virtual participant, a virtual member, a virtual resource, a virtual device, a virtual address, a virtual page, and a virtual sector.
- 120. A router for routing frames in a network, the router comprising:
a memory circuit; and a plurality of routing processors, wherein each routing processor receives frames from the network and routes frames to the network; and wherein each routing processor comprises:
(1) means for receiving a first frame from the network, the first frame comprising a first logical block address; (2) means for determining whether the first frame is a data frame referring to a virtual resource; (3) first means for determining whether the payload does not cross a page boundary of a nonvirtual resource corresponding to the virtual resource; and (4) means for preparing a second frame comprising a nonvirtual resource identifier corresponding to the virtual resource and a nonvirtual logical block address corresponding to the first logical block address when the first means determines that the payload does not cross the page boundary.
- 121. The router of claim 120 wherein the virtual resource corresponds to at least one of a virtual participant, a virtual device, a virtual address, a virtual page, and a virtual sector.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a divisional patent application of and claims priority to U.S. Patent Application Ser. No. 10/120,266, filed on Oct. 18, 2001, by William C. Terrell, et al.
Divisions (1)
|
Number |
Date |
Country |
Parent |
10120266 |
Oct 2001 |
US |
Child |
10284273 |
Oct 2002 |
US |