Re: What is an IGMPv3 Router's initial current state foramulticast group?

"Alvaro Fernandez" <[email protected]> Thu, 6 Mar 2008 21:24:22 +0100
Newsgroups gmane.ietf.magma
Message-ID <[email protected]>
>> Note that if one host send the message TO_IN(B) to a router is  
>> because there is a change from EXCLUDE filter mode to INCLUDE filter  
>> mode.
>>
>> So when one router receives a TO_IN(B) I have a doubt about if the  
>> router should consider the initial state to be INCLUDE({})


>The host's initial state is "a filter mode of INCLUDE and an empty  
>source list" -- in the above example, there is no accounting of the  
>host's preceding state change from this initial state to a filter mode  
>of EXCLUDE. If the host's state is a filter mode of EXCLUDE, the  
>router should already have created a filter mode of EXCLUDE from the  
>TO_EX (B) state-change record sent by the host changing from its  
>initial state ("a filter mode of INCLUDE and an empty source list").

Right, except if there is a reset in the router (as Suvendu wrote "lets say a router comes up afresh ") before receiving the TO_IN message. 
 
This is an example when considering INCLUDE with an empty list  as intial state for the router has some problems. 
 
But I think is the only case and the only difference is the Group specific query action in the router.
I don't remeber now why this Group specific query is necessary.
 
Alvaro
 
 
 

________________________________

De: [email protected] en nombre de Alvaro Fernandez
Enviado el: jue 06/03/2008 16:11
Para: Mark Fine; Suvendu Mozumdar
CC: [email protected]
Asunto: Re: [magma] What is an IGMPv3 Router's initial current state foramulticast group?


Hi,

 

"5. Description of the Protocol for Group Members
IGMP is an asymmetric protocol, specifying separate behaviors for  group members -- that is, hosts or routers that wish to receive  multicast packets -- and multicast routers. "

 

As explained in RFC 3376 you can use INCLUDE ({}) as initial state to calculate the  record sent when there is a change in a interface state using the table below:

 

     Old State                New State                 State-Change Record Sent
     ---------                    ---------                       ------------------------

     INCLUDE (A)       INCLUDE (B)               ALLOW (B-A), BLOCK (A-B)

     EXCLUDE (A)       EXCLUDE (B)            ALLOW (A-B), BLOCK (B-A)

     INCLUDE (A)       EXCLUDE (B)            TO_EX (B)

     EXCLUDE (A)       INCLUDE (B)            TO_IN (B)
 

But I would not affirm that you can do the same in the initial state of the routers because in routers you must consider not only the final state but also the router actions.

 

Note that if one host send the message TO_IN(B) to a router is because there is a change from EXCLUDE filter mode to INCLUDE filter mode. 

 

So when one router receives a TO_IN(B) I have a doubt about if the router should consider the initial state to be INCLUDE({})

 

There are two possible initial states and 6 membership reports. That is 12 combinations in the table below.

 

In the table below the message TO_IN are rows 8 and 12 and note that the actions in the router are different. In 12 there is a group specific query and in 8 there is not.

 

Best Regards

 

Alvaro

 

 

     INITIAL STATE REPORT     FINAL STATE          ACTIONS

 

     ------------  ---------  ------------------  -------------

 1.  INCLUDE (A)   IS_IN (B)  INCLUDE (A+B)       T(B)=GMI

     ------------  ---------  ------------------  -------------

 2.  INCLUDE (A)   IS_EX (B)  EXCLUDE (A*B,B-A)   T(B-A)=0

                                                  DEL(A-B)

                                               GT=GMI

     ------------  ---------  ------------------  -------------

 3.  EXCLUDE (X,Y) IS_IN (A)  EXCLUDE (X+A,Y-A)   T(A)=GMI

     ------------   --------  ------------------  -------------

 4.  EXCLUDE (X,Y) IS_EX (A)  EXCLUDE (A-Y,Y*A)   T(A-X-Y)=GMI

                                                  DEL (X-A)

                                                  DEL (Y-A)

                                                  GT=GMI

     ------------  ---------  ------------------  -------------

 5.  INCLUDE (A)   ALLOW (B)  INCLUDE (A+B)       T(B)=GMI

     ------------  ---------  ------------------  -------------

 6.  INCLUDE (A)   BLOCK (B)  INCLUDE (A)         SEND Q(G,A*B)

     ------------  ---------  ------------------  -------------

 7.  INCLUDE (A)   TO_EX (B)  EXCLUDE (A*B,B-A)   T(B-A)=0

                                                  DEL (A-B)

                                                  SEND Q(G,A*B)

                                                  GT=GMI

     ------------  ---------  ------------------  -------------

 8.  INCLUDE (A)   TO_IN (B)  INCLUDE (A+B)       T(B)=GMI

                                                  SEND Q(G,A-B)

     ------------  ---------  ------------------  -------------

 9.  EXCLUDE (X,Y) ALLOW (A)  EXCLUDE (X+A,Y-A)   T(A)=GMI

     ------------  ---------  ------------------  -------------

 10. EXCLUDE (X,Y) BLOCK (A)  EXCLUDE (X+(A-Y),Y) T(A-X-Y)=GT

                                                  SEND Q(G,A-Y)

     ------------  ---------  ------------------  -------------

 11. EXCLUDE (X,Y) TO_EX (A)  EXCLUDE (A-Y,Y*A)   T(A-X-Y)=GT

                                                  DEL (X-A)

                                                  DEL (Y-A)

                                                  SEND Q(G,A-Y)

                                                  GT=GMI

     ------------  ---------  ------------------  -------------

 12. EXCLUDE (X,Y) TO_IN (A)  EXCLUDE (X+A,Y-A)   T(A)=GMI

                                                  SEND Q(G,X-A)

                                                  SEND Q(G)

 


________________________________

De: [email protected] en nombre de Mark Fine
Enviado el: miƩ 05/03/2008 20:13
Para: Suvendu Mozumdar
CC: [email protected]
Asunto: Re: [magma] What is an IGMPv3 Router's initial current state for amulticast group?



Correct, similar to the specification for Interface State:

5.1. Action on Change of Interface State

           << snip >>

                                                                                  If
  no interface
    state existed for that multicast address before the change (i.e., 
the
    change consisted of creating a new per-interface record), or if no
    state exists after the change (i.e., the change consisted of 
deleting
    a per-interface record), then the "non-existent" state is considered
    to have a filter mode of INCLUDE and an empty source list.

On Mar 4, 2008, at 10:40 PM, Suvendu Mozumdar wrote:

> Hi,
>       I have a query regarding the IGMPv3/MLD Router behaviour. In 
> IGMPv3/MLDv2, the action of a router on receiving a report message 
> for a particular Group depends on the router's current state for the 
> group at the time of receiving the report, as defined in section 6.4 
> of RFC 3376. Now what should be a router's initial current state for 
> a group when it has received the first report for the group, lets 
> say a router comes up afresh and receives the first report message 
> for a group G1 with filter mode TO_EX(NULL). Now it has to consider 
> some initial current state for the group and then based on that it 
> has to take an action for the TO_EX(NULL) report.
>
> My question is what should be a router's initial current state for a 
> group. I feel it should be INCLUDE(NULL), please advise.
>
> --
> Suvendu Mozumdar.
> QA Architect.
> Ixia Technologies Pvt. Ltd
> 9th Floor, Infinity Tower II
> Sector V, Saltlake.
> Kolkata 700091.
> INDIA.
> Mob : +919874081221
> _______________________________________________
> magma mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/magma

_______________________________________________
magma mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/magma

_______________________________________________
magma mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/magma