From: vivek Date: Tue, 23 Feb 2016 04:17:09 +0000 (+0000) Subject: Zebra: Zebra: Display interface info for NHT in a VRF X-Git-Tag: frr-2.0-rc1~1110^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=a815b7881e166a5dcf3adf9035a1b2c6fd22adc3;p=mirror%2Ffrr.git Zebra: Zebra: Display interface info for NHT in a VRF Signed-off-by: Vivek Venkatraman Ticket: CM-9458 Reviewed By: CCR-4150 Testing Done: Manual --- diff --git a/zebra/interface.c b/zebra/interface.c index 8b25c33f17..7b19379910 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 ab018596c0..3d8a82d454 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 897067fd4b..74e63d9467 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");