diff options
Diffstat (limited to 'pimd/pim_mroute.c')
| -rw-r--r-- | pimd/pim_mroute.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index f6808feb49..9460219f13 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -26,6 +26,7 @@ #include "prefix.h" #include "pimd.h" +#include "pim_rpf.h" #include "pim_mroute.h" #include "pim_oil.h" #include "pim_str.h" @@ -345,6 +346,17 @@ pim_mroute_msg_wrvifwhole (int fd, struct interface *ifp, const char *buf) if (PIM_DEBUG_MROUTE) zlog_debug ("If channel: %p", ch); + up = pim_upstream_find (&sg); + if (up) + { + struct pim_nexthop source; + //No if channel, but upstream we are at the RP. + pim_nexthop_lookup (&source, up->upstream_register, NULL); + pim_register_stop_send(source.interface, &sg, up->upstream_register); + //Send S bit down the join. + return 0; + } + up = pim_upstream_add (&sg, ifp); if (!up) |
