Load balancing is the layer that sits above PFC and ECN. Get it right and reactive congestion management rarely needs to fire. Get it wrong and no amount of PFC or ECN tuning will fix a fabric where all AllReduce traffic is pinned to the same two spine links.
You know why RoCEv2 traffic is structurally low-entropy -- the fixed destination port 4791, the narrow IP pool, the QP-derived source port range -- and why this makes ECMP fail for AI fabrics in a predictable, structural way rather than a random one.
You know the four load balancing modes: SLB (static ECMP, worst for AI), DLB (local utilisation-aware, good), GLB (next-hop-aware, better for multi-tier fabrics), and sDLB/per-packet spraying (best for AI, requires RSHP on ConnectX-7).
You know elephant flows and flowlets -- the two patterns that defeat flow-level load balancing -- and why per-packet spraying solves both by making header entropy irrelevant.
You know in-cast as the specific congestion pattern AllReduce creates: many senders to one destination simultaneously. You know its counter signature: drops on egress uplinks, not on input ports, with PFC activity across multiple input ports simultaneously.
You know the diagnostic decision that routes you to the right layer: compare spine utilisation first. Even distribution during AllReduce means load balancing is working -- investigate PFC/ECN. Uneven distribution means fix load balancing before anything else.
And you know that on InfiniBand, this problem is largely solved by hardware -- adaptive routing in the switch ASIC makes per-packet distribution automatic. On Ethernet, it requires RSHP configuration and ConnectX-7 NICs.