From 707a9e9a905ed6ddc1697f79c77225c21bbcd0ac Mon Sep 17 00:00:00 2001 From: Abhishek N R Date: Mon, 11 Jul 2022 10:09:39 -0700 Subject: [PATCH] pim6d: Completing "ipv6 mld last-member-query-interval" command Signed-off-by: Abhishek N R --- pimd/pim6_mld.c | 12 ++++++++++-- pimd/pim_nb_config.c | 4 ---- pimd/pim_vty.c | 6 ++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/pimd/pim6_mld.c b/pimd/pim6_mld.c index 2ffdefc2fe..4b10c4c9c1 100644 --- a/pimd/pim6_mld.c +++ b/pimd/pim6_mld.c @@ -2093,7 +2093,8 @@ static void gm_start(struct interface *ifp) gm_ifp->cur_qrv = pim_ifp->gm_default_robustness_variable; gm_ifp->cur_query_intv = pim_ifp->gm_default_query_interval * 1000; - gm_ifp->cur_query_intv_trig = gm_ifp->cur_query_intv; + gm_ifp->cur_query_intv_trig = + pim_ifp->gm_specific_query_max_response_time_dsec * 100; gm_ifp->cur_max_resp = pim_ifp->gm_query_max_response_time_dsec * 100; gm_ifp->cur_lmqc = pim_ifp->gm_last_member_query_count; @@ -2268,7 +2269,14 @@ void gm_ifp_update(struct interface *ifp) if (gm_ifp->cur_query_intv != cfg_query_intv) { gm_ifp->cur_query_intv = cfg_query_intv; - gm_ifp->cur_query_intv_trig = cfg_query_intv; + changed = true; + } + + unsigned int cfg_query_intv_trig = + pim_ifp->gm_specific_query_max_response_time_dsec * 100; + + if (gm_ifp->cur_query_intv_trig != cfg_query_intv_trig) { + gm_ifp->cur_query_intv_trig = cfg_query_intv_trig; changed = true; } diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index 582878e09e..aaad56e543 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -2828,7 +2828,6 @@ int lib_interface_gmp_address_family_query_max_response_time_modify( int lib_interface_gmp_address_family_last_member_query_interval_modify( struct nb_cb_modify_args *args) { -#if PIM_IPV == 4 struct interface *ifp; struct pim_interface *pim_ifp; int last_member_query_interval; @@ -2848,9 +2847,6 @@ int lib_interface_gmp_address_family_last_member_query_interval_modify( break; } -#else - /* TBD Depends on MLD data structure changes */ -#endif return NB_OK; } diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c index a67ede9b49..c18652f72e 100644 --- a/pimd/pim_vty.c +++ b/pimd/pim_vty.c @@ -395,6 +395,12 @@ static int gm_config_write(struct vty *vty, int writes, vty_out(vty, " ipv6 mld last-member-query-count %d\n", pim_ifp->gm_last_member_query_count); + /* IF ipv6 mld last-member_query-interval */ + if (pim_ifp->gm_specific_query_max_response_time_dsec != + IGMP_SPECIFIC_QUERY_MAX_RESPONSE_TIME_DSEC) + vty_out(vty, " ipv6 mld last-member-query-interval %d\n", + pim_ifp->gm_specific_query_max_response_time_dsec); + return 0; } #endif -- 2.39.5