
2.6 MLD Implementation 143
657 if (timer == 0) {
661 /* send a report immediately */
662 mld6_sendpkt(in6m, MLD_LISTENER_REPORT, NULL);
663 in6m->in6m_timer = 0; /* reset timer */
664 in6m->in6m_state = MLD_IREPORTEDLAST;
665 } else if (in6m->in6m_timer == 0 || /*idle state*/
666 in6m->in6m_timer > timer) {
670 in6m->in6m_timer = MLD_RANDOM_DELAY(timer);
671 mld_group_timers_are_running = 1;
672 }
673 }
689 break;
mld6.c
621–623 The timer interval is calculated based on the received value specified by the Maximum
Response Delay field. It is converted to the timer count for the granularity of 200ms, and
is set in the variable timer. If the advertised delay is ...