# EIGRP - Metric Equation Multipliers

When evaluating the metric using EIGRP, we use the EIGRP metric equation. Depending upon the version used, the metric equation may use a multiplier to normalize the metric to the metric needed.

The original metric equation was created and used for IGRP, which is EIGRP's predecessor. That equation is the following:

$\text{IGRP Metric} = \left[K1 \times \text{Bandwidth} + \frac{(K2 \times \text{Bandwidth})}{(256 - \text{Load})} + K3 \times \text{Delay}\right] \times \left[K5 / (\text{Reliability} + K4)\right]$This equation gives a metric with a value represented by 24 bits. EIGRP however uses a metric that is 32 bits in length. Because EIGRP was created to be backward compatible with IGRP, it uses the same metric equation with a multiplier of 256 like so:

$\text{EIGRP Metric} = 256 \times \left[K1 \times \text{Bandwidth} + \frac{(K2 \times \text{Bandwidth})}{(256 - \text{Load})} + K3 \times \text{Delay}\right] \times \left[K5 / (\text{Reliability} + K4)\right]$The multiplier is essentially used to shift the value of the metric equitation 8 bits to the left. So if you have a metric of 5876966 in IGRP for example, that would look like this in 24-bit binary:

`010110011010110011100110`

Multiply that by 256 and we shift all bits to the left by eight positions, and add zeros at the end like this:

`010110011010110011100110`

`00000000`

This shift does not directly increase the granularity of the metric, as the values remain divisible by 256. However, mechanisms like QoS extensions in EIGRP and its use in DMVPN can provide more granular results. The additional bit space also allows for future enhancements and protocol extensions. Typically, the last 8 bits are kept at zero in most implementations but are available for specialized uses and future protocol expansions.

A similar multiplication takes place when using EIGRP Wide Metrics formula. The classic EIGRP formula is multiplied by 65536 to get the wide metrics formula like so:

$\begin{aligned} & \text { Wide } \\ & \text { Metric }\end{aligned}=65,535 *\left[\left(\frac{\mathrm{K}_1{ }^* 10^7}{\text { Min. Bandwidth }}+\frac{\frac{\mathrm{K}_2{ }^* 10^7}{\text { Min. Bandwidth }}}{256-\text { Load }}+\frac{\mathrm{K}_3{ }^* \text { Latency }}{10^{* 6}}+\mathrm{K}_6{ }^*\right.\right. Extended \left.) * \frac{\mathrm{K}_5}{\mathrm{~K}_4+\text { Reliability }}\right]$This multiplier shifts all bits to the left by 16 positions. So looking at the previous example, if we were to apply this multiplier to the original value of:

`01011001101011001110011000000000`

we get:

`0000000000000000`

`01011001101011001110011000000000`

`0000000000000000`

This results in a set of 16 zeros before and another set of 16 zeros after the original value. As previously stated, this shift doesn't directly increase the granularity of the metric, but it allows for flexibility in both the most significant and least significant bits of the value for future expansions and modifications to the way that metrics are evaluated.

## Links

https://forum.networklessons.com/t/eigrp-wide-metrics/2114/28?u=lagapidis