};
void nexthop_group_write_nexthop_simple(struct vty *vty,
- const struct nexthop *nh)
+ const struct nexthop *nh,
+ char *altifname)
{
char buf[100];
+ char *ifname;
vty_out(vty, "nexthop ");
+ if (altifname)
+ ifname = altifname;
+ else
+ ifname = (char *)ifindex2ifname(nh->ifindex, nh->vrf_id);
+
switch (nh->type) {
case NEXTHOP_TYPE_IFINDEX:
- vty_out(vty, "%s", ifindex2ifname(nh->ifindex, nh->vrf_id));
+ vty_out(vty, "%s", ifname);
break;
case NEXTHOP_TYPE_IPV4:
vty_out(vty, "%s", inet_ntoa(nh->gate.ipv4));
break;
case NEXTHOP_TYPE_IPV4_IFINDEX:
- vty_out(vty, "%s %s", inet_ntoa(nh->gate.ipv4),
- ifindex2ifname(nh->ifindex, nh->vrf_id));
+ vty_out(vty, "%s %s", inet_ntoa(nh->gate.ipv4), ifname);
break;
case NEXTHOP_TYPE_IPV6:
vty_out(vty, "%s",
case NEXTHOP_TYPE_IPV6_IFINDEX:
vty_out(vty, "%s %s",
inet_ntop(AF_INET6, &nh->gate.ipv6, buf, sizeof(buf)),
- ifindex2ifname(nh->ifindex, nh->vrf_id));
+ ifname);
break;
case NEXTHOP_TYPE_BLACKHOLE:
break;
struct vrf *vrf;
int i;
- nexthop_group_write_nexthop_simple(vty, nh);
+ nexthop_group_write_nexthop_simple(vty, nh, NULL);
if (nh->vrf_id != VRF_DEFAULT) {
vrf = vrf_lookup_by_id(nh->vrf_id);
extern struct nexthop_group_cmd *nhgc_find(const char *name);
extern void nexthop_group_write_nexthop_simple(struct vty *vty,
- const struct nexthop *nh);
+ const struct nexthop *nh,
+ char *altifname);
extern void nexthop_group_write_nexthop(struct vty *vty,
const struct nexthop *nh);
struct pbr_nexthop_cache lookup;
struct pbr_nexthop_cache *pnhc;
- nexthop_group_write_nexthop_simple(vty, pbrms->nhg->nexthop);
+ nexthop_group_write_nexthop_simple(vty, pbrms->nhg->nexthop, NULL);
memset(&find, 0, sizeof(find));
strlcpy(find.name, pbrms->internal_nhg_name, sizeof(find.name));