Re: [magma] IGMP v3 - Generation of Interface State Report

"K.Kawaguchi" <kawaguti@ysknet.co.jp> Thu, 25 December 2008 10:39 UTC

Return-Path: <magma-bounces@ietf.org>
X-Original-To: magma-archive@megatron.ietf.org
Delivered-To: ietfarch-magma-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id AE25D3A69AB; Thu, 25 Dec 2008 02:39:53 -0800 (PST)
X-Original-To: magma@core3.amsl.com
Delivered-To: magma@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A95CF3A69AB for <magma@core3.amsl.com>; Thu, 25 Dec 2008 02:39:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.032
X-Spam-Level: **
X-Spam-Status: No, score=2.032 tagged_above=-999 required=5 tests=[AWL=-0.073, BAYES_00=-2.599, HELO_EQ_JP=1.244, HOST_EQ_JP=1.265, J_CHICKENPOX_21=0.6, J_CHICKENPOX_51=0.6, RELAY_IS_203=0.994, UNPARSEABLE_RELAY=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MXM9wTJwz356 for <magma@core3.amsl.com>; Thu, 25 Dec 2008 02:39:50 -0800 (PST)
Received: from tkns.tk.ysknet.co.jp (tkmx.tk.ysknet.co.jp [203.180.172.16]) by core3.amsl.com (Postfix) with SMTP id ED6D03A688E for <magma@ietf.org>; Thu, 25 Dec 2008 02:39:49 -0800 (PST)
Received: (qmail 19201 invoked from network); 25 Dec 2008 19:39:56 +0900
Received: from (HELO PrecisionM20) (@) by with SMTP; 25 Dec 2008 19:39:56 +0900
To: magma@ietf.org
From: "K.Kawaguchi" <kawaguti@ysknet.co.jp>
Message-Id: <200812251939.CIE86409.JXLUVHBB@ysknet.co.jp>
X-Mailer: Winbiff [Version 2.51 PL2]
X-Accept-Language: ja,en,zh
Date: Thu, 25 Dec 2008 19:39:37 +0900
Mime-Version: 1.0
Subject: Re: [magma] IGMP v3 - Generation of Interface State Report
X-BeenThere: magma@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Multicast and Anycast Group Membership <magma.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/magma>, <mailto:magma-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/magma>
List-Post: <mailto:magma@ietf.org>
List-Help: <mailto:magma-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/magma>, <mailto:magma-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: magma-bounces@ietf.org
Errors-To: magma-bounces@ietf.org

Hi,

If you are still interested, the following examples show my interpretation.
If it is a mistake, someone teach me.

------------------------------------------------------------------------
Case-1 IN(A)->IN(B)

1.Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'INCLUDE',{a,b})
  => IN() -> IN(a,b): ALLOW(a,b): a go 2, b go 2.
     Retrans counter: a=2, b=2
  Send a Report ALLOW(Multicast-1,a,b)
  => Retrans counter: a=1, b=1
2.(Before retrans)
  Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'INCLUDE',{a,c})
  => IN(a,b) -> IN(a,c): ALLOW(c), BLOCK(b): c go 2, b go -2.
     Retrans counter: a=1, b=-2, c=2
  Send a Report ALLOW(Multicast-1,{a,c}) and BLOCK(Multicast-1,{b})
  => Retrans counter: b=-1, c=1
  Send a Report ALLOW(Multicast-1,{c}) and BLOCK(Multicast-1,{b})


------------------------------------------------------------------------
Case-2 EX(A)->EX(B)

1.Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'EXCLUDE',{a,b})
  => IN() -> EX(a,b): TO_EX(a,b): Filter go -2, a go -2, b go -2
     Retrans counter: Filter=-2, a=-2, b=-2
  Send a Report TO_EX(Multicast-1,{a,b})
  => Retrans counter: Filter=-1, a=-1, b=-1
