From d9e75668b64ae564fc4f16296e6dcbf1536c2c34 Mon Sep 17 00:00:00 2001 From: Anuradha Karuppiah Date: Sun, 24 Mar 2019 17:15:39 -0700 Subject: [PATCH] pimd: use VTEP-PIP as pim-register's ip header SIP 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 --- pimd/pim_register.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pimd/pim_register.c b/pimd/pim_register.c index 372b7ba995..431236eebe 100644 --- a/pimd/pim_register.c +++ b/pimd/pim_register.c @@ -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); }