diff options
Diffstat (limited to 'ospf6d/ospf6_route.c')
| -rw-r--r-- | ospf6d/ospf6_route.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/ospf6d/ospf6_route.c b/ospf6d/ospf6_route.c index a4ed99ea2d..35b567c768 100644 --- a/ospf6d/ospf6_route.c +++ b/ospf6d/ospf6_route.c @@ -580,9 +580,7 @@ ospf6_route_lookup_identical(struct ospf6_route *route, for (target = ospf6_route_lookup(&route->prefix, table); target; target = target->next) { if (target->type == route->type - && (memcmp(&target->prefix, &route->prefix, - sizeof(struct prefix)) - == 0) + && prefix_same(&target->prefix, &route->prefix) && target->path.type == route->path.type && target->path.cost == route->path.cost && target->path.u.cost_e2 == route->path.u.cost_e2 @@ -1116,6 +1114,7 @@ void ospf6_route_show(struct vty *vty, struct ospf6_route *route, json_object *json_route = NULL; json_object *json_array_next_hops = NULL; json_object *json_next_hop; + vrf_id_t vrf_id = route->ospf6->vrf_id; monotime(&now); timersub(&now, &route->changed, &res); @@ -1149,16 +1148,15 @@ void ospf6_route_show(struct vty *vty, struct ospf6_route *route, else i = 0; for (ALL_LIST_ELEMENTS_RO(route->nh_list, node, nh)) { - struct interface *ifp; /* nexthop */ inet_ntop(AF_INET6, &nh->address, nexthop, sizeof(nexthop)); - ifp = if_lookup_by_index_all_vrf(nh->ifindex); if (use_json) { json_next_hop = json_object_new_object(); json_object_string_add(json_next_hop, "nextHop", nexthop); - json_object_string_add(json_next_hop, "interfaceName", - ifp->name); + json_object_string_add( + json_next_hop, "interfaceName", + ifindex2ifname(nh->ifindex, vrf_id)); json_object_array_add(json_array_next_hops, json_next_hop); } else { @@ -1170,12 +1168,14 @@ void ospf6_route_show(struct vty *vty, struct ospf6_route *route, OSPF6_PATH_TYPE_SUBSTR( route->path.type), destination, nexthop, IFNAMSIZ, - ifp->name, duration); + ifindex2ifname(nh->ifindex, vrf_id), + duration); i++; } else vty_out(vty, "%c%1s %2s %-30s %-25s %6.*s %s\n", ' ', "", "", "", nexthop, IFNAMSIZ, - ifp->name, ""); + ifindex2ifname(nh->ifindex, vrf_id), + ""); } } if (use_json) { @@ -1199,6 +1199,7 @@ void ospf6_route_show_detail(struct vty *vty, struct ospf6_route *route, json_object *json_route = NULL; json_object *json_array_next_hops = NULL; json_object *json_next_hop; + vrf_id_t vrf_id = route->ospf6->vrf_id; monotime(&now); @@ -1349,8 +1350,6 @@ void ospf6_route_show_detail(struct vty *vty, struct ospf6_route *route, vty_out(vty, "Nexthop:\n"); for (ALL_LIST_ELEMENTS_RO(route->nh_list, node, nh)) { - struct interface *ifp; - ifp = if_lookup_by_index_all_vrf(nh->ifindex); /* nexthop */ if (use_json) { inet_ntop(AF_INET6, &nh->address, nexthop, @@ -1358,13 +1357,14 @@ void ospf6_route_show_detail(struct vty *vty, struct ospf6_route *route, json_next_hop = json_object_new_object(); json_object_string_add(json_next_hop, "nextHop", nexthop); - json_object_string_add(json_next_hop, "interfaceName", - ifp->name); + json_object_string_add( + json_next_hop, "interfaceName", + ifindex2ifname(nh->ifindex, vrf_id)); json_object_array_add(json_array_next_hops, json_next_hop); } else vty_out(vty, " %pI6 %.*s\n", &nh->address, IFNAMSIZ, - ifp->name); + ifindex2ifname(nh->ifindex, vrf_id)); } if (use_json) { json_object_object_add(json_route, "nextHops", |
