diff --git a/ospf6d/ospf6_route.c b/ospf6d/ospf6_route.c index 4b87c4cf30..1b05b9d8ad 100644 --- a/ospf6d/ospf6_route.c +++ b/ospf6d/ospf6_route.c @@ -1117,6 +1117,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); @@ -1150,16 +1151,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 { @@ -1171,12 +1171,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) { @@ -1200,6 +1202,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); @@ -1350,8 +1353,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, @@ -1359,13 +1360,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",