10.1. Neighbor states
Connected: An Internet Encyclopedia
10.1. Neighbor states
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 1583
Up:
10. The Neighbor Data Structure
Prev: 10. The Neighbor Data Structure
Next: 10.2. Events causing neighbor state changes
10.1. Neighbor states
10.1. Neighbor states
The state of a neighbor (really, the state of a conversation
being held with a neighboring router) is documented in the
following sections. The states are listed in order of
progressing functionality. For example, the inoperative state
is listed first, followed by a list of intermediate states
before the final, fully functional state is achieved. The
specification makes use of this ordering by sometimes making
references such as "those neighbors/adjacencies in state greater
than X". Figures 12 and 13 show the graph of neighbor state
changes. The arcs of the graphs are labelled with the event
causing the state change. The neighbor events are documented in
Section 10.2.
The graph in Figure 12 shows the state changes effected by the
Hello Protocol. The Hello Protocol is responsible for neighbor
acquisition and maintenance, and for ensuring two way
communication between neighbors.
+----+
|Down|
+----+
| | Start
| +-------+
Hello | +---->|Attempt|
Received | +-------+
| |
+----+<-+ |HelloReceived
|Init|<---------------+
+----+<--------+
| |
|2-Way |1-Way
|Received |Received
| |
+-------+ | +-----+
|ExStart|<--------+------->|2-Way|
+-------+ +-----+
Figure 12: Neighbor state changes (Hello Protocol)
In addition to the state transitions pictured,
Event KillNbr always forces Down State,
Event InactivityTimer always forces Down State,
Event LLDown always forces Down State
The graph in Figure 13 shows the forming of an adjacency. Not
every two neighboring routers become adjacent (see Section
10.4). The adjacency starts to form when the neighbor is in
state ExStart. After the two routers discover their
master/slave status, the state transitions to Exchange. At this
point the neighbor starts to be used in the flooding procedure,
and the two neighboring routers begin synchronizing their
databases. When this synchronization is finished, the neighbor
is in state Full and we say that the two routers are fully
adjacent. At this point the adjacency is listed in link state
advertisements.
For a more detailed description of neighbor state changes,
together with the additional actions involved in each change,
see Section 10.3.
+-------+
|ExStart|
+-------+
|
NegotiationDone|
+->+--------+
|Exchange|
+--+--------+
|
Exchange|
Done |
+----+ | +-------+
|Full|<---------+----->|Loading|
+----+<-+ +-------+
| LoadingDone |
+------------------+
Figure 13: Neighbor state changes (Database Exchange)
In addition to the state transitions pictured,
Event SeqNumberMismatch forces ExStart state,
Event BadLSReq forces ExStart state,
Event 1-Way forces Init state,
Event KillNbr always forces Down State,
Event InactivityTimer always forces Down State,
Event LLDown always forces Down State,
Event AdjOK? leads to adjacency forming/breaking
- Down
-
This is the initial state of a neighbor conversation. It
indicates that there has been no recent information received
from the neighbor. On non-broadcast networks, Hello packets
may still be sent to "Down" neighbors, although at a reduced
frequency (see Section 9.5.1).
- Attempt
-
This state is only valid for neighbors attached to non-
broadcast networks. It indicates that no recent information
has been received from the neighbor, but that a more
concerted effort should be made to contact the neighbor.
This is done by sending the neighbor Hello packets at
intervals of HelloInterval (see Section 9.5.1).
- Init
-
In this state, an Hello packet has recently been seen from
the neighbor. However, bidirectional communication has not
yet been established with the neighbor (i.e., the router
itself did not appear in the neighbor's Hello packet). All
neighbors in this state (or higher) are listed in the Hello
packets sent from the associated interface.
- 2-Way
-
In this state, communication between the two routers is
bidirectional. This has been assured by the operation of
the Hello Protocol. This is the most advanced state short
of beginning adjacency establishment. The (Backup)
Designated Router is selected from the set of neighbors in
state 2-Way or greater.
- ExStart
-
This is the first step in creating an adjacency between the
two neighboring routers. The goal of this step is to decide
which router is the master, and to decide upon the initial
DD sequence number. Neighbor conversations in this state or
greater are called adjacencies.
- Exchange
-
In this state the router is describing its entire link state
database by sending Database Description packets to the
neighbor. Each Database Description Packet has a DD
sequence number, and is explicitly acknowledged. Only one
Database Description Packet is allowed outstanding at any
one time. In this state, Link State Request Packets may
also be sent asking for the neighbor's more recent
advertisements. All adjacencies in Exchange state or
greater are used by the flooding procedure. In fact, these
adjacencies are fully capable of transmitting and receiving
all types of OSPF routing protocol packets.
- Loading
-
In this state, Link State Request packets are sent to the
neighbor asking for the more recent advertisements that have
been discovered (but not yet received) in the Exchange
state.
- Full
-
In this state, the neighboring routers are fully adjacent.
These adjacencies will now appear in router links and
network links advertisements.
Next: 10.2. Events causing neighbor state changes
Connected: An Internet Encyclopedia
10.1. Neighbor states
|