Subject: (IPng 6844) MLD query with 0 Maximum Response Delay

From: JINMEI Tatuya / 神明達哉 <[email-masked]>
Date: Sat, 05 Dec 1998 00:21:54 +0900

Hello,

I have a question about Multicast Listener Discovery.

The draft draft-ietf-ipngwg-mld-00 says about Maximum Response Delay
as follows;

  When a node receives a General Query, it sets a delay timer for each
  multicast address to which it is listening on the interface from which
  it received the Query, EXCLUDING the link-scope all-nodes address and
  any multicast addresses of scope 0 (reserved) or 1 (node-local).  Each
  timer is set to a different random value, using the highest clock
  granularity available on the node, selected from the range (0, Maximum
  Response Delay] with Maximum Response Delay as specified in the Query
  packet.

The description seems to assume that Maximum Response Delay is greater
than 0(note the round bracket at the last sentence). But there seems
no description how we treat a query if its Maximum Response Delay field
is 0. Should we discard such a query? Or do we have to process such a
query in a special manner?

I would like to hear the specification authors' opinion. Thanks in
advance,

					JINMEI, Tatuya
					Comm. and Info. Systems Research Labs.
					Toshiba R&D Center
					[email-masked]
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: Steve Deering <[email-masked]>
Date: Fri, 4 Dec 1998 08:42:23 -0800

> query in a special manner?

Good catch!  MLD was derived from IGMPv2.  In IGMP, a Maximum Response
Delay value of zero identifies the query as a version 1 query.  (In
IGMPv1, the Maximum Response Field was not defined, and those bits were
required to be set to zero.)  An IGMPv2 receiver of a query with a
Maximum Response Delay value of zero is required to interpret that as
a delay of 10 seconds, because that is the (fixed) delay that was
specified for IGMPv1.

Now, none of this is relevant to MLD, because there is no need for the
same backwards compatibility with an older version.  Therefore, you
are absolutely correct: we need to define how the value zero is to be
interpreted.  My inclination is to just say that zero means zero, i.e.,
no delay, and therefore, change the "(0, Maximum Response Delay]"
expression to "[0, Maximum Response Delay]".  Having the ability to
set the maximum delay to zero seems like a desirable feature for the
case of MLD on point-to-point links, where there is no "implosion hazard".

Comments?

Steve

---

From: Francis Dupont <[email-masked]>
Date: Fri, 04 Dec 1998 17:31:22 +0100

In your previous mail you wrote:

   than 0.

=> this question is important because in some (not yet fixed :-)
implementations a zero MDR gives a division by 0 (ie a bug).
Obvious fix is to round MDR to a small value (1 for instance)
but is it correct ?

Thanks

[email-masked]

PS: for UNH (or other) test suite, add zero MDR in nasty packet list...

---

From: JINMEI Tatuya / 神明達哉 <[email-masked]>
Date: Sun, 06 Dec 1998 01:16:25 +0900

>>>>> On Fri, 4 Dec 1998 08:42:23 -0800, 
>>>>> Steve Deering <[email-masked]> said:

> Comments?

It seems reasonable. I agree with you.

					JINMEI, Tatuya

---

From: JINMEI Tatuya / 神明達哉 <[email-masked]>
Date: Sun, 06 Dec 1998 01:36:09 +0900

>>>>> On Fri, 04 Dec 1998 17:31:22 +0100, 
>>>>> Francis Dupont <[email-masked]> said:

> implementations a zero MDR gives a division by 0 (ie a bug).

Actually, I found the problem because our implementation hung up, too :-)

> Obvious fix is to round MDR to a small value (1 for instance)

If 0 is a valid value(which is Steve's opinion), it's an
implementation issue. Of course, your solution above will work
well. We can also handle 0 MRD `as is', that is, just send an MLD
report immediately when receiving a query with 0 MRD.

> PS: for UNH (or other) test suite, add zero MDR in nasty packet list...

It would be a good idea.

					JINMEI, Tatuya

---

From: [email-masked] (Brian K. Haberman)
Date: Mon, 7 Dec 1998 23:36:46 -0500 (EST)

> case of MLD on point-to-point links, where there is no "implosion hazard".

I agree that zero is a valid value.  I have actually played with allowing
the Maximum Delay be zero expressly for the case of p-2-p links.
So, lets update the spec to specify "[0, Maximum Response Delay]".

Brian