Four vendor implementations, head to head, with measured numbers

Post 1 described a fabric where 95% of the bandwidth was unused because ECMP hashed 16 conversations onto 2 of 8 uplinks. The fix was three sentences in that post: dynamic load balancing claws back the lost capacity. Post 7 is what those three sentences hide.
Static ECMP picks a path once per flow and never revisits the decision. When the network’s traffic happens to align with the hash function’s blind spots, the result is polarization. Adaptive routing watches actual link utilization, detects imbalance, and rebalances live. Different vendors do this differently. The differences matter.