📄 rfc2642.txt
字号:
Request packets. (For more information on the synchronization of
databases, see Section 7.)
4.1 Neighbor States
This section describes the various states of a conversation with a
neighbor switch. The states are listed in order of progressing
functionality. For example, the inoperative state is listed first,
followed by a list of the intermediate states through which the
conversation passes before attaining the final, fully functional
state. The specification makes use of this ordering by references
such as "those neighbors/adjacencies in state greater than X".
Figure 2 represents the neighbor state machine. The arrows on the
graph represent the events causing each state change. These events
are described in Section 4.2. The neighbor state machine is
described in detail in Section 4.3.
Down
This is the initial state of a neighbor conversation.
Init
In this state, the neighbor has been discovered, but bidirectional
communication has not yet been established. All neighbors in this
state or higher are listed in the VLS Hello packets sent by the
local switch over the associated (multi-access) interface.
Kane Informational [Page 25]
RFC 2642 Cabletron's VLS Protocol Specification August 1999
+----------+ KillNbr, LLDown, +-----------+
| Down | <--------------------- | any state |
+----------+ or Inactivity Timer +-----------+
|
Hello |
Rcvd |
|
V
+-----< [pt-to-pt?]
| yes |
| | no
| V
| +----------+ 1-Way +----------+
| | Init | <-------- | >= 2-way |
| +----------+ +----------+
| |
| 2-Way |
| Rcvd | +-------+ AdjOK? +------------+
| +----------------> | 2-Way | <------- | >= ExStart |
| | (no adjacency) +-------+ no +------------+
| |
| V
| +---------+ Seq Number Mismatch +-------------+
+----> | ExStart | <--------------------- | >= Exchange |
+---------+ or BadLSReq +-------------+
|
Negotiation |
Done |
V
+----------+
| Exchange |
+----------+
|
Exchange | +--------+
Done +----------------------> | Full |
| (request list empty) +--------+
| ^
V |
+---------+ Loading Done |
| Loading | ----------------------->
+---------+
Figure 2: Neighbor State Machine
Kane Informational [Page 26]
RFC 2642 Cabletron's VLS Protocol Specification August 1999
2-Way
In this state, communication between the two switches is
bidirectional. This is the most advanced state short of beginning
to establish an adjacency. On a multi-access link, the designated
switch and the backup designated switch are selected from the set
of neighbors in state 2-Way or greater.
ExStart
This state indicates that the two switches have begun to establish
an adjacency by determining which switch is the master, as well as
the initial sequence number for Database Descriptor packets.
Neighbor conversations in this state or greater are called
adjacencies.
Exchange
In this state, the switches are exchanging Database Description
packets. (See Section 7.2 for a complete description of this
process.) All adjacencies in the Exchange state or greater are
used by the distribution procedure (see Section 8.2), and are
capable of transmitting and receiving all types of VLSP routing
packets.
Loading
In this state, the local switch is sending Link State Request
packets to the neighbor asking for the more recent advertisements
that were discovered in the Exchange state.
Full
In this state, the two switches are fully adjacent. These
adjacencies will now appear in switch link and network link
advertisements generated for the link.
4.2 Events Causing Neighbor State Changes
The state of a neighbor conversation changes due to neighbor events.
This section describes these events.
Neighbor events are shown as arrows in Figure 2, the graphic
representation of the neighbor state machine. For more information
on the neighbor state machine, see Section 4.3.
Kane Informational [Page 27]
RFC 2642 Cabletron's VLS Protocol Specification August 1999
Hello Received
This event is generated when a Hello packet has been received from
a neighbor.
2-Way Received
This event is generated when the local switch sees its own switch
ID listed in the neighbor's Hello packet, indicating that
bidirectional communication has been established between the two
switches.
Negotiation Done
This event is generated when the master/slave relationship has
been successfully negotiated and initial packet sequence numbers
have been exchanged. This event signals the start of the database
exchange process (see Section 7.2).
Exchange Done
This event is generated when the database exchange process is
complete and both switches have successfully transmitted a full
sequence of Database Description packets. (For more information
on the database exchange process, see Section 7.2.)
BadLSReq
This event is generated when a Link State Request has been
received for a link state advertisement that is not contained in
the database. This event indicates an error in the
synchronization process.
Loading Done
This event is generated when all Link State Updates have been
received for all out-of-date portions of the database. (See
Section 7.3.)
AdjOK?
This event is generated when a decision must be made as to whether
an adjacency will be established or maintained with the neighbor.
This event will initiate some adjacencies and destroy others.
Kane Informational [Page 28]
RFC 2642 Cabletron's VLS Protocol Specification August 1999
Seq Number Mismatch
This event is generated when a Database Description packet has
been received with any of the following conditions:
o The packet contains an unexpected sequence number.
o The packet (unexpectedly) has the Init bit set.
o The packet has a different Options field than was
previously seen.
These conditions all indicate that an error has occurred during
the establishment of the adjacency.
1-Way
This event is generated when bidirectional communication with the
neighbor has been lost. That is, a Hello packet has been received
from the neighbor in which the local switch is not listed.
KillNbr
This event is generated when further communication with the
neighbor is impossible.
Inactivity Timer
This event is generated when the inactivity timer has expired,
indicating that no Hello packets have been received from the
neighbor in SwitchDeadInterval seconds. This timer is used only
on broadcast (multi-access) links.
LLDown
This event is generated by the lower-level switch discovery
protocols and indicates that the neighbor is now unreachable.
4.3 Neighbor State Machine
This section presents a detailed description of the neighbor state
machine.
Neighbor states (see Section 4.1) change as the result of various
events (see Section 4.2). However, the effect of each event can
vary, depending on the current state of the conversation with the
neighbor. For this reason, the state machine described in this
section is organized according to the current neighbor state and the
occurring event. For each state/event pair, the new neighbor state
is listed, along with a description of the required processing.
Kane Informational [Page 29]
RFC 2642 Cabletron's VLS Protocol Specification August 1999
Note that when the neighbor state changes as a result of an interface
Neighbor Change event (see Section 3.2), it may be necessary to rerun
the designated switch selection algorithm. In addition, if the
interface associated with the neighbor conversation is in the DS
state (that is, the local switch is the designated switch), changes
in the neighbor state may cause a new network link advertisement to
be originated (see Section 8.1).
When the neighbor state machine must invoke the interface state
machine, it is invoked as a scheduled task. This simplifies
processing, by ensuring that neither state machine executes
recursively.
State(s): Down
Event: Hello Received
New state: Depends on the interface type
Action:
If the interface type of the associated link is point-to-point,
change the neighbor state to ExStart. Otherwise, change the
neighbor state to Init and start the inactivity timer for the
neighbor. If the timer expires before another Hello packet is
received, the neighbor switch is declared dead.
State(s): Init or greater
Event: Hello Received
New state: No state change
Action:
If the interface type of the associated link is point-to-point,
determine whether this notification is for a different neighbor
than the one previously seen. If so, generate an Interface Down
event for the associated interface, reset the interface type to
broadcast and generate an Interface Up event.
Note: This procedure of generating an Interface Down event and
changing the interface type to broadcast is also executed if the
neighbor for whom the notification was received is running an older
version of the protocol software (see Section 6.1). In previous
versions of the protocol, all interfaces were treated as if they were
broadcast.
If the interface type is broadcast, reset the inactivity timer for
the neighbor.
Kane Informational [Page 30]
RFC 2642 Cabletron's VLS Protocol Specification August 1999
State(s): Init
Event: 2-Way Received
New state: Depends on action routine
Action:
Determine whether an adjacency will be formed with the neighbor
(see Section 6.4). If no adjacency is to be formed, change the
neighbor state to 2-Way.
Otherwise, change the neighbor state to ExStart. Initialize the
sequence number for this neighbor and declare the local switch to
be master for the database exchange process. (See Section 7.2.)
State(s): ExStart
Event: Negotiation Done
New state: Exchange
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -