IGMPv3/MLDv2: Resending of a state change report and a specific query

"K.Kawaguchi" <[email protected]> Fri, 30 Jan 2009 15:27:54 +0900
Newsgroups gmane.ietf.magma
Message-ID <[email protected]>
Hi all, there is nobody?

I investigated the archive mail in magma. And I have some questions.

Now, I would like to confirm about resending of a state change report 
and a specific query.

http://www.ietf.org/mail-archive/web/magma/current/msg01139.html

When LLQT of a non-querier is smaller than a querier (it may be shorter 
than the max response delay time of a query), a non-querier may delete 
an entry before receiving a report.

How does this non-querier decide LLQT value? The non-querier needs to 
decide LLQT to be a basis for the specific query of a querier. 
Otherwise, LLQT periods may differ between routers.


http://www.ietf.org/mail-archive/web/magma/current/msg01141.html

There are the following issues in this method.
RV of a querier sets to three. When the non-querier has lost the 2nd 
query and there is no report for 1st_query, the source lowered to 
LMQI/LLQI in the 1st_query is deleted. Even if a non-querier receives 
the 3rd query, there is already no source entry. The non-querier cannot 
maintain an entry based on robustness.


I think that the figure shown below is in agreement with intention of RFC.

 Timers                         Nodes & Messages           RFC3810 & Interpretation
 -----------                    -----------------          -------------------
 
                                Querier    Non-Q    Listener
                                   |         |         | 
                                   |         |         | 
                                   |         |         | 
 (A)=MALI                          |<==================* Report IS_IN(A)
 *---------------------------------*---------*         |   Sec.7.4.1  :   INCLUDE (A)       IS_IN (B)     INCLUDE (A+B)      (B)=MALI
 |                                 |         |         |   
 |                                 |         |         |   
 |                                 |         |         |   
 | Unsolicited Report Interval     |         |         |   
 | *-------------------------------|<==================* Report BLOCK(A) (1st)
 | |                               *---------*         |   Sec.7.4.2  :   Router State  Report Received  New Router State     Actions
 | |                               |         |         |                  ------------  ---------------  ----------------     -------
 | |                               |         |         |                  INCLUDE (A)     BLOCK (B)      INCLUDE (A)          Send Q(MA,A*B)
 | |                               |         |         |   
 | |                               *         |         |   Sec.7.6.3.2:   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:
 | |                               |         |         |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | | (A)=LLQT   LLQI               *==================>| Query(MA,A)
 | | *----------*------------------*---------*         |   Sec.7.6.1  :   Q(MA,A)     Source Timers for sources in A are lowered to LLQT
 | | |          |                  |         |         |   
 | | |          |                  |         |         |   
 | | |          |                  |         |         |   
 | *-------------------------------|<==================* Report BLOCK(A) (2nd. Retransmission)
 |   |          |                  *---------*         |   Sec.7.4.2  :   Router State  Report Received  New Router State     Actions
 |   |          |                  |         |         |                  ------------  ---------------  ----------------     -------
 |   |          |                  |         |         |                  INCLUDE (A)     BLOCK (B)      INCLUDE (A)          Send Q(MA,A*B)
 |   |          |                  |         |         |   
 |   |          |                  *         |         |   Sec.7.6.3.2:   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:
 |   |          |                  |         |         |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 |   |          |                  |         |         |                  ==> Querier must not send Q(MA,A) for 2nd Report BLOCK(A).
 |   |          |                  |         |         |   
 |   |          |                  |         |         |   Sec.7.6.3.2:   The Querier must then immediately send a Multicast Address and Source
 |   |          |                  |         |         |                  Specific Query as well as schedule [Last Listener Query Count -1]
 |   |          |                  |         |         |                  query retransmissions to be sent every [Last Listener Query
 |   |          |                  |         |         |                  Interval], over [Last Listener Query Time].  The contents of these
 |   |          |                  |         |         |                  queries are calculated as follows.
 |   |          |                  *==================>| Query(MA,A)
 |   |          *------------------*---------*         |   Sec.7.6.1  :   Q(MA,A)     Source Timers for sources in A are lowered to LLQT
 |   |                             |         |         |                                                           ^^^^^^^^^^^^^^^^^^^
 |   |                             |         |         |                  ==> Since the timer is already lower than LLQT, it must not be higher.
 |   |                             |         |         |   
 ~   ~                             ~         ~         ~   
 |   |                             |         |         |   
 |   |                             |         |         |   
 |   *-----------------------------*---------*         |   Sec.7.3    :     Router
 |                                 |         |         |                  Filter Mode      Source Timer Value           Action
 |                                 |         |         |                  -----------      ------------------           ------
 |                                 |         |         |                   INCLUDE            TIMER == 0        Suggest to stop forwarding
 |                                 |         |         |                                                        traffic from source and
 |                                 |         |         |                                                        remove source record.  If
 |                                 |         |         |                                                        there are no more source
 |                                 |         |         |                                                        records, delete multicast
 |                                 |         |         |                                                        address record
 |                                 |         |         |

Is it right?

Best Regards
--
Kiyoaki Kawaguchi