Subject: [magma] Question about IGMPv3 state machine

From: Kunal Shah <[email-masked]>
Date: Tue, 24 Mar 2009 15:57:40 -0700

Hi,

This is Kunal. I am trying to understand IGMPv3 router side functionality and have the following questions about the RFC 3776:

In section 6.4.1

INCLUDE (A)    TO_EX (B)    EXCLUDE (A*B,B-A)       (B-A)=0
                                                    Delete (A-B)
                                                    Send Q(G,A*B)
                                                    Group Timer=GMI

If A=1,2,3 and B=2, A*B=2. How does the host that has requested sources 1 and 3 still get them?? And If we delete A-B=2 in this case, how does the host interested in 2 get traffic from it??

And similarly for

EXCLUDE (X,Y)  TO_EX (A)    EXCLUDE (A-Y,Y*A)       (A-X-Y)=Group Timer

                                                    Delete (X-A)

                                                    Delete (Y-A)

                                                    Send Q(G,A-Y)

                                                    Group Timer=GMI

If X=1,2,3, Y=4,5,6, and A=3,4 the A-Y=3 and Y*A=4 What about hosts that want 1,2 sources. If X-A=1,2 is deleted how will the hosts get traffic from 1,2 .

I will really appreciate if you can answer these two questions. I have contacted a lot of people to get these two questions answered but have not heard from any one yet.

Thanks
Kunal

---

From: Bharat Joshi <[email-masked]>
Date: Wed, 25 Mar 2009 07:00:39 +0530

Hi Kunal,

    In section 6.4, RFC 3376 has defined the meaning of roles the two source list in EXCLUDE( A, B) plays. Sources available in A are those sources for which a host has asked for data to be forwarded and sources in B has been explicitly asked to be excluded.

    In section 6.3, RFC 3376 has defined the forwarding rules. Now if its exclude mode, and source timer is running [i.e. the sources in list 'A'], it should forward the data and if it is not in exclude list [i.e. it is not in source list B], it should forward the traffic.

    In the first example, source '2' exist in list of sources whose source timer will be running and so will get forwarded and now (B-A) in this case will be 0 and so sources 1 and 3 will get forwarded.

    Similarly in the second example, source '3' will get forwarded as its source timer will be running and all sources except source 4 will get forwarded as only source 4 needs to be excluded.

    I hope this helps.

Thanks,
Bharat
________________________________________
From: [email-masked] [[email-masked]] On Behalf Of Kunal Shah [[email-masked]]
Sent: Wednesday, March 25, 2009 4:27 AM
To: [email-masked]
Subject: [magma] Question about IGMPv3 state machine

Hi,

In section 6.4.1

And similarly for

                                                    Delete (X-A)

                                                    Delete (Y-A)

                                                    Send Q(G,A-Y)

                                                    Group Timer=GMI

Thanks
Kunal

**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely 
for the use of the addressee(s). If you are not the intended recipient, please 
notify the sender by e-mail and delete the original message. Further, you are not 
to copy, disclose, or distribute this e-mail or its contents to any other person and 
any such actions are unlawful. This e-mail may contain viruses. Infosys has taken 
every reasonable precaution to minimize this risk, but is not liable for any damage 
you may sustain as a result of any virus in this e-mail. You should carry out your 
own virus checks before opening the e-mail or attachment. Infosys reserves the 
right to monitor and review the content of all messages sent to or from this e-mail 
address. Messages sent to or from this e-mail address may be stored on the 
Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***

---

From: Liu Hui <[email-masked]>
Date: Wed, 25 Mar 2009 10:00:52 +0800

Hi,  

What Bharat said is correct.   The following complement is my personnal
understanding:

In the first item please note that if A=1,2,3 and B=2, then A*B=2 and A-B=1,
3

TO_EX(B) means "change to receive from sources except B", because A-B=1,3
are not in the set B that are to be "excluded",  then traffic from 1 and 3
will be received. Delete (A-B) means A-B should not be kept in the source
list under exclude mode, because traffic from them will be forwarded, the
same as all other sources except B. 

The host sending this report at present does not what to receive from B, but
the router does not know  whether there is other host on the same network is
interested in  A*B, then it keeps the source list for it (i.e. EXLUDE(A*B,
...) ) and send a query to make the confirmation (Send Q(G,A*B)). 

(B-A) are sources that should not be forwarded, their source timers will be
set to 0, corresponding to EXCLUDE (..., B-A).  In this case B-A is 0 then
non-forwarding list should be empty.

And similarly for  the second item:

Only traffic from Y*A=4 is not forwarded, traffic from X-A=1,2 will be
forwarded because X-A are not in the non-forwarding source-list. And because
they are forwarded normally they need not be kept in the source-list, thus
they should be delete.

Formerly Y-A=5,6 are requested not to be forwarded so kept in
EXCLUDE(...,Y),but a new request of TO_EX(A) only exclude Y*A=4, then
traffic from 5 and 6 should be forwarded, thus they should not be kept in
the non-forwarding list, and they are deleted as the "Delete (Y-A)"
operation indicates.

As a summary for the above two cases:

