diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2021-01-11 15:51:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 15:51:24 +0100 |
commit | aa6fdabb7323407ffcd95a51e617cb0d1791443a (patch) | |
tree | 172fc62b238c51f6788b3ab69c97e74021a78878 | |
parent | Merge pull request #7823 from donaldsharp/zebra_delay_timer (diff) | |
parent | pimd: SPT-bit is not set to false as per RFC section in one flow (diff) | |
download | frr-aa6fdabb7323407ffcd95a51e617cb0d1791443a.tar.xz frr-aa6fdabb7323407ffcd95a51e617cb0d1791443a.zip |
Merge pull request #7828 from mobash-rasool/pim-fixes-3
pimd: SPT-bit is not set to false as per RFC section in one flow
-rw-r--r-- | pimd/pim_mroute.c | 2 | ||||
-rw-r--r-- | pimd/pim_upstream.c | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index 0bccba397..23259900b 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -628,7 +628,7 @@ static int pim_mroute_msg(struct pim_instance *pim, const char *buf, ifaddr = connected_src->u.prefix4; igmp = pim_igmp_sock_lookup_ifaddr(pim_ifp->igmp_socket_list, ifaddr); - if (PIM_DEBUG_MROUTE) { + if (PIM_DEBUG_IGMP_PACKETS) { zlog_debug( "%s(%s): igmp kernel upcall on %s(%p) for %pI4 -> %pI4", __func__, pim->vrf->name, ifp->name, igmp, diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index d95b092d9..9899172e6 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -749,6 +749,13 @@ void pim_upstream_switch(struct pim_instance *pim, struct pim_upstream *up, bool send_xg_jp = false; forward_off(up); + /* + * RFC 4601 Sec 4.5.7: + * JoinDesired(S,G) -> False, set SPTbit to false. + */ + if (up->sg.src.s_addr != INADDR_ANY) + up->sptbit = PIM_UPSTREAM_SPTBIT_FALSE; + if (old_state == PIM_UPSTREAM_JOINED) pim_msdp_up_join_state_changed(pim, up); |