|
|
10.6. Receiving Database Description Packets
Connected: An Internet Encyclopedia
10.6. Receiving Database Description Packets
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 1583
Up:
10. The Neighbor Data Structure
Prev: 10.5. Receiving Hello Packets
Next: 10.7. Receiving Link State Request Packets
10.6. Receiving Database Description Packets
10.6. Receiving Database Description Packets
This section explains the detailed processing of a received
Database Description Packet. The incoming Database Description
Packet has already been associated with a neighbor and receiving
interface by the generic input packet processing (Section 8.2).
The further processing of the Database Description Packet
depends on the neighbor state. If the neighbor's state is Down
or Attempt the packet should be ignored. Otherwise, if the
state is:
- Init
-
The neighbor state machine should be executed with the event
2-WayReceived. This causes an immediate state change to
either state 2-Way or state ExStart. If the new state is
ExStart, the processing of the current packet should then
continue in this new state by falling through to case
ExStart below.
- 2-Way
-
The packet should be ignored. Database Description Packets
are used only for the purpose of bringing up adjacencies.[7]
- ExStart
-
If the received packet matches one of the following cases,
then the neighbor state machine should be executed with the
event NegotiationDone (causing the state to transition to
Exchange), the packet's Options field should be recorded in
the neighbor structure's Neighbor Options field and the
packet should be accepted as next in sequence and processed
further (see below). Otherwise, the packet should be
ignored.
- The initialize(I), more (M) and master(MS) bits are set,
the contents of the packet are empty, and the neighbor's
Router ID is larger than the router's own. In this case
the router is now Slave. Set the master/slave bit to
slave, and set the DD sequence number to that specified
by the master.
- The initialize(I) and master(MS) bits are off, the
packet's DD sequence number equals the router's own DD
sequence number (indicating acknowledgment) and the
neighbor's Router ID is smaller than the router's own.
In this case the router is Master.
- Exchange
-
If the state of the MS-bit is inconsistent with the
master/slave state of the connection, generate the neighbor
event SeqNumberMismatch and stop processing the packet.
Otherwise:
- If the initialize(I) bit is set, generate the neighbor
event SeqNumberMismatch and stop processing the packet.
- If the packet's Options field indicates a different set
of optional OSPF capabilities than were previously
received from the neighbor (recorded in the Neighbor
Options field of the neighbor structure), generate the
neighbor event SeqNumberMismatch and stop processing the
packet.
- If the router is master, and the packet's DD sequence
number equals the router's own DD sequence number (this
packet is the next in sequence) the packet should be
accepted and its contents processed (below).
- If the router is master, and the packet's DD sequence
number is one less than the router's DD sequence number,
the packet is a duplicate. Duplicates should be
discarded by the master.
- If the router is slave, and the packet's DD sequence
number is one more than the router's own DD sequence
number (this packet is the next in sequence) the packet
should be accepted and its contents processed (below).
- If the router is slave, and the packet's DD sequence
number is equal to the router's DD sequence number, the
packet is a duplicate. The slave must respond to
duplicates by repeating the last Database Description
packet that it had sent.
- Else, generate the neighbor event SeqNumberMismatch and
stop processing the packet.
- Loading or Full
-
In this state, the router has sent and received an entire
sequence of Database Description Packets. The only packets
received should be duplicates (see above). In particular,
the packet's Options field should match the set of optional
OSPF capabilities previously indicated by the neighbor
(stored in the neighbor structure's Neighbor Options field).
Any other packets received, including the reception of a
packet with the Initialize(I) bit set, should generate the
neighbor event SeqNumberMismatch.[8] Duplicates should be
discarded by the master. The slave must respond to
duplicates by repeating the last Database Description packet
that it had sent.
When the router accepts a received Database Description Packet
as the next in sequence the packet contents are processed as
follows. For each link state advertisement listed, the
advertisement's LS type is checked for validity. If the LS type
is unknown (e.g., not one of the LS types 1-5 defined by this
specification), or if this is a AS external advertisement (LS
type = 5) and the neighbor is associated with a stub area,
generate the neighbor event SeqNumberMismatch and stop
processing the packet. Otherwise, the router looks up the
advertisement in its database to see whether it also has an
instance of the link state advertisement. If it does not, or if
the database copy is less recent (see Section 13.1), the link
state advertisement is put on the Link state request list so
that it can be requested (immediately or at some later time) in
Link State Request Packets.
When the router accepts a received Database Description Packet
as the next in sequence, it also performs the following actions,
depending on whether it is master or slave:
- Master
-
Increments the DD sequence number. If the router has
already sent its entire sequence of Database Description
Packets, and the just accepted packet has the more bit (M)
set to 0, the neighbor event ExchangeDone is generated.
Otherwise, it should send a new Database Description to the
slave.
- Slave
-
Sets the DD sequence number to the DD sequence number
appearing in the received packet. The slave must send a
Database Description Packet in reply. If the received
packet has the more bit (M) set to 0, and the packet to be
sent by the slave will also have the M-bit set to 0, the
neighbor event ExchangeDone is generated. Note that the
slave always generates this event before the master.
Next: 10.7. Receiving Link State Request Packets
Connected: An Internet Encyclopedia
10.6. Receiving Database Description Packets
|
|
|
 |

|
 |
|
Protect yourself from cyberstalkers, identity thieves, and those who would snoop on you.
| |
Stop spam from invading your inbox without losing the mail you want. We give you more control over your e-mail than any other service.
| |
Block popups, ads, and malicious scripts while you surf the net through our anonymous proxies.
| |
Participate in Usenet, host your web files, easily send anonymous messages, and more, much more.
| |
All private, all encrypted, all secure, all in an easy to use service, and all for only $5.95 a month!
|
|
Service Details
|
|
 |
|