]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pim6d: Completing "ipv6 mld last-member-query-interval" command
authorAbhishek N R <abnr@vmware.com>
Mon, 11 Jul 2022 17:09:39 +0000 (10:09 -0700)
committerAbhishek N R <abnr@vmware.com>
Mon, 29 Aug 2022 06:33:07 +0000 (23:33 -0700)
Signed-off-by: Abhishek N R <abnr@vmware.com>
pimd/pim6_mld.c
pimd/pim_nb_config.c
pimd/pim_vty.c

index 2ffdefc2feffa07e9de038c2db5c03b6b894e195..4b10c4c9c1fc9fd38cdab6763be32b137a4fb91b 100644 (file)
@@ -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;
        }
 
index 582878e09e3de0f6208e33efbe46cade9c7d6cb6..aaad56e543aefc7134b3257557efa6a559cb9361 100644 (file)
@@ -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;
 }
index a67ede9b49ef5bfb40f7f43f0131f63cba4bd191..c18652f72ea0b966d1a1ea1b7224ede76cf722d0 100644 (file)
@@ -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