[MLDv2] RFC3810 questions

"K.Kawaguchi" <[email protected]> Fri, 13 Feb 2009 15:57:20 +0900
Newsgroups gmane.ietf.magma
Message-ID <[email protected]>
Hi all,

It seems that I have been late.
However, I am investigating RFC3810 and there is some questions. These
may be my shortages of an understanding. However, a problem may be
caused in the interconnection between implementation.

In order to solve these questions, please maintain ml or let me know
suitable WG.


========================================================================
2.3.  Building Multicast Address Listener State on Multicast Routers
---
   Besides this "soft leave" mechanism, there is also a "fast leave"
   scheme in MLDv2; it is also based on the use of source timers.  When
   a node in INCLUDE mode expresses its desire to stop listening to a
   specific source, all the multicast routers on the link lower their
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   timers for that source to a given value.  The Querier then sends a
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   Multicast Address and Source Specific Query, to verify whether there
   are other listeners for that source on the link, or not.  If a report
   that includes this source is received before the timer expiration,
   all the multicast routers on the link update the source timer.  If
   not, the source is deleted from the Include List.  The handling of
   the Include List, according to the received reports, is detailed in
   Tables 7.4.1 and 7.4.2.
---

I think that it is not exact.  According to the table of 7.4.1 and
7.4.2, a report is received and a timer is not made low. According to
7.6.1, a timer is lowered when sending a query, and receiving a query.


