summaryrefslogtreecommitdiffstats
path: root/pimd
diff options
context:
space:
mode:
authorJafar Al-Gharaibeh <Jafaral@users.noreply.github.com>2019-07-15 22:40:12 +0200
committerGitHub <noreply@github.com>2019-07-15 22:40:12 +0200
commit5f7faeb041c75c01641c6d8bb29617a014b6a8ac (patch)
tree869c4c26eb046741140a88e84cdab14757b5f2dc /pimd
parentMerge pull request #4687 from qlyoung/fix-test-ntop-strlen-assert (diff)
parentpimd, zebra: request for replay of SG entries on startup (diff)
downloadfrr-5f7faeb041c75c01641c6d8bb29617a014b6a8ac.tar.xz
frr-5f7faeb041c75c01641c6d8bb29617a014b6a8ac.zip
Merge pull request #4635 from AnuradhaKaruppiah/evpn-pim-replay
pimd, zebra: request for replay of VxLAN SG entries on pimd startup
Diffstat (limited to 'pimd')
-rw-r--r--pimd/pim_zebra.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c
index 2c814d0fd..675e81f5a 100644
--- a/pimd/pim_zebra.c
+++ b/pimd/pim_zebra.c
@@ -580,6 +580,23 @@ static int pim_zebra_vxlan_sg_proc(ZAPI_CALLBACK_ARGS)
return 0;
}
+static void pim_zebra_vxlan_replay(void)
+{
+ struct stream *s = NULL;
+
+ /* Check socket. */
+ if (!zclient || zclient->sock < 0)
+ return;
+
+ s = zclient->obuf;
+ stream_reset(s);
+
+ zclient_create_header(s, ZEBRA_VXLAN_SG_REPLAY, VRF_DEFAULT);
+ stream_putw_at(s, 0, stream_get_endp(s));
+
+ zclient_send_message(zclient);
+}
+
void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index)
{
struct in_addr vif_source;
@@ -783,6 +800,9 @@ static void pim_zebra_connected(struct zclient *zclient)
bfd_client_sendmsg(zclient, ZEBRA_BFD_CLIENT_REGISTER, router->vrf_id);
zclient_send_reg_requests(zclient, router->vrf_id);
+
+ /* request for VxLAN BUM group addresses */
+ pim_zebra_vxlan_replay();
}
static void pim_zebra_capabilities(struct zclient_capabilities *cap)