Router and methods using in-band link between managing processor and routing processor
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.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
41 . A method performed by a router for routing frames in a network, the router comprising a managing processor for performing a proxy process; a plurality of routing processors coupled by a fabric for routing frames to another routing processor of the plurality via the fabric; each routing processor comprising ports for receiving frames from the network and for routing frames to the network; the method comprising:
a step for receiving at a first routing processor a first frame from the network; a step for determining at the first routing processor that the first frame is part of a virtual control transaction; a step for routing at least a portion of the virtual control transaction from the first routing processor to a second routing processor via the fabric; a step for routing the portion of the virtual control transaction from the second routing processor to the proxy process via a link, the managing processor being coupled by the link to a port of the second routing processor; a step for receiving at the first routing processor a second frame from the network; a step for determining at the first routing processor that the second frame is part of a data transaction; a step for routing at least a portion of the data transaction from the first routing processor to a nonvirtual destination without cooperation of the proxy.
42 . The method of claim 41 wherein the second frame is part of a virtual data transaction and the method further comprises a step for redirecting a frame of the virtual data transaction to the nonvirtual destination.
43 . The method of claim 42 wherein the second frame comprises a virtual transaction identifier that 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.
44 . The method of claim 42 wherein the second frame does not include a resource identifier and the step for redirecting comprises:
a step for recalling a nonvirtual resource identifier; and
a step for redirecting in accordance with the nonvirtual resource identifier.
45 . The method of claim 44 wherein the nonvirtual resource identifier identifies at least one of a nonvirtual participant, a nonvirtual device, a nonvirtual address, a nonvirtual page, and a nonvirtual sector.
46 . The method of claim 42 wherein the step for redirecting comprises at least one of:
a step for rewriting a source identifier; and
a step for rewriting a destination identifier.
47 . A method performed by a router for routing frames in a network, the router comprising a managing processor for performing a proxy process; a plurality of routing processors coupled by a fabric; each routing processor having a plurality of ports 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 at a first routing processor a first frame from the network; a step for determining at the first routing processor that the first frame is part of a virtual data transaction that refers to a page having a boundary; a step for determining at the first routing processor whether data of the virtual data transaction crosses the boundary; and if it is determined that data crosses, a step for routing at least a portion of the virtual data transaction to the proxy via the fabric and via a link, the managing processor coupled via the link to a port of a second routing processor.
48 . The method of claim 47 further comprising:
a step for routing from the proxy via the link at least a frame of a nonvirtual data transaction to accomplish a purpose of the virtual data transaction;
a step for receiving the frame of the nonvirtual data transaction at the second routing processor; and
a step for routing the frame of the nonvirtual data transaction from the second routing processor to a nonvirtual entity via the network.
49 . The method of claim 47 further comprising:
if it is determined that the data does not cross, a step for conducting a nonvirtual data transaction via the network to accomplish a purpose of the virtual data transaction.
50 . The method of claim 49 wherein the step of conducting comprises:
a step for receiving from the fabric at a second routing processor a portion of the virtual data transaction;
a step for redirecting at the second routing processor a frame of the virtual data transaction to a nonvirtual entity of the nonvirtual data transaction.
51 . The method of claim 49 wherein the step for redirecting comprises at least one of:
a step for rewriting a source identifier; and
a step for rewriting a destination identifier.
52 . A method performed by a router for routing frames in a network the router comprising a managing processor for performing a proxy process; a plurality of routing processors coupled by a fabric; each routing processor having a plurality of ports for receiving frames from the network and for routing frames to the network, the method comprising:
a step for receiving at the managing processor from an administrating processor via a link routing information comprising a first network port identifier and a second network port identifier, the managing processor being coupled to a port of a first routing processor of the plurality via the link; a step for receiving at a second routing processor from the managing processor the first network port identifier and the second network port identifier; a step for routing a frame of a virtual control transaction from the second routing processor to the managing processor via the link in accordance with the first network port identifier; and a step for routing a frame of a virtual data transaction comprising the first network port identifier from the second routing processor to a nonvirtual entity via the network in accordance with the second network port identifier.
53 . The method of claim 52 wherein the first network port identifier identifies a proxy process performed by the managing processor.
54 . The method of claim 52 wherein:
the router further comprises a memory circuit and a supervising processor coupled for data communication between the managing processor and the memory circuit, each routing processor of the plurality of routing processors having access to the memory circuit;
the step for receiving at the second routing processor comprises:
a step for storing the first network port identifier and the second network port identifier in the memory circuit via the supervising processor; and
a step for accessing the first network port identifier and the second network port identifier from the memory circuit.
55 . A method performed by a router for routing frames in a network the router comprising a managing processor; and a plurality of routing processors coupled by a fabric; each routing processor having a plurality of ports for receiving frames from the network and for routing frames to the network, method comprising:
a step for receiving a first frame at a first routing processor of the plurality from the network; a first step for routing at least a portion of the first frame from the first routing processor to the network; a second step for routing at least a portion of the first frame from the first routing processor to the managing processor via the fabric, a second routing processor of the plurality, and a link, the managing processor being coupled by the link to a port of the second routing processor.
56 . The method of claim 55 further comprising a step for maintaining a cache at the managing processor in accordance with the received portion of the first frame.
57 . The method of claim 55 further comprising a step for maintaining a mirror at the managing processor in accordance with the received portion of the first frame.
58 . A method performed by a router for routing frames in a network the router comprising a managing processor; and a plurality of routing processors coupled by a fabric; each routing processor having a plurality of ports for receiving frames from the network and for routing frames to the network, method comprising:
a step for receiving a first frame at a first routing processor of the plurality from the network; a step for accumulating at the first routing processor a count in accordance with receiving the first frame; a step for routing the count from the first routing processor to the managing processor via the fabric, a second routing processor of the plurality, and a link, the managing processor being coupled by the link to a port of the second routing processor.
59 . The method of claim 58 further comprising a step for reporting a network traffic statistic at the managing processor in accordance with the received portion of the first frame.
60 . A router for routing frames in a network, the router comprising:
means for performing a proxy process; a plurality of routing means for receiving frames from the network and for routing frames to the network, each routing means comprising ports; distributing means for routing frames between routing means of the plurality; means for receiving at a first routing means a first frame from the network; means for determining at the first routing means that the first frame is part of a virtual control transaction; means for routing at least a portion of the virtual control transaction from the first routing means to a second routing means via the distributing means; means for routing the portion of the virtual control transaction from the second routing means to the proxy process via a link, the managing means being coupled by the link to a port of the second routing means; means for receiving at the first routing means a second frame from the network; means for determining at the first routing means that the second frame is part of a data transaction; and means for routing at least a portion of the data transaction from the first routing means to a nonvirtual destination without cooperation of the proxy process.
61 . The router of claim 60 wherein the second frame is part of a virtual data transaction and the router further comprises means for redirecting a frame of the virtual data transaction to the nonvirtual destination.
62 . The router of claim 61 wherein the second frame comprises a virtual transaction identifier that 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.
63 . The router of claim 61 wherein:
the second frame does not include a resource identifier;
the means for redirecting comprises means for recalling a nonvirtual resource identifier; and
the means for redirecting redirects in further accordance with the nonvirtual resource identifier.
64 . The router of claim 63 wherein the nonvirtual resource identifier identifies at least one of a nonvirtual participant, a nonvirtual device, a nonvirtual address, a nonvirtual page, and a nonvirtual sector.
65 . The router of claim 61 wherein the means for redirecting comprises at least one of:
means for rewriting a source identifier; and
means for rewriting a destination identifier.
66 . A router for routing frames in a network, the router comprising:
a managing means for performing a proxy process; a plurality of routing means for receiving frames from the network and for routing frames to the network, each routing means having a plurality of ports; distributing means for routing frames between routing means of the plurality; means for receiving at a first routing means a first frame from the network; means for determining at the first routing means that the first frame is part of a virtual data transaction that refers to a page having a boundary; means for determining at the first routing means whether data of the virtual data transaction crosses the boundary; and means for routing, responsive to a determination that data crosses, at least a portion of the virtual data transaction to the proxy via the distributing means and via a link, the managing means coupled via the link to a port of a second routing means.
67 . The router of claim 66 further comprising:
means for routing from the proxy via the link at least a frame of a nonvirtual data transaction to accomplish a purpose of the virtual data transaction;
means for receiving the frame of the nonvirtual data transaction at the second routing means; and
means for routing the frame of the nonvirtual data transaction from the second routing means to a nonvirtual entity via the network.
68 . The router of claim 66 further comprising:
means for conducting, responsive to a determination that the data does not cross, a nonvirtual data transaction via the network to accomplish a purpose of the virtual data transaction.
69 . The router of claim 68 wherein the means of conducting comprises:
means for receiving from the distributing means at a second routing means a portion of the virtual data transaction;
means for redirecting at the second routing means a frame of the virtual data transaction to a nonvirtual entity of the nonvirtual data transaction.
70 . The router of claim 68 wherein the means for redirecting comprises at least one of:
means for rewriting a source identifier; and
means for rewriting a destination identifier.
71 . A router for routing frames in a network the router comprising:
a managing means for performing a proxy process; a plurality of routing means for receiving frames from the network and for routing frames to the network, each routing means having a plurality of ports; a distributing means for routing frames between routing means of the plurality; means for receiving at the managing means from an administrating means via a link routing information comprising a first network port identifier and a second network port identifier, the managing means being coupled to a port of a first routing means of the plurality via the link; means for receiving at a second routing means from the managing means the first network port identifier and the second network port identifier; means for routing a frame of a virtual control transaction from the second routing means to the managing means via the link in accordance with the first network port identifier; and means for routing a frame of a virtual data transaction comprising the first network port identifier from the second routing means to a nonvirtual entity via the network in accordance with the second network port identifier.
72 . The router of claim 71 wherein the first network port identifier identifies a proxy process performed by the managing means.
73 . The router of claim 71 wherein:
the router further comprises a memory circuit and a supervising means for communicating between the managing means and the memory circuit, each routing means of the plurality of routing means having access to the memory circuit;
the means for receiving at the second routing means comprises:
means for storing the first network port identifier and the second network port identifier in the memory circuit via the supervising means; and
means for accessing the first network port identifier and the second network port identifier from the memory circuit.
74 . A router for routing frames in a network, the router comprising:
a managing means for receiving a payload of a virtual control frame and for forming a corresponding nonvirtual control frame; a plurality of routing means for receiving frames from the network and for routing frames to the network, each routing means having a plurality of ports; the plurality comprising:
a first routing means for receiving the virtual control frame from the network; and
a second routing means;
distributing means for routing frames between routing means of the plurality, the payload of the virtual control frame being routed by the distributing means from the first routing means to the second routing means; wherein the managing means receives the payload from the second routing means via a link to a port of the second routing means and sends the nonvirtual control frame to the second routing means via the link; and wherein the second routing means routes a payload of the nonvirtual control frame.
75 . The router of claim 74 wherein:
each routing means comprises means for providing a network traffic statistic; and
the managing means further comprises means for reporting in accordance with respective provided network traffic statistics routed to the managing means via the distributing means, the second routing means, and the link.
76 . The router of claim 74 wherein the network traffic statistic comprises a portion of a frame received by a routing means of the plurality.
77 . The router of claim 74 wherein ech routing means further comprises means for accumulating a respective count and the network traffic statistic is provided in accordance with the count.
78 . The router of claim 74 wherein:
each routing means provides to the managing means via the distributing means, the second routing means, and the link respective payloads of frames of first transactions in a first frame sequence received from the network; and
the managing means further comprises:
means for storing in a cache for each transaction the respective payloads; and
means for providing the respective payloads in second transactions in a second sequence different from the first sequence, providing being via the link, the second routing means, and the distributing means.
79 . The router of claim 74 wherein:
each routing means provides to the managing means via the distributing means, the second routing means, and the link a copy of respective payloads of frames of first transactions received from the network for writing to a storage resource;
the managing means further comprises means for mirroring the payloads in second transactions directed to a mirror storage resource, wherein copies and second transactions are communicated between the routing means and the managing means via the link, the second routing means, and the distributing means.
80 . The router of claim 74 wherein:
each routing means provides to the managing means via the distributing means, the second routing means, and the link payloads of frames of first transactions received from the network for writing to a storage resource; and
means for maintaining a snapshot of the storage resource prior to writing to the storage resource, maintaining accomplished with frames of second transactions formed in accordance with the payloads, wherein the payloads and second transactions are communicated between the routing means and the managing means via the link, the second routing means, and the distributing means.Join the waitlist — get patent alerts
Track US2003191857A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.