Methods and apparatus for virtual channel flow control associated with a switch fabric

US9705827B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9705827-B2
Application numberUS-201514746059-A
CountryUS
Kind codeB2
Filing dateJun 22, 2015
Priority dateJun 22, 2010
Publication dateJul 11, 2017
Grant dateJul 11, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Buffering arrangements · CPC title

  • H04L47/10Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9705827B2 cover?
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 se…
Who is the assignee on this patent?
Juniper Networks Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/10. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).