--- 1/draft-ietf-idr-bgp4-22.txt 2006-02-04 23:30:24.000000000 +0100 +++ 2/draft-ietf-idr-bgp4-23.txt 2006-02-04 23:30:24.000000000 +0100 @@ -1,21 +1,21 @@ Network Working Group Y. Rekhter INTERNET DRAFT Juniper Networks T. Li Procket Networks, Inc. S. Hares NextHop Technologies, Inc. Editors A Border Gateway Protocol 4 (BGP-4) - + Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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. @@ -719,22 +719,23 @@ of the field fall on an octet boundary. Note that the value of trailing bits is irrelevant. Total Path Attribute Length: This 2-octet unsigned integer indicates the total length of the Path Attributes field in octets. Its value allows the length of the Network Layer Reachability field to be determined as speci- fied below. - A value of 0 indicates that no Network Layer Reachability - Information field is present in this UPDATE message. + A value of 0 indicates that neither the Network Layer Reacha- + bility Information field, nor the Path Attribute field is + present in this UPDATE message. Path Attributes: A variable length sequence of path attributes is present in every UPDATE message, except for an UPDATE message that carries only the withdrawn routes. Each path attribute is a triple of variable length. Attribute Type is a two-octet field that consists of the @@ -747,22 +748,22 @@ | Attr. Flags |Attr. Type Code| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The high-order bit (bit 0) of the Attribute Flags octet is the Optional bit. It defines whether the attribute is optional (if set to 1) or well-known (if set to 0). The second high-order bit (bit 1) of the Attribute Flags octet is the Transitive bit. It defines whether an optional attribute is transitive (if set to 1) or non-transitive (if set to 0). - For well-known attributes, the Transitive bit MUST be set to 1. + For well-known attributes, the Transitive bit MUST be set to 1. (See Section 5 for a discussion of transitive attributes.) The third high-order bit (bit 2) of the Attribute Flags octet is the Partial bit. It defines whether the information con- tained in the optional transitive attribute is partial (if set to 1) or complete (if set to 0). For well-known attributes and for optional non-transitive attributes the Partial bit MUST be set to 0. The fourth high-order bit (bit 3) of the Attribute Flags octet @@ -1722,21 +1723,21 @@ group 1: DelayOpen, DelayOpenTime, DelayOpenTimer group 2: DampPeerOscillations, IdleHoldTime, IdleHoldTimer The first parameter (DelayOpen, DampPeerOscillations) is an optional attribute that indicates that the Timer function is active. The "Time" value specifies the initial value for "Timer" (DelayOpenTime, IdleHoldTime). The "Timer" specifies the actual timer. Please refer to section 8.1.1 for an explanation of the interaction between these optional attributes and the events - signaled to the state machine. Section 8.2.1.4 also provides + signaled to the state machine. Section 8.2.1.3 also provides a short overview of the different types of optional attributes (flags or timers). 8.1 Events for the BGP FSM 8.1.1 Optional Events linked to Optional Session attributes The Inputs to the BGP FSM are events. Events can either be mandatory or optional. Some optional events are linked to optional session attributes. Optional session attributes enable @@ -1781,21 +1782,21 @@ how long the BGP peer is held in the Idle state prior to allowing the next automatic restart. The IdleHoldTimer is the timer that runs to hold the peer in Idle state. An example of DampPeerOscillations logic is an increase of the IdleHoldTime value if a BGP peer oscillates connectivity (connected/disconnected) repeatedly within a time period. To engage this - logic, a peer could connected and disconnect + logic, a peer could connect and disconnect 10 times within 5 minutes. The IdleHoldTime value would be reset from 0 to 120 seconds. Values: TRUE or FALSE Option 2: AllowAutomaticStop Description: This BGP peer session optional attribute indicates that the BGP connection allows "automatic" stopping of the BGP connection. @@ -1811,21 +1812,21 @@ Description: The DampPeerOscillations optional session attribute indicates that this BGP connection is using logic that damps BGP peer oscillations in the Idle State. Value: TRUE or FALSE Option 4: IdleHoldTime Description: The IdleHoldTime is the value - that is set in the IdleHoldtimer. + that is set in the IdleHoldTimer. Values: Time in seconds Option 5: IdleHoldTimer Description: The IdleHoldTimer aids in controlling BGP peer oscillation. The IdleHoldTimer is used to keep the BGP peer in Idle for a particular duration. The IdleHoldTimer_Expires event is described in section 8.1.3. @@ -1899,22 +1900,23 @@ Option 2: DelayOpenTime Description: The DelayOpenTime is the initial value that is set in the DelayOpenTimer. Value: Time in seconds Option 3: DelayOpenTimer Description: The DelayOpenTimer optional session attribute - specifies a time that the local system will wait - prior to sending an OPEN message on the connection. + is used to delay the sending of an OPEN message + on a connection. The DelayOpenTimer_Expires event + (Event 12) is described in section 8.1.3. Value: Time in seconds Option 4: SendNOTIFICATIONwithoutOPEN Description: The SendNOTIFICATIONwithoutOPEN allows a peer to send a NOTIFICATION without first sending an OPEN message. Without this optional session attribute, the BGP connection assumes that an OPEN message must be sent by a peer prior @@ -2417,37 +2418,37 @@ tion that is closed SHOULD be disposed of. 8.2.1.3 FSM and Optional Session Attributes Optional Session Attributes specify either attributes that act as flags (TRUE or FALSE) or optional timers. For optional attributes that act as flags, if the optional session attribute can be set to TRUE on the system, the corresponding the BGP FSM actions must be supported. For example, if the following options can be set in a BGP implementation: AutoStart and - PassiveTCPEstablishment, then the events 3, 4 and 5 must be + PassiveTcpEstablishment, then the events 3, 4 and 5 must be supported. If an Optional Session attribute cannot be set to TRUE, the events supporting that set of options do not have to be supported. Each of the optional timers (DelayOpenTimer and IdleHoldTimer), has a group of attributes that are: - flag indicating support, - Time set in Timer - Timer. The two optional timers show this format: DelayOpenTimer: DelayOpen, DelayOpenTime, DelayOpenTimer IdleHoldTimer: DampPeerOscillations, IdleHoldTime, - IdleHoldTmer + IdleHoldTimer If the flag indicating support for an optional timer (DelayOpen or DampPeerOscillations), cannot be set to TRUE, the timers and events supporting that option do not have to be supported. 8.2.1.4 FSM Event numbers The Event numbers (1-28) utilized in this state machine description aid in specifying the behavior of the BGP state machine. Implementa- @@ -2570,21 +2571,21 @@ - sends an OPEN message to its peer, - sets HoldTimer to a large value, and - changes its state to OpenSent. A HoldTimer value of 4 minutes is suggested. If the TCP connection fails (Event18), the local system checks the DelayOpenTimer. If the DelayOpenTimer is running, the local system: - restarts the ConnectRetryTimer with initial value, - - stops the DelayOpenTimer and resets value to zero, + - stops the DelayOpenTimer and resets its 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 DelayOpenTimer is not running, the local system: - stops the ConnectRetryTimer to zero, - drops the TCP connection, - releases all BGP resources, and - changes its state to Idle. @@ -2681,21 +2682,21 @@ - changes its state to Idle. In response to a ConnectRetryTimer_Expires event (Event 9), the local system: - restarts the ConnectRetryTimer (with initial value), - initiates a TCP connection to the other BGP peer, - continues to listen for TCP connection that may be initiated by remote BGP peer, and - changes its state to Connect. - If the local system receives a DelayOpenTimer_Expired event + If the local system receives a DelayOpenTimer_Expires event (Event 12), the local system: - sets the ConnectRetryTimer to zero, - stops and clears the DelayOpenTimer (set to zero), - completes the BGP initialization, - sends the OPEN message to its remote peer, - sets its hold timer to a large value, and - changes its state to OpenSent. A HoldTimer value of 4 minutes is also suggested for this state transition. @@ -3140,21 +3141,21 @@ - sets the ConnectRetryTimer to zero, - deletes all routes associated with this connection, - releases all BGP resources, - drops the TCP connection, - increments ConnectRetryCounter by 1, - (optionally) performs peer oscillation damping if the DampPeerOscillations is set to TRUE, and - changes its state to Idle. If the local system receives a NOTIFICATION message - (Event24 or Event 25) or a TcpConnectionsFails (Event18) + (Event24 or Event 25) or a TcpConnectionFails (Event18) from the underlying TCP, it: - sets the ConnectRetryTimer to zero, - deletes all routes associated with this connection, - releases all the BGP resources, - drops the TCP connection, - increments the ConnectRetryCounter by 1, - changes its state to Idle. If the local system receives a KEEPALIVE message (Event 26), the local system: