{{ result.summaryTitle }}
{{ result.primaryDisplay }}
{{ result.secondaryText }}
{{ result.statusText }} {{ result.pathBadge }} {{ result.hashBadge }} {{ result.flowBadge }}
ECMP path capacity inputs
Count the next hops that can be installed for this destination when the fabric is healthy.
paths
Use the active next-hop count from routing state, not the design maximum.
paths
Enter the sustained usable rate for one member path in Gbps.
Gbps
Use observed peak or planned traffic demand that should fit across the active paths.
Gbps
Set to 0 if unknown; otherwise use the largest expected single conversation.
Gbps
Use 70-90% when flow entropy is uncertain; use 95-100% only for well-balanced telemetry.
%
Keep enough reserve for burst, telemetry error, and path churn.
%
Leave 0 for the current state; increase when planning a maintenance drain.
paths
MetricValueDetailCopy
{{ row.metric }}{{ row.value }}{{ row.detail }}
CheckSignalRecommendationCopy
{{ row.check }}{{ row.signal }}{{ row.recommendation }}
Additional failuresHealthy pathsEffective capacitySpare after demandStatusCopy
{{ row.failures }}{{ row.healthyPaths }}{{ row.effectiveCapacity }}{{ row.spareAfterDemand }}{{ row.status }}
Customize
Advanced
:

Introduction

Equal-cost multipath, usually shortened to ECMP, lets a router or switch use several equal-cost next hops for the same destination. The extra paths can raise usable bandwidth and provide resilience, but the useful capacity is not just the number of links multiplied by the interface speed. It depends on which paths are actually healthy, how evenly flows hash across them, and whether one large flow is bigger than a single member path can carry.

ECMP capacity planning matters during fabric growth, WAN edge design, route maintenance, and incident review. A group can look large on paper while one missing next hop, a weak hash spread, or a single elephant flow creates congestion on one member. The planning question is therefore practical: how much traffic can the active set carry after hash spread and reserve are considered, and how many more path failures can happen before demand is no longer covered?

Diagram showing a flow hash mapped to healthy ECMP paths, then compared with demand and reserve capacity.

Most ECMP forwarding is flow-aware. Routers commonly hash fields from the packet header so packets from the same flow stay on the same next hop, which avoids the packet reordering problems that simple round-robin forwarding can create. That also means aggregate capacity improves best when there are enough independent flows to spread across the group. One large conversation may still be limited by one member path unless the application or transport opens multiple flows.

A capacity estimate should be treated as a planning model, not a guarantee. Real forwarding behavior depends on platform limits, hash inputs, flow entropy, policy, route convergence, optics, queues, and traffic shape. The estimate is still useful because it turns those assumptions into visible spare capacity, headroom, and failure runway before a maintenance window or capacity promise depends on them.

Technical Details:

ECMP capacity has two separate ceilings. The first is the active path-set ceiling: healthy paths multiplied by usable per-path bandwidth. The second is the flow-placement ceiling: how evenly traffic hashes across those paths. The calculation models hash spread as an efficiency percentage, so a seven-path set with 10 Gbps per path and an 82% hash efficiency is treated as 57.4 Gbps of effective aggregate capacity rather than the raw 70 Gbps path sum.

Headroom is applied to demand, not to the path rate. If the traffic load is 55 Gbps and the reserve target is 15%, the target demand is 63.25 Gbps. Effective capacity above 63.25 Gbps meets the reserve target, effective capacity between 55 Gbps and 63.25 Gbps covers current demand with thin reserve, and effective capacity below 55 Gbps is short before the planned reserve is considered.

Formula Core

The core model uses active path count, per-path capacity, hash efficiency, demand, and headroom. Failure runway repeats the same effective-capacity calculation after subtracting each possible additional path failure.

Cconfigured = Ntotal×Cpath Chealthy = Nhealthy×Cpath Ceffective = Chealthy×H100 Dtarget = D×(1+R100) Cafter f failures = max(Nhealthy-f,0)×Cpath×H100
ECMP capacity variables and meanings
Symbol Meaning Practical source
N_total Configured equal-cost next hops when the route or prefix is healthy Design maximum or routing configuration
N_healthy Currently usable next hops after failed, drained, or withdrawn paths are removed Live routing state, telemetry, or a planned smaller path set
C_path Usable sustained bandwidth for one member path in Gbps Measured payload rate or conservative engineering rate
H Hash efficiency percentage applied to the healthy wire capacity Telemetry-based spread estimate or planning allowance
D and R Aggregate demand and target reserve percentage Peak traffic demand plus the spare capacity target

The single-flow check is separate from aggregate demand. Normal ECMP hashing keeps a flow on one next hop, so a 12 Gbps flow will not fit on a 10 Gbps member path even when the group has many 10 Gbps paths. This is why the model reports a per-flow path ceiling and a largest-flow margin instead of assuming every conversation can consume the whole aggregate group.

ECMP capacity status and validation cues
Cue Rule Meaning
target met Effective ECMP capacity >= Demand plus headroom The active path set covers demand and the selected reserve.
reserve thin Effective ECMP capacity >= Aggregate demand but below target demand Current demand fits, but the reserve target is not covered.
capacity short Effective ECMP capacity < Aggregate demand The active set is short before any reserve is added.
single-flow tight Largest modeled flow is above 85% of one path but does not exceed it A small change in flow size or path rate can make one member congest.
hash efficiency below 70% Hash efficiency is entered below 70% Low entropy, polarization, or an uneven flow mix should be checked before relying on aggregate capacity.

Everyday Use & Decision Guide:

Start with the route or prefix you actually need to protect. Set Total ECMP paths to the configured path count, then set Healthy paths from the active routing state. If one next hop is drained for maintenance or missing from forwarding, use the smaller healthy count even if the design normally has more paths.

Use the sustained payload rate for Per-path capacity, not the label on the interface when shaping, tunnels, encryption, oversubscription, or policy reduce usable throughput. For Aggregate demand, use the peak traffic that should fit across the active set. A quiet-hour average can hide the exact burst that causes ECMP pressure during a failover.

  • Use Hash efficiency around 70% to 90% when flow spread is uncertain. Use 95% to 100% only when telemetry shows a well-balanced many-flow mix.
  • Enter Largest single flow when backup, replication, storage, elephant TCP, or tunnel traffic could dominate one member path. Leave it at 0 only when that risk is unknown or not relevant.
  • Set Target headroom to the reserve you need for bursts, measurement error, route churn, and short maintenance events.
  • Use Planned path removals in Advanced before a drain. The maintenance row shows whether the smaller path set still covers demand and reserve.
  • Read Input audit in the hash-risk table when a value looks surprising. Rounded or clamped inputs mean the result used a supported numeric fallback.

The useful first check is the summary status, then the gap between Effective ECMP capacity, Aggregate demand, and Demand plus headroom. If the summary says reserve thin, the path set is not immediately short, but the design has no room for the selected reserve. If it says capacity short, add paths, reduce demand, raise per-path rate, or improve flow distribution before depending on that ECMP group.

The calculation runs in the browser from the values you enter. It does not connect to routers, pull flow telemetry, or verify platform hash behavior, so the result is only as strong as the path health, traffic demand, and flow-spread assumptions you bring to it.

Step-by-Step Guide:

Use one pass for the current route state, then a second pass for the worst maintenance or failure condition you want to approve.

  1. Enter Total ECMP paths and Healthy paths. The paths healthy badge should match the route state you intend to model.
  2. Enter Per-path capacity in Gbps and Aggregate demand for the traffic load that must fit.
  3. Set Largest single flow if one flow may exceed a member path. Check the single-flow fits, single-flow tight, or single-flow over path badge before relying on the aggregate result.
  4. Set Hash efficiency and Target headroom. Watch Effective ECMP capacity, Spare after demand, and Reserve against target in Capacity Ledger.
  5. Open Advanced and enter Planned path removals for a drain or maintenance window. The Planned drain row in Hash Risk Brief shows whether the smaller set still works.
  6. Use Failure Runway and Path Failure Curve to find how many additional path failures can be absorbed before the result moves from target-covered to demand-only or short.

For a handoff, copy or download the capacity ledger, hash-risk brief, failure runway, and JSON payload along with the input assumptions. The chart exports are useful when a design note needs a quick visual comparison of configured capacity, effective capacity, demand, and failure loss.

Interpreting Results:

Effective ECMP capacity is the main planning number. It starts with healthy wire capacity and then applies the hash-efficiency allowance. Compare it with Aggregate demand for the raw fit and with Demand plus headroom for the reserve target. Spare after demand can be positive while Reserve against target is negative, which means current demand fits but the selected headroom does not.

Failure tolerance has two readings. The target reading counts how many additional path failures still cover demand plus reserve. The raw-demand reading counts how many failures still cover demand without reserve. A target value of 0 is not always a hard failure, but it means the current healthy set cannot lose another path and still keep the chosen reserve.

  • Hash Risk Brief turns the same math into action cues for aggregate headroom, path health, hash spread, elephant-flow risk, planned drain, and input audit.
  • ECMP Capacity Stack compares configured wire, healthy wire, effective ECMP capacity, traffic demand, and demand plus headroom.
  • Path Failure Curve shows the effective capacity after each additional failed path, with demand and headroom markers for quick runway review.
  • JSON preserves raw inputs, normalized inputs, totals, table rows, chart data, and warnings for review notes or follow-up analysis.

Worked Examples:

Default seven-of-eight path state:

With 8 configured paths, 7 healthy paths, 10 Gbps per path, 55 Gbps demand, 82% hash efficiency, and 15% target headroom, healthy wire capacity is 70 Gbps. Effective ECMP capacity becomes 57.40 Gbps. That leaves 2.40 Gbps spare after demand, but demand plus headroom is 63.25 Gbps, so the status is reserve thin.

All paths restored with better spread:

If the same traffic has 8 healthy paths and the measured hash efficiency improves to 90%, effective capacity rises to 72.00 Gbps. The reserve target of 63.25 Gbps is covered, and raw demand can survive one additional path failure because seven paths at 90% still provide 63.00 Gbps. The reserve target is tighter than raw demand, so the target failure runway remains shorter.

Maintenance drain that should pause:

A larger group with 10 healthy paths at 25 Gbps each, 180 Gbps demand, 85% hash efficiency, and 20% headroom has 212.50 Gbps effective capacity. That is already below the 216.00 Gbps reserve target. If two planned path removals are added, maintenance capacity falls to 170.00 Gbps and becomes short against demand. The drain should be reduced, traffic should be moved, or more capacity should be added before the window proceeds.

FAQ:

Why not multiply every configured path by the link speed?

Configured paths are only the design maximum. Failed, drained, or withdrawn paths do not carry traffic, and uneven flow hashing reduces how much of the healthy wire capacity is safely usable.

Can one large flow use every ECMP path?

Usually no. Common ECMP forwarding keeps a flow on one selected next hop to avoid packet reordering. A single transfer can use more aggregate capacity only when the application, tunnel, or transport opens multiple flows that can hash to different paths.

What should I use for hash efficiency?

Use measured distribution when telemetry is available. Without it, 70% to 90% is a conservative planning range for uncertain flow entropy, while values near 100% should be reserved for well-balanced many-flow traffic.

Does a green result prove the fabric is safe?

No. The result checks the modeled path set, demand, headroom, hash allowance, and largest-flow size. It does not prove optical health, queue behavior, route convergence, hardware limits, or vendor-specific hashing details.

Glossary:

ECMP
Equal-cost multipath routing, where multiple equal-cost next hops can be used for the same destination.
Healthy path
A path that is currently usable after failures, drains, withdrawals, and policy changes are considered.
Hash efficiency
The percentage of healthy wire capacity treated as usable after allowing for uneven flow distribution.
Headroom
Reserve capacity above demand for bursts, measurement error, maintenance, and route churn.
Elephant flow
A large single flow that can dominate one member path even when aggregate ECMP capacity appears sufficient.
Failure runway
The number of additional path failures the active set can absorb before reserve or raw demand is no longer covered.