to. All OSPF packets are associated with a single area. Most
travel a single hop only. Packets travelling over a virtual
link are labelled with the backbone Area ID of 0.0.0.0.
Checksum
The standard IP checksum of the entire contents of the packet,
starting with the OSPF packet header but excluding the 64-bit
authentication field. This checksum is calculated as the 16-bit
one's complement of the one's complement sum of all the 16-bit
words in the packet, excepting the authentication field. If the
packet's length is not an integral number of 16-bit words, the
packet is padded with a byte of zero before checksumming.
AuType
Identifies the authentication scheme to be used for the packet.
Authentication is discussed in Appendix D of the specification.
Consult Appendix D for a list of the currently defined
authentication types.
Authentication
A 64-bit field for use by the authentication scheme.
A.3.2 The Hello packet
Hello packets are OSPF packet type 1. These packets are sent
periodically on all interfaces (including virtual links) in order to
establish and maintain neighbor relationships. In addition, Hello
Packets are multicast on those physical networks having a multicast
or broadcast capability, enabling dynamic discovery of neighboring
routers.
All routers connected to a common network must agree on certain
parameters (Network mask, HelloInterval and RouterDeadInterval).
These parameters are included in Hello packets, so that differences
can inhibit the forming of neighbor relationships. A detailed
explanation of the receive processing for Hello packets is presented
in Section 10.5. The sending of Hello packets is covered in Section
9.5.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | 1 | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HelloInterval | Options | Rtr Pri |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RouterDeadInterval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Designated Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Backup Designated Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Neighbor |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Network mask
The network mask associated with this interface. For example,
if the interface is to a class B network whose third byte is
used for subnetting, the network mask is 0xffffff00.
Options
The optional capabilities supported by the router, as documented
in Section A.2.
HelloInterval
The number of seconds between this router's Hello packets.
Rtr Pri
This router's Router Priority. Used in (Backup) Designated
Router election. If set to 0, the router will be ineligible to
become (Backup) Designated Router.
RouterDeadInterval
The number of seconds before declaring a silent router down.
Designated Router
The identity of the Designated Router for this network, in the
view of the advertising router. The Designated Router is
identified here by its IP interface address on the network. Set
to 0.0.0.0 if there is no Designated Router.
Backup Designated Router
The identity of the Backup Designated Router for this network,
in the view of the advertising router. The Backup Designated
Router is identified here by its IP interface address on the
network. Set to 0.0.0.0 if there is no Backup Designated
Router.
Neighbor
The Router IDs of each router from whom valid Hello packets have
been seen recently on the network. Recently means in the last
RouterDeadInterval seconds.
A.3.3 The Database Description packet
Database Description packets are OSPF packet type 2. These packets
are exchanged when an adjacency is being initialized. They describe
the contents of the topological database. Multiple packets may be
used to describe the database. For this purpose a poll-response
procedure is used. One of the routers is designated to be master,
the other a slave. The master sends Database Description packets
(polls) which are acknowledged by Database Description packets sent
by the slave (responses). The responses are linked to the polls via
the packets' DD sequence numbers.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | 2 | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 | 0 | Options |0|0|0|0|0|I|M|MS
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DD sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+- -+
| A |
+- Link State Advertisement -+
| Header |
+- -+
| |
+- -+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
The format of the Database Description packet is very similar to
both the Link State Request and Link State Acknowledgment packets.
The main part of all three is a list of items, each item describing
a piece of the topological database. The sending of Database
Description Packets is documented in Section 10.8. The reception of
Database Description packets is documented in Section 10.6.
0 These fields are reserved. They must be 0.
Options
The optional capabilities supported by the router, as documented
in Section A.2.
I-bit
The Init bit. When set to 1, this packet is the first in the
sequence of Database Description Packets.
M-bit
The More bit. When set to 1, it indicates that more Database
Description Packets are to follow.
MS-bit
The Master/Slave bit. When set to 1, it indicates that the
router is the master during the Database Exchange process.
Otherwise, the router is the slave.
DD sequence number
Used to sequence the collection of Database Description Packets.
The initial value (indicated by the Init bit being set) should
be unique. The DD sequence number then increments until the
complete database description has been sent.
The rest of the packet consists of a (possibly partial) list of the
topological database's pieces. Each link state advertisement in the
database is described by its link state advertisement header. The
link state advertisement header is documented in Section A.4.1. It
contains all the information required to uniquely identify both the
advertisement and the advertisement's current instance.
A.3.4 The Link State Request packet
Link State Request packets are OSPF packet type 3. After exchanging
Database Description packets with a neighboring router, a router may
find that parts of its topological database are out of date. The
Link State Request packet is used to request the pieces of the
neighbor's database that are more up to date. Multiple Link State
Request packets may need to be used. The sending of Link State
Request packets is the last step in bringing up an adjacency.
A router that sends a Link State Request packet has in mind the
precise instance of the database pieces it is requesting, defined by
LS sequence number, LS checksum, and LS age, although these fields
are not specified in the Link State Request Packet itself. The
router may receive even more recent instances in response.
The sending of Link State Request packets is documented in Section
10.9. The reception of Link State Request packets is documented in
Section 10.7.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | 3 | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Each advertisement requested is specified by its LS type, Link State
ID, and Advertising Router. This uniquely identifies the
advertisement, but not its instance. Link State Request packets are
understood to be requests for the most recent instance (whatever
that might be).
A.3.5 The Link State Update packet
Link State Update packets are OSPF packet type 4. These packets
implement the flooding of link state advertisements. Each Link
State Update packet carries a collection of link state
advertisements one hop further from its origin. Several link state
advertisements may be included in a single packet.
Link State Update packets are multicast on those physical networks
that support multicast/broadcast. In order to make the flooding
procedure reliable, flooded advertisements are acknowledged in Link
State Acknowledgment packets. If retransmission of certain
advertisements is necessary, the retransmitted advertisements are
always carried by unicast Link State Update packets. For more
information on the reliable flooding of link state advertisements,
consult Section 13.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | 4 | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| # advertisements |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+- +-+
| Link state advertisements |
+- +-+
| ... |
# advertisements
The number of link state advertisements included in this update.
The body of the Link State Update packet consists of a list of link
state advertisements. Each advertisement begins with a common 20
byte header, the link state advertisement header. This header is
described in Section A.4.1. Otherwise, the format of each of the
five types of link state advertisements is different. Their formats
are described in Section A.4.
A.3.6 The Link State Acknowledgment packet
Link State Acknowledgment Packets are OSPF packet type 5. To make
the flooding of link state advertisements reliable, flooded
advertisements are explicitly acknowledged. This acknowledgment is
accomplished through the sending and receiving of Link State
Acknowledgment packets. Multiple link state advertisements can be
acknowledged in a single Link State Acknowledgment packet.
Depending on the state of the sending interface and the source of
the advertisements being acknowledged, a Link State Acknowledgment
packet is sent either to the multicast address AllSPFRouters, to the
multicast address AllDRouters, or as a unicast. The sending of Link
State Acknowledgement packets is documented in Section 13.5. The
reception of Link State Acknowledgement packets is documented in
Section 13.7.
The format of this packet is similar to that of the Data Description
packet. The body of both packets is simply a list of link state
advertisement headers.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | 5 | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+- -+
| A |
+- Link State Advertisement -+
| Header |
+- -+
| |
+- -+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Each acknowledged link state advertisement is described by its link
state advertisement header. The link state advertisement header is
documented in Section A.4.1. It contains all the information
required to uniquely identify both the advertisement and the
advertisement's current instance.
A.4 Link state advertisement formats
There are five distinct types of link state advertisements. Each
link state advertisement begins with a standard 20-byte link state
advertisement header. This header is explained in Section A.4.1.
Succeeding sections then diagram the separate link state
advertisement types.
Each link state advertisement describes a piece of the OSPF routing
domain. Every router originates a router links advertisement. In
addition, whenever the router is elected Designated Router, it
originates a network links advertisement. Other types of link state
advertisements may also be originated (see Section 12.4). All link
state advertisements are then flooded throughout the OSPF routing
domain. The flooding algorithm is reliable, ensuring that all
routers have the same collection of link state advertisements. (See
Section 13 for more information concerning the flooding algorithm).
This collection of advertisements is called the link state (or
topological) database.
From the link state database, each router constructs a shortest path
tree with itself as root. This yields a routing table (see Section
11). For the details of the routing table build process, see
Section 16.
A.4.1 The Link State Advertisement header
All link state advertisements begin with a common 20 byte header.
This header contains enough information to uniquely identify the
advertisement (LS type, Link State ID, and Advertising Router).
Multiple instances of the link state advertisement may exist in the
routing domain at the same time. It is then necessary to determine
which instance is more recent. This is accomplished by examining
the LS age, LS sequence number and LS checksum fields that are also
contained in the link state advertisement header.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | LS type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
LS age
The time in seconds since the link state advertisement was
originated.
Options
The optional capabilities supported by the described portion of
the routing domain. OSPF's optional capabilities are documented
in Section A.2.
LS type
The type of the link state advertisement. Each link state type
has a separate advertisement format. The link state types are
as follows (see Section 12.1.3 for further explanation):
LS Type Description
___________________________________
1 Router links
2 Network links
3 Summary link (IP network)
4 Summary link (ASBR)
5 AS external link
Link State ID
This field identifies the portion of the internet environment
that is being described by the advertisement. The contents of
this field depend on the advertisement's LS type. For example,
in network links advertisements the Link State ID is set to the
IP interface address of the network's Designated Router (from
which the network's IP address can be derived). The Link State
ID is further discussed in Section 12.1.4.
Advertising Router
The Router ID of the router that originated the link state
advertisement. For example, in network links advertisements
this field is set to the Router ID of the network's Designated
Router.
LS sequence number
Detects old or duplicate link state advertisements. Successive
instances of a link state advertisement are given successive LS
sequence numbers. See Section 12.1.6 for more details.
LS checksum
The Fletcher checksum of the complete contents of the link state
advertisement, including the link state advertisement header but
excepting the LS age field. See Section 12.1.7 for more details.
length
The length in bytes of the link state advertisement. This
includes the 20 byte link state advertisement header.
A.4.2 Router links advertisements
Router links advertisements are the Type 1 link state
advertisements. Each router in an area originates a router links
advertisement. The advertisement describes the state and cost of
the router's links (i.e., interfaces) to the area. All of the
router's links to the area must be described in a single router
links advertisement. For details concerning the construction of
router links advertisements, see Section 12.4.1.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 |V|E|B| 0 | # links |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | # TOS | TOS 0 metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TOS | 0 | metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TOS | 0 | metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
In router links advertisements, the Link State ID field is set to
the router's OSPF Router ID. The T-bit is set in the
advertisement's Option field if and only if the router is able to
calculate a separate set of routes for each IP TOS. Router links
advertisements are flooded throughout a single area only.
bit V
When set, the router is an endpoint of an active virtual link
that is using the described area as a Transit area (V is for
virtual link endpoint).
bit E
When set, the router is an AS boundary router (E is for
external)
bit B
When set, the router is an area border router (B is for border)
# links
The number of router links described by this advertisement.
This must be the total collection of router links (i.e.,
interfaces) to the area.
The following fields are used to describe each router link (i.e.,
interface). Each router link is typed (see the below Type field).
The Type field indicates the kind of link being described. It may
be a link to a transit network, to another router or to a stub
network. The values of all the other fields describing a router
link depend on the link's Type. For example, each link has an
associated 32-bit data field. For links to stub networks this field
specifies the network's IP address mask. For other link types the
Link Data specifies the router's associated IP interface address.
Type
A quick description of the router link. One of the following.
Note that host routes are classified as links to stub networks
whose network mask is 0xffffffff.
Type Description
__________________________________________________
1 Point-to-point connection to another router
2 Connection to a transit network
3 Connection to a stub network
4 Virtual link
Link ID
Identifies the object that this router link connects to. Value
depends on the link's Type. When connecting to an object that
also originates a link state advertisement (i.e., another router
or a transit network) the Link ID is equal to the neighboring
advertisement's Link State ID. This provides the key for
looking up said advertisement in the link state database. See
Section 12.2 for more details.
Type Link ID
______________________________________
1 Neighboring router's Router ID
2 IP address of Designated Router
3 IP network/subnet number
4 Neighboring router's Router ID
Link Data
Contents again depend on the link's Type field. For connections
to stub networks, it specifies the network's IP address mask.
For unnumbered point-to-point connections, it specifies the
interface's MIB-II [RFC1213] ifIndex value. For the other link
types it specifies the router's associated IP interface address.
This latter piece of information is needed during the routing
table build process, when calculating the IP address of the next
hop. See Section 16.1.1 for more details.
# TOS
The number of different TOS metrics given for this link, not
counting the required metric for TOS 0. For example, if no
additional TOS metrics are given, this field should be set to 0.
TOS 0 metric
The cost of using this router link for TOS 0.
For each link, separate metrics may be specified for each Type of
Service (TOS). The metric for TOS 0 must always be included, and
was discussed above. Metrics for non-zero TOS are described below.
The encoding of TOS in OSPF link state advertisements is described
in Section 12.3. Note that the cost for non-zero TOS values that
are not specified defaults to the TOS 0 cost. Metrics must be
listed in order of increasing TOS encoding. For example, the metric
for TOS 16 must always follow the metric for TOS 8 when both are
specified.
TOS IP Type of Service that this metric refers to. The encoding of
TOS in OSPF link state advertisements is described in Section
12.3.
metric
The cost of using this outbound router link, for traffic of the
specified TOS.
A.4.3 Network links advertisements
Network links advertisements are the Type 2 link state
advertisements. A network links advertisement is originated for
each transit network in the area. A transit network is a multi-
access network that has more than one attached router. The network
links advertisement is originated by the network's Designated
Router. The advertisement describes all routers attached to the
network, including the Designated Router itself. The
advertisement's Link State ID field lists the IP interface address
of the Designated Router.
The distance from the network to all attached routers is zero, for
all Types of Service. This is why the TOS and metric fields need
not be specified in the network links advertisement. For details
concerning the construction of network links advertisements, see
Section 12.4.2.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attached Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Network Mask
The IP address mask for the network. For example, a class A
network would have the mask 0xff000000.
Attached Router
The Router IDs of each of the routers attached to the network.
Actually, only those routers that are fully adjacent to the
Designated Router are listed. The Designated Router includes
itself in this list. The number of routers included can be
deduced from the link state advertisement header's length field.
A.4.4 Summary link advertisements
Summary link advertisements are the Type 3 and 4 link state
advertisements. These advertisements are originated by area border
routers. A separate summary link advertisement is made for each
destination (known to the router) which belongs to the AS, yet is
outside the area. For details concerning the construction of
summary link advertisements, see Section 12.4.3.
Type 3 link state advertisements are used when the destination is an
IP network. In this case the advertisement's Link State ID field is
an IP network number (if necessary, the Link State ID can also have
one or more of the network's "host" bits set; see Appendix F for
details). When the destination is an AS boundary router, a Type 4
advertisement is used, and the Link State ID field is the AS
boundary router's OSPF Router ID. (To see why it is necessary to
advertise the location of each ASBR, consult Section 16.4.) Other
than the difference in the Link State ID field, the format of Type 3
and 4 link state advertisements is identical.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 3 or 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TOS | metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
For stub areas, Type 3 summary link advertisements can also be used
to describe a (per-area) default route. Default summary routes are
used in stub areas instead of flooding a complete set of external
routes. When describing a default summary route, the
advertisement's Link State ID is always set to DefaultDestination
(0.0.0.0) and the Network Mask is set to 0.0.0.0.
Separate costs may be advertised for each IP Type of Service. The
encoding of TOS in OSPF link state advertisements is described in
Section 12.3. Note that the cost for TOS 0 must be included, and is
always listed first. If the T-bit is reset in the advertisement's
Option field, only a route for TOS 0 is described by the
advertisement. Otherwise, routes for the other TOS values are also
described; if a cost for a certain TOS is not included, its cost
defaults to that specified for TOS 0.
Network Mask
For Type 3 link state advertisements, this indicates the
destination network's IP address mask. For example, when
advertising the location of a class A network the value
0xff000000 would be used. This field is not meaningful and must
be zero for Type 4 link state advertisements.
For each specified Type of Service, the following fields are
defined. The number of TOS routes included can be calculated from
the link state advertisement header's length field. Values for TOS
0 must be specified; they are listed first. Other values must be
listed in order of increasing TOS encoding. For example, the cost
for TOS 16 must always follow the cost for TOS 8 when both are
specified.
TOS The Type of Service that the following cost concerns. The
encoding of TOS in OSPF link state advertisements is described
in Section 12.3.
metric
The cost of this route. Expressed in the same units as the
interface costs in the router links advertisements.
A.4.5 AS external link advertisements
AS external link advertisements are the Type 5 link state
advertisements. These advertisements are originated by AS boundary
routers. A separate advertisement is made for each destination
(known to the router) which is external to the AS. For details
concerning the construction of AS external link advertisements, see
Section 12.4.3.
AS external link advertisements usually describe a particular
external destination. For these advertisements the Link State ID
field specifies an IP network number (if necessary, the Link State
ID can also have one or more of the network's "host" bits set; see
Appendix F for details). AS external link advertisements are also
used to describe a default route. Default routes are used when no
specific route exists to the destination. When describing a default
route, the Link State ID is always set to DefaultDestination
(0.0.0.0) and the Network Mask is set to 0.0.0.0.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 5 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E| TOS | metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Forwarding address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| External Route Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Separate costs may be advertised for each IP Type of Service. The
encoding of TOS in OSPF link state advertisements is described in
Section 12.3. Note that the cost for TOS 0 must be included, and is
always listed first. If the T-bit is reset in the advertisement's
Option field, only a route for TOS 0 is described by the
advertisement. Otherwise, routes for the other TOS values are also
described; if a cost for a certain TOS is not included, its cost
defaults to that specified for TOS 0.
Network Mask
The IP address mask for the advertised destination. For
example, when advertising a class A network the mask 0xff000000
would be used.
For each specified Type of Service, the following fields are
defined. The number of TOS routes included can be calculated from
the link state advertisement header's length field. Values for TOS
0 must be specified; they are listed first. Other values must be
listed in order of increasing TOS encoding. For example, the cost
for TOS 16 must always follow the cost for TOS 8 when both are
specified.
bit E
The type of external metric. If bit E is set, the metric
specified is a Type 2 external metric. This means the metric is
considered larger than any link state path. If bit E is zero,
the specified metric is a Type 1 external metric. This means
that is is comparable directly (without translation) to the link
state metric.
Forwarding address
Data traffic for the advertised destination will be forwarded to
this address. If the Forwarding address is set to 0.0.0.0, data
traffic will be forwarded instead to the advertisement's
originator (i.e., the responsible AS boundary router).
TOS The Type of Service that the following cost concerns. The
encoding of TOS in OSPF link state advertisements is described
in Section 12.3.
metric
The cost of this route. Interpretation depends on the external
type indication (bit E above).
External Route Tag
A 32-bit field attached to each external route. This is not
used by the OSPF protocol itself. It may be used to communicate
information between AS boundary routers; the precise nature of
such information is outside the scope of this specification.
B. Architectural Constants
Several OSPF protocol parameters have fixed architectural values.
These parameters have been referred to in the text by names such as
LSRefreshTime. The same naming convention is used for the
configurable protocol parameters. They are defined in Appendix C.
The name of each architectural constant follows, together with its
value and a short description of its function.
LSRefreshTime
The maximum time between distinct originations of any particular
link state advertisement. When the LS age field of one of the
router's self-originated advertisements reaches the value
LSRefreshTime, a new instance of the link state advertisement is
originated, even though the contents of the advertisement (apart
from the link state header) will be the same. The value of
LSRefreshTime is set to 30 minutes.
MinLSInterval
The minimum time between distinct originations of any particular
link state advertisement. The value of MinLSInterval is set to
5 seconds.
MaxAge
The maximum age that a link state advertisement can attain. When
an advertisement's LS age field reaches MaxAge, it is reflooded
in an attempt to flush the advertisement from the routing domain
(See Section 14). Advertisements of age MaxAge are not used in
the routing table calculation. The value of MaxAge must be
greater than LSRefreshTime. The value of MaxAge is set to 1
hour.
CheckAge
When the age of a link state advertisement (that is contained in
the link state database) hits a multiple of CheckAge, the
advertisement's checksum is verified. An incorrect checksum at
this time indicates a serious error. The value of CheckAge is
set to 5 minutes.
MaxAgeDiff
The maximum time dispersion that can occur, as a link state
advertisement is flooded throughout the AS. Most of this time
is accounted for by the link state advertisements sitting on
router output queues (and therefore not aging) during the
flooding process. The value of MaxAgeDiff is set to 15 minutes.
LSInfinity
The metric value indicating that the destination described by a
link state advertisement is unreachable. Used in summary link
advertisements and AS external link advertisements as an
alternative to premature aging (see Section 14.1). It is defined
to be the 24-bit binary value of all ones: 0xffffff.
DefaultDestination
The Destination ID that indicates the default route. This route
is used when no other matching routing table entry can be found.
The default destination can only be advertised in AS external
link advertisements and in stub areas' type 3 summary link
advertisements. Its value is the IP address 0.0.0.0.
C. Configurable Constants
The OSPF protocol has quite a few configurable parameters. These
parameters are listed below. They are grouped into general
functional categories (area parameters, interface parameters, etc.).
Sample values are given for some of the parameters.
Some parameter settings need to be consistent among groups of
routers. For example, all routers in an area must agree on that
area's parameters, and all routers attached to a network must agree
on that network's IP network number and mask.
Some parameters may be determined by router algorithms outside of
this specification (e.g., the address of a host connected to the
router via a SLIP line). From OSPF's point of view, these items are
still configurable.
C.1 Global parameters
In general, a separate copy of the OSPF protocol is run for each
area. Because of this, most configuration parameters are
defined on a per-area basis. The few global configuration
parameters are listed below.
Router ID
This is a 32-bit number that uniquely identifies the router
in the Autonomous System. One algorithm for Router ID
assignment is to choose the largest or smallest IP address
assigned to the router. If a router's OSPF Router ID is
changed, the router's OSPF software should be restarted
before the new Router ID takes effect. Before restarting in
order to change its Router ID, the router should flush its
self-originated link state advertisements from the routing
domain (see Section 14.1), or they will persist for up to
MaxAge minutes.
TOS capability
This item indicates whether the router will calculate
separate routes based on TOS. For more information, see
Sections 4.5 and 16.9.
C.2 Area parameters
All routers belonging to an area must agree on that area's
configuration. Disagreements between two routers will lead to
an inability for adjacencies to form between them, with a
resulting hindrance to the flow of routing protocol and data
traffic. The following items must be configured for an area:
Area ID
This is a 32-bit number that identifies the area. The Area
ID of 0.0.0.0 is reserved for the backbone. If the area
represents a subnetted network, the IP network number of the
subnetted network may be used for the Area ID.
List of address ranges
An OSPF area is defined as a list of address ranges. Each
address range consists of the following items:
[IP address, mask]
Describes the collection of IP addresses contained
in the address range. Networks and hosts are
assigned to an area depending on whether their
addresses fall into one of the area's defining
address ranges. Routers are viewed as belonging to
multiple areas, depending on their attached
networks' area membership.
Status Set to either Advertise or DoNotAdvertise. Routing
information is condensed at area boundaries.
External to the area, at most a single route is
advertised (via a summary link advertisement) for
each address range. The route is advertised if and
only if the address range's Status is set to
Advertise. Unadvertised ranges allow the existence
of certain networks to be intentionally hidden from
other areas. Status is set to Advertise by default.
As an example, suppose an IP subnetted network is to be its
own OSPF area. The area would be configured as a single
address range, whose IP address is the address of the
subnetted network, and whose mask is the natural class A, B,
or C address mask. A single route would be advertised
external to the area, describing the entire subnetted
network.
AuType
Each area can be configured for a separate type of
authentication. See Appendix D for a discussion of the
defined authentication types.
ExternalRoutingCapability
Whether AS external advertisements will be flooded
into/throughout the area. If AS external advertisements are
excluded from the area, the area is called a "stub".
Internal to stub areas, routing to external destinations
will be based solely on a default summary route. The
backbone cannot be configured as a stub area. Also, virtual
links cannot be configured through stub areas. For more
information, see Section 3.6.
StubDefaultCost
If the area has been configured as a stub area, and the
router itself is an area border router, then the
StubDefaultCost indicates the cost of the default summary
link that the router should advertise into the area. There
can be a separate cost configured for each IP TOS. See
Section 12.4.3 for more information.
C.3 Router interface parameters
Some of the configurable router interface parameters (such as IP
interface address and subnet mask) actually imply properties of
the attached networks, and therefore must be consistent across
all the routers attached to that network. The parameters that
must be configured for a router interface are:
IP interface address
The IP protocol address for this interface. This uniquely
identifies the router over the entire internet. An IP
address is not required on serial lines. Such a serial line
is called "unnumbered".
IP interface mask
Also referred to as the subnet mask, this indicates the
portion of the IP interface address that identifies the
attached network. Masking the IP interface address with the
IP interface mask yields the IP network number of the
attached network. On point-to-point networks and virtual
links, the IP interface mask is not defined. On these
networks, the link itself is not assigned an IP network
number, and so the addresses of each side of the link are
assigned independently, if they are assigned at all.
Interface output cost(s)
The cost of sending a packet on the interface, expressed in
the link state metric. This is advertised as the link cost
for this interface in the router's router links
advertisement. There may be a separate cost for each IP
Type of Service. The interface output cost(s) must always
be greater than 0.
RxmtInterval
The number of seconds between link state advertisement
retransmissions, for adjacencies belonging to this
interface. Also used when retransmitting Database
Description and Link State Request Packets. This should be
well over the expected round-trip delay between any two
routers on the attached network. The setting of this value
should be conservative or needless retransmissions will
result. It will need to be larger on low speed serial lines
and virtual links. Sample value for a local area network: 5
seconds.
InfTransDelay
The estimated number of seconds it takes to transmit a Link
State Update Packet over this interface. Link state
advertisements contained in the update packet must have
their age incremented by this amount before transmission.
This value should take into account the transmission and
propagation delays of the interface. It must be greater
than 0. Sample value for a local area network: 1 second.
Router Priority
An 8-bit unsigned integer. When two routers attached to a
network both attempt to become Designated Router, the one
with the highest Router Priority takes precedence. If there
is still a tie, the router with the highest Router ID takes
precedence. A router whose Router Priority is set to 0 is
ineligible to become Designated Router on the attached
network. Router Priority is only configured for interfaces
to multi-access networks.
HelloInterval
The length of time, in seconds, between the Hello Packets
that the router sends on the interface. This value is
advertised in the router's Hello Packets. It must be the
same for all routers attached to a common network. The
smaller the HelloInterval, the faster topological changes
will be detected, but more OSPF routing protocol traffic
will ensue. Sample value for a X.25 PDN network: 30
seconds. Sample value for a local area network: 10 seconds.
RouterDeadInterval
After ceasing to hear a router's Hello Packets, the number
of seconds before its neighbors declare the router down.
This is also advertised in the router's Hello Packets in
their RouterDeadInterval field. This should be some
multiple of the HelloInterval (say 4). This value again
must be the same for all routers attached to a common
network.
Authentication key
This configured data allows the authentication procedure to
generate and/or verify the authentication field in the OSPF
header. This value again must be the same for all routers
attached to a common network. For example, if the AuType
indicates simple password, the Authentication key would be a
64-bit password. This key would be inserted directly into
the OSPF header when originating routing protocol packets.
There could be a separate password for each network.
C.4 Virtual link parameters
Virtual links are used to restore/increase connectivity of the
backbone. Virtual links may be configured between any pair of
area border routers having interfaces to a common (non-backbone)
area. The virtual link appears as an unnumbered point-to-point
link in the graph for the backbone. The virtual link must be
configured in both of the area border routers.
A virtual link appears in router links advertisements (for the
backbone) as if it were a separate router interface to the
backbone. As such, it has all of the parameters associated with
a router interface (see Section C.3). Although a virtual link
acts like an unnumbered point-to-point link, it does have an
associated IP interface address. This address is used as the IP
source in OSPF protocol packets it sends along the virtual link,
and is set dynamically during the routing table build process.
Interface output cost is also set dynamically on virtual links
to be the cost of the intra-area path between the two routers.
The parameter RxmtInterval must be configured, and should be
well over the expected round-trip delay between the two routers.
This may be hard to estimate for a virtual link; it is better to
err on the side of making it too large. Router Priority is not
used on virtual links.
A virtual link is defined by the following two configurable
parameters: the Router ID of the virtual link's other endpoint,
and the (non-backbone) area through which the virtual link runs
(referred to as the virtual link's Transit area). Virtual links
cannot be configured through stub areas.
C.5 Non-broadcast, multi-access network parameters
OSPF treats a non-broadcast, multi-access network much like it
treats a broadcast network. Since there may be many routers
attached to the network, a Designated Router is selected for the
network. This Designated Router then originates a networks
links advertisement, which lists all routers attached to the
non-broadcast network.
However, due to the lack of broadcast capabilities, it is
necessary to use configuration parameters in the Designated
Router selection. These parameters need only be configured in
those routers that are themselves eligible to become Designated
Router (i.e., those router's whose Router Priority for the
network is non-zero):
List of all other attached routers
The list of all other routers attached to the non-broadcast
network. Each router is listed by its IP interface address
on the network. Also, for each router listed, that router's
eligibility to become Designated Router must be defined.
When an interface to a non-broadcast network comes up, the
router sends Hello Packets only to those neighbors eligible