diff options
author | vivek <vivek@cumulusnetworks.com> | 2016-02-23 05:17:09 +0100 |
---|---|---|
committer | vivek <vivek@cumulusnetworks.com> | 2016-02-23 05:17:09 +0100 |
commit | a815b7881e166a5dcf3adf9035a1b2c6fd22adc3 (patch) | |
tree | 1eaadb94012ed7ce471431670a634d9c7677feea /zebra | |
parent | Zebra: Perform NHT evaluation for VRFs (diff) | |
download | frr-a815b7881e166a5dcf3adf9035a1b2c6fd22adc3.tar.xz frr-a815b7881e166a5dcf3adf9035a1b2c6fd22adc3.zip |
Zebra: Zebra: Display interface info for NHT in a VRF
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Ticket: CM-9458
Reviewed By: CCR-4150
Testing Done: Manual
Diffstat (limited to 'zebra')
-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"); |