NSIS T.Tsenov
Internet-Draft H. Tschofenig
Expires: May 06, 2009 Nokia Siemens Networks
X. Fu
Univ. Goettingen
C. Aoun
E. Davies
Folly Consulting
November 02, 2008
GIST State Machine
draft-ietf-nsis-ntlp-statemachine-06.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that anyapplicable patent or other IPR claims of
which he or she is aware have been or will be disclosed, and anyofwhich he or she becomes aware will be
disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its
working groups. Note that other groups may also distribute working documents as Internet- Drafts.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or
obsoleted by other documents at anytime. It is inappropriate to use Internet-Drafts as reference material or
to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft ShadowDirectories can be accessed at http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 06, 2009.
Abstract
This document describes the state machines for the General Internet Signaling Transport (GIST). The states
of GIST nodes for a givenflow and their transitions are presented in order to illustrate howGIST may be
implemented.
Tsenov, etal. Expires May 06, 2009 [Page 1]
Internet-Draft GIST State Machine November 2008
Table of Contents
1. Introduction ................................................................................................................................................ 3
2. Terminology ............................................................................................................................................... 3
3. Notational conventions used in state diagrams ........................................................................................... 3
4. State Machine Symbols .............................................................................................................................. 4
5. Common Rules ........................................................................................................................................... 5
5.1 Common Procedures ............................................................................................................................... 6
5.2 Common Variables .................................................................................................................................. 8
6. State machines ............................................................................................................................................ 9
6.1 Diagram notations ................................................................................................................................... 9
6.2 State machine for GIST querying node ................................................................................................. 11
6.3 State machine for GIST responding node ............................................................................................. 13
7. Security Considerations ............................................................................................................................ 14
8. Contributors .............................................................................................................................................. 14
9. Acknowledgments .................................................................................................................................... 14
10. References ............................................................................................................................................... 14
10.1 Normative References ........................................................................................................................ 14
10.2 Informative References ....................................................................................................................... 15
Appendix A. ASCII versions of the state diagrams ...................................................................................... 16
A.1 State machine for GIST querying node (Figure 2) ............................................................................. 16
A.2 State Machine for GIST responding node (Figure 3) ......................................................................... 19
Authors’ Addresses ................................................................................................................................... 22
Intellectual Property and Copyright Statements ........................................................................................ 23
Tsenov, etal. Expires May 06, 2009 [Page 2]
Internet-Draft GIST State Machine November 2008
1. Introduction
The state machines described in this document are illustrative ofhow the GIST protocol defined in [1] may
be implemented for the GIST nodes in different locations of a flowpath. Where there are differences - [1] is
authoritative.The state machines are informative only.Implementations may achieve the same results using
different methods.
There are twotypes of possible entities for GIST signaling:
-GIST querying node - GIST node that initiates the discovery of the next peer;
-GIST responding node - GIST node that is the discovered next peer;
We describe a set of state machines for these entities to illustrate howGIST may be implemented.
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted
as described in [2].
3. Notational conventions used in state diagrams
The following text is reused from [3] and the state diagrams are based on the conventions specified in [4],
Section 8.2.1. Additional state machine details are taken from [5].
The complete text is reproduced here:
State diagrams are used to represent the operation of the protocol by a number of cooperating state machines
each comprising a group of connected, mutually exclusive states. Only one state of each machine can be
active atany giv entime.
All permissible transitions between states are represented by arrows, the arrowhead denoting the direction of
the possible transition. Labels attached to arrows denote the condition(s) that must be met in order for the
transition to takeplace. All conditions are expressions that evaluate to TRUE or FALSE; if a condition
evaluates to TRUE, then the condition is met. The label UCT denotes an unconditional transition (i.e., UCT
always evaluates to TRUE). A transition that is global in nature (i.e., a transition that occurs from anyofthe
possible states if the condition attached to the arrowismet) is denoted by an open arrow; i.e., no specific
state is identified as the origin of the transition. When the condition associated with a global transition is
met, it supersedes all other exit conditions including UCT.The special global condition BEGIN supersedes
all other global conditions, and once asserted remains asserted until all state blocks have executed to the
point that variable assignments and other consequences of their execution remain unchanged.
On entry to a state, the procedures defined for the state (if any) are executed exactly once, in the order that
theyappear on the page. Each action is deemed to be atomic; i.e., execution of a procedure completes before
the next sequential procedure starts to execute. No procedures execute outside of a state block. The
procedures in only one state block execute at a time, evenifthe conditions for execution of state blocks in
different state machines are satisfied, and all procedures in an executing state block complete execution
Tsenov, etal. Expires May 06, 2009 [Page 3]
Internet-Draft GIST State Machine November 2008
before the transition to and execution of anyother state block occurs, i.e., the execution of anystate block
appears to be atomic with respect to the execution of anyother state block and the transition condition to that
state from the previous state is TRUE when execution commences. The order of execution of state blocks in
different state machines is undefined except as constrained by their transition conditions. Avariable that is
set to a particular value in a state block retains this value until a subsequent state block executes a procedure
that modifies the value.
On completion of all of the procedures within a state, all exit conditions for the state (including all conditions
associated with global transitions) are evaluated continuously until one of the conditions is met. The label
ELSE denotes a transition that occurs if none of the other conditions for transitions from the state are met
(i.e., ELSE evaluates to TRUE if all other possible exit conditions from the state evaluate to FALSE). Where
twoormore exit conditions with the same levelofprecedence become TRUE simultaneously,the choice as
to which exit condition causes the state transition to takeplace is arbitrary.
In addition to the above notation, there are a couple of clarifications specific to this document. First, all
boolean variables are initialized to FALSE before the state machine execution begins. Second, the following
notational shorthand is specific to this document:
<variable> = <expression1> | <expression2> | ...
Execution of a statement of this form will result in <variable> having a value of exactly one of the
expressions. The logic for which of those expressions gets executed is outside of the state machine
and could be environmental, configurable, or based on another state machine such as that of the
method.
4. State Machine Symbols
()
Used to force the precedence of operators in Boolean expressions and to delimit the argument(s) of
actions within state boxes.
;
Used as a terminating delimiter for actions within state boxes. Where astate box contains multiple
actions, the order of execution follows the normal English language conventions for reading text.
=
Assignment action. The value of the expression to the right of the operator is assigned to the variable
to the left of the operator.Where this operator is used to define multiple assignments, e.g., a = b = X
the action causes the value of the expression following the right-most assignment operator to be
assigned to all of the variables that appear to the left of the right-most assignment operator.
!
Logical NOToperator.
&&
Logical AND operator.
||
Tsenov, etal. Expires May 06, 2009 [Page 4]
Internet-Draft GIST State Machine November 2008
Logical OR operator.
if...then...
Conditional action. If the Boolean expression following the if evaluates to TRUE, then the action
following the then is executed.
{statement 1, ... statement N }
Compound statement. Braces are used to group statements that are executed together as if theywere
asingle statement.
!=
Inequality.Evaluates to TRUE if the expression to the left of the operator is not equal in value to the
expression to the right.
==
Equality.Evaluates to TRUE if the expression to the left of the operator is equal in value to the
expression to the right.
>
Greater than. Evaluates to TRUE if the value of the expression to the left of the operator is greater
than the value of the expression to the right.
<=
Less than or equal to. Evaluates to TRUE if the value of the expression to the left of the operator is
either less than or equal to the value of the expression to the right.
++
Increment the preceding integer operator by 1.
+
Arithmetic addition operator.
&
Bitwise AND operator.
5. Common Rules
Throughout the document we use terms defined in the [1], such as Query,Response, Confirm.
State machine represents handling of GIST messages that match a Message Routing State’sMRI, NSLPID
and SID and with no protocol errors. Separate parallel instances of the state machines should handle
messages for different Message Routing States.
The state machine states represent the upstream/downstream peers states of the Message Routing State.
Forsimplification not all objects included in a message are shown. Only those that are significant for the
case are shown. State machines do not present handling of messages that are not significant for management
of the states.
Tsenov, etal. Expires May 06, 2009 [Page 5]