diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index b78fe76761..dcc5a7acb0 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -608,6 +608,9 @@ static int nexthop_active(afi_t afi, struct route_entry *re, if (!CHECK_FLAG(match->status, ROUTE_ENTRY_INSTALLED)) continue; + if (CHECK_FLAG(newhop->flags, + NEXTHOP_FLAG_RECURSIVE)) + continue; if (set) { SET_FLAG(nexthop->flags, diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c index 1833257863..537820f7ea 100644 --- a/zebra/zebra_vty.c +++ b/zebra/zebra_vty.c @@ -164,7 +164,8 @@ DEFUN (show_ip_rpf_addr, static char re_status_output_char(struct route_entry *re, struct nexthop *nhop) { if (CHECK_FLAG(re->status, ROUTE_ENTRY_INSTALLED)) { - if (!CHECK_FLAG(nhop->flags, NEXTHOP_FLAG_DUPLICATE)) + if (!CHECK_FLAG(nhop->flags, NEXTHOP_FLAG_DUPLICATE) && + !CHECK_FLAG(nhop->flags, NEXTHOP_FLAG_RECURSIVE)) return '*'; else return ' ';