ripd & ripngd: avoid the zero interface metric
The interface metric is initialized to 0 in the commit db19c85:
zebra: set metric for directly connected routes via netlink to 0
Ripd and ripngd must be aware of it and avoid increase the
route metric by 0.
Signed-off-by: Feng Lu <lu.feng@6wind.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 55a1a75..01bd69e 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -433,7 +433,7 @@
/* If offset-list does not modify the metric use interface's
metric. */
if (!ret)
- rte->metric += ifp->metric;
+ rte->metric += ifp->metric ? ifp->metric : 1;
if (rte->metric > RIP_METRIC_INFINITY)
rte->metric = RIP_METRIC_INFINITY;
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index 8e97c2f..318f600 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -717,7 +717,7 @@
/* If offset-list does not modify the metric use interface's
* one. */
if (! ret)
- rte->metric += ifp->metric;
+ rte->metric += ifp->metric ? ifp->metric : 1;
if (rte->metric > RIPNG_METRIC_INFINITY)
rte->metric = RIPNG_METRIC_INFINITY;