Methods and apparatus for virtual channel flow control associated with a switch fabric
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
139 Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
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. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification