From: Donald Sharp Date: Tue, 1 Nov 2016 03:17:53 +0000 (-0400) Subject: pimd: When nexthop lookup fails, back out gracefully X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~144 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=e5009aed2ff15d83094debe872fca2c3f10002bb;p=mirror%2Ffrr.git pimd: When nexthop lookup fails, back out gracefully When the nexthop lookup fails when establishing the upstream state as part of a register receive, kill the upstream state. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_register.c b/pimd/pim_register.c index eab87fefb0..0c6a759dc3 100644 --- a/pimd/pim_register.c +++ b/pimd/pim_register.c @@ -347,8 +347,16 @@ pim_register_recv (struct interface *ifp, upstream->upstream_register = src_addr; pim_rp_set_upstream_addr (&upstream->upstream_addr, sg.src, sg.grp); - pim_nexthop_lookup (&upstream->rpf.source_nexthop, - upstream->upstream_addr, 1); + if (pim_nexthop_lookup (&upstream->rpf.source_nexthop, + upstream->upstream_addr, 1) != 0) + { + if (PIM_DEBUG_PIM_REG) + { + zlog_debug ("Received Register(%s), for which I have no path back", pim_str_sg_dump (&upstream->sg)); + } + pim_upstream_del (upstream, __PRETTY_FUNCTION__); + return 1; + } upstream->sg.src = sg.src; upstream->rpf.rpf_addr = upstream->rpf.source_nexthop.mrib_nexthop_addr;