Subject: [magma] When IGMPv3 router in EXCLUDE(X, Y) state receives TO_IN(A)

From: "Rohan Sen" <[email-masked]>
Date: Wed, 12 Mar 2008 15:16:45 +0530

Hi,

RFC 3376 Section 6.4.2 change state record handling router state machine
last line mentions about sending a group specific query in addition to the
source specific query.
I am not very sure if I am able to understand the necessity of this group
specific query. Usually a TO_IN(A) message is received from a host that
underwent a state change from EXCLUDE(A) to INCLUDE(A) which means the
router already had a state of EXCLUDE(X,Y) where A is a subset of Y. The
router then tries to find out if there is any host which still has interest
in receiving traffic for the sources already having source timer > 0. I do
not understand what is the use of sending a group specific query in this
case since the group specific query has a wider scoped purpose than the
source specific query.

Could it be that since for other cases no query is sent if sources to be
queried is NULL set, for this case only (since TO_IN(NULL) is the IGMPv3
translation for IGMPv2 Leave when older version host for that group is
present) a group specific query has to be sent regardless of whether the to
be queried source set is NULL or not.

Any help on these lines would be highly appreciated.

-- 
thanks,
Rohan Sen
_______________________________________________
magma mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/magma

---

From: Mark Fine <[email-masked]>
Date: Wed, 12 Mar 2008 11:03:48 -0700

The Group-Specific query is to find out if there are any hosts which  
still have EXCLUDE state -- the Group-Specific query will lower the  
router's Group Timer to LMQT, and if no hosts respond with IS_EX  
Current-State records, the Group Record will switch to INCLUDE filter- 
mode if there are still Source Records with timers running.

On Mar 12, 2008, at 2:46 AM, Rohan Sen wrote:

> Hi,
>
> RFC 3376 Section 6.4.2 change state record handling router state  
> machine last line mentions about sending a group specific query in  
> addition to the source specific query.
> I am not very sure if I am able to understand the necessity of this  
> group specific query. Usually a TO_IN(A) message is received from a  
> host that underwent a state change from EXCLUDE(A) to INCLUDE(A)  
> which means the router already had a state of EXCLUDE(X,Y) where A  
> is a subset of Y. The router then tries to find out if there is any  
> host which still has interest in receiving traffic for the sources  
> already having source timer > 0. I do not understand what is the use  
> of sending a group specific query in this case since the group  
> specific query has a wider scoped purpose than the source specific  
> query.
>
> Could it be that since for other cases no query is sent if sources  
> to be queried is NULL set, for this case only (since TO_IN(NULL) is  
> the IGMPv3 translation for IGMPv2 Leave when older version host for  
> that group is present) a group specific query has to be sent  
> regardless of whether the to be queried source set is NULL or not.
>
> Rohan Sen _______________________________________________
> magma mailing list
> [email-masked]

---

From: "Rohan Sen" <[email-masked]>
Date: Thu, 13 Mar 2008 11:33:42 +0530

Hi,

Thanks for the clarification, bu the following doubt still remains.

In that the group specific query alone should be sufficient to pull all
information related to groups in which hosts are currently interested/not
interested. Why send both the queries? Also that the current exclude list
contains Y-A which is basically those sources which should still be blocked.
Only this set of sources could also be queried.

This statement can also be interpreted as if {X-A} is NULL then the group
specific query has to go out (otherwise the query would have got suppressed
due to statement "If source-list A is null as a result of the action (e.g.,
A*B) then no query is sent as a result of the operation."

thanks and regards,
Rohan Sen

---

From: Mark Fine <[email-masked]>
Date: Thu, 13 Mar 2008 00:38:05 -0700

> Also that the current exclude list contains Y-A which is basically  
> those sources which should still be blocked. Only this set of  
> sources could also be queried.

There is no purpose in sending Group-and-Source-Specific queries for  
already blocked Source records (from 6.1):

A Group-and-Source Specific Query is used to verify there are no  
systems on a network which desire to receive traffic from a set of  
sources.  Group-and-Source Specific Queries list sources for a  
particular group which have been requested to no longer be forwarded.

Further, already blocked Source records do no have running timers --  
there is no Source record state to query for, there is no Source  
record state to refresh, there is no Source record timer to lower,  
there is no Source record timer to update, etc. There IS Group record  
state to query for, there is Group record state to refresh, there is a  
Group record timer to lower, there is a Group record timer to update,  
etc.

And if you did do something like Q(G,Y-A) in place of Q(G), there  
would be problems refreshing membership for hosts having a filter mode  
of EXCLUDE and an empty source list, there would be problems handling  
the Group timer on the elected querier, and there would be problems  
handling the Group timer on the non-elected routers.
_______________________________________________
magma mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/magma