Subject: [Idr] issue 17 - Comments on Connected state

From: "Susan Hares" <[email-masked]>
Date: Mon, 7 Jul 2003 15:44:06 -0400

=========================
issue 17: Connected state comments

issue 17a: Optional timer usage needs to be changed
	   once we decide on timer issues

issue 17b: Editorial change suggested for event 18.

issue 17c: Text for peer oscillation damping, request for revision

  current text: 
	[optionally] performs peer oscillation damping
	if the DampPeerOscillation attribute is set to TRUE

	Is different than the list agreed upon:

    list text: 
  	  [optionally] performs peer oscillation damping
	  if the DampPeerOscillation attribute is set.

    status: I Need working group input. 

issue 17d: BGP initialization 

	BGP initialization is generally specified.
	Specific details are left to the implementations

Status of issues:

	17a: AWaits issues 1-4 resolution
	17b: editorial changes done in fsm-v4
	17c: Awaiting comments 
            17d: Agreed upon with AD

status: 17a - awaits issues 1-4 resolution
	17b - consensus
	17c - awaits mail group comments
	17d - consensus

----------------------
Tom Petch's comments
--------------------

      Connect State:

        If the TCP connection succeeds [Event 16 or
        Event 17], the local system checks the DelayOpen attribute prior
        to processing.  If the DelayOpen attribute is set, the local system:
             - stops the ConnectRetryTimer (if running) and sets the
	       ConnectRetryTimer to zero,
             - sets the Open Delay timer**(OpenDelayTimer) to the initial value, and

[DelayOpenTimer used]

             - stays in the Connect state.
        If the DelayOpen attribute is not set, the local system:
             - stops the ConnectRetryTimer (if running) and sets the
	       ConnectRetryTimer to zero,
             - completes BGP initialization
             - sends an OPEN message to its peer,
             - sets HoldTimer to a large value, and
             - changes its state to OpenSent.

        A hold timer value of 4 minutes is suggested.

[snip...]

        If the TCP connection fails (TCPConnectionFails**? [Event18]),

[clarify] - issue 17b

        the local system checks the OpenDelayTimer.  If the
        OpenDelayTimer is running, the local system:
            - restarts the ConnectRetryTimer with initial value,
            - stops the OpenDelayTimer and resets value to zero,
            - continues to listen for a connection that may be
              initiated by the remote BGP peer, and
            - changes its state to Active.

[snip]

        If BGP message header checking detects an error [Event 21] or
        OPEN message checking detects an error [Event 22] (see section
        6.2), the local system:
           - [optionally] If the SendNOTIFICATIONwithoutOpen attribute 
              is set to TRUE, then the local system first sends
              a NOTIFICATION message with the appropriate error
              code, and then

           - stops the ConnectRetryTimer (if running)
             and sets the ConnectRetryTimer to zero,
           - releases all BGP resources,
           - drops the TCP connection,
           - increments the ConnectRetryCount by 1,
           - [optionally] performs peer oscillation damping
	     if the DampPeerOscillation attribute is set to TRUE, and 

**(clumsy -  we did hammer out on the list that the first line
 of this was enough and I still hold that view, especially now we have so much
 descriptive material at the start on optional attributes - this phrase occurs many times)

[issue 17c] 

           - changes its state to Idle.

        If a NOTIFICATION message is received with a version
        error[Event24], the local system checks the OpenDelayTimer.
        If the OpenDelayTimer is running, the local system:
           - stops the ConnectRetryTimer (if running) 
	     and sets the ConnectRetryTimer to zero,
           - stops and resets the Open Delay timer**(OpenDelayTimer) (sets to zero),
           - releases all BGP resources,
           - drops the TCP connection, and
           - changes its state to Idle.

        If the Open Delay timer**(OpenDelayTimer) is not running, the local system:

[DelayOpenTimer - chosen]

           - stops the ConnectRetryTimer and sets the
	     ConnectRetryTimer to zero,
           - releases all BGP resources,
           - drops the TCP connection,
           - increments the ConnectRetryCount by 1,
           - performs peer oscillation damping if the
	     DampPeerOscillation attribute is set to True, and
           - changes its state to Idle.

       In response to any other events [Events 8,10-11,13,19,23,
       25-28] the local system:
           - if the ConnectRetryTimer is running,
              stops and resets the ConnectRetrytimer (sets to zero),
           - if the Open Delay timer**(OpenDelayTimer) is running,

[DelayOpenTimer - chosen]

              stops and resets the OpenDelayTimer (sets to zero),
           - releases all BGP resources,
           - drops the TCP connection,
           - increments the ConnectRetryCount by 1,
           - performs peer oscillation damping if the 
	     DampPeerOscillation attribute is set to True, and
           - changes its state to Idle.
----------------------------------------
AD-review's comments
----------------------

>         In response to a manual stop event [Event2], the local system:
>            - drops the TCP connection,
>            - releases all BGP resources,
>            - sets ConnectRetryCnt (the connect retry count) to zero
>            - sets the Connect Retry timer to zero, and

Ad reviewer: sets timer to zero? 'Stops the timer' instead?
editor:      Fixed in fsm-v2 and AD-approved.

>            - changes its state to Idle.
...

>         If the BGP port receives a valid TCP connection indication
ad reviewer: BGP port?
editor:      Fixed in FSM-v2 and AD approved

>         [Event 14], the TCP connection is processed and
>         the connection remains in the Connect state.
> 
>         If the TCP connection receives an invalid indication [Event 15]:

AD reiviewer: TCP connection receives?
editor:       fixed in FSM-v2 and AD approved

>         the local system rejects the TCP connection and the connection
>         remains in the Connect state.
> 
>         If the TCP connection succeeds [Event 16 or Event 17],
>         the local system checks the Delay Open flag prior to
>         processing. If the Delay Open flag is set, the local system:
>              - sets the Connect Retry timer to zero,

AD reviewer: "stops" instead?
editor: [accepted] 
 
>              - set the Open Delay timer to the initial value, and

AD reviewer: sets
editor: [accepted] 

>              - stays in the Connect state.
>         If the Delay Open flag is not set, the local system:
>              - sets the Connect Retry timer to zero,
stops

editor: accepted 
>              - completes BGP initialization

AD reiviewer: What does the above really mean?
editor:       see issue 17d
...
>         the Open Delay Timer. If the Open Delay timer is running,
>         the local system:
>             - restarts the connect retry time with initial value,
>             - stops the Open Delay timer and resets value to zero,
>             - continues to listen for a connection that may be
>               initiated by the remote BGP peer, and
>             - changes its state to Active.
>         If the open Delay timer is not running, the local system:
>            - sets the Connect Retry timer to zero,
>            - drops the TCP connection,
>            - releases all BGP resources, and
AD reviewer:   all BGP resources?
editor:        

>            - changes its state to Idle.
> 
>         If an OPEN message is received with the Open Delay timer is
>         running [Event 20], the local system:
>            - sets the Connect Retry timer to zero,
>            - completes the BGP initialization,
What does it mean?

>            - stops and clears the Open Delay timer (sets the value to zero),
>            - sends an OPEN message,
>            - sends a KEEPALIVE message,
>            - If the hold timer value is non-zero,
>                    - start the keepalive timer to inital value,
"starts"... start to initial value?

[accepted, in fsm_v4]

>                    - reset the hold timer to the negotiated value,
Resets
[accept, in fsm_v2] 
>              else if hold timer value is zero,
>                    - reset the keepalive timer, and

resets
[accept in fsm_v2]

>                    - reset the hold timer value to zero
resets
[acept in fsm_v2] 

>            - and changes its state to OpenConfirm.
> 

---------------------------------------------

_______________________________________________
Idr mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/idr