Re: [Anima-signaling] Session IDs in relayed messages (and the Initiator field)

"Liubing (Leo)" <leo.liubing@huawei.com> Tue, 12 January 2016 08:26 UTC

Return-Path: <leo.liubing@huawei.com>
X-Original-To: anima-signaling@ietfa.amsl.com
Delivered-To: anima-signaling@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 422ED1A1BFF for <anima-signaling@ietfa.amsl.com>; Tue, 12 Jan 2016 00:26:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level:
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eKzVB-xqtCyq for <anima-signaling@ietfa.amsl.com>; Tue, 12 Jan 2016 00:26:53 -0800 (PST)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CDFB1A1C00 for <anima-signaling@ietf.org>; Tue, 12 Jan 2016 00:26:52 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml404-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CCV09597; Tue, 12 Jan 2016 08:26:50 +0000 (GMT)
Received: from NKGEML408-HUB.china.huawei.com (10.98.56.39) by lhreml404-hub.china.huawei.com (10.201.5.218) with Microsoft SMTP Server (TLS) id 14.3.235.1; Tue, 12 Jan 2016 08:26:49 +0000
Received: from NKGEML514-MBX.china.huawei.com ([fe80::40a8:f0d:c0f3:2ca5]) by nkgeml408-hub.china.huawei.com ([10.98.56.39]) with mapi id 14.03.0235.001; Tue, 12 Jan 2016 16:26:41 +0800
From: "Liubing (Leo)" <leo.liubing@huawei.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Thread-Topic: Session IDs in relayed messages (and the Initiator field)
Thread-Index: AQHRTKh7lcDxZs0E3USVI0LaqgdM5p73igFw
Date: Tue, 12 Jan 2016 08:26:40 +0000
Message-ID: <8AE0F17B87264D4CAC7DE0AA6C406F45C2D3CC30@nkgeml514-mbx.china.huawei.com>
References: <5668F8CA.2010205@gmail.com> <56698A77.5090003@tzi.org> <5669911D.30306@tzi.org> <5669DC59.2090505@gmail.com> <56925EBC.6010207@tzi.org> <5692A875.203@gmail.com> <5692B32E.1050209@gmail.com> <56940611.70202@gmail.com>
In-Reply-To: <56940611.70202@gmail.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.111.98.117]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020206.5694B8CB.001E, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: d083f46256182f20425e60370a023088
Archived-At: <http://mailarchive.ietf.org/arch/msg/anima-signaling/q9GSOdEt-u9eK--19hzfGC9rNGE>
Cc: Anima signaling DT <anima-signaling@ietf.org>
Subject: Re: [Anima-signaling] Session IDs in relayed messages (and the Initiator field)
X-BeenThere: anima-signaling@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Mailing list for the signaling design team of the ANIMA WG <anima-signaling.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima-signaling>, <mailto:anima-signaling-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima-signaling/>
List-Post: <mailto:anima-signaling@ietf.org>
List-Help: <mailto:anima-signaling-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima-signaling>, <mailto:anima-signaling-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 08:26:55 -0000

Hi Brian,

> -----Original Message-----
> From: Brian E Carpenter [mailto:brian.e.carpenter@gmail.com]
> Sent: Tuesday, January 12, 2016 3:44 AM
> To: Liubing (Leo)
> Cc: Anima signaling DT
> Subject: Session IDs in relayed messages (and the Initiator field)
> 
> Bing,
> 
> > 2. Section 3.3.5.1 Flooding
> >> If it receives a multicast Flood message on a given interface, it MUST
> relay it by re-issuing a Flood message on its other interfaces. The relayed
> message MAY have a different Session ID.
> > [Bing] Is there any concern that different Session IDs for the same flood
> message?
> > My rough idea is that the same Session ID might be beneficial to identify
> the flooded message. E.g., the interface could easily examine whether the
> message had been relayed once.
> 
> That was what I thought until I started writing the code. It gets very
> complicated because of the "birthday paradox" risk of duplicate Session IDs.
> You have to track the pair (Session ID, initiator address). That's why I
> proposed adding an 'initiator'
> to several messages (see the discussion with Carsten attached below). The
> issue is just the same for flood and discovery.
> 
> Relying on the loop count to terminate multicast loops is much simpler.
> 
> There are only two ways to create a loop: a bad physical topology, which will
> create problems for everybody, not just GRASP, or a faulty GRASP
> implementation that relays multicasts back to the same interface, which will
> be detected during debugging.
> So I think the loop count is enough protection.
> 
> If we accept that, then using a new Session ID each time a multicast is
> relayed to a new link is fine. We do lose the knowledge of which GRASP node
> originally generated the Discover or Flood.
> 
> What do you think? There would be a few more changes to the text for this.
> I have two versions of the Python code already, with or without the 'initiator'
> field, and they both seem to work with identical results.

[Bing] As you said, it depends on whether we accept loop count is enough. I personally don't have a solid opinion on this. 
I think it's ok to post the 02 as it is, and maybe mark it as a new open question?

Best regards,
Bing

> Regards
>    Brian
> 
> On 11/01/2016 08:38, Brian E Carpenter wrote:
> > On 11/01/2016 07:52, Brian E Carpenter wrote:
> >> Hi Carsten,
> >> On 11/01/2016 02:38, Carsten Bormann wrote:
> > ...
> >>> More odd to me is that the session-id only makes sense in
> >>> conjunction with the initiator, but the latter is not always given.
> >>> I can't quite make rhyme and reason out of when it's there and when
> >>> not.  Maybe that should be explained in the text (beyond what's in
> >>> 3.6), including how the initiator is implied when not present in the
> >>> message (source IP address of UDP packet?).
> >>
> >> The issue only arises at all because of the need to relay discovery
> >> and flood packets from one interface to another. In all other cases
> >> the source address of the packet is fine for disambiguating sessions.
> >> And in my implementation, the issue doesn't even arise for relayed
> >> discovery messages, because it proved easier to launch a new
> >> discovery session than to propagate the old one.
> >>
> >> You know, I'm going to look at my code again. If I can do the same
> >> trick for flood messages when they are relayed, we just wouldn't need
> >> the stupid initiator field at all.
> >
> > I had to add three lines of code to the relay function to do this.
> > So I now propose to remove the 'initiator' field from the messages
> > where I added it (and add the necessary clarifications about using the
> > source IP address). That will be a straightforward change to the -02D
> > draft that I sent yesterday, so co-authors, please let me know what
> > you think ASAP.
> >
> > Thanks Carsten, this helped a lot.
> >
> >     Brian
> >