About MLDv2 specification

3 messages, 2 authors, 2004-06-23 · open the first message on its own page

About MLDv2 specification

From: Takashi Hibi <hidden>
Date: 2004-06-21 09:11:46

Hi all,

MLDv2 was now issued as RFC3810.
We found a small problem in the current implementation.
In 5.2.12 of RFC3810, there is a following statement.

      Value  Name and Meaning
      -----  ----------------
        1    MODE_IS_INCLUDE - indicates that the interface has a filter
             mode of INCLUDE for the specified multicast address.  The
             Source Address [i] fields in this Multicast Address Record
             contain the interface's source list for the specified
             multicast address.  A MODE_IS_INCLUDE Record is never sent
             with an empty source list.

The last part (A MODE_IS_INCLUDE Record is ...) causes a problem.
This restriction is added since draft 7 of MLDv2.

The current implementation of MLDv2 sends MODE_IS_INCLUDE record with
an empty list after leaving multicast group.

I think that it can be fixed easily by:
--- linux-2.6.7/net/ipv6/mcast.c.orig   2004-05-10 11:33:13.000000000 +0900
+++ linux-2.6.7/net/ipv6/mcast.c        2004-06-16 19:43:35.000000000 +0900
@@ -1388,7 +1388,8 @@

        if (!*psf_list) {
                if (type == MLD2_ALLOW_NEW_SOURCES ||
-                   type == MLD2_BLOCK_OLD_SOURCES)
+                   type == MLD2_BLOCK_OLD_SOURCES ||
+                   type == MLD2_MODE_IS_INCLUDE)
                        return skb;
                if (pmc->mca_crcount || isquery) {
                        /* make sure we have room for group header and at


Regards,
Takashi Hibi

Re: About MLDv2 specification

From: David Stevens <hidden>
Date: 2004-06-21 21:06:00

Takashi,
        I believe your patch will work in suppressing empty
MODE_IS_INCLUDE, but in the event the report for an empty
MODE_IS_INCLUDE is the only record, it'll still go through the
timer for all the retransmits. I want to see how hard it'd be not
to start the report timer at all for this case, and also make sure
any other changes are taken care of. The patch looks ok to me
for the interim, though.

                                        +-DLS

Re: About MLDv2 specification

From: Takashi Hibi <hidden>
Date: 2004-06-23 06:38:17

David Stevens [off-list ref] :
Takashi,
        I believe your patch will work in suppressing empty
MODE_IS_INCLUDE, but in the event the report for an empty
MODE_IS_INCLUDE is the only record, it'll still go through the
timer for all the retransmits. I want to see how hard it'd be not
to start the report timer at all for this case, and also make sure
any other changes are taken care of. The patch looks ok to me
for the interim, though.

                                        +-DLS
mld_send_cr() is called for retransmission of the report, but 
MODE_IS_INCLUDE is never used in this function. 
MODE_IS_INCLUDE is only used in mld_send_report(), and it is called
for the response to MLDv2 query.

Therefore no side effects occur, I think.

Regards,
Takashi Hibi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help