+igmp_set_timeout(struct igmp_tparams *itp)
+{
+ IGMP_LOCK_ASSERT_NOTHELD();
+ VERIFY(itp != NULL);
+
+ if (itp->qpt != 0 || itp->it != 0 || itp->cst != 0 || itp->sct != 0) {
+ IGMP_LOCK();
+ if (itp->qpt != 0)
+ querier_present_timers_running = 1;
+ if (itp->it != 0)
+ interface_timers_running = 1;
+ if (itp->cst != 0)
+ current_state_timers_running = 1;
+ if (itp->sct != 0)
+ state_change_timers_running = 1;
+ igmp_sched_timeout();
+ IGMP_UNLOCK();
+ }
+}
+
+/*
+ * IGMP timer handler (per 1 second).
+ */
+static void
+igmp_timeout(void *arg)