1) the first source list in EXLUDE() stores the  sources that are formerly
requested to be forwarded but currently requested not to be forwarded.
Because these request may come from different host, the router keeps them in
case there is requester for the sources. The traffic from them will
currently be forwarded.

2) The second source list in EXCLUDE stores the sources that are to be
excluded (i.e.not forwarded). The traffic from them will not be forwarded.

3)The traffic from all other sources not listed in these two list will be
forwarded (as this is in EXCLUDE mode).

Best Regards,

Liu Hui 

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] 
> On Behalf Of Bharat Joshi
> Sent: 2009年3月25日 9:31
> To: Kunal Shah
> Cc: [email-masked]
> Subject: Re: [magma] Question about IGMPv3 state machine
> 
> Hi Kunal,
> 
>     In section 6.4, RFC 3376 has defined the meaning of roles 
> the two source list in EXCLUDE( A, B) plays. Sources 
> available in A are those sources for which a host has asked 
> for data to be forwarded and sources in B has been explicitly 
> asked to be excluded.
> 
>     In section 6.3, RFC 3376 has defined the forwarding 
> rules. Now if its exclude mode, and source timer is running 
> [i.e. the sources in list 'A'], it should forward the data 
> and if it is not in exclude list [i.e. it is not in source 
> list B], it should forward the traffic.
> 
>     In the first example, source '2' exist in list of sources 
> whose source timer will be running and so will get forwarded 
> and now (B-A) in this case will be 0 and so sources 1 and 3 
> will get forwarded.
> 
>     Similarly in the second example, source '3' will get 
> forwarded as its source timer will be running and all sources 
> except source 4 will get forwarded as only source 4 needs to 
> be excluded.
> 
>     I hope this helps.
> 
> Thanks,
> Bharat
> From: [email-masked] [[email-masked]] On 
> Behalf Of Kunal Shah [[email-masked]]
> This is Kunal. I am trying to understand IGMPv3 router side 
> functionality and have the following questions about the RFC 3776:
> 
> In section 6.4.1
> 
> If A=1,2,3 and B=2, A*B=2. How does the host that has 
> requested sources 1 and 3 still get them?? And If we delete 
> A-B=2 in this case, how does the host interested in 2 get 
> traffic from it??
> 
> And similarly for
> 
> If X=1,2,3, Y=4,5,6, and A=3,4 the A-Y=3 and Y*A=4 What about 
> hosts that want 1,2 sources. If X-A=1,2 is deleted how will 
> the hosts get traffic from 1,2 .
> 
> I will really appreciate if you can answer these two 
> questions. I have contacted a lot of people to get these two 
> questions answered but have not heard from any one yet.
> 
> Thanks
> Kunal
> 
> 
> **************** CAUTION - Disclaimer ***************** This 
> e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION 
> intended solely for the use of the addressee(s). If you are 
> not the intended recipient, please notify the sender by 
> e-mail and delete the original message. Further, you are not 
> to copy, disclose, or distribute this e-mail or its contents 
> to any other person and any such actions are unlawful. This 
> e-mail may contain viruses. Infosys has taken every 
> reasonable precaution to minimize this risk, but is not 
> liable for any damage you may sustain as a result of any 
> virus in this e-mail. You should carry out your own virus 
> checks before opening the e-mail or attachment. Infosys 
> reserves the right to monitor and review the content of all 
> messages sent to or from this e-mail address. Messages sent 
> to or from this e-mail address may be stored on the Infosys 
> e-mail system.
> _______________________________________________
> magma mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/magma

---

From: Indranil Bhattacharya <[email-masked]>
Date: Mon, 30 Mar 2009 12:31:07 +0530

Hi Liu,

         Excellent explanation. I agree with you. To summarise, when router
filter mode is EXCLUDE then we forward data for all the sources which are
not in list B where EXCLUDE(A, B). Excerpt from "A.3 Switching Router Filter
Modes from EXCLUDE to INCLUDE" of RFC 3376:

"If there exist hosts in both EXCLUDE and INCLUDE modes for a single
   multicast group in a network, the router must be in EXCLUDE mode as
   well (see section 6.2.1).  *In EXCLUDE mode, a router forwards traffic
   from all sources unless that source exists in the exclusion source
   list >>>> which is B of EXCLUDE(A,B)*.  If all hosts in EXCLUDE mode
cease to exist, it would be
   desirable for the router to switch back to INCLUDE mode seamlessly
   without interrupting the flow of traffic to existing receivers.

   One of the ways to accomplish this is for routers to keep track of
   all sources desired by hosts that are in INCLUDE mode even though the
   router itself is in EXCLUDE mode.  If the group timer now expires in
   EXCLUDE mode, it implies that there are no hosts in EXCLUDE mode on
   the network (otherwise a membership report from that host would have
   refreshed the group timer).  The router can then switch to INCLUDE
   mode seamlessly with the list of sources currently being forwarded in
   its source list."
        Shall one ask what is the reason to maintain a source list A when
mode is EXCLUDE, the second stanza of the above excerpt should answer that
too

Thanks,
Indranil

2009/3/25 Liu Hui <[email-masked]>