]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: use VTEP-PIP as pim-register's ip header SIP
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Mon, 25 Mar 2019 00:15:39 +0000 (17:15 -0700)
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Sat, 20 Apr 2019 15:33:23 +0000 (08:33 -0700)
The unique physical IP is used as the SIP in the ip header to ensure
that pim-register-stop makes it back to the right MLAG switch.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
pimd/pim_register.c

index 372b7ba9954d3463d96166b47c0e76bd788fae51..431236eebe720f2f2717bf0802caedebb313cc2c 100644 (file)
@@ -258,6 +258,15 @@ void pim_null_register_send(struct pim_upstream *up)
 
        /* checksum is broken */
        src = pim_ifp->primary_address;
+       if (PIM_UPSTREAM_FLAG_TEST_SRC_VXLAN_ORIG(up->flags)) {
+               if (!pim_vxlan_get_register_src(pim_ifp->pim, up, &src)) {
+                       if (PIM_DEBUG_TRACE)
+                               zlog_debug(
+                                       "%s: Cannot send null-register for %s vxlan-aa PIP unavailable",
+                                       __PRETTY_FUNCTION__, up->sg_str);
+                       return;
+               }
+       }
        pim_register_send((uint8_t *)&ip_hdr, sizeof(struct ip),
                        src, rpg, 1, up);
 }