IDLE State
- BGP Always beging with Idle state. All incoming connection in this state will be refused.
- BGP Process initializes all BGP resources.
- Start the ConnectRetry Timer
- Initializes a TCP connection to neighbor
- Listen for TCP initialization from neighbor.
- And changes its state to CONNECT.
CONNECT State
- Waits for TCP connection to complete.
- If TCP conn successful, it will clear ConnectRetry Timer.
- Completes Initialization and sends a OPEN Message to neighbor.
- And changes the state to OPENSENT State.
ACTIVE State
- Keep on trying to initialize a TCP connection to complete neighbor.
- If TCP conn successful, it will clear ConnectRetry Timer.
- Completes Initialization and sends a OPEN Message to neighbor.
- And changes the state to OPENSENT State.
OPENSENT State
- Send OPEN Message and Wait for a OPEN Message from neighbor too.
- Once OPEN received its verifies the fields.
- If any error, sent NOTIFICATION and change to IDLE state.
- If no Error, a KEEPALIVE message is sent and keepalive timer is reset.
- HOLD timer is negotiated by selecting the least value.
- If negotiated HOLD is zero, keepalive and hold timer are not started.
- Determines whether eBGP or iBGP.
- Change the state to OPENCONFIRM.
OPENCONFIRM State
- Waits for either a Keepalive or Notification Message.
- If Keepalive, change the state to ESTABLISHED state
- If Notification, or a TCP disconnect, or HOLD timer expires change to IDLE state.
ESTABLISHED State
- BGP peer connection is fully established and BGP routers can exchange their UPDATE/KEEPALIVE/NOTIFICATION messages.
- If UPDATE or KEEPALIVE Hold Timer is restarted.
- If NOTIFICATION, changed to IDLE state.