Even with AR enabled, there is a second ECMP problem to address: what happens to in-flight flows when a spine link fails? Standard ECMP remaps every flow across the remaining paths. If you have 32 active QPs and one of four spines fails, all 32 QPs are reassigned to new spines by rehashing. This disrupts every active flow simultaneously - a fabric-wide microshock that triggers DCQCN on all affected QPs at the same time.
Resilient hashing solves this. Spectrum-4 maintains a fixed bucket table (512 or 1024 buckets). Each ECMP group maps flows to buckets; each bucket maps to a next-hop. When a link fails, only the buckets belonging to the failed next-hop are remapped. All other flows keep their bucket assignment unchanged.
Impact on a 4-spine fabric. With 512 buckets and 4 equal-weight spines, each spine owns 128 buckets. If spine-02 fails, only the 128 buckets previously assigned to spine-02 are redistributed among the remaining three spines. 75% of active flows are completely undisturbed. With standard ECMP rehash, 100% of flows would experience disruption.
Flowlet interaction. Resilient hashing and per-flowlet AR work together. Resilient hashing protects flows from link failure disruption. Per-flowlet AR continuously optimizes distribution across surviving paths. They address different timescales: resilient hashing is for fault events (millisecond-second scale), AR is for congestion events (microsecond scale).
NVUE configuration:
# Enable resilient hashing with 512-bucket table
nv set router adaptive-routing resilient-hash enable on
nv set router adaptive-routing resilient-hash buckets 512
nv config apply
# Verify resilient hash state
nv show router adaptive-routing resilient-hash
Resilient Hash
==============
Enable: on
Buckets: 512
Current Utilization:
spine-01: 127 buckets (24.8%)
spine-02: 128 buckets (25.0%)
spine-03: 129 buckets (25.2%)
spine-04: 128 buckets (25.0%)
Flow hash pinning for stateful services. Some traffic (firewall bypass, NAT) requires strict flow affinity - the same five-tuple must always use the same spine to avoid asymmetric routing. NVUE supports flow hash pinning for specific prefix destinations:
# Pin flows to storage subnets to specific paths (avoids firewall asymmetry)
nv set router adaptive-routing hash-pin destination 10.200.0.0/16 enable on
nv config apply
Cross-reference Ch16 (ECMP and Load Balancing) for ECMP fundamentals and bucket table sizing guidance that applies here.