Subject: [magma] igmpv3/mldv2 equivalent messages

From: Hitoshi Asaeda <[email-masked]>
Date: Mon, 02 Oct 2006 13:00:31 +0900 (JST)

Hi all,

I have a question about multicast router behavior for older version
compatibility.

Regarding the message translation, 7.3.2 of RFC3376 says that IGMPv3
router recognizes v1/v2 Report to IS_EX().

       IGMPv2 Message                IGMPv3 Equivalent
       --------------                -----------------

         Report                        IS_EX( {} )   <--- TO_EX()?

         Leave                         TO_IN( {} )

       IGMP Message                  IGMPv3 Equivalent
       ------------                  -----------------

         v1 Report                      IS_EX( {} )  <--- TO_EX()?

         v2 Report                      IS_EX( {} )  <--- TO_EX()?

As well, 8.3.2 of RFC3810 says;

   MLDv1 Message                 MLDv2 Equivalent
   -------------                 ----------------

      Report                        IS_EX( {} )      <--- TO_EX()?

      Done                          TO_IN( {} )

IS_IN and IS_EX are transmitted as the response of query. I think
these join report messages should be translated as TO_EX(), not
IS_EX(). It is reasonable that leave should be translated as TO_IN()
as mentioned in RFC.

Am I misunderstanding?
--
Hitoshi Asaeda

_______________________________________________
magma mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/magma

---

From: mark fine <[email-masked]>
Date: Mon, 2 Oct 2006 11:37:23 -0700 (PDT)

TO_EX({}) and IS_EX({}) messages are equivalent and produce equivalent
operations in the router state tables:

    INCLUDE (A)    IS_EX ({})   EXCLUDE ({}, {})    Delete (A)
                                                    Group Timer=GMI

    EXCLUDE (X,Y)  IS_EX ({})   EXCLUDE ({}, {})    Delete (X)
                                                    Delete (Y)
                                                    Group Timer=GMI

    INCLUDE (A)    TO_EX ({})   EXCLUDE ({}, {})    Delete (A)
                                                    Group Timer=GMI

    EXCLUDE (X,Y)  TO_EX ({})   EXCLUDE ({}, {})    Delete (X)
                                                    Delete (Y)
                                                    Group Timer=GMI

with that said,

a) IS_EX messages are solicited report records sent in response to
    queries, TO_EX messages are unsolicited reports records sent in
    response to interface state changes

b) IGMPv2 / IGMPv1 / MLDv1 reports are BOTH solicited reports sent in
    response to queries and unsolicited reports sent in response to
    interface state changes

c) IGMPv2 / MLDv1 leaves are unsolicited reports sent in response to
    interface state changes

since IGMPv2 / MLDv1 leaves are used only in unsolicited manners, it
is straightforward to translate them to unsolicited TO_IN({})
messages.  but IGMPv2 / IGMPv1 / MLDv1 reports are used in both
unsolicited and solicited manners, so it is possible to translate them
to either unsolicited TO_EX({}) messages or solicited IS_EX({})
messages.  to reduce unnecessary complexity and to standardize on a
single message mapping, and in light of the protocol equivalence of
the TO_EX({}) and IS_EX({}) messages, i imagine that the more common 
solicited IS_EX({}) messages (query responses should
typically outnumber
interface state changes) were chosen as the translation for IGMPv2 /
IGMPv1 / MLDv1 reports.

that's my understanding...

mark

---

From: Hitoshi Asaeda <[email-masked]>
Date: Tue, 03 Oct 2006 11:35:52 +0900 (JST)

> interface state changes) were chosen as the translation for IGMPv2 /

Ok, so I'd like to expand the quesion, "there is no problem even if a
host uses TO_EX() instead of IS_EX() in any case". What do you think?

> single message mapping, and in light of the protocol equivalence of

Good catch (for desigining the lite version:).

Thanks.
--
Hitoshi Asaeda