isisd: fix metrics check for metric-style narrow
When switching to narrow metric style, all configured circuits are
verified to have a valid narrow style metric. Check te_metric instead
of metric_default as the latter is only 8bit wide and may overflow for
wide style metrics.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/isisd/isisd.c b/isisd/isisd.c
index 47675f0..28cd051 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -2054,7 +2054,7 @@
{
if ((area->is_type & IS_LEVEL_1) &&
(circuit->is_type & IS_LEVEL_1) &&
- (circuit->metrics[0].metric_default > MAX_NARROW_LINK_METRIC))
+ (circuit->te_metric[0] > MAX_NARROW_LINK_METRIC))
{
vty_out (vty, "ISIS circuit %s metric is invalid%s",
circuit->interface->name, VTY_NEWLINE);
@@ -2062,7 +2062,7 @@
}
if ((area->is_type & IS_LEVEL_2) &&
(circuit->is_type & IS_LEVEL_2) &&
- (circuit->metrics[1].metric_default > MAX_NARROW_LINK_METRIC))
+ (circuit->te_metric[1] > MAX_NARROW_LINK_METRIC))
{
vty_out (vty, "ISIS circuit %s metric is invalid%s",
circuit->interface->name, VTY_NEWLINE);