diff options
-rw-r--r-- | zebra/interface.c | 8 | ||||
-rw-r--r-- | zebra/interface.h | 2 | ||||
-rw-r--r-- | zebra/zebra_rnh.c | 7 |
3 files changed, 14 insertions, 3 deletions
diff --git a/zebra/interface.c b/zebra/interface.c index 8b25c33f1..7b1937991 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -183,6 +183,14 @@ if_lookup_by_index_per_ns (struct zebra_ns *ns, u_int32_t ifindex) return ifp; } +const char * +ifindex2ifname_per_ns (struct zebra_ns *zns, unsigned int ifindex) +{ + struct interface *ifp; + + return ((ifp = if_lookup_by_index_per_ns (zns, ifindex)) != NULL) ? + ifp->name : "unknown"; +} /* Tie an interface address to its derived subnet list of addresses. */ int diff --git a/zebra/interface.h b/zebra/interface.h index ab018596c..3d8a82d45 100644 --- a/zebra/interface.h +++ b/zebra/interface.h @@ -210,6 +210,8 @@ struct zebra_if extern struct interface *if_lookup_by_index_per_ns (struct zebra_ns *, u_int32_t); extern struct interface *if_link_per_ns (struct zebra_ns *, struct interface *); +extern const char *ifindex2ifname_per_ns (struct zebra_ns *, unsigned int); + extern void if_unlink_per_ns (struct interface *); extern void if_nbr_ipv6ll_to_ipv4ll_neigh_update (struct interface *ifp, struct in6_addr *address, int add); diff --git a/zebra/zebra_rnh.c b/zebra/zebra_rnh.c index 897067fd4..74e63d946 100644 --- a/zebra/zebra_rnh.c +++ b/zebra/zebra_rnh.c @@ -44,6 +44,7 @@ #include "zebra/redistribute.h" #include "zebra/debug.h" #include "zebra/zebra_rnh.h" +#include "zebra/interface.h" /* Default rtm_table for all clients */ extern struct zebra_t zebrad; @@ -946,18 +947,18 @@ print_nh (struct nexthop *nexthop, struct vty *vty) case NEXTHOP_TYPE_IPV4_IFINDEX: vty_out (vty, " via %s", inet_ntoa (nexthop->gate.ipv4)); if (nexthop->ifindex) - vty_out (vty, ", %s", ifindex2ifname (nexthop->ifindex)); + vty_out (vty, ", %s", ifindex2ifname_per_ns (dzns, nexthop->ifindex)); break; case NEXTHOP_TYPE_IPV6: case NEXTHOP_TYPE_IPV6_IFINDEX: vty_out (vty, " %s", inet_ntop (AF_INET6, &nexthop->gate.ipv6, buf, BUFSIZ)); if (nexthop->ifindex) - vty_out (vty, ", via %s", ifindex2ifname (nexthop->ifindex)); + vty_out (vty, ", via %s", ifindex2ifname_per_ns (dzns, nexthop->ifindex)); break; case NEXTHOP_TYPE_IFINDEX: vty_out (vty, " is directly connected, %s", - ifindex2ifname (nexthop->ifindex)); + ifindex2ifname_per_ns (dzns, nexthop->ifindex)); break; case NEXTHOP_TYPE_BLACKHOLE: vty_out (vty, " is directly connected, Null0"); |