Re: FSM changes for the Draft-15

Alex Zinin <azinin@nexsi.com> Thu, 15 November 2001 01:50 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 UAA00973 for <idr-archive@nic.merit.edu>; Wed, 14 Nov 2001 20:50:53 -0500 (EST)
Received: by trapdoor.merit.edu (Postfix) id B831D91271; Wed, 14 Nov 2001 20:50:21 -0500 (EST)
Delivered-To: idr-outgoing@trapdoor.merit.edu
Received: by trapdoor.merit.edu (Postfix, from userid 56) id 87F6F912BA; Wed, 14 Nov 2001 20:50:21 -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 616EC91271 for <idr@trapdoor.merit.edu>; Wed, 14 Nov 2001 20:50:20 -0500 (EST)
Received: by segue.merit.edu (Postfix) id 3A4195DDA6; Wed, 14 Nov 2001 20:50:20 -0500 (EST)
Delivered-To: idr@merit.edu
Received: from relay1.nexsi.com (relay1.nexsi.com [66.35.205.133]) by segue.merit.edu (Postfix) with ESMTP id 07AC45DD91 for <idr@merit.edu>; Wed, 14 Nov 2001 20:50:20 -0500 (EST)
Received: from mail.nexsi.com (mail.nexsi.com [172.16.0.54]) by relay1.nexsi.com (Postfix) with ESMTP id 3CD923F69; Wed, 14 Nov 2001 17:52:14 -0800 (PST)
Received: from khonsu.sw.nexsi.com (dynam185.sw.nexsi.com [172.17.14.185]) by mail.nexsi.com (8.9.3/8.9.3) with ESMTP id RAA06464; Wed, 14 Nov 2001 17:53:19 -0800
Date: Wed, 14 Nov 2001 17:53:19 -0800
From: Alex Zinin <azinin@nexsi.com>
X-Mailer: The Bat! (v1.51) Personal
Reply-To: Alex Zinin <azinin@nexsi.com>
Organization: Nexsi Systems
X-Priority: 3 (Normal)
Message-ID: <6106676042.20011114175319@nexsi.com>
To: Jeffrey Haas <jhaas@nexthop.com>
Cc: Susan Hares <skh@nexthop.com>, idr@merit.edu, Yakov Rekhter <yakov@juniper.net>
Subject: Re: FSM changes for the Draft-15
In-Reply-To: <20011113153452.P7607@nexthop.com>
References: <5.0.0.25.0.20011107162314.01d39868@mail.nexthop.com> <3210831985.20011109135629@nexsi.com> <20011113153452.P7607@nexthop.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: owner-idr@merit.edu
Precedence: bulk

Jeff,

> Traditionally (and my biggest argument to do it this way), we
> should document the states (noting the start state),
> the transition function and make sure that its deterministic.
> By that I mean that "do nothing/ignore" is simply a transition to
> the same state.

Agree with the last statement about "ignore" (I hope my suggestion
did not sound contrary). Regarding the rest of the para above, it wasn't
clear to me whether you were against documenting the events.

> Additionally, I don't think anything as documented have any "in actions".
> Do you disagree?

Depends on how you look at it. The idea behind in-actionc is to
identify those performed regardless of the prev state, event
and other conditions. For example, (reading Sue's new version
of the text), we always do the following when going to Connect:

 - start ConnectRetry timer
 - initiate transport connection to the peer
 - listen for an incoming one
 
I think I could identify similar sets for Idle and IdleHold.

> Documenting "state actions" would be a nice thing, but potentially
> dangerous.  For example, it would be nice to document what happens
> in the magic box marked "Established" but that goes beyond what
> most people want to see - i.e. events on the wire.

It is dangerous if we try to document everything (e.g., update
processing), which is not necessary. Only things related to
the FSM operation should be mentioned, for example, generation
of the timer expiration events. Another approach would be
to describe the timer itself and say it generates event Foo.
FSM action description would give a clue on how Foo is processed
in different states.

> A good argument to avoid documenting the black boxes is the
> extension mess we'd get into by trying to extend the contents of
> those boxes for all BGP extensions such as route refresh, graceful
> restart, etc.  By focusing on some basic internal events that are
> required to get a pair of bgp speakers peering and then focusing
> on events to keep that peering up we avoid limiting implementations
> by over-specifying the internals.

Don't get me wrong. I'm not suggesting to transform the whole
BGP spec to an FSM description (which would be unrealistic, btw).
My point is---since we're touching the FSM part, let's
try to improve the description to be more FSM-like.

Alex.