A computer-implemented method comprising: identifying a plurality of paths from a source switch to a destination switch, wherein: each of the plurality of paths comprises one or more data links; and each of the one or more data links has a link bandwidth; determining, for each of the plurality of paths, a limiting bandwidth of the path based at least in part on the lowest link bandwidth of the one or more data links in the path; and balancing network traffic that is transmitted from the source switch to the destination switch across the plurality of paths based at least in part on the limiting bandwidth of each of the plurality of paths wherein balancing the network traffic across the plurality of paths comprises, for each of the plurality of paths: assigning a path weight to the path based at least in part on a ratio of the limiting bandwidth of the path to a sum of the limiting bandwidths of all paths in the plurality of paths; and using the path weight assigned to the path to transmit a portion of the network traffic via the path, wherein using the path weight assigned to the path to transmit the portion of the network traffic via the path comprises: identifying a plurality of interfaces of the source switch that connect to the path; for each interface in the plurality of interfaces: determining a bandwidth of the interface; and assigning an interface weight to the interface based at least in part on a ratio of the bandwidth of the interface to a sum of the bandwidths of all interfaces in the plurality of interfaces; and using the interface weight assigned to each interface to balance the portion of the network traffic that is transmitted via the path across the plurality of interfaces. identifying a plurality of paths from a source switch to a destination switch, wherein: each of the plurality of paths comprises one or more data links; and each of the one or more data links has a link bandwidth; each of the plurality of paths comprises one or more data links; and each of the one or more data links has a link bandwidth; determining, for each of the plurality of paths, a limiting bandwidth of the path based at least in part on the lowest link bandwidth of the one or more data links in the path; and balancing network traffic that is transmitted from the source switch to the destination switch across the plurality of paths based at least in part on the limiting bandwidth of each of the plurality of paths wherein balancing the network traffic across the plurality of paths comprises, for each of the plurality of paths: assigning a path weight to the path based at least in part on a ratio of the limiting bandwidth of the path to a sum of the limiting bandwidths of all paths in the plurality of paths; and using the path weight assigned to the path to transmit a portion of the network traffic via the path, wherein using the path weight assigned to the path to transmit the portion of the network traffic via the path comprises: identifying a plurality of interfaces of the source switch that connect to the path; for each interface in the plurality of interfaces: determining a bandwidth of the interface; and assigning an interface weight to the interface based at least in part on a ratio of the bandwidth of the interface to a sum of the bandwidths of all interfaces in the plurality of interfaces; and using the interface weight assigned to each interface to balance the portion of the network traffic that is transmitted via the path across the plurality of interfaces. assigning a path weight to the path based at least in part on a ratio of the limiting bandwidth of the path to a sum of the limiting bandwidths of all paths in the plurality of paths; and using the path weight assigned to the path to transmit a portion of the network traffic via the path, wherein using the path weight assigned to the path to transmit the portion of the network traffic via the path comprises: identifying a plurality of interfaces of the source switch that connect to the path; for each interface in the plurality of interfaces: determining a bandwidth of the interface; and assigning an interface weight to the interface based at least in part on a ratio of the bandwidth of the interface to a sum of the bandwidths of all interfaces in the plurality of interfaces; and using the interface weight assigned to each interface to balance the portion of the network traffic that is transmitted via the path across the plurality of interfaces. identifying a plurality of interfaces of the source switch that connect to the path; for each interface in the plurality of interfaces: determining a bandwidth of the interface; and assigning an interface weight to the interface based at least in part on a ratio of the bandwidth of the interface to a sum of the bandwidths of all interfaces in the plurality of interfaces; and using the interface weight assigned to each interface to balance the portion of the network traffic that is transmitted via the path across the plurality of interfaces.