Re: Collision detect [Re-Posting]

Eric Leisheng Ji <jileish@charlie.cns.iit.edu> Fri, 25 January 2002 23:13 UTC

Received: from trapdoor.merit.edu (postfix@trapdoor.merit.edu [198.108.1.26]) by nic.merit.edu (8.9.3/8.9.1) with ESMTP id SAA13860 for <idr-archive@nic.merit.edu>; Fri, 25 Jan 2002 18:13:13 -0500 (EST)
Received: by trapdoor.merit.edu (Postfix) id 8A088912A4; Fri, 25 Jan 2002 18:12:48 -0500 (EST)
Delivered-To: idr-outgoing@trapdoor.merit.edu
Received: by trapdoor.merit.edu (Postfix, from userid 56) id 57A94912A5; Fri, 25 Jan 2002 18:12:48 -0500 (EST)
Delivered-To: idr@trapdoor.merit.edu
Received: from segue.merit.edu (segue.merit.edu [198.108.1.41]) by trapdoor.merit.edu (Postfix) with ESMTP id 0AB2C912A4 for <idr@trapdoor.merit.edu>; Fri, 25 Jan 2002 18:12:46 -0500 (EST)
Received: by segue.merit.edu (Postfix) id D90AD5DDC1; Fri, 25 Jan 2002 18:12:46 -0500 (EST)
Delivered-To: idr@merit.edu
Received: from csl.cs.iit.edu (csl.csam.iit.edu [216.47.150.143]) by segue.merit.edu (Postfix) with ESMTP id B51B15DDB4 for <idr@merit.edu>; Fri, 25 Jan 2002 18:12:46 -0500 (EST)
Received: from charlie.cns.iit.edu (charlie.cns.iit.edu [216.47.143.70]) by csl.cs.iit.edu (8.9.3/8.9.3) with ESMTP id SAA27708; Fri, 25 Jan 2002 18:31:59 -0600
Date: Fri, 25 Jan 2002 17:13:15 -0600
From: Eric Leisheng Ji <jileish@charlie.cns.iit.edu>
To: Alex Zinin <azinin@nexsi.com>
Cc: Sathya Perla <sperla@netplane.com>, 'Kunihiro Ishiguro' <kunihiro@zebra.org>, Mathew Richardson <mrr@nexthop.com>, idr@merit.edu
Subject: Re: Collision detect [Re-Posting]
In-Reply-To: <101967279434.20020125122542@nexsi.com>
Message-ID: <Pine.SGI.4.21.0201251649330.2191126-100000@charlie.cns.iit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Sender: owner-idr@merit.edu
Precedence: bulk

I think Sathya's idea is applicable. In our implementation of
BGP in company, we try to follow the RFC, but get a little 
lost there about the FSMs, for we use only one FSM and two
connections.  
So we still follow the RFC, but under the situation of
collision detection, the received Notification Packet are
just ignored. So it's equal to no sending this.
I didnt' get the previous emails on this question, but it
seems to me a problem how do we indicate the peer state 
under the picture of one FSM and two connections? we should
make sure the two connections dont race to set the FSM
peer state.

--Eric Ji


On Fri, 25 Jan 2002, Alex Zinin wrote:

> 
> Sathya,
> 
>   In fact, that was one of my concerns about the spec.
> 
>   Regardless of whether we stay with the two-FSMs based scheme
>   or move to two transport connections under one, I think
>   we should have a section on processing of incoming transport
>   connection (I actually have it in my version of the FSM I sent
>   to the list a while ago).
> 
>   From my knowledge, at least some major implementations do not
>   treat competing connections as different FSMs. Whether they
>   make the majority or not is something that we should probably
>   ask the WG chairs to check.
> 
> -- 
> Alex Zinin
> 
> Wednesday, January 23, 2002, 7:18:21 PM, Sathya Perla wrote:
> 
> 
> > I think the fundamental problem with Collision Detection is that the spec
> > assumes (without stating it explicitly) that there are two FSMs to deal with
> > the possible two transport connections between a pair of peers. This is
> > evident from the usage of "FSM Cease" to close a transport connection. 
> 
> > One could manage both the transport connections using the same FSM and after
> > the collision detect algorithm is run the "unwanted" transport connection
> > can be closed without requiring a "FSM Cease".
> 
> > If this is not OK, the draft should explicitly state that a separate FSM has
> > to be used for a second connection with the same peer.
> 
> > -Sathya
> 
> 
> > -----Original Message-----
> > From: Kunihiro Ishiguro [mailto:kunihiro@zebra.org]
> > Sent: Wednesday, January 23, 2002 7:36 AM
> > To: Mathew Richardson
> > Cc: idr@merit.edu
> > Subject: Re: Collision detect
> 
> 
> >>t0: BoxA initiates TCP connection to BoxB (we'll call this connection 1)
> >>t0: BoxB initiates TCP connection to BoxA (we'll call this connection 2)
> >>t1: BoxA accepts incoming connection from BoxB
> >>t1: BoxB accepts incoming connection from BoxA
> >>t2: BoxA sends an Open message on connection 1
> >>t2: BoxB sends an Open message on connection 2
> 
> > When BoxA accept incoming connection 2 from BoxB, BoxA lookup
> > corresponding status and it is Connect for connection 1.  Here we have
> > a problem.  If BoxA decides which connection should be closed at this
> > moment, BoxB will do the same thing.  Then both connection will be
> > closed.  OK, to avoid this situation collision detect should be done
> > by Open message then take one of them based upon router-id.  (In my
> > very private opinion, if jitter is there this will not happen
> > frequently).  Until that time the both connections should be
> > maintained.
> 
> > BTW, here is my question, when BoxA sends an Open message to BoxB
> > (t2).  BoxA has two connections.  Connection 1 is OpenSent status.
> > Connection 2 will be Connect status.  But where connection 2 status
> > comes from?  Is that generated based upon Connection 1 status?  It is
> > very ambiguous in RFC and draft description.  Initially the peer has
> > only one status.  Some moment the peer has two connections and two
> > independent status.  Finally collision detect close one connection.
> > The status related the connection also goes away.
> 
> > When I implemented BGP this was the biggest obstacle to understand FSM
> > and collision detect.  Still description is not clear.  Should we fix
> > this also?
> 
>