diff options
Diffstat (limited to 'ripngd/ripngd.c')
-rw-r--r-- | ripngd/ripngd.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c index 453637c3..cf0d5784 100644 --- a/ripngd/ripngd.c +++ b/ripngd/ripngd.c @@ -783,7 +783,8 @@ ripng_route_process (struct rte *rte, struct sockaddr_in6 *from, rinfo->type = ZEBRA_ROUTE_RIPNG; rinfo->sub_type = RIPNG_ROUTE_RTE; - ripng_zebra_ipv6_add (&p, &rinfo->nexthop, rinfo->ifindex); + ripng_zebra_ipv6_add (&p, &rinfo->nexthop, rinfo->ifindex, + rinfo->metric); rinfo->flags |= RIPNG_RTF_FIB; /* Aggregate check. */ @@ -835,9 +836,9 @@ ripng_route_process (struct rte *rte, struct sockaddr_in6 *from, RIPNG_TIMER_OFF (rinfo->t_garbage_collect); if (! IPV6_ADDR_SAME (&rinfo->nexthop, nexthop)) - IPV6_ADDR_COPY (&rinfo->nexthop, nexthop); + IPV6_ADDR_COPY (&rinfo->nexthop, nexthop); - ripng_zebra_ipv6_add (&p, nexthop, ifp->ifindex); + ripng_zebra_ipv6_add (&p, nexthop, ifp->ifindex, rinfo->metric); rinfo->flags |= RIPNG_RTF_FIB; /* The aggregation counter needs to be updated because @@ -850,7 +851,7 @@ ripng_route_process (struct rte *rte, struct sockaddr_in6 *from, if (oldmetric != RIPNG_METRIC_INFINITY) { ripng_zebra_ipv6_delete (&p, &rinfo->nexthop, rinfo->ifindex); - ripng_zebra_ipv6_add (&p, nexthop, ifp->ifindex); + ripng_zebra_ipv6_add (&p, nexthop, ifp->ifindex, rinfo->metric); rinfo->flags |= RIPNG_RTF_FIB; if (! IPV6_ADDR_SAME (&rinfo->nexthop, nexthop)) |