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

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/