Subject: Question: Faster Pruning in Mrouted in IGMPv2 than 3 seconds

From: "Jo, SanKu" <[email-masked]>
Date: Sat, 18 Jul 1998 03:56:30 -0500 (CDT)

Howdy !
 
I have a question about IGMPv2 implemenation in mrouted3.8.
For a layered multicast, I am trying  to check the effect of fast
IP multicast group pruning.  We are using MROUTED in FreeBSD(version 2.2)
for IP multicast.  I found the LEAVE_EXPIRE_TIME is set to 3 seconds and
a comment as this in /usr/src/usr.sbin.2.2.2/mrouted/dvmrp.h.
---
#define LEAVE_EXPIRE_TIME       3       /* " " after receiving a leave */
/* Note: LEAVE_EXPIRE_TIME should ideally be shorter, but the resolution of
 * the timer in mrouted doesn't allow us to make it any shorter. */
--- 
I wonder if we could reduce the time less than 3 seconds. 
Thanks for your kind attention.

Best Regards,
SanKu Jo
\\ Computer Engineering/Electrical Engineering, Texas A&M University
\\ 409.845.5361 [email-masked] http://ee.tamu.edu/~skjo

---

From: Bill Fenner <[email-masked]>
Date: Sat, 18 Jul 1998 16:01:26 PDT

In message <[email-masked]>you write
> * the timer in mrouted doesn't allow us to make it any shorter. */

As the comment says, it's that high because of the low-resolution
timers in mrouted.  If you implement higher resolution timers and
modify the callout process, you can reduce this to about 400ms.
(The BSD IGMP implementation has a timer resolution of 200ms, so
you can't do 2 rounds in less than 400ms, even though the resolution
of the query response time allows you to specify 100ms.)

If you're going to implement higher resolution timers, you should
start with 3.9-beta3, since it uses select() instead of alarm()
to do timeouts.

  Bill