gm_sg_timer_start(gm_ifp, sg, timers.expire_wait);
THREAD_OFF(sg->t_sg_query);
- sg->n_query = gm_ifp->cur_qrv;
+ sg->n_query = gm_ifp->cur_lmqc;
sg->query_sbit = false;
gm_trigger_specific(sg);
}
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_max_resp = pim_ifp->gm_query_max_response_time_dsec * 100;
+ gm_ifp->cur_lmqc = pim_ifp->gm_last_member_query_count;
gm_ifp->cfg_timing_fuzz.tv_sec = 0;
gm_ifp->cfg_timing_fuzz.tv_usec = 10 * 1000;
if (gm_ifp->cur_max_resp != cfg_max_response)
gm_ifp->cur_max_resp = cfg_max_response;
+ if (gm_ifp->cur_lmqc != pim_ifp->gm_last_member_query_count)
+ gm_ifp->cur_lmqc = pim_ifp->gm_last_member_query_count;
+
enum gm_version cfg_version;
if (pim_ifp->mld_version == 1)
unsigned int cur_query_intv_trig; /* ms */
unsigned int cur_max_resp; /* ms */
enum gm_version cur_version;
+ int cur_lmqc; /* last member query count in ds */
/* this value (positive, default 10ms) defines our "timing tolerance":
* - added to deadlines for expiring joins
int lib_interface_gmp_address_family_robustness_variable_modify(
struct nb_cb_modify_args *args)
{
-#if PIM_IPV == 4
struct interface *ifp;
struct pim_interface *pim_ifp;
int last_member_query_count;
break;
}
-#else
- /* TBD Depends on MLD data structure changes */
-#endif
return NB_OK;
}
if (pim_ifp->gm_default_query_interval != IGMP_GENERAL_QUERY_INTERVAL)
vty_out(vty, " ipv6 mld query-interval %d\n",
pim_ifp->gm_default_query_interval);
+
+ /* IF ipv6 mld last-member_query-count */
+ if (pim_ifp->gm_last_member_query_count !=
+ IGMP_DEFAULT_ROBUSTNESS_VARIABLE)
+ vty_out(vty, " ipv6 mld last-member-query-count %d\n",
+ pim_ifp->gm_last_member_query_count);
+
return 0;
}
#endif