Patent ID: 8917604

Claim:
A computer-implemented method comprising: maintaining, within a first network device of a plurality of network devices coupled in communication with a network, information regarding a set of virtual networks into which the network has been logically divided and that can be used by the first network device to transport packets through the network, wherein each virtual network of the set of virtual networks comprises a loop-free switching path, reverse path learning network and wherein each virtual network of the set of virtual networks provides a path through the network between the first network device and a second network device of the plurality of network devices thereby collectively providing a plurality of paths through the network between the first network device and the second network device; receiving, by the first network device, one or more packets associated with a flow sent by a source network device at a particular flow rate; forwarding, by the first network device, the one or more packets associated with the flow to the second network device via a particular path of the plurality of paths; determining a congestion metric for the particular path; determining, based at least partially upon the congestion metric for the particular path, whether the particular path has reached a congestion threshold; and in response to a determination that the particular path has reached the congestion threshold, instructing the source network device to reduce the particular flow rate at which the source network device is sending packets associated with the flow.