diff options
author | Jafar Al-Gharaibeh <Jafaral@users.noreply.github.com> | 2019-07-15 22:40:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-15 22:40:12 +0200 |
commit | 5f7faeb041c75c01641c6d8bb29617a014b6a8ac (patch) | |
tree | 869c4c26eb046741140a88e84cdab14757b5f2dc /pimd | |
parent | Merge pull request #4687 from qlyoung/fix-test-ntop-strlen-assert (diff) | |
parent | pimd, zebra: request for replay of SG entries on startup (diff) | |
download | frr-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.c | 20 |
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) |