HPCC (High Precision Congestion Control) was published by Alibaba in SIGCOMM 2019 and represents the state of the art for fabrics that have INT (In-band Network Telemetry) capability across all switch hops.
The INT data model
HPCC requires every switch in the path to insert telemetry metadata into the packet as it forwards it. Each hop adds an INT record containing:
struct INT_hop_data {
uint32_t ingress_port_tx_rate; // current TX rate on ingress port (bytes/sec)
uint32_t queue_occupancy; // current queue depth (bytes)
uint64_t ingress_timestamp; // nanosecond precision arrival time
uint16_t hop_latency; // time spent in this switch (ns)
};
The receiver NIC reads the INT stack and sends it back to the sender in the ACK. The sender NIC then computes the precise congestion state at every hop in the path.
HPCC rate calculation
The sender computes the inflight bytes at each hop:
inflight(hop_i) = tx_rate(hop_i) × hop_latency(hop_i) + queue_occupancy(hop_i)
If inflight(hop_i) > bandwidth × target_delay at any hop, the flow is sending too fast
for that hop's current state. The sender adjusts its rate down proportionally:
rate_new = min over all hops { bandwidth(hop_i) × (1 - u(hop_i)) + base_rate }
Where u is the utilisation at each hop. Because this calculation uses the actual
measured queue depth at each hop (not an estimate derived from ECN or RTT), HPCC can
respond precisely to the bottleneck hop rather than assuming the bottleneck is at the
destination.
HPCC advantages
No ECN thresholds to tune. HPCC never relies on a switch to decide when to mark. The raw queue depth is reported directly. This eliminates the "ECN threshold above buffer capacity" failure mode.
No 2-RTT delay. HPCC's signal is embedded in the ACK, making it a 1-RTT scheme like Swift.
Multi-hop awareness. DCQCN and Swift react to the aggregate path latency. HPCC can pinpoint which hop is the bottleneck and scale rate to that hop specifically.
HPCC limitations
The critical limitation is hardware cost. Every switch in the path must insert INT records. On a four-hop path (host → leaf → spine → leaf → host), each packet carries four INT records, adding 4 × 20 bytes = 80 bytes of overhead. For small messages (512 bytes), this is a 16% overhead. For large messages (64 KB), it is negligible.
More critically, INT insertion requires switch ASIC support and software coordination. Not all switches support INT insertion. In NVIDIA's portfolio, Spectrum-4 supports INT-like telemetry through its WJH engine, but full HPCC-compatible INT insertion requires P4-capable hardware (Tofino, Trident 4) or specific NVIDIA extensions.