========================================================================
5.1.8.  QRV (Querier's Robustness Variable)
---
   Routers adopt the QRV value from the most recently received Query as
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   their own [Robustness Variable] value, unless that most recently
   received QRV was zero, in which case they use the default [Robustness
   Variable] value specified in section 9.1, or a statically configured
   value.
---

I think that clearness is short.  It should be limited to the time when
the query was received from the "querier" and "new querier" (i.e., the
querier should be memorized). Furthermore, it is restricted when the
destination addresses of a query are all node multicast (FF02::1).

The router immediately after starting except a querier sends a query. RV
of a non-querier is not adopted. When destination addresses are not all
node multicast, all the nodes do not receive QRV.


========================================================================
5.1.9.  QQIC (Querier's Query Interval Code)
---
   Multicast routers that are not the current Querier adopt the QQI
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   value from the most recently received Query as their own [Query
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   Interval] value, unless that most recently received QQI was zero, in
   which case the receiving routers use the default [Query Interval]
   value specified in section 9.2.
---

Same as above QRV.


========================================================================
5.1.15.  Destination Addresses for Queries
---
   In MLDv2, General Queries are sent to the link-scope all-nodes
   multicast address (FF02::1).  Multicast Address Specific and
   Multicast Address and Source Specific Queries are sent with an IP
   destination address equal to the multicast address of interest.
   *However*, a node MUST accept and process any Query whose IP
                                                       ^^^^^^^^
   Destination Address field contains *any* of the addresses (unicast or
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   multicast) assigned to the interface on which the Query arrives. This
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   might be useful, e.g., for debugging purposes.
---

This is a question. A query message will be accepted if a destination
address is a unicast address of an interface. When the query message has
something unusual, should an ICMP error message be replied in MLD?


========================================================================
5.2.14.  Destination Addresses for Reports
---
   Version 2 Multicast Listener Reports are sent with an IP destination
   address of FF02:0:0:0:0:0:0:16, to which all MLDv2-capable multicast
   routers listen (see section 11 for IANA considerations related to
   this special destination address).  A node that operates in version 1
   compatibility mode (see details in section 8) sends version 1 Reports
   to the multicast address specified in the Multicast Address field of
   the Report.  In addition, a node MUST accept and process any version
                                                                ^^^^^^^
   1 Report whose IP Destination Address field contains *any* of the
   ^^^^^^^^
   IPv6 addresses (unicast or multicast) assigned to the interface on
   which the Report arrives.  This might be useful, e.g., for debugging
   purposes.
---

May "MLDv1" limitation be suitable? (Comparison with 5.1.15)


========================================================================
7.6.1.  Timer Updates
7.6.3.2.  Building and Sending Multicast Address and Source Specific
---
   When a table action "Send Q(MA,X)" is encountered by the Querier in
   the table in section 7.4.2, the following actions must be performed
   for each of the sources in X that send to multicast address MA, with
                                                                   ^^^^
   source timer larger than LLQT:
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
---

When a specific query is received, and a timer is larger than LLQT, it
lowers to LLQT, but when a timer is already below LLQT, it does not
raise. May this understanding be suitable?


========================================================================
7.6.2.  Querier Election
---
   When a router receives a query with a lower IPv6 address than its
                          ^^^^^^^
   own, it sets the Other Querier Present timer to Other Querier Present
   Timeout; if it was previously in Querier state, it switches to Non-
   Querier state and ceases to send queries on the link.  After the
   Other Querier Present timer expires, it should re-enter the Querier
   state and begin sending General Queries.
---

I think that clearness is short.  It should be limited to the time when
the query was received from the "querier" and "new querier" (i.e., the
querier should be memorized). Furthermore, it is restricted when the
destination addresses of a query are all node multicast (FF02::1).

Continuation of periodical general query cannot be guaranteed with a
specific query. When destination addresses are not all node multicast,
all the nodes do not receive query.


========================================================================
7.6.2.  Querier Election
---
   When a router receives a query with a lower IPv6 address than its
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   own, it sets the Other Querier Present timer to Other Querier Present
   ^^^^
   Timeout; if it was previously in Querier state, it switches to Non-
   Querier state and ceases to send queries on the link.  After the
   Other Querier Present timer expires, it should re-enter the Querier
   state and begin sending General Queries.
---

I think that clearness is short. It is necessary to memorize the address
of a querier with Other Querier Present timer. While Other Querier
Present timer is effective, only the general query (destination address
is FF02::1) of "querier" and "new querier" (a priority higher than
"querier") is received.

When the priority of the address of Router A, B, and C is high A > B > C,
By the query of B started newly, C may have the different timer and RV
value from A. It is tentative disarrangement.


========================================================================
7.6.2.  Querier Election
---
   When a router receives a query with a lower IPv6 address than its
   own, it sets the Other Querier Present timer to Other Querier Present
   Timeout; if it was previously in Querier state, it switches to Non-
   Querier state and ceases to send queries on the link.  After the
   Other Querier Present timer expires, it should re-enter the Querier
   state and begin sending General Queries.
                           ^^^^^^^^^^^^^^^
---

Does the value of QRV and QI keep up the value of a previous querier?
Or does it return to an own default value?


========================================================================
8.3.2.  In the Presence of MLDv1 Multicast Address Listeners
---
   The Multicast Address Compatibility Mode of a multicast address
   record is set to MLDv1 whenever an MLDv1 Multicast Listener Report is
   received for that multicast address.  At the same time, the Older
   Version Host Present timer for the multicast address is set to Older
   Version Host Present Timeout seconds.  The timer is re-set whenever a
   new MLDv1 Report is received for that multicast address.  If the
                                                             ^^^^^^
   Older Version Host Present timer expires, the router switches back to
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   Multicast Address Compatibility Mode of MLDv2 for that multicast
   address.

   (cut)

   MLDv2 BLOCK messages are ignored, as are source-lists in TO_EX()
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   messages (i.e., any TO_EX() message is treated as TO_EX( {} )).  On
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   the other hand, the Querier continues to send MLDv2 queries,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   regardless of its Multicast Address Compatibility Mode.
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
---

I think that description is short. A router receives a Done message, and
after checking that MLDv1 listeners have stopped being, the timer of
Filter mode may expire early from Older Version Host Present timer. You
should also make Older Version Host Present timer expire at this time.

MLDv2 BLOCK messages are ignored. Any TO_EX() message is treated as
TO_EX( {} )).


========================================================================
9.8.  Last Listener Query Interval

This is a check. There is no structure transmitted between routers into
an MLDv2 protocol. Therefore, all the routers need to be set as the same
value by the system administrator.


========================================================================
9.9.  Last Listener Query Count

This is a query. The value of LLQC is also influenced when adopting QRV
of a query message as RV? Or all the routers need to be set as the same
value by the system administrator?


========================================================================
9.3.  Query Response Interval

I think that clearness is short. A non-querier sends general query, when
Other Querier Present Timer expires. The remaining time for state
continuation is;

MALI - Other Querier Present Timeout = Query Response Interval / 2

Therefore, Maximum Response Delay time must be less than "Query Response
Interval / 2".

On the other hand, according to 9.14.3, the maximum response delay time
should be set up from the expected number of reporters. Therefore, you
should set up the value of "Query Response Interval / 2" not limit the
maximum response delay time. That is, QRI is set up be twice the maximum
of the actually required maximum response delay time.


========================================================================
9.12.  Older Version Querier Present Timeout

---
   The Older Version Querier Present Timeout is the time-out for
   transitioning a host back to MLDv2 Host Compatibility Mode.  When an
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   MLDv1 query is received, MLDv2 hosts set their Older Version Querier
   Present Timer to [Older Version Querier Present Timeout].
---

All the listeners need to be set as the same value by the system
administrator in RV, QI, and QRI of MLDv1. Moreover, are RV and QI
adopted from QRV and QQIC of MLDv2 query?


Best Regards
--
Kiyoaki Kawaguchi

Best Regards
--
Kiyoaki Kawaguchi