summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--zebra/interface.c8
-rw-r--r--zebra/interface.h2
-rw-r--r--zebra/zebra_rnh.c7
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");