Method and system for facilitating application-oriented quality of service in a fibre channel network
US-2015113534-A1 · Apr 23, 2015 · US
US9705827B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9705827-B2 |
| Application number | US-201514746059-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 22, 2015 |
| Priority date | Jun 22, 2010 |
| Publication date | Jul 11, 2017 |
| Grant date | Jul 11, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system includes a module associated with a first stage of a switch fabric directly coupled to a module associated with a second stage of the switch fabric via a single physical hop having multiple virtual channels. The module associated with the first stage is configured to assign a virtual channel identifier associated with a virtual channel with a data packet using a hash function and to send the data packet through the virtual channel based on the virtual channel identifier. The module associated with the second stage is configured to send a flow control signal to the module associated with the first stage when an available capacity of a queue is less than a predetermined threshold. The module associated with the first stage is configured to suspend sending data packets via the virtual channel in response to the flow control signal.
Opening claim text (preview).
What is claimed is: 1. A system, comprising: a module associated with a first stage of a switch fabric; and a module associated with a second stage of the switch fabric, the module associated with the first stage being directly coupled to the module associated with the second stage via a single physical hop having a plurality of virtual channels, the module associated with the first stage being configured to assign a virtual channel identifier associated with a virtual channel from the plurality of virtual channels with a data packet using a hash function, the module associated with the first stage configured to send the data packet through the virtual channel based on the virtual channel identifier, the module associated with the second stage configured to store the data packet in a queue associated with the virtual channel based on the virtual channel identifier, the first stage having a plurality of output queues, each output queue from the plurality of output queues being associated with a virtual channel from the plurality of virtual channels, the module associated with the first stage being configured to assign the virtual channel identifier based on an available capacity of each associated output queue from the plurality of output queues, the module associated with the second stage configured to send a flow control signal to the module associated with the first stage when an available capacity of the queue is less than a predetermined threshold, the module associated with the first stage configured to suspend sending data packets via the virtual channel in response to the flow control signal. 2. The system of claim 1 , wherein the virtual channel identifier is assigned to the data packet by storing the virtual channel identifier in a header appended to the data packet. 3. The system of claim 1 , wherein the module associated with the first stage suspends sending data packets via the virtual channel by suspending an output queue from the plurality of output queues. 4. The system of claim 1 , wherein the module associated with the first stage is further configured to end the suspension of sending data packets via the virtual channel when the module associated with the first stage receives a ready signal from the module associated with the second stage. 5. The system of claim 1 , wherein the module associated with the first stage suspends sending data packets via the virtual channel for a predetermined period of time. 6. The system of claim 1 , wherein the module associated with the second stage is further configured to update a history of flow control signals stored at a memory of the module associated with the second stage when the module associated with the second stage sends the flow control signal. 7. A method, comprising: assigning, via a node associated with a first stage of a switch fabric that includes a plurality of output queues, a virtual channel identifier associated with a virtual channel (1) from a plurality of virtual channels and (2) associated with an output queue from the plurality of output queues, to a data packet using a hash function and based on an available capacity of each output queue from the plurality of output queues; sending the data packet through the virtual channel associated with the virtual channel identifier, to a node associated with a second stage of the switch fabric such that the node associated with the second stage of the switch fabric stores the data packet in the input queue associated with the virtual channel associated with the virtual channel identifier; receiving a flow control signal from the node associated with the second stage when an available capacity of an input queue of the node associated with the second stage and associated with the virtual channel is less than a predetermined threshold; and suspending an output queue from the plurality of output queues and associated with the virtual channel, so as to suspend sending of data packets through the virtual channel, in response to the flow control signal. 8. The method of claim 7 , wherein the virtual channel identifier is assigned to the data packet by storing the virtual channel identifier in a header appended to the data packet. 9. The method of claim 7 , wherein the node associated with the first stage suspends sending data packets via the virtual channel for a predetermined period of time. 10. The method of claim 7 , wherein the method further comprises: ending the suspension of sending data packets via the virtual channel when the node associated with the first stage receives a ready signal from the node associated with the second stage. 11. The method of claim 7 , wherein the method further comprises: disassociating the virtual channel identifier from the data packet in response to suspending the output queue from the plurality of output queues. 12. The method of claim 7 , wherein the virtual channel identifier is a first virtual channel identifier and the virtual channel is a first virtual channel, the method further comprises: disassociating the first virtual channel identifier from the data packet in response to suspending the output queue from the plurality of output queues; and associating the data packet with a second virtual channel identifier associated with a second virtual channel from the plurality of virtual channels based on a hash function. 13. The method of claim 7 , wherein the output queue is suspended by removing the output queue from a schedule associated with sending data packets via the virtual channel. 14. The method of claim 7 , wherein the method further comprises: incrementing an input virtual channel counter based on the virtual channel identifier, the input virtual channel counter being used to determine the available capacity of the input queue. 15. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to: associate a virtual channel identifier associated with a virtual channel from a plurality of virtual channels that are associated with a single physical hop of a switch fabric, with an input queue from a plurality of input queues associated with a node associated with a second stage of the switch fabric; receive a data packet from an output queue from a plurality of output queues associated with a node associated with a first stage of the switch fabric; extract a virtual channel identifier from the data packet; store the data packet in the input queue from the plurality of input queues when the virtual channel identifier extracted from the data packet matches the virtual channel identifier associated with the input queue from the plurality of input queues such that the node associated with the first stage of the switch fabric assigns the extracted virtual channel identifier associated with the virtual channel from the plurality of virtual channels to the data packet based on an available capacity of each associated output queue from the plurality of output queues; and send a flow control signal to the node associated with the first stage of the switch fabric when an available capacity of the input queue falls below a predetermined threshold, the flow control signal including instructions to suspend an output queue of the node associated with the first stage of the switch fabric and with the virtual channel. 16. The non-transitory processor-readable medium of claim 15 , wherein the code further comprises code to cause the processor to send a ready signal to the node associated with the first stage of the switch fabric after sending the f
Buffering arrangements · CPC title
Flow control; Congestion control · CPC title
Non-blocking multistage, e.g. Clos · CPC title
Corrective measures · CPC title
Stopping or restarting the source, e.g. X-on or X-off · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.