2.(Before retrans)
  Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'EXCLUDE',{a,c})
  => EX(a,b) -> EX(a,c): ALLOW(b), BLOCK(c): b go 2, c go -2
     Retrans counter: Filter=-1, a=-1, b=2, c=-2
  Send a Report TO_EX(Multicast-1,{a,c})
  => Retrans counter: b=1, c=-1
  Send a Report ALLOW(Multicast-1,{b}) and BLOCK(Multicast-1,{c})


------------------------------------------------------------------------
Case-3 IN(A)->EX(B)

1.Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'INCLUDE',{a,b})
  => IN() -> IN(a,b): ALLOW(a,b): a go -2, b go -2
     Retrans counter: a=2, b=2
  Send a Report ALLOW(Multicast-1,{a,b})
  => Retrans counter: a=1, b=1
2.(Before retrans)
  Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'EXCLUDE',{b,c})
  => IN(a,b) -> EX(b,c): TO_EX(b,c): Filter go 2, b go 2, c go 2
     Retrans counter: Filter=-2, a=1, b=-2, c=-2
  Send a Report TO_EX(Multicast-1,{b,c})
  => Retrans counter: Filter=-1, b=-1, c=-1
  Send a Report TO_EX(Multicast-1,{b,c})


------------------------------------------------------------------------
Case-4 EX(A)-IN(B)

1.Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'EXCLUDE',{a,b})
  => IN() -> EX(a,b): TO_EX(a,b): Filter go -2, a go -2, b go -2
     Retrans counter: Filter=-2, a=-2, b=-2
  Send a Report a TO_EX(Multicast-1,{a,b})
  => Retrans counter: Filter=-1, a=-1, b=-1
2.Call IPMulticastListen(Socket-1,IF-1,Multicast-1,'INCLUDE',{b,c})
  => EX(a,b) -> IN(b,c): TO_IN(b,c): Filter go 2, b go 2, c go 2
     Retrans counter: Filter=2, a=-1, b=2, c=2
  Send a Report TO_IN(Multicast-1,{b,c})
  => Retrans counter: Filter=1, b=1, c=1
  Send a Report TO_IN(Multicast-1,{b,c})


Best Regards
--
Kiyoaki Kawaguchi



> Hello All,
>  
> I see discussion of IGMP v3 in this group context. My advance apologies if this is not the right place. RFC 3376 s5.1 describes procedure to g> enerate State Change Reports. 
>  
> ----------------------------
>    If the interface reception-state change that triggers the new report
>    is a filter-mode change, then the next [Robustness Variable] State-
>    Change Reports will include a Filter-Mode-Change record.  This
>    applies even if any number of source-list changes occur in that
>    period.  The host has to maintain retransmission state for the group
>    until the [Robustness Variable] State-Change reports have been sent.
>    When [Robustness Variable] State-Change reports with Filter-Mode-
>    Change records have been transmitted after the last filter-mode
>    change, and if source-list changes to the interface reception have
>    scheduled additional reports, then the next State-Change report will
>    include Source-List-Change records.
> ------------------------------
>  
> It seems this paragraph has different interpretations. A state machine would've been very helpful. 
>  
> (1) How would one treat the occurrence of source-list changes while Filter-Mode-Change record is in retransmission state? 
>  
>    (a) Send source-list changes (SLC) records as these events occur?
>    (b) If multiple events occur, perform the 'merge' operation and send the reports
>    (c) Keep the retransmission state, but do not retransmit as long as Filter-Mode-Change record state is active. On expiry of FMC state, and SLC records are retransmitted, if 'live'
>  
> (2) How would one treat the occurrence Filter-Mode-Change record of while source-list changes is in retransmission state?
>  
>       It seems we "clear" (/stop) source-list changes recrod retransmission on the occurrence of FMC event.
>  
> Any feedback is appreciated.
>  
> Thanks
> Venkat

_______________________________________________
magma mailing list
magma@ietf.org
https://www.ietf.org/mailman/listinfo/magma