]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: SPT-bit is not set to false as per RFC section in one flow 7828/head
authorMobashshera Rasool <mrasool@vmware.com>
Thu, 7 Jan 2021 10:03:07 +0000 (10:03 +0000)
committerMobashshera Rasool <mrasool@vmware.com>
Mon, 11 Jan 2021 05:23:41 +0000 (05:23 +0000)
1. As per RFC 4601 Sec 4.5.7:
* JoinDesired(S,G) -> False, set SPTbit to false.

2. Change the debug type.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
pimd/pim_mroute.c
pimd/pim_upstream.c

index 0bccba397b1463732226af7d52bd2f46efbd352e..23259900b7d7925aea2854d47bab2cfeca0f0bb9 100644 (file)
@@ -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,
index d95b092d947a16f01c74d1f0a0d540d95897abac..9899172e6cefca138b8cdcaef8ee48bec42b59a7 100644 (file)
@@ -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);