summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc1247.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc1247.txt')
-rw-r--r--doc/rfc/rfc1247.txt10585
1 files changed, 10585 insertions, 0 deletions
diff --git a/doc/rfc/rfc1247.txt b/doc/rfc/rfc1247.txt
new file mode 100644
index 0000000..1bbc60a
--- /dev/null
+++ b/doc/rfc/rfc1247.txt
@@ -0,0 +1,10585 @@
+
+
+
+
+Network Working Group J. Moy
+Request for Comments: 1247 Proteon, Inc.
+Obsoletes: RFC 1131 July 1991
+
+
+ OSPF Version 2
+
+
+
+Status of this Memo
+
+This RFC specifies an IAB standards track protocol for the Internet
+community, and requests discussion and suggestions for improvements.
+Please refer to the current edition of the ``IAB Official Protocol
+Standards'' for the standardization state and status of this protocol.
+Distribution of this memo is unlimited.
+
+
+Abstract
+
+This memo documents version 2 of the OSPF protocol. OSPF is a link-
+state based routing protocol. It is designed to be run internal to a
+single Autonomous System. Each OSPF router maintains an identical
+database describing the Autonomous System's topology. From this
+database, a routing table is calculated by constructing a shortest-path
+tree.
+
+OSPF recalculates routes quickly in the face of topological changes,
+utilizing a minimum of routing protocol traffic. OSPF provides support
+for equal-cost multipath. Separate routes can be calculated for each IP
+type of service. An area routing capability is provided, enabling an
+additional level of routing protection and a reduction in routing
+protocol traffic. In addition, all OSPF routing protocol exchanges are
+authenticated.
+
+Version 1 of the OSPF protocol was documented in RFC 1131. The
+differences between the two versions are explained in Appendix F.
+
+Please send comments to ospf@trantor.umd.edu.
+
+
+1. Introduction
+
+This document is a specification of the Open Shortest Path First (OSPF)
+internet routing protocol. OSPF is classified as an Internal Gateway
+Protocol (IGP). This means that it distributes routing information
+between routers belonging to a single Autonomous System. The OSPF
+protocol is based on SPF or link-state technology. This is a departure
+
+
+
+[Moy] [Page 1]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+from the Bellman-Ford base used by traditional internet routing
+protocols.
+
+The OSPF protocol was developed by the OSPF working group of the
+Internet Engineering Task Force. It has been designed expressly for the
+internet environment, including explicit support for IP subnetting,
+TOS-based routing and the tagging of externally-derived routing
+information. OSPF also provides for the authentication of routing
+updates, and utilizes IP multicast when sending/receiving the updates.
+In addition, much work has been done to produce a protocol that responds
+quickly to topology changes, yet involves small amounts of routing
+protocol traffic.
+
+The author would like to thank Rob Coltun, Milo Medin, Mike Petry and
+the rest of the OSPF working group for the ideas and support they have
+given to this project.
+
+
+1.1 Protocol overview
+
+OSPF routes IP packets based solely on the destination IP address and IP
+Type of Service found in the IP packet header. IP packets are routed
+"as is" -- they are not encapsulated in any further protocol headers as
+they transit the Autonomous System. OSPF is a dynamic routing protocol.
+It quickly detects topological changes in the AS (such as router
+interface failures) and calculates new loop-free routes after a period
+of convergence. This period of convergence is short and involves a
+minimum of routing traffic.
+
+In an SPF-based routing protocol, each router maintains a database
+describing the Autonomous System's topology. Each participating router
+has an identical database. Each individual piece of this database is a
+particular router's local state (e.g., the router's usable interfaces
+and reachable neighbors). The router distributes its local state
+throughout the Autonomous System by flooding.
+
+All routers run the exact same algorithm, in parallel. From the
+topological database, each router constructs a tree of shortest paths
+with itself as root. This shortest-path tree gives the route to each
+destination in the Autonomous System. Externally derived routing
+information appears on the tree as leaves.
+
+OSPF calculates separate routes for each Type of Service (TOS). When
+several equal-cost routes to a destination exist, traffic is distributed
+equally among them. The cost of a route is described by a single
+dimensionless metric.
+
+OSPF allows sets of networks to be grouped together. Such a grouping is
+
+
+
+[Moy] [Page 2]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+called an area. The topology of an area is hidden from the rest of the
+Autonomous System. This information hiding enables a significant
+reduction in routing traffic. Also, routing within the area is
+determined only by the area's own topology, lending the area protection
+from bad routing data. An area is a generalization of an IP subnetted
+network.
+
+OSPF enables the flexible configuration of IP subnets. Each route
+distributed by OSPF has a destination and mask. Two different subnets
+of the same IP network number may have different sizes (i.e., different
+masks). This is commonly referred to as variable length subnets. A
+packet is routed to the best (i.e., longest or most specific) match.
+Host routes are considered to be subnets whose masks are "all ones"
+(0xffffffff).
+
+All OSPF protocol exchanges are authenticated. This means that only
+trusted routers can participate in the Autonomous System's routing. A
+variety of authentication schemes can be used; a single authentication
+scheme is configured for each area. This enables some areas to use much
+stricter authentication than others.
+
+Externally derived routing data (e.g., routes learned from the Exterior
+Gateway Protocol (EGP)) is passed transparently throughout the
+Autonomous System. This externally derived data is kept separate from
+the OSPF protocol's link state data. Each external route can also be
+tagged by the advertising router, enabling the passing of additional
+information between routers on the boundaries of the Autonomous System.
+
+
+1.2 Definitions of commonly used terms
+
+Here is a collection of definitions for terms that have a specific
+meaning to the protocol and that are used throughout the text. The
+reader unfamiliar with the Internet Protocol Suite is referred to [RS-
+85-153] for an introduction to IP.
+
+
+Router
+ A level three Internet Protocol packet switch. Formerly called a
+ gateway in much of the IP literature.
+
+Autonomous System
+ A group of routers exchanging routing information via a common
+ routing protocol. Abbreviated as AS.
+
+Internal Gateway Protocol
+ The routing protocol spoken by the routers belonging to an
+ Autonomous system. Abbreviated as IGP. Each Autonomous System has
+
+
+
+[Moy] [Page 3]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ a single IGP. Different Autonomous Systems may be running different
+ IGPs.
+
+Router ID
+ A 32-bit number assigned to each router running the OSPF protocol.
+ This number uniquely identifies the router within an Autonomous
+ System.
+
+Network
+ In this paper, an IP network or subnet. It is possible for one
+ physical network to be assigned multiple IP network/subnet numbers.
+ We consider these to be separate networks. Point-to-point physical
+ networks are an exception - they are considered a single network no
+ matter how many (if any at all) IP network/subnet numbers are
+ assigned to them.
+
+Network mask
+ A 32-bit number indicating the range of IP addresses residing on a
+ single IP network/subnet. This specification displays network masks
+ as hexadecimal numbers. For example, the network mask for a class C
+ IP network is displayed as 0xffffff00. Such a mask is often
+ displayed elsewhere in the literature as 255.255.255.0.
+
+Multi-access networks
+ Those physical networks that support the attachment of multiple
+ (more than two) routers. Each pair of routers on such a network is
+ assumed to be able to communicate directly (e.g., multi-drop
+ networks are excluded).
+
+Interface
+ The connection between a router and one of its attached networks.
+ An interface has state information associated with it, which is
+ obtained from the underlying lower level protocols and the routing
+ protocol itself. An interface to a network has associated with it a
+ single IP address and mask (unless the network is an unnumbered
+ point-to-point network). An interface is sometimes also referred to
+ as a link.
+
+Neighboring routers
+ Two routers that have interfaces to a common network. On multi-
+ access networks, neighbors are dynamically discovered by OSPF's
+ Hello Protocol.
+
+Adjacency
+ A relationship formed between selected neighboring routers for the
+ purpose of exchanging routing information. Not every pair of
+ neighboring routers become adjacent.
+
+
+
+
+[Moy] [Page 4]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Link state advertisement
+ Describes to the local state of a router or network. This includes
+ the state of the router's interfaces and adjacencies. Each link
+ state advertisement is flooded throughout the routing domain. The
+ collected link state advertisements of all routers and networks
+ forms the protocol's topological database.
+
+Hello protocol
+ The part of the OSPF protocol used to establish and maintain
+ neighbor relationships. On multi-access networks the Hello protocol
+ can also dynamically discover neighboring routers.
+
+Designated Router
+ Each multi-access network that has at least two attached routers has
+ a Designated Router. The Designated Router generates a link state
+ advertisement for the multi-access network and has other special
+ responsibilities in the running of the protocol. The Designated
+ Router is elected by the Hello Protocol.
+
+ The Designated Router concept enables a reduction in the number of
+ adjacencies required on a multi-access network. This in turn
+ reduces the amount of routing protocol traffic and the size of the
+ topological database.
+
+Lower-level protocols
+ The underlying network access protocols that provide services to the
+ Internet Protocol and in turn the OSPF protocol. Examples of these
+ are the X.25 packet and frame levels for PDNs, and the ethernet data
+ link layer for ethernets.
+
+
+1.3 Brief history of SPF-based routing technology
+
+OSPF is an SPF-based routing protocol. Such protocols are also referred
+to in the literature as link-state or distributed-database protocols.
+This section gives a brief description of the developments in SPF-based
+technology that have influenced the OSPF protocol.
+
+The first SPF-based routing protocol was developed for use in the
+ARPANET packet switching network. This protocol is described in
+[McQuillan]. It has formed the starting point for all other SPF-based
+protocols. The homogeneous Arpanet environment, i.e., single-vendor
+packet switches connected by synchronous serial lines, simplified the
+design and implementation of the original protocol.
+
+Modifications to this protocol were proposed in [Perlman]. These
+modifications dealt with increasing the fault tolerance of the routing
+protocol through, among other things, adding a checksum to the link
+
+
+
+[Moy] [Page 5]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+state advertisements (thereby detecting database corruption). The paper
+also included means for reducing the routing traffic overhead in an
+SPF-based protocol. This was accomplished by introducing mechanisms
+which enabled the interval between link state advertisements to be
+increased by an order of magnitude.
+
+An SPF-based algorithm has also been proposed for use as an ISO IS-IS
+routing protocol. This protocol is described in [DEC]. The protocol
+includes methods for data and routing traffic reduction when operating
+over broadcast networks. This is accomplished by election of a
+Designated Router for each broadcast network, which then originates a
+link state advertisement for the network.
+
+The OSPF subcommittee of the IETF has extended this work in developing
+the OSPF protocol. The Designated Router concept has been greatly
+enhanced to further reduce the amount of routing traffic required.
+Multicast capabilities are utilized for additional routing bandwidth
+reduction. An area routing scheme has been developed enabling
+information hiding/protection/reduction. Finally, the algorithm has
+been modified for efficient operation in the internet environment.
+
+
+1.4 Organization of this document
+
+The first three sections of this specification give a general overview
+of the protocol's capabilities and functions. Sections 4-16 explain the
+protocol's mechanisms in detail. Packet formats, protocol constants,
+configuration items and required management statistics are specified in
+the appendices.
+
+Labels such as HelloInterval encountered in the text refer to protocol
+constants. They may or may not be configurable. The architectural
+constants are explained in Appendix B. The configurable constants are
+explained in Appendix C.
+
+The detailed specification of the protocol is presented in terms of data
+structures. This is done in order to make the explanation more precise.
+Implementations of the protocol are required to support the
+functionality described, but need not use the precise data structures
+that appear in this paper.
+
+
+2. The Topological Database
+
+The database of the Autonomous System's topology describes a directed
+graph. The vertices of the graph consist of routers and networks. A
+graph edge connects two routers when they are attached via a physical
+point-to-point network. An edge connecting a router to a network
+
+
+
+[Moy] [Page 6]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+indicates that the router has an interface on the network.
+
+The vertices of the graph can be further typed according to function.
+Only some of these types carry transit data traffic; that is, traffic
+that is neither locally originated nor locally destined. Vertices that
+can carry transit traffic are indicated on the graph by having both
+incoming and outgoing edges.
+
+
+
+ Vertex type Vertex name Transit?
+ _____________________________________
+ 1 Router yes
+ 2 Network yes
+ 3 Stub network no
+
+
+ Table 1: OSPF vertex types.
+
+
+OSPF supports the following types of physical networks:
+
+
+Point-to-point networks
+ A network that joins a single pair of routers. A 56Kb serial line
+ is an example of a point-to-point network.
+
+Broadcast networks
+ Networks supporting many (more than two) attached routers, together
+ with the capability to address a single physical message to all of
+ the attached routers (broadcast). Neighboring routers are
+ discovered dynamically on these nets using OSPF's Hello Protocol.
+ The Hello Protocol itself takes advantage of the broadcast
+ capability. The protocol makes further use of multicast
+ capabilities, if they exist. An ethernet is an example of a
+ broadcast network.
+
+Non-broadcast networks
+ Networks supporting many (more than two) routers, but having no
+ broadcast capability. Neighboring routers are also discovered on
+ these nets using OSPF's Hello Protocol. However, due to the lack of
+ broadcast capability, some configuration information is necessary
+ for the correct operation of the Hello Protocol. On these networks,
+ OSPF protocol packets that are normally multicast need to be sent to
+ each neighboring router, in turn. An X.25 Public Data Network (PDN)
+ is an example of a non-broadcast network.
+
+
+
+
+
+[Moy] [Page 7]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+The neighborhood of each network node in the graph depends on whether
+the network has multi-access capabilities (either broadcast or non-
+broadcast) and, if so, the number of routers having an interface to the
+network. The three cases are depicted in Figure 1. Rectangles indicate
+routers. Circles and oblongs indicate multi-access networks. Router
+names are prefixed with the letters RT and network names with N. Router
+interface names are prefixed by I. Lines between routers indicate
+point-to-point networks. The left side of the figure shows a network
+with its connected routers, with the resulting graph shown on the right.
+
+
+Two routers joined by a point-to-point network are represented in the
+directed graph as being directly connected by a pair of edges, one in
+each direction. Interfaces to physical point-to-point networks need not
+be assigned IP addresses. Such a point-to-point network is called
+unnumbered. The graphical representation of point-to-point networks is
+designed so that unnumbered networks can be supported naturally. When
+interface addresses exist, they are modelled as stub routes. Note that
+each router would then have a stub connection to the other router's
+interface address (see Figure 1).
+
+When multiple routers are attached to a multi-access network, the
+directed graph shows all routers bidirectionally connected to the
+network vertex (again, see Figure 1). If only a single router is
+attached to a multi-access network, the network will appear in the
+directed graph as a stub connection.
+
+Each network (stub or transit) in the graph has an IP address and
+associated network mask. The mask indicates the number of nodes on the
+network. Hosts attached directly to routers (referred to as host
+routes) appear on the graph as stub networks. The network mask for a
+host route is always 0xffffffff, which indicates the presence of a
+single node.
+
+Figure 2 shows a sample map of an Autonomous System. The rectangle
+labelled H1 indicates a host, which has a SLIP connection to router
+RT12. Router RT12 is therefore advertising a host route. Lines between
+
+
+ ______________________________________
+
+ (Figure not included in text version.)
+
+ Figure 1: Network map components
+ ______________________________________
+
+
+
+
+
+
+[Moy] [Page 8]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+routers indicate physical point-to-point networks. The only point-to-
+point network that has been assigned interface addresses is the one
+joining routers RT6 and RT10. Routers RT5 and RT7 have EGP connections
+to other Autonomous Systems. A set of EGP-learned routes have been
+displayed for both of these routers.
+
+
+A cost is associated with the output side of each router interface.
+This cost is configurable by the system administrator. The lower the
+cost, the more likely the interface is to be used to forward data
+traffic. Costs are also associated with the externally derived routing
+data (e.g., the EGP-learned routes).
+
+The directed graph resulting from the map in Figure 2 is depicted in
+Figure 3. Arcs are labelled with the cost of the corresponding router
+output interface. Arcs having no labelled cost have a cost of 0. Note
+that arcs leading from networks to routers always have cost 0; they are
+significant nonetheless. Note also that the externally derived routing
+data appears on the graph as stubs.
+
+
+The topological database (or what has been referred to above as the
+directed graph) is pieced together from link state advertisements
+generated by the routers. The neighborhood of each transit vertex is
+represented in a single, separate link state advertisement. Figure 4
+shows graphically the link state representation of the two kinds of
+transit vertices: routers and multi-access networks. Router RT12 has an
+
+
+ ______________________________________
+
+ (Figure not included in text version.)
+
+ Figure 2: A sample Autonomous System
+ ______________________________________
+
+
+
+ __________________________________________
+
+ (Figures not included in text version.)
+
+ Figure 3: The resulting directed graph
+ Figure 4: Individual link state components
+ __________________________________________
+
+
+
+
+
+
+[Moy] [Page 9]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+interface to two broadcast networks and a SLIP line to a host. Network
+N6 is a broadcast network with three attached routers. The cost of all
+links from network N6 to its attached routers is 0. Note that the link
+state advertisement for network N6 is actually generated by one of the
+attached routers: the router that has been elected Designated Router for
+the network.
+
+
+2.1 The shortest-path tree
+
+When no OSPF areas are configured, each router in the Autonomous System
+has an identical topological database, leading to an identical graphical
+representation. A router generates its routing table from this graph by
+calculating a tree of shortest paths with the router itself as root.
+Obviously, the shortest-path tree depends on the router doing the
+calculation. The shortest-path tree for router RT6 in our example is
+depicted in Figure 5.
+
+
+The tree gives the entire route to any destination network or host.
+However, only the next hop to the destination is used in the forwarding
+process. Note also that the best route to any router has also been
+calculated. For the processing of external data, we note the next hop
+and distance to any router advertising external routes. The resulting
+routing table for router RT6 is pictured in Table 2. Note that there is
+a separate route for each end of a numbered serial line (in this case,
+the serial line between routers RT6 and RT10).
+
+
+Routes to networks belonging to other AS'es (such as N12) appear as
+dashed lines on the shortest path tree in Figure 5. Use of this
+externally derived routing information is considered in the next
+section.
+
+
+
+
+
+
+ ______________________________________
+
+ (Figure not included in text version.)
+
+ Figure 5: The SPF tree for router RT6
+ ______________________________________
+
+
+
+
+
+
+[Moy] [Page 10]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+
+
+ Destination Next Hop Distance
+ __________________________________
+ N1 RT3 10
+ N2 RT3 10
+ N3 RT3 7
+ N4 RT3 8
+ Ib * 7
+ Ia RT10 12
+ N6 RT10 8
+ N7 RT10 12
+ N8 RT10 10
+ N9 RT10 11
+ N10 RT10 13
+ N11 RT10 14
+ H1 RT10 21
+ __________________________________
+ RT5 RT5 6
+ RT7 RT10 8
+
+
+ Table 2: The portion of router RT6's routing table listing local
+ destinations.
+
+2.2 Use of external routing information
+
+After the tree is created the external routing information is examined.
+This external routing information may originate from another routing
+protocol such as EGP, or be statically configured (static routes).
+Default routes can also be included as part of the Autonomous System's
+external routing information.
+
+External routing information is flooded unaltered throughout the AS. In
+our example, all the routers in the Autonomous System know that router
+RT7 has two external routes, with metrics 2 and 9.
+
+OSPF supports two types of external metrics. Type 1 external metrics
+are equivalent to the link state metric. Type 2 external metrics are
+greater than the cost of any path internal to the AS. Use of Type 2
+external metrics assumes that routing between AS'es is the major cost of
+routing a packet, and eliminates the need for conversion of external
+costs to internal link state metrics.
+
+Here is an example of Type 1 external metric processing. Suppose that
+the routers RT7 and RT5 in Figure 2 are advertising Type 1 external
+metrics. For each external route, the distance from Router RT6 is
+calculated as the sum of the external route's cost and the distance from
+
+
+
+[Moy] [Page 11]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Router RT6 to the advertising router. For every external destination,
+the router advertising the shortest route is discovered, and the next
+hop to the advertising router becomes the next hop to the destination.
+
+Both Router RT5 and RT7 are advertising an external route to destination
+network N12. Router RT7 is preferred since it is advertising N12 at a
+distance of 10 (8+2) to Router RT6, which is better than router RT5's 14
+(6+8). Table 3 shows the entries that are added to the routing table
+when external routes are examined:
+
+
+
+ Destination Next Hop Distance
+ __________________________________
+ N12 RT10 10
+ N13 RT5 14
+ N14 RT5 14
+ N15 RT10 17
+
+
+ Table 3: The portion of router RT6's routing table listing external
+ destinations.
+
+
+Processing of Type 2 external metrics is simpler. The AS boundary
+router advertising the smallest external metric is chosen, regardless of
+the internal distance to the AS boundary router. Suppose in our example
+both router RT5 and router RT7 were advertising Type 2 external routes.
+Then all traffic destined for network N12 would be forwarded to router
+RT7, since 2 < 8. When several equal-cost Type 2 routes exist, the
+internal distance to the advertising routers is used to break the tie.
+
+Both Type 1 and Type 2 external metrics can be present in the AS at the
+same time. In that event, Type 1 external metrics always take
+precedence.
+
+This section has assumed that packets destined for external destinations
+are always routed through the advertising AS boundary router. This is
+not always desirable. For example, suppose in Figure 2 there is an
+additional router attached to network N6, called Router RTX. Suppose
+further that RTX does not participate in OSPF routing, but does exchange
+EGP information with the AS boundary router RT7. Then, router RT7 would
+end up advertising OSPF external routes for all destinations that should
+be routed to RTX. An extra hop will sometimes be introduced if packets
+for these destinations need always be routed first to router RT7 (the
+advertising router).
+
+To deal with this situation, the OSPF protocol allows an AS boundary
+
+
+
+[Moy] [Page 12]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+router to specify a "forwarding address" in its external advertisements.
+In the above example, Router RT7 would specify RTX's IP address as the
+"forwarding address" for all those destinations whose packets should be
+routed directly to RTX.
+
+The "forwarding address" has one other application. It enables routers
+in the Autonomous System's interior to function as "route servers". For
+example, in Figure 2 the router RT6 could become a route server, gaining
+external routing information through a combination of static
+configuration and external routing protocols. RT6 would then start
+advertising itself as an AS boundary router, and would originate a
+collection of OSPF external advertisements. In each external
+advertisement, router RT6 would specify the correct Autonomous System
+exit point to use for the destination through appropriate setting of the
+advertisement's "forwarding address" field.
+
+
+2.3 Equal-cost multipath
+
+The above discussion has been simplified by considering only a single
+route to any destination. In reality, if multiple equal-cost routes to
+a destination exist, they are all discovered and used. This requires no
+conceptual changes to the algorithm, and its discussion is postponed
+until we consider the tree-building process in more detail.
+
+With equal cost multipath, a router potentially has several available
+next hops towards any given destination.
+
+
+2.4 TOS-based routing
+
+OSPF can calculate a separate set of routes for each IP Type of Service.
+The IP TOS values are represented in OSPF exactly as they appear in the
+IP packet header. This means that, for any destination, there can
+potentially be multiple routing table entries, one for each IP TOS.
+
+Up to this point, all examples shown have assumed that routes do not
+vary on TOS. In order to differentiate routes based on TOS, separate
+interface costs can be configured for each TOS. For example, in Figure
+2 there could be multiple costs (one for each TOS) listed for each
+interface. A cost for TOS 0 must always be specified.
+
+When interface costs vary based on TOS, a separate shortest path tree is
+calculated for each TOS (see Section 2.1). In addition, external costs
+can vary based on TOS. For example, in Figure 2 router RT7 could
+advertise a separate type 1 external metric for each TOS. Then, when
+calculating the TOS X distance to network N15 the cost of the shortest
+TOS X path to RT7 would be added to the TOS X cost advertised by RT7
+
+
+
+[Moy] [Page 13]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+(see Section 2.2).
+
+All OSPF implementations must be capable of calculating routes based on
+TOS. However, OSPF routers can be configured to route all packets on
+the TOS 0 path (see Appendix C), eliminating the need to calculate non-
+zero TOS paths. This can be used to conserve routing table space and
+processing resources in the router. These TOS-0-only routers can be
+mixed with routers that do route based on TOS. TOS-0-only routers will
+be avoided as much as possible when forwarding traffic requesting a
+non-zero TOS.
+
+It may be the case that no path exists for some non-zero TOS, even if
+the router is calculating non-zero TOS paths. In that case, packets
+requesting that non-zero TOS are routed along the TOS 0 path (see
+Section 11.1).
+
+
+3. Splitting the AS into Areas
+
+OSPF allows collections of contiguous networks and hosts to be grouped
+together. Such a group, together with the routers having interfaces to
+any one of the included networks, is called an area. Each area runs a
+separate copy of the basic SPF routing algorithm. This means that each
+area has its own topological database and corresponding graph, as
+explained in the previous section.
+
+The topology of an area is invisible from the outside of the area.
+Conversely, routers internal to a given area know nothing of the
+detailed topology external to the area. This isolation of knowledge
+enables the protocol to effect a marked reduction in routing traffic as
+compared to treating the entire Autonomous System as a single SPF
+domain.
+
+With the introduction of areas, it is no longer true that all routers in
+the AS have an identical topological database. A router actually has a
+separate topological database for each area it is connected to.
+(Routers connected to multiple areas are called area border routers).
+Two routers belonging to the same area have, for that area, identical
+area topological databases.
+
+Routing in the Autonomous System takes place on two levels, depending on
+whether the source and destination of a packet reside in the same area
+(intra-area routing is used) or different areas (inter-area routing is
+used). In intra-area routing, the packet is routed solely on
+information obtained within the area; no routing information obtained
+from outside the area can be used. This protects intra-area routing
+from the injection of bad routing information. We discuss inter-area
+routing in Section 3.2.
+
+
+
+[Moy] [Page 14]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+3.1 The backbone of the Autonomous System
+
+The backbone consists of those networks not contained in any area, their
+attached routers, and those routers that belong to multiple areas. The
+backbone must be contiguous.
+
+It is possible to define areas in such a way that the backbone is no
+longer contiguous. In this case the system administrator must restore
+backbone connectivity by configuring virtual links.
+
+Virtual links can be configured between any two backbone routers that
+have an interface to a common non-backbone area. Virtual links belong
+to the backbone. The protocol treats two routers joined by a virtual
+link as if they were connected by an unnumbered point-to-point network.
+On the graph of the backbone, two such routers are joined by arcs whose
+costs are the intra-area distances between the two routers. The routing
+protocol traffic that flows along the virtual link uses intra-area
+routing only.
+
+The backbone is responsible for distributing routing information between
+areas. The backbone itself has all of the properties of an area. The
+topology of the backbone is invisible to each of the areas, while the
+backbone itself knows nothing of the topology of the areas.
+
+
+3.2 Inter-area routing
+
+When routing a packet between two areas the backbone is used. The path
+that the packet will travel can be broken up into three contiguous
+pieces: an intra-area path from the source to an area border router, a
+backbone path between the source and destination areas, and then another
+intra-area path to the destination. The algorithm finds the set of such
+paths that have the smallest cost.
+
+Looking at this another way, inter-area routing can be pictured as
+forcing a star configuration on the Autonomous System, with the backbone
+as hub and and each of the areas as spokes.
+
+The topology of the backbone dictates the backbone paths used between
+areas. The topology of the backbone can be enhanced by adding virtual
+links. This gives the system administrator some control over the routes
+taken by inter-area traffic.
+
+The correct area border router to use as the packet exits the source
+area is chosen in exactly the same way routers advertising external
+routes are chosen. Each area border router in an area summarizes for
+the area its cost to all networks external to the area. After the SPF
+tree is calculated for the area, routes to all other networks are
+
+
+
+[Moy] [Page 15]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+calculated by examining the summaries of the area border routers.
+
+
+3.3 Classification of routers
+
+Before the introduction of areas, the only OSPF routers having a
+specialized function were those advertising external routing
+information, such as router RT5 in Figure 2. When the AS is split into
+OSPF areas, the routers are further divided according to function into
+the following four overlapping categories:
+
+
+Internal routers
+ A router with all directly connected networks belonging to the same
+ area. Routers with only backbone interfaces also belong to this
+ category. These routers run a single copy of the basic routing
+ algorithm.
+
+Area border routers
+ A router that attaches to multiple areas. Area border routers run
+ multiple copies of the basic algorithm, one copy for each attached
+ area and an additional copy for the backbone. Area border routers
+ condense the topological information of their attached areas for
+ distribution to the backbone. The backbone in turn distributes the
+ information to the other areas.
+
+Backbone routers
+ A router that has an interface to the backbone. This includes all
+ routers that interface to more than one area (i.e., area border
+ routers). However, backbone routers do not have to be area border
+ routers. Routers with all interfaces connected to the backbone are
+ considered to be internal routers.
+
+AS boundary routers
+ A router that exchanges routing information with routers belonging
+ to other Autonomous Systems. Such a router has AS external routes
+ that are advertised throughout the Autonomous System. The path to
+ each AS boundary router is known by every router in the AS. This
+ classification is completely independent of the previous
+ classifications: AS boundary routers may be internal or area border
+ routers, and may or may not participate in the backbone.
+
+
+3.4 A sample area configuration
+
+Figure 6 shows a sample area configuration. The first area consists of
+networks N1-N4, along with their attached routers RT1-RT4. The second
+area consists of networks N6-N8, along with their attached routers RT7,
+
+
+
+[Moy] [Page 16]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+RT8, RT10, RT11. The third area consists of networks N9-N11 and host
+H1, along with their attached routers RT9, RT11, RT12. The third area
+has been configured so that networks N9-N11 and host H1 will all be
+grouped into a single route, when advertised external to the area (see
+Section 3.5 for more details).
+
+
+In Figure 6, routers RT1, RT2, RT5, RT6, RT8, RT9 and RT12 are internal
+routers. Routers RT3, RT4, RT7, RT10 and RT11 are area border routers.
+Finally as before, routers RT5 and RT7 are AS boundary routers.
+
+Figure 7 shows the resulting topological database for the Area 1. The
+figure completely describes that area's intra-area routing. It also
+shows the complete view of the internet for the two internal routers RT1
+and RT2. It is the job of the area border routers, RT3 and RT4, to
+advertise into Area 1 the distances to all destinations external to the
+area. These are indicated in Figure 7 by the dashed stub routes. Also,
+RT3 and RT4 must advertise into Area 1 the location of the AS boundary
+routers RT5 and RT7. Finally, external advertisements from RT5 and RT7
+are flooded throughout the entire AS, and in particular throughout Area
+1. These advertisements are included in Area 1's database, and yield
+routes to networks N12-N15.
+
+Routers RT3 and RT4 must also summarize Area 1's topology for
+distribution to the backbone. Their backbone advertisements are shown
+in Table 4. These summaries show which networks are contained in Area 1
+(i.e., networks N1-N4), and the distance to these networks from the
+routers RT3 and RT4 respectively.
+
+
+The topological database for the backbone is shown in Figure 8. The set
+of routers pictured are the backbone routers. Router RT11 is a backbone
+router because it belongs to two areas. In order to make the backbone
+connected, a virtual link has been configured between routers R10 and
+R11.
+
+
+
+
+ __________________________________________
+
+ (Figure not included in text version.)
+
+ Figure 6: A sample OSPF area configuration
+ __________________________________________
+
+
+
+
+
+
+[Moy] [Page 17]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+
+
+ Network RT3 adv. RT4 adv.
+ _____________________________
+ N1 4 4
+ N2 4 4
+ N3 1 1
+ N4 2 3
+
+
+ Table 4: Networks advertised to the backbone by routers RT3 and RT4.
+
+
+ ______________________________________
+
+ (Figure not included in text version.)
+
+ Figure 7: Area 1's Database
+ Figure 8: The backbone database
+ ______________________________________
+
+
+Again, routers RT3, RT4, RT7, RT10 and RT11 are area border routers. As
+routers RT3 and RT4 did above, they have condensed the routing
+information of their attached areas for distribution via the backbone;
+these are the dashed stubs that appear in Figure 8. Remember that the
+third area has been configured to condense networks N9-N11 and Host H1
+into a single route. This yields a single dashed line for networks N9-
+N11 and Host H1 in Figure 8. Routers RT5 and RT7 are AS boundary
+routers; their externally derived information also appears on the graph
+in Figure 8 as stubs.
+
+The backbone enables the exchange of summary information between area
+border routers. Every area border router hears the area summaries from
+all other area border routers. It then forms a picture of the distance
+to all networks outside of its area by examining the collected
+advertisements, and adding in the backbone distance to each advertising
+router.
+
+Again using routers RT3 and RT4 as an example, the procedure goes as
+follows: They first calculate the SPF tree for the backbone. This gives
+the distances to all other area border routers. Also noted are the
+distances to networks (Ia and Ib) and AS boundary routers (RT5 and RT7)
+that belong to the backbone. This calculation is shown in Table 5.
+
+
+Next, by looking at the area summaries from these area border routers,
+RT3 and RT4 can determine the distance to all networks outside their
+
+
+
+[Moy] [Page 18]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+
+
+ Area border dist from dist from
+ router RT3 RT4
+ ______________________________________
+ to RT3 * 21
+ to RT4 22 *
+ to RT7 20 14
+ to RT10 15 22
+ to RT11 18 25
+ ______________________________________
+ to Ia 20 27
+ to Ib 15 22
+ ______________________________________
+ to RT5 14 8
+ to RT7 20 14
+
+
+ Table 5: Backbone distances calculated by routers RT3 and RT4.
+
+area. These distances are then advertised internally to the area by RT3
+and RT4. The advertisements that router RT3 and RT4 will make into Area
+1 are shown in Table 6. Note that Table 6 assumes that an area range
+has been configured for the backbone which groups I5 and I6 into a
+single advertisement.
+
+
+The information imported into Area 1 by routers RT3 and RT4 enables an
+internal router, such as RT1, to choose an area border router
+intelligently. Router RT1 would use RT4 for traffic to network N6, RT3
+for traffic to network N10, and would load share between the two for
+
+
+ Destination RT3 adv. RT4 adv.
+ _________________________________
+ Ia,Ib 15 22
+ N6 16 15
+ N7 20 19
+ N8 18 18
+ N9-N11,H1 19 26
+ _________________________________
+ RT5 14 8
+ RT7 20 14
+
+
+ Table 6: Destinations advertised into Area 1 by routers RT3 and RT4.
+
+
+
+
+
+[Moy] [Page 19]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+traffic to network N8.
+
+Router RT1 can also determine in this manner the shortest path to the AS
+boundary routers RT5 and RT7. Then, by looking at RT5 and RT7's
+external advertisements, router RT1 can decide between RT5 or RT7 when
+sending to a destination in another Autonomous System (one of the
+networks N12-N15).
+
+Note that a failure of the line between routers RT6 and RT10 will cause
+the backbone to become disconnected. Configuring another virtual link
+between routers RT7 and RT10 will give the backbone more connectivity
+and more resistance to such failures. Also, a virtual link between RT7
+and RT10 would allow a much shorter path between the third area
+(containing N9) and the router RT7, which is advertising a good route to
+external network N12.
+
+
+3.5 IP subnetting support
+
+OSPF attaches an IP address mask to each advertised route. The mask
+indicates the range of addresses being described by the particular
+route. For example, a summary advertisement for the destination
+128.185.0.0 with a mask of 0xffff0000 actually is describing a single
+route to the collection of destinations 128.185.0.0 - 128.185.255.255.
+Similarly, host routes are always advertised with a mask of 0xffffffff,
+indicating the presence of only a single destination.
+
+Including the mask with each advertised destination enables the
+implementation of what is commonly referred to as variable-length subnet
+masks. This means that a single IP class A, B, or C network number can
+be broken up into many subnets of various sizes. For example, the
+network 128.185.0.0 could be broken up into 64 variable-sized subnets:
+16 subnets of size 4K, 16 subnets of size 256, and 32 subnets of size 8.
+Table 7 shows some of the resulting network addresses together with
+their masks:
+
+
+
+ Network address IP address mask Subnet size
+ _______________________________________________
+ 128.185.16.0 0xfffff000 4K
+ 128.185.1.0 0xffffff00 256
+ 128.185.0.8 0xfffffff8 8
+
+
+ Table 7: Some sample subnet sizes.
+
+
+
+
+
+[Moy] [Page 20]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+There are many possible ways of dividing up a class A, B, and C network
+into variable sized subnets. The precise procedure for doing so is
+beyond the scope of this specification. The specification however
+establishes the following guideline: When an IP packet is forwarded, it
+is always forwarded to the network that is the best match for the
+packet's destination. Here best match is synonymous with the longest or
+most specific match. For example, the default route with destination of
+0.0.0.0 and mask 0x00000000 is always a match for every IP destination.
+Yet it is always less specific than any other match. Subnet masks must
+be assigned so that the best match for any IP destination is
+unambiguous.
+
+The OSPF area concept is modelled after an IP subnetted network. OSPF
+areas have been loosely defined to be a collection of networks. In
+actuality, an OSPF area is specified to be a list of address ranges (see
+Section C.2 for more details). Each address range is defined as an
+[address,mask] pair. Many separate networks may then be contained in a
+single address range, just as a subnetted network is composed of many
+separate subnets. Area border routers then summarize the area contents
+(for distribution to the backbone) by advertising a single route for
+each address range. The cost of the route is the minimum cost to any of
+the networks falling in the specified range.
+
+For example, an IP subnetted network can be configured as a single OSPF
+area. In that case, the area would be defined as a single address
+range: a class A, B, or C network number along with its natural IP mask.
+Inside the area, any number of variable sized subnets could be defined.
+External to the area, a single route for the entire subnetted network
+would be distributed, hiding even the fact that the network is subnetted
+at all. The cost of this route is the minimum of the set of costs to
+the component subnets.
+
+
+3.6 Supporting stub areas
+
+In some Autonomous Systems, the majority of the topological database may
+consist of external advertisements. An OSPF external advertisement is
+usually flooded throughout the entire AS. However, OSPF allows certain
+areas to be configured as "stub areas". External advertisements are not
+flooded into/throughout stub areas; routing to AS external destinations
+in these areas is based on a (per-area) default only. This reduces the
+topological database size, and therefore the memory requirements, for a
+stub area's internal routers.
+
+In order to take advantage of the OSPF stub area support, default
+routing must be used in the stub area. This is accomplished as follows.
+One or more of the stub area's area border routers must advertise a
+default route into the stub area via summary advertisements. These
+
+
+
+[Moy] [Page 21]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+summary defaults are flooded throughout the stub area, but no further.
+(For this reason these defaults pertain only to the particular stub
+area). These summary default routes will match any destination that is
+not explicitly reachable by an intra-area or inter-area path (i.e., AS
+external destinations).
+
+An area can be configured as stub when there is a single exit point from
+the area, or when the choice of exit point need not be made on a per-
+external-destination basis. For example, area 3 in Figure 6 could be
+configured as a stub area, because all external traffic must travel
+though its single area border router RT11. If area 3 were configured as
+a stub, router RT11 would advertise a default route for distribution
+inside area 3 (in a summary advertisement), instead of flooding the
+external advertisements for networks N12-N15 into/throughout the area.
+
+The OSPF protocol ensures that all routers belonging to an area agree on
+whether the area has been configured as a stub. This guarantees that no
+confusion will arise in the flooding of external advertisements.
+
+There are a couple of restrictions on the use of stub areas. Virtual
+links cannot be configured through stub areas. In addition, AS boundary
+routers cannot be placed internal to stub areas.
+
+
+3.7 Partitions of areas
+
+OSPF does not actively attempt to repair area partitions. When an area
+becomes partitioned, each component simply becomes a separate area. The
+backbone then performs routing between the new areas. Some destinations
+reachable via intra-area routing before the partition will now require
+inter-area routing.
+
+In the previous section, an area was described as a list of address
+ranges. Any particular address range must still be completely contained
+in a single component of the area partition. This has to do with the
+way the area contents are summarized to the backbone. Also, the
+backbone itself must not partition. If it does, parts of the Autonomous
+System will become unreachable. Backbone partitions can be repaired by
+configuring virtual links (see Section 15).
+
+Another way to think about area partitions is to look at the Autonomous
+System graph that was introduced in Section 2. Area IDs can be viewed
+as colors for the graph's edges.[1] Each edge of the graph connects to a
+network, or is itself a point-to-point network. In either case, the
+edge is colored with the network's Area ID.
+
+A group of edges, all having the same color, and interconnected by
+vertices, represents an area. If the topology of the Autonomous System
+
+
+
+[Moy] [Page 22]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+is intact, the graph will have several regions of color, each color
+being a distinct Area ID.
+
+When the AS topology changes, one of the areas may become partitioned.
+The graph of the AS will then have multiple regions of the same color
+(Area ID). The routing in the Autonomous System will continue to
+function as long as these regions of same color are connected by the
+single backbone region.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 23]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+4. Functional Summary
+
+A separate copy of OSPF's basic routing algorithm runs in each area.
+Routers having interfaces to multiple areas run multiple copies of the
+algorithm. A brief summary of the routing algorithm follows.
+
+When a router starts, it first initializes the routing protocol data
+structures. The router then waits for indications from the lower-level
+protocols that its interfaces are functional.
+
+A router then uses the OSPF's Hello Protocol to acquire neighbors. The
+router sends Hello packets to its neighbors, and in turn receives their
+Hello packets. On broadcast and point-to-point networks, the router
+dynamically detects its neighboring routers by sending its Hello packets
+to the multicast address AllSPFRouters. On non-broadcast networks, some
+configuration information is necessary in order to discover neighbors.
+On all multi-access networks (broadcast or non-broadcast), the Hello
+Protocol also elects a Designated router for the network.
+
+The router will attempt to form adjacencies with some of its newly
+acquired neighbors. Topological databases are synchronized between
+pairs of adjacent routers. On multi-access networks, the Designated
+Router determines which routers should become adjacent.
+
+Adjacencies control the distribution of routing protocol packets.
+Routing protocol packets are sent and received only on adjacencies. In
+particular, distribution of topological database updates proceeds along
+adjacencies.
+
+A router periodically advertises its state, which is also called link
+state. Link state is also advertised when a router's state changes. A
+router's adjacencies are reflected in the contents of its link state
+advertisements. This relationship between adjacencies and link state
+allows the protocol to detect dead routers in a timely fashion.
+
+Link state advertisements are flooded throughout the area. The flooding
+algorithm is reliable, ensuring that all routers in an area have exactly
+the same topological database. This database consists of the collection
+of link state advertisements received from each router belonging to the
+area. From this database each router calculates a shortest-path tree,
+with itself as root. This shortest-path tree in turn yields a routing
+table for the protocol.
+
+
+4.1 Inter-area routing
+
+The previous section described the operation of the protocol within a
+single area. For intra-area routing, no other routing information is
+
+
+
+[Moy] [Page 24]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+pertinent. In order to be able to route to destinations outside of the
+area, the area border routers inject additional routing information into
+the area. This additional information is a distillation of the rest of
+the Autonomous System's topology.
+
+This distillation is accomplished as follows: Each area border router is
+by definition connected to the backbone. Each area border router
+summarizes the topology of its attached areas for transmission on the
+backbone, and hence to all other area border routers. A area border
+router then has complete topological information concerning the
+backbone, and the area summaries from each of the other area border
+routers. From this information, the router calculates paths to all
+destinations not contained in its attached areas. The router then
+advertises these paths to its attached areas. This enables the area's
+internal routers to pick the best exit router when forwarding traffic to
+destinations in other areas.
+
+
+4.2 AS external routes
+
+Routers that have information regarding other Autonomous Systems can
+flood this information throughout the AS. This external routing
+information is distributed verbatim to every participating router.
+There is one exception: external routing information is not flooded into
+"stub" areas (see Section 3.6).
+
+To utilize external routing information, the path to all routers
+advertising external information must be known throughout the AS
+(excepting the stub areas). For that reason, the locations of these AS
+boundary routers are summarized by the (non-stub) area border routers.
+
+
+4.3 Routing protocol packets
+
+The OSPF protocol runs directly over IP, using IP protocol 89. OSPF
+does not provide any explicit fragmentation/reassembly support. When
+fragmentation is necessary, IP fragmentation/reassembly is used. OSPF
+protocol packets have been designed so that large protocol packets can
+generally be split into several smaller protocol packets. This practice
+is recommended; IP fragmentation should be avoided whenever possible.
+
+Routing protocol packets should always be sent with the IP TOS field set
+to 0. If at all possible, routing protocol packets should be given
+preference over regular IP data traffic, both when being sent and
+received. As an aid to accomplishing this, OSPF protocol packets should
+have their IP precedence field set to the value Internetwork Control
+(see [RFC 791]).
+
+
+
+
+[Moy] [Page 25]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+All OSPF protocol packets share a common protocol header that is
+described in Appendix A. The OSPF packet types are listed below in
+Table 8. Their formats are also described in Appendix A.
+
+
+
+ Type Packet name Protocol function
+ __________________________________________________________
+ 1 Hello Discover/maintain neighbors
+ 2 Database Description Summarize database contents
+ 3 Link State Request Database download
+ 4 Link State Update Database update
+ 5 Link State Ack Flooding acknowledgment
+
+
+ Table 8: OSPF packet types.
+
+
+OSPF's Hello protocol uses Hello packets to discover and maintain
+neighbor relationships. The Database Description and Link State Request
+packets are used in the forming of adjacencies. OSPF's reliable update
+mechanism is implemented by the Link State Update and Link State
+Acknowledgment packets.
+
+Each Link State Update packet carries a set of new link state
+advertisements one hop further away from their point of origination. A
+single Link State Update packet may contain the link state
+advertisements of several routers. Each advertisement is tagged with
+the ID of the originating router and a checksum of its link state
+contents. The five different types of OSPF link state advertisements
+are listed below in Table 9.
+
+
+LS Advertisement Advertisement description
+type name
+____________________________________________________________________________
+1 Router links advs. Originated by all routers. This
+ advs. advertisement describes the collected
+ states of the router's interfaces to an
+ area. Flooded throughout a single area
+ only.
+____________________________________________________________________________
+2 Network links Originated for multi-access networks by
+ advs. the Designated Router. This
+ advertisement contains the list of
+ routers connected to the network.
+ Flooded throughout a single area only.
+
+
+
+
+[Moy] [Page 26]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+LS Advertisement Advertisement description
+type name
+____________________________________________________________________________
+____________________________________________________________________________
+3,4 Summary link Originated by area border routers, and
+ advs. flooded throughout their associated
+ area. Each summary link advertisement
+ describes a route to a destination
+ outside the area, yet still inside the
+ AS (i.e., an inter-area route). Type 3
+ advertisements describe routes to
+ networks. Type 4 advertisements
+ describe routes to AS boundary routers.
+____________________________________________________________________________
+5 AS external Originated by AS boundary routers, and
+ link advs. flooded throughout the AS. Each external
+ advertisement describes a route to a
+ destination in another Autonomous
+ System. Default routes for the AS can
+ also be described by AS external advertisements.
+
+
+ Table 9: OSPF link state advertisements.
+
+As mentioned above, OSPF routing packets (with the exception of Hellos)
+are sent only over adjacencies. Note that this means that all protocol
+packets travel a single IP hop, except those that are sent over virtual
+adjacencies. The IP source address of an OSPF protocol packet is one
+end of a router adjacency, and the IP destination address is either the
+other end of the adjacency or an IP multicast address.
+
+
+4.4 Basic implementation requirements
+
+An implementation of OSPF requires the following pieces of system
+support:
+
+
+Timers
+ Two different kind of timers are required. The first kind, called
+ single shot timers, fire once and cause a protocol event to be
+ processed. The second kind, called interval timers, fire at
+ continuous intervals. These are used for the sending of packets at
+ regular intervals. A good example of this is the regular broadcast
+ of Hello packets (on broadcast networks). The granularity of both
+ kinds of timers is one second.
+
+ Interval timers should be implemented to avoid drift. In some
+
+
+
+[Moy] [Page 27]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ router implementations, packet processing can affect timer
+ execution. When multiple routers are attached to a single network,
+ all doing broadcasts, this can lead to the synchronization of
+ routing packets (which should be avoided). If timers cannot be
+ implemented to avoid drift, small random amounts should be added
+ to/subtracted from the timer interval at each firing.
+
+IP multicast
+ Certain OSPF packets use IP multicast. Support for receiving and
+ sending IP multicasts, along with the appropriate lower-level
+ protocol support, is required. These IP multicast packets never
+ travel more than one hop. For information on IP multicast, see [RFC
+ 1112].
+
+Lower-level protocol support
+ The lower level protocols referred to here are the network access
+ protocols, such as the Ethernet data link layer. Indications must
+ be passed from from these protocols to OSPF as the network interface
+ goes up and down. For example, on an ethernet it would be valuable
+ to know when the ethernet transceiver cable becomes unplugged.
+
+Non-broadcast lower-level protocol support
+ Remember that non-broadcast networks are multi-access networks such
+ as a X.25 PDN. On these networks, the Hello Protocol can be aided
+ by providing an indication to OSPF when an attempt is made to send a
+ packet to a dead or non-existent router. For example, on a PDN a
+ dead router may be indicated by the reception of a X.25 clear with
+ an appropriate cause and diagnostic, and this information would be
+ passed to OSPF.
+
+List manipulation primitives
+ Much of the OSPF functionality is described in terms of its
+ operation on lists of link state advertisements. For example, the
+ advertisements that will be retransmitted to an adjacent router
+ until acknowledged are described as a list. Any particular
+ advertisement may be on many such lists. An OSPF implementation
+ needs to be able to manipulate these lists, adding and deleting
+ constituent advertisements as necessary.
+
+Tasking support
+ Certain procedures described in this specification invoke other
+ procedures. At times, these other procedures should be executed
+ in-line, that is, before the current procedure is finished. This is
+ indicated in the text by instructions to execute a procedure. At
+ other times, the other procedures are to be executed only when the
+ current procedure has finished. This is indicated by instructions
+ to schedule a task.
+
+
+
+
+[Moy] [Page 28]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+4.5 Optional OSPF capabilities
+
+The OSPF protocol defines several optional capabilities. A router
+indicates the optional capabilities that it supports in its OSPF Hello
+packets, Database Description packets and in its link state
+advertisements. This enables routers supporting a mix of optional
+capabilities to coexist in a single Autonomous System.
+
+Some capabilities must be supported by all routers attached to a
+specific area. In this case, a router will not accept a neighbor's
+Hello unless there is a match in reported capabilities (i.e., a
+capability mismatch prevents a neighbor relationship from forming). An
+example of this is the external routing capability (see below).
+
+Other capabilities can be negotiated during the database synchronization
+process. This is accomplished by specifying the optional capabilities
+in Database Description packets. A capability mismatch with a neighbor
+is this case will result in only a subset of link state advertisements
+being exchanged between the two neighbors.
+
+The routing table build process can also be affected by the
+presence/absence of optional capabilities. For example, since the
+optional capabilities are reported in link state advertisements, routers
+incapable of certain functions can be avoided when building the shortest
+path tree. An example of this is the TOS routing capability (see
+below).
+
+The current OSPF optional capabilities are listed below. See Section
+A.2 for more information.
+
+
+External routing capability
+ Entire OSPF areas can be configured as "stubs" (see Section 3.6).
+ AS external advertisements will not be flooded into stub areas.
+ This capability is represented by the E-bit in the OSPF options
+ field (see Section A.2). In order to ensure consistent
+ configuration of stub areas, all routers interfacing to such an area
+ must have the E-bit clear in their Hello packets (see Sections 9.5
+ and 10.5).
+
+TOS capability
+ All OSPF implementations must be able to calculate separate routes
+ based on IP Type of Service. However, to save routing table space
+ and processing resources, an OSPF router can be configured to ignore
+ TOS when forwarding packets. In this case, the router calculates
+ routes for TOS 0 only. This capability is represented by the T-bit
+ in the OSPF options field (see Section A.2). TOS-capable routers
+ will attempt to avoid non-TOS-capable routers when calculating non-
+
+
+
+[Moy] [Page 29]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ zero TOS paths.
+
+
+5. Protocol Data Structures
+
+The OSPF protocol is described in this specification in terms of its
+operation on various protocol data structures. The following list
+comprises the top-level OSPF data structures. Any initialization that
+needs to be done is noted. Areas, OSPF interfaces and neighbors also
+have associated data structures that are described later in this
+specification.
+
+
+Router ID
+ a 32-bit number that uniquely identifies this router in the AS. One
+ possible implementation strategy would be to use the smallest IP
+ interface address belonging to the router.
+
+Pointers to area structures
+ Each one of the areas to which the router is connected has its own
+ data structure. This data structure describes the working of the
+ basic algorithm. Remember that each area runs a separate copy of
+ the basic algorithm.
+
+Pointer to the backbone structure
+ The basic algorithm operates on the backbone as if it were an area.
+ For this reason the backbone is represented as an area structure.
+
+Virtual links configured
+ The virtual links configured with this router as one endpoint. In
+ order to have configured virtual links, the router itself must be an
+ area border router. Virtual links are identified by the Router ID
+ of the other endpoint -- which is another area border router. These
+ two endpoint routers must be attached to a common area, called the
+ virtual link's transit area. Virtual links are part of the
+ backbone, and behave as if they were unnumbered point-to-point
+ networks between the two routers. A virtual link uses the intra-
+ area routing of its transit area to forward packets. Virtual links
+ are brought up and down through the building of the shortest-path
+ trees for the transit area.
+
+List of external routes
+ These are routes to destinations external to the Autonomous System,
+ that have been gained either through direct experience with another
+ routing protocol (such as EGP), or through configuration
+ information, or through a combination of the two (e.g., dynamic
+ external info. to be advertised by OSPF with configured metric).
+ Any router having these external routes is called an AS boundary
+
+
+
+[Moy] [Page 30]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ router. These routes are advertised by the router to the entire AS
+ through AS external link advertisements.
+
+List of AS external link advertisements
+ Part of the topological database. These have have originated from
+ the AS boundary routers. They comprise routes to destinations
+ external to the Autonomous System. Note that, if the router is
+ itself an AS boundary router, some of these AS external link
+ advertisements have been self originated.
+
+The routing table
+ Derived from the topological database. Each destination that the
+ router can forward to is represented by a cost and a set of paths.
+ A path is described by its type and next hop. For more information,
+ see Section 11.
+
+TOS capability
+ This item indicates whether the router will calculate separate
+ routes based on TOS. This is a configurable parameter. For more
+ information, see Sections 4.5 and 16.9.
+
+
+Figure 9 shows the collection of data structures present in a typical
+router. The router pictured is RT10, from the map in Figure 6. Note
+that router RT10 has a virtual link configured to router RT11, with Area
+2 as the link's transit area. This is indicated by the dashed line in
+Figure 9. When the virtual link becomes active, through the building of
+the shortest path tree for Area 2, it becomes an interface to the
+backbone (see the two backbone interfaces depicted in Figure 9).
+
+
+
+6. The Area Data Structure
+
+The area data structure contains all the information used to run the
+basic routing algorithm. Remember that each area maintains its own
+topological database. Router interfaces and adjacencies belong to a
+
+
+ _______________________________________
+
+ (Figure not included in text version.)
+
+ Figure 9: Router RT10's Data Structures
+ _______________________________________
+
+
+
+
+
+
+[Moy] [Page 31]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+single area.
+
+The backbone has all the properties of an area. For that reason it is
+also represented by an area data structure. Note that some items in the
+structure apply differently to the backbone than to areas.
+
+The area topological (or link state) database consists of the collection
+of router links, network links and summary links advertisements that
+have originated from the area's routers. This information is flooded
+throughout a single area only. The list of AS external advertisements
+is also considered to be part of each area's topological database.
+
+
+Area ID
+ A 32-bit number identifying the area. 0 is reserved for the area ID
+ of the backbone. If assigning subnetted networks as separate areas,
+ the IP network number could be used as the Area ID.
+
+List of component address ranges
+ The address ranges that define the area. Each address range is
+ specified by an [address,mask] pair. Each network is then assigned
+ to an area depending on the address range that it falls into
+ (specified address ranges are not allowed to overlap). As an
+ example, if an IP subnetted network is to be its own separate OSPF
+ area, the area is defined to consist of a single address range - an
+ IP network number with its natural (class A, B or C) mask.
+
+Associated router interfaces
+ This router's interfaces connecting to the area. A router interface
+ belongs to one and only one area (or the backbone). For the
+ backbone structure this list includes all the virtual adjacencies.
+ A virtual adjacency is identified by the router ID of its other
+ endpoint; its cost is the cost of the shortest intra-area path that
+ exists between the two routers.
+
+List of router links advertisements
+ A router links advertisement is generated by each router in the
+ area. It describes the state of the router's interfaces to the
+ area.
+
+List of network links advertisements
+ One network links advertisement is generated for each transit
+ multi-access network in the area. It describes the set of routers
+ currently connected to the network.
+
+List of summary links advertisements
+ Summary link advertisements originate from the area's area border
+ routers. They describe routes to destinations internal to the
+
+
+
+[Moy] [Page 32]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Autonomous System, yet external to the area.
+
+Shortest-path tree
+ The shortest-path tree for the area, with this router itself as
+ root. Derived from the collected router links and network links
+ advertisements by the Dijkstra algorithm.
+
+Authentication type
+ The type of authentication used for this area. Authentication types
+ are defined in Appendix E. All OSPF packet exchanges are
+ authenticated. Different authentication schemes may be used in
+ different areas.
+
+External routing capability
+ Whether AS external advertisements will be flooded into/throughout
+ the area. This is a configurable parameter. 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.
+
+
+Unless otherwise specified, the remaining sections of this document
+refer to the operation of the protocol in a single area.
+
+
+7. Bringing Up Adjacencies
+
+OSPF creates adjacencies between neighboring routers for the purpose of
+exchanging routing information. Not every two neighboring routers will
+become adjacent. This section covers the generalities involved in
+creating adjacencies. For further details consult Section 10.
+
+
+7.1 The Hello Protocol
+
+The Hello Protocol is responsible for establishing and maintaining
+neighbor relationships. It also ensures that communication between
+neighbors is bidirectional. Hello packets are sent periodically out all
+
+
+
+[Moy] [Page 33]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+router interfaces. Bidirectional communication is indicated when the
+router sees itself listed in the neighbor's Hello Packet.
+
+On multi-access networks, the Hello Protocol elects a Designated Router
+for the network. Among other things, the Designated Router controls
+what adjacencies will be formed over the network (see below).
+
+The Hello Protocol works differently on broadcast networks, as compared
+to non-broadcast networks. On broadcast networks, each router
+advertises itself by periodically multicasting Hello Packets. This
+allows neighbors to be discovered dynamically. These Hello Packets
+contain the router's view of the Designated Router's identity, and the
+list of routers whose Hellos have been seen recently.
+
+On non-broadcast networks some configuration information is necessary
+for the operation of the Hello Protocol. Each router that may
+potentially become Designated Router has a list of all other routers
+attached to the network. A router, having Designated Router potential,
+sends hellos to all other potential Designated Routers when its
+interface to the non-broadcast network first becomes operational. This
+is an attempt to find the Designated Router for the network. If the
+router itself is elected Designated Router, it begins sending hellos to
+all other routers attached to the network.
+
+After a neighbor has been discovered, bidirectional communication
+ensured, and (if on a multi-access network) a Designated Router elected,
+a decision is made regarding whether or not an adjacency should be
+formed with the neighbor (see Section 10.4). An attempt is always made
+to establish adjacencies over point-to-point networks and virtual links.
+The first step in bringing up an adjacency is to synchronize the
+neighbors' topological databases. This is covered in the next section.
+
+
+7.2 The Synchronization of Databases
+
+In an SPF-based routing algorithm, it is very important for all routers'
+topological databases to stay synchronized. OSPF simplifies this by
+requiring only adjacent routers to remain synchronized. The
+synchronization process begins as soon as the routers attempt to bring
+up the adjacency. Each router describes its database by sending a
+sequence of Database Description packets to its neighbor. Each Database
+Description Packet describes a set of link state advertisements
+belonging to the database. When the neighbor sees a link state
+advertisement that is more recent than its own database copy, it makes a
+note that this newer advertisement should be requested.
+
+This sending and receiving of Database Description packets is called the
+"Database Exchange Process". During this process, the two routers form
+
+
+
+[Moy] [Page 34]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+a master/slave relationship. Each Database Description Packet has a
+sequence number. Database Description Packets sent by the master
+(polls) are acknowledged by the slave through echoing of the sequence
+number. Both polls and their responses contain summaries of link state
+data. The master is the only one allowed to retransmit Database
+Description Packets. It does so only at fixed intervals, the length of
+which is the configured constant RxmtInterval.
+
+Each Database Description contains an indication that there are more
+packets to follow --- the M-bit. The Database Exchange Process is over
+when a router has received and sent Database Description Packets with
+the M-bit off.
+
+During and after the Database Exchange Process, each router has a list
+of those link state advertisements for which the neighbor has more up-
+to-date instances. These advertisements are requested in Link State
+Request Packets. Link State Request packets that are not satisfied are
+retransmitted at fixed intervals of time RxmtInterval. When the
+Database Description Process has completed and all Link State Requests
+have been satisfied, the databases are deemed synchronized and the
+routers are marked fully adjacent. At this time the adjacency is fully
+functional and is advertised in the two routers' link state
+advertisements.
+
+The adjacency is used by the flooding procedure as soon as the Database
+Exchange Process begins. This simplifies database synchronization, and
+guarantees that it finishes in a predictable period of time.
+
+
+7.3 The Designated Router
+
+Every multi-access network has a Designated Router. The Designated
+Router performs two main functions for the routing protocol:
+
+o The Designated Router originates a network links advertisement on
+ behalf of the network. This advertisement lists the set of routers
+ (including the Designated Router itself) currently attached to the
+ network. The Link State ID for this advertisement (see Section
+ 12.1.4) is the IP interface address of the Designated Router. The
+ IP network number can then be obtained by using the subnet/network
+ mask.
+
+o The Designated router becomes adjacent to all other routers on the
+ network. Since the link state databases are synchronized across
+ adjacencies (through adjacency bring-up and then the flooding
+ procedure), the Designated Router plays a central part in the
+ synchronization process.
+
+
+
+
+[Moy] [Page 35]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+The Designated Router is elected by the Hello Protocol. A router's
+Hello Packet contains its Router Priority, which is configurable on a
+per-interface basis. In general, when a router's interface to a network
+first becomes functional, it checks to see whether there is currently a
+Designated Router for the network. If there is, it accepts that
+Designated Router, regardless of its Router Priority. (This makes it
+harder to predict the identity of the Designated Router, but ensures
+that the Designated Router changes less often. See below.) Otherwise,
+the router itself becomes Designated Router if it has the highest Router
+Priority on the network. A more detailed (and more accurate)
+description of Designated Router election is presented in Section 9.4.
+
+The Designated Router is the endpoint of many adjacencies. In order to
+optimize the flooding procedure on broadcast networks, the Designated
+Router multicasts its Link State Update Packets to the address
+AllSPFRouters, rather than sending separate packets over each adjacency.
+
+Section 2 of this document discusses the directed graph representation
+of an area. Router nodes are labelled with their Router ID. Broadcast
+network nodes are actually labelled with the IP address of their
+Designated Router. It follows that when the Designated Router changes,
+it appears as if the network node on the graph is replaced by an
+entirely new node. This will cause the network and all its attached
+routers to originate new link state advertisements. Until the
+topological databases again converge, some temporary loss of
+connectivity may result. This may result in ICMP unreachable messages
+being sent in response to data traffic. For that reason, the Designated
+Router should change only infrequently. Router Priorities should be
+configured so that the most dependable router on a network eventually
+becomes Designated Router.
+
+
+7.4 The Backup Designated Router
+
+In order to make the transition to a new Designated Router smoother,
+there is a Backup Designated Router for each multi-access network. The
+Backup Designated Router is also adjacent to all routers on the network,
+and becomes Designated Router when the previous Designated Router fails.
+If there were no Backup Designated Router, when a new Designated Router
+became necessary, new adjacencies would have to be formed between the
+router and all other routers attached to the network. Part of the
+adjacency forming process is the synchronizing of topological databases,
+which can potentially take quite a long time. During this time, the
+network would not be available for transit data traffic. The Backup
+Designated obviates the need to form these adjacencies, since they
+already exist. This means the period of disruption in transit traffic
+lasts only as long as it take to flood the new link state advertisements
+(which announce the new Designated Router).
+
+
+
+[Moy] [Page 36]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+The Backup Designated Router does not generate a network links
+advertisement for the network. (If it did, the transition to a new
+Designated Router would be even faster. However, this is a tradeoff
+between database size and speed of convergence when the Designated
+Router disappears.)
+
+The Backup Designated Router is also elected by the Hello Protocol.
+Each Hello Packet has a field that specifies the Backup Designated
+Router for the network.
+
+In some steps of the flooding procedure, the Backup Designated Router
+plays a passive role, letting the Designated Router do more of the work.
+This cuts down on the amount of local routing traffic. See Section 13.3
+for more information.
+
+
+7.5 The graph of adjacencies
+
+An adjacency is bound to the network that the two routers have in
+common. If two routers have multiple networks in common, they may have
+multiple adjacencies between them.
+
+One can picture the collection of adjacencies on a network as forming an
+undirected graph. The vertices consist of routers, with an edge joining
+two routers if they are adjacent. The graph of adjacencies describes
+the flow of routing protocol packets, and in particular Link State
+Updates, through the Autonomous System.
+
+Two graphs are possible, depending on whether the common network is
+multi-access. On physical point-to-point networks (and virtual links),
+the two routers joined by the network will be adjacent after their
+databases have been synchronized. On multi-access networks, both the
+Designated Router and the Backup Designated Router are adjacent to all
+other routers attached to the network, and these account for all
+adjacencies.
+
+These graphs are shown in Figure 10. It is assumed that router RT7 has
+become the Designated Router, and router RT3 the Backup Designated
+Router, for the network N2. The Backup Designated Router performs a
+lesser function during the flooding procedure than the Designated Router
+(see Section 13.3). This is the reason for the dashed lines connecting
+the Backup Designated Router RT3.
+
+
+8. Protocol Packet Processing
+
+This section discusses the general processing of routing protocol
+packets. It is very important that the router topological databases
+
+
+
+[Moy] [Page 37]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+remain synchronized. For this reason, routing protocol packets should
+get preferential treatment over ordinary data packets, both in sending
+and receiving.
+
+Routing protocol packets are sent along adjacencies only (with the
+exception of Hello packets, which are used to discover the adjacencies).
+This means that all protocol packets travel a single IP hop, except
+those sent over virtual links.
+
+All routing protocol packets begin with a standard header. The sections
+below give the details on how to fill in and verify this standard
+header. Then, for each packet type, the section is listed that gives
+more details on that particular packet type's processing.
+
+
+
+8.1 Sending protocol packets
+
+When a router sends a routing protocol packet, it fills in the fields of
+that standard header as follows. For more details on the header format
+consult Section A.3.1:
+
+
+Version #
+ Set to 2, the version number of the protocol as documented in this
+ specification.
+
+Packet type
+ The type of OSPF packet, such as Link state Update or Hello Packet.
+
+Packet length
+ The length of the entire OSPF packet in bytes, including the
+ standard header.
+
+Router ID
+ The identity of the router itself (who is originating the packet).
+
+
+ ______________________________________
+
+ (Figure not included in text version.)
+
+ Figure 10: The graph of adjacencies
+ Figure 11: Interface state changes
+ ______________________________________
+
+
+
+
+
+
+[Moy] [Page 38]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Area ID
+ The area that the packet is being sent into.
+
+Checksum
+ The standard IP 16-bit one's complement checksum of the entire OSPF
+ packet, excluding the 64-bit authentication field. This checksum
+ should be calculated before handing the packet to the appropriate
+ authentication procedure.
+
+Autype and Authentication
+ Each OSPF packet exchange is authenticated. Authentication types
+ are assigned by the protocol and documented in Appendix E. A
+ different authentication scheme can be used for each OSPF area. The
+ 64-bit authentication field is set by the appropriate authentication
+ procedure (determined by Autype). This procedure should be the last
+ called when forming the packet to be sent. The setting of the
+ authentication field is determined by the packet contents and the
+ authentication key (which is configurable on a per-interface basis).
+
+
+The IP destination address for the packet is selected as follows. On
+physical point-to-point networks, the IP destination is always set to
+the the address AllSPFRouters. On all other network types (including
+virtual links), the majority of OSPF packets are sent as unicasts, i.e.,
+sent directly to the other end of the adjacency. In this case, the IP
+destination is just the neighbor IP address associated with the other
+end of the adjacency (see Section 10). The only packets not sent as
+unicasts are on broadcast networks; on these networks Hello packets are
+sent to the multicast destination AllSPFRouters, the Designated Router
+and its Backup send both Link State Update Packets and Link State
+Acknowledgment Packets to the multicast address AllSPFRouters, while all
+other routers send both their Link State Update and Link State
+Acknowledgment Packets to the multicast address AllDRouters.
+
+Retransmissions of Link State Update packets are ALWAYS sent as
+unicasts.
+
+The IP source address should be set to the IP address of the sending
+interface. Interfaces to unnumbered point-to-point networks have no
+associated IP address. On these interfaces, the IP source should be set
+to any of the other IP addresses belonging to the router. For this
+reason, there must be at least one IP address assigned to the router.[2]
+Note that, for most purposes, virtual links act precisely the same as
+unnumbered point-to-point networks. However, each virtual link does
+have an interface IP address (discovered during the routing table build
+process) which is used as the IP source when sending packets over the
+virtual link.
+
+
+
+
+[Moy] [Page 39]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+For more information on the format of specific packet types, consult the
+sections listed in Table 10.
+
+
+
+ Type Packet name detailed section (transmit)
+ _________________________________________________________
+ 1 Hello Section 9.5
+ 2 Database description Section 10.8
+ 3 Link state request Section 10.9
+ 4 Link state update Section 13.3
+ 5 Link state ack Section 13.5
+
+
+ Table 10: Sections describing packet transmission.
+
+
+
+8.2 Receiving protocol packets
+
+Whenever a protocol packet is received by the router it is marked with
+the interface it was received on. For routers that have virtual links
+configured, it may not be immediately obvious which interface to
+associate the packet with. For example, consider the router RT11
+depicted in Figure 6. If RT11 receives an OSPF protocol packet on its
+interface to network N8, it may want to associate the packet with the
+interface to area 2, or with the virtual link to router RT10 (which is
+part of the backbone). In the following, we assume that the packet is
+initially associated with the non-virtual link.[3]
+
+In order for the packet to be accepted at the IP level, it must pass a
+number of tests, even before the packet is passed to OSPF for
+processing:
+
+
+o The IP checksum must be correct.
+
+o The packet's IP destination address must be the IP address of the
+ receiving interface, or one of the IP multicast addresses
+ AllSPFRouters or AllDRouters.
+
+o The IP protocol specified must be OSPF (89).
+
+o Locally originated packets should not be passed on to OSPF. That
+ is, the source IP address should be examined to make sure this is
+ not a multicast packet that the router itself generated.
+
+
+
+
+
+[Moy] [Page 40]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Next, the OSPF packet header is verified. The fields specified in the
+header must match those configured for the receiving interface. If they
+do not, the packet should be discarded:
+
+
+o The version number field must specify protocol version 2.
+
+o The 16-bit checksum of the OSPF packet's contents must be verified.
+ Remember that the 64-bit authentication field must be excluded from
+ the checksum calculation.
+
+o The Area ID found in the OSPF header must be verified. If both of
+ the following cases fail, the packet should be discarded. The Area
+ ID specified in the header must either:
+
+ (1) Match the Area ID of the receiving interface. In this case, the
+ packet has been sent over a single hop. Therefore, the packet's
+ IP source address must be on the same network as the receiving
+ interface. This can be determined by comparing the packet's IP
+ source address to the interface's IP address, after masking both
+ addresses with the interface mask.
+
+ (2) Indicate the backbone. In this case, the packet has been sent
+ over a virtual link. The receiving router must be an area
+ border router, and the router ID specified in the packet (the
+ source router) must be the other end of a configured virtual
+ link. The receiving interface must also attach to the virtual
+ link's configured transit area. If all of these checks succeed,
+ the packet is accepted and is from now on associated with the
+ virtual link (and the backbone area).
+
+o Packets whose IP destination is AllDRouters should only be accepted
+ if the state of the receiving interface is DR or Backup (see Section
+ 9.1).
+
+o The Authentication type specified must match the authentication type
+ specified for the associated area.
+
+
+Next, the packet must be authenticated. This depends on the
+authentication type specified (see Appendix E). The authentication
+procedure may use an Authentication key, which can be configured on a
+per-interface basis. If the authentication fails, the packet should be
+discarded.
+
+If the packet type is Hello, it should then be further processed by the
+Hello Protocol (see Section 10.5). All other packet types are
+sent/received only on adjacencies. This means that the packet must have
+
+
+
+[Moy] [Page 41]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+been sent by one of the router's active neighbors. If the receiving
+interface is a multi-access network (either broadcast or non-broadcast)
+the sender is identified by the IP source address found in the packet's
+IP header. If the receiving interface is a point-to-point link or a
+virtual link, the sender is identified by the Router ID (source router)
+found in the packet's OSPF header. The data structure associated with
+the receiving interface contains the list of active neighbors. Packets
+not matching any active neighbor are discarded.
+
+At this point all received protocol packets are associated with an
+active neighbor. For the further input processing of specific packet
+types, consult the sections listed in Table 11.
+
+
+
+ Type Packet name detailed section (receive)
+ ________________________________________________________
+ 1 Hello Section 10.5
+ 2 Database description Section 10.6
+ 3 Link state request Section 10.7
+ 4 Link state update Section 13
+ 5 Link state ack Section 13.7
+
+
+ Table 11: Sections describing packet reception.
+
+
+
+9. The Interface Data Structure
+
+An OSPF interface is the connection between a router and a network.
+There is a single OSPF interface structure for each attached network;
+each interface structure has at most one IP interface address (see
+below). The support for multiple addresses on a single network is a
+matter for future consideration.
+
+An OSPF interface can be considered to belong to the area that contains
+the attached network. All routing protocol packets originated by the
+router over this interface are labelled with the interface's Area ID.
+One or more router adjacencies may develop over an interface. A
+router's link state advertisements reflect the state of its interfaces
+and their associated adjacencies.
+
+The following data items are associated with an interface. Note that a
+number of these items are actually configuration for the attached
+network; those items must be the same for all routers connected to the
+network.
+
+
+
+
+[Moy] [Page 42]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Type
+ The kind of network to which the interface attaches. Its value is
+ either broadcast, non-broadcast yet still multi-access, point-to-
+ point or virtual link.
+
+State
+ The functional level of an interface. State determines whether or
+ not full adjacencies are allowed to form over the interface. State
+ is also reflected in the router's link state advertisements.
+
+IP interface address
+ The IP address associated with the interface. This appears as the
+ IP source address in all routing protocol packets originated over
+ this interface. Interfaces to unnumbered point-to-point networks do
+ not have an associated IP address.
+
+IP interface mask
+ This indicates the portion of the IP interface address that
+ identifies the attached network. This is often referred to as the
+ subnet mask. Masking the IP interface address with this value
+ yields the IP network number of the attached network.
+
+Area ID
+ The Area ID to which the attached network belongs. All routing
+ protocol packets originating from the interface are labelled with
+ this Area ID.
+
+HelloInterval
+ The length of time, in seconds, between the Hello packets that the
+ router sends on the interface. Advertised in Hello packets sent out
+ this interface.
+
+RouterDeadInterval
+ The number of seconds before the router's neighbors will declare it
+ down, when they stop hearing the router's hellos. Advertised in
+ Hello packets sent out this interface.
+
+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 will have their age incremented by
+ this amount before transmission. This value should take into
+ account transmission and propagation delays; it must be greater than
+ zero.
+
+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
+
+
+
+[Moy] [Page 43]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Router Priority takes precedence. A router whose Router Priority is
+ set to 0 is ineligible to become Designated Router on the attached
+ network. Advertised in Hello packets sent out this interface.
+
+Hello Timer
+ An interval timer that causes the interface to send a Hello packet.
+ This timer fires every HelloInterval seconds. Note that on non-
+ broadcast networks a separate Hello packet is sent to each qualified
+ neighbor.
+
+Wait Timer
+ A single shot timer that causes the interface to exit the Waiting
+ state, and as a consequence select a Designated Router on the
+ network. The length of the timer is RouterDeadInterval seconds.
+
+List of neighboring routers
+ The other routers attached to this network. On multi-access
+ networks, this list is formed by the Hello Protocol. Adjacencies
+ will be formed to some of these neighbors. The set of adjacent
+ neighbors can be determined by an examination of all of the
+ neighbors' states.
+
+Designated Router
+ The Designated Router selected for the attached network. The
+ Designated Router is selected on all multi-access networks by the
+ Hello Protocol. Two pieces of identification are kept for the
+ Designated Router: its Router ID and its interface IP address on the
+ network. The Designated Router advertises link state for the
+ network. The network link state advertisement is labelled with the
+ Designated Router's IP address. This item is initialized to 0,
+ which indicates the lack of a Designated Router.
+
+Backup Designated Router
+ The Backup Designated Router is also selected on all multi-access
+ networks by the Hello Protocol. All routers on the attached network
+ become adjacent to both the Designated Router and the Backup
+ Designated Router. The Backup Designated Router becomes Designated
+ Router when the current Designated Router fails. Initialized to 0
+ indicating the lack of a Backup Designated Router.
+
+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 links advertisement. There may be a
+ separate cost for each IP Type of Service. The cost of an interface
+ must be greater than zero.
+
+
+
+
+
+[Moy] [Page 44]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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.
+
+Authentication key
+ This configured data allows the authentication procedure to generate
+ and/or verify the authentication field in the OSPF header. The
+ authentication key can be configured on a per-interface basis. For
+ example, if the authentication type 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, and there could be a separate password for each
+ network.
+
+
+9.1 Interface states
+
+The various states that router interface may attain is documented in
+this section. 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 interfaces in
+state greater than X".
+
+Figure 11 shows the graph of interface state changes. The arcs of the
+graph are labelled with the event causing the state change. These
+events are documented in Section 9.2. The interface state machine is
+described in more detail in Section 9.3.
+
+
+Down
+ This is the initial interface state. In this state, the lower-level
+ protocols have indicated that the interface is unusable. No
+ protocol traffic at all will be sent or received on such a
+ interface. In this state, interface parameters should be set to
+ their initial values. All interface timers should be disabled, and
+ there should be no adjacencies associated with the interface.
+
+Loopback
+ In this state, the router's interface to the network is looped back.
+ The interface may be looped back in hardware or software. The
+ interface will be unavailable for regular data traffic. However, it
+ may still be desirable to gain information on the quality of this
+ interface, either through sending ICMP pings to the interface or
+ through something like a bit error test. For this reason, IP
+
+
+
+[Moy] [Page 45]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ packets may still be addressed to an interface in Loopback state.
+ To facilitate this, such interfaces are advertised in router links
+ advertisements as single host routes, whose destination is the IP
+ interface address.[4]
+
+Waiting
+ In this state, the router is trying to determine the identity of the
+ Backup Designated Router for the network. To do this, the router
+ monitors the Hellos it receives. The router is not allowed to elect
+ a Backup Designated Router nor Designated Router until it
+ transitions out of Waiting state. This prevents unnecessary changes
+ of (Backup) Designated Router.
+
+Point-to-point
+ In this state, the interface is operational, and connects either to
+ a physical point-to-point network or to a virtual link. Upon
+ entering this state, the router attempts to form an adjacency with
+ the neighboring router. Hellos are sent to the neighbor every
+ HelloInterval seconds.
+
+DR Other
+ The interface is to a multi-access network on which another router
+ has been selected to be the Designated Router. In this state, the
+ router itself has not been selected Backup Designated Router either.
+ The router forms adjacencies to both the Designated Router and the
+ Backup Designated Router (if they exist).
+
+Backup
+ In this state, the router itself is the Backup Designated Router on
+ the attached network. It will be promoted to Designated Router when
+ the present Designated Router fails. The router establishes
+ adjacencies to all other routers attached to the network. The
+ Backup Designated Router performs slightly different functions
+ during the Flooding Procedure, as compared to the Designated Router
+ (see Section 13.3). See Section 7.4 for more details on the
+ functions performed by the Backup Designated Router.
+
+DR In this state, this router itself is the Designated Router on the
+ attached network. Adjacencies are established to all other routers
+ attached to the network. The router must also originate a network
+ links advertisement for the network node. The advertisement will
+ contain links to all routers (including the Designated Router
+ itself) attached to the network. See Section 7.3 for more details
+ on the functions performed by the Designated Router.
+
+
+
+
+
+
+
+[Moy] [Page 46]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+9.2 Events causing interface state changes
+
+State changes can be effected by a number of events. These events are
+pictured as the labelled arcs in Figure 11. The label definitions are
+listed below. For a detailed explanation of the effect of these events
+on OSPF protocol operation, consult Section 9.3.
+
+
+Interface Up
+ Lower-level protocols have indicated that the network interface is
+ operational. This enables the interface to transition out of Down
+ state. On virtual links, the interface operational indication is
+ actually a result of the shortest path calculation (see Section
+ 16.7).
+
+Wait Timer
+ The Wait timer has fired, indicating the end of the waiting period
+ that is required before electing a (Backup) Designated Router.
+
+Backup seen
+ The router has detected the existence or non-existence of a Backup
+ Designated Router for the network. This is done in one of two ways.
+ First, a Hello Packet may be received from a neighbor claiming to be
+ itself the Backup Designated Router. Alternatively, a Hello Packet
+ may be received from a neighbor claiming to be itself the Designated
+ Router, and indicating that there is no Backup. In either case
+ there must be bidirectional communication with the neighbor, i.e.,
+ the router must also appear in the neighbor's Hello Packet. This
+ event signals an end to the Waiting state.
+
+Neighbor Change
+ There has been a change in the set of bidirectional neighbors
+ associated with the interface. The (Backup) Designated Router needs
+ to be recalculated. The following neighbor changes lead to the
+ Neighbor Change event. For an explanation of neighbor states, see
+ Section 10.1.
+
+ o Bidirectional communication has been established to a neighbor.
+ In other words, the state of the neighbor has transitioned to
+ 2-Way or higher.
+
+ o There is no longer bidirectional communication with a neighbor.
+ In other words, the state of the neighbor has transitioned to
+ Init or lower.
+
+ o One of the bidirectional neighbors is newly declaring itself as
+ either Designated Router or Backup Designated Router. This is
+ detected through examination of that neighbor's Hello Packets.
+
+
+
+[Moy] [Page 47]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ o One of the bidirectional neighbors is no longer declaring itself
+ as Designated Router, or is no longer declaring itself as Backup
+ Designated Router. This is again detected through examination
+ of that neighbor's Hello Packets.
+
+ o The advertised Router Priority for a bidirectional neighbor has
+ changed. This is again detected through examination of that
+ neighbor's Hello Packets.
+
+Loop Ind
+ An indication has been received that the interface is now looped
+ back to itself. This indication can be received either from network
+ management or from the lower level protocols.
+
+Unloop Ind
+ An indication has been received that the interface is no longer
+ looped back. As with the Loop Ind event, this indication can be
+ received either from network management or from the lower level
+ protocols.
+
+Interface Down
+ Lower-level protocols indicate that this interface is no longer
+ functional. No matter what the current interface state is, the new
+ interface state will be Down.
+
+
+9.3 The Interface state machine
+
+A detailed description of the interface state changes follows. Each
+state change is invoked by an event (Section 9.2). This event may
+produce different effects, depending on the current state of the
+interface. For this reason, the state machine below is organized by
+current interface state and received event. Each entry in the state
+machine describes the resulting new interface state and the required set
+of additional actions.
+
+When an interface's state changes, it may be necessary to originate a
+new router links advertisement. See Section 12.4 for more details.
+
+Some of the required actions below involve generating events for the
+neighbor state machine. For example, when an interface becomes
+inoperative, all neighbor connections associated with the interface must
+be destroyed. For more information on the neighbor state machine, see
+Section 10.3.
+
+
+ State(s): Down
+
+
+
+
+[Moy] [Page 48]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Event: Interface Up
+
+New state: Depends on action routine
+
+ Action: Start the interval Hello Timer, enabling the periodic
+ sending of Hello packets out the interface. If the attached
+ network is a physical point-to-point network or virtual
+ link, the interface state transitions to Point-to-Point.
+ Else, if the router is not eligible to become Designated
+ Router the interface state transitions to DR other.
+
+ Otherwise, the attached network is multi-access and the
+ router is eligible to become Designated Router. In this
+ case, in an attempt to discover the attached network's
+ Designated Router the interface state is set to Waiting and
+ the single shot Wait Timer is started. If in addition the
+ attached network is non-broadcast, examine the configured
+ list of neighbors for this interface and generate the
+ neighbor event Start for each neighbor that is also eligible
+ to become Designated Router.
+
+
+ State(s): Waiting
+
+ Event: Backup Seen
+
+New state: Depends upon action routine.
+
+ Action: Calculate the attached network's Backup Designated Router
+ and Designated Router, as shown in Section 9.4. As a result
+ of this calculation, the new state of the interface will be
+ either DR other, Backup or DR.
+
+
+ State(s): Waiting
+
+ Event: Wait Timer
+
+New state: Depends upon action routine.
+
+ Action: Calculate the attached network's Backup Designated Router
+ and Designated Router, as shown in Section 9.4. As a result
+ of this calculation, the new state of the interface will be
+ either DR other, Backup or DR.
+
+
+ State(s): DR Other, Backup or DR
+
+
+
+
+[Moy] [Page 49]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Event: Neighbor Change
+
+New state: Depends upon action routine.
+
+ Action: Recalculate the attached network's Backup Designated Router
+ and Designated Router, as shown in Section 9.4. As a result
+ of this calculation, the new state of the interface will be
+ either DR other, Backup or DR.
+
+
+ State(s): Any State
+
+ Event: Interface Down
+
+New state: Down
+
+ Action: All interface variables are reset, and interface timers
+ disabled. Also, all neighbor connections associated with
+ the interface are destroyed. This is done by generating the
+ event KillNbr on all associated neighbors (see Section
+ 10.2).
+
+
+ State(s): Any State
+
+ Event: Loop Ind
+
+New state: Loopback
+
+ Action: Since this interface is no longer connected to the attached
+ network the actions associated with the above Interface Down
+ event are executed.
+
+
+ State(s): Loopback
+
+ Event: Unloop Ind
+
+New state: Down
+
+ Action: No actions are necessary. For example, the interface
+ variables have already been reset upon entering the Loopback
+ state. Note that reception of an Interface Up event is
+ necessary before the interface again becomes fully
+ functional.
+
+
+
+
+
+
+[Moy] [Page 50]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+9.4 Electing the Designated Router
+
+This section describes the algorithm used for calculating a network's
+Designated Router and Backup Designated Router. This algorithm is
+invoked by the Interface state machine. The initial time a router runs
+the election algorithm for a network, the network's Designated Router
+and Backup Designated Router are initialized to 0.0.0.0. This indicates
+the lack of both a Designated Router and a Backup Designated Router.
+
+The Designated Router election algorithm proceeds as follows: Call the
+router doing the calculation Router X. The list of neighbors attached
+to the network and having established bidirectional communication with
+Router X is examined. This list is precisely the collection of Router
+X's neighbors (on this network) whose state is greater than or equal to
+2-Way (see Section 10.1). Router X itself is also considered to be on
+the list. Discard all routers from the list that are ineligible to
+become Designated Router. (Routers having Router Priority of 0 are
+ineligible to become Designated Router.) The following steps are then
+executed, considering only those routers that remain on the list:
+
+
+(1) Note the current values for the network's Designated Router and
+ Backup Designated Router. This is used later for comparison
+ purposes.
+
+(2) Calculate the new Backup Designated Router for the network as
+ follows. Only those routers on the list that have not declared
+ themselves to be Designated Router are eligible to become Backup
+ Designated Router. If one or more of these routers have declared
+ themselves Backup Designated Router (i.e., they are currently
+ listing themselves as Backup Designated Router, but not as
+ Designated Router, in their Hello Packets) the one having highest
+ Router Priority is declared to be Backup Designated Router. In case
+ of a tie, the one having the highest Router ID is chosen. If no
+ routers have declared themselves Backup Designated Router, choose
+ the router having highest Router Priority, (again excluding those
+ routers who have declared themselves Designated Router), and again
+ use the Router ID to break ties.
+
+(3) Calculate the new Designated Router for the network as follows. If
+ one or more of the routers have declared themselves Designated
+ Router (i.e., they are currently listing themselves as Designated
+ Router in their Hello Packets) the one having highest Router
+ Priority is declared to be Designated Router. In case of a tie, the
+ one having the highest Router ID is chosen. If no routers have
+ declared themselves Designated Router, promote the new Backup
+ Designated Router to Designated Router.
+
+
+
+
+[Moy] [Page 51]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+(4) If Router X is now newly the Designated Router or newly the Backup
+ Designated Router, or is now no longer the Designated Router or no
+ longer the Backup Designated Router, repeat steps 2 and 3, and then
+ proceed to step 5. For example, if Router X is now the Designated
+ Router, when step 2 is repeated X will no longer be eligible for
+ Backup Designated Router election. Among other things, this will
+ ensure that no router will declare itself both Backup Designated
+ Router and Designated Router.[5]
+
+(5) As a result of these calculations, the router itself may now be
+ Designated Router or Backup Designated Router. See Sections 7.3 and
+ 7.4 for the additional duties this would entail. The router's
+ interface state should be set accordingly. If the router itself is
+ now Designated Router, the new interface state is DR. If the router
+ itself is now Backup Designated Router, the new interface state is
+ Backup. Otherwise, the new interface state is DR Other.
+
+(6) If the attached network is non-broadcast, and the router itself has
+ just become either Designated Router or Backup Designated Router, it
+ must start sending hellos to those neighbors that are not eligible
+ to become Designated Router (see Section 9.5.1). This is done by
+ invoking the neighbor event Start for each neighbor having a Router
+ Priority of 0.
+
+(7) If the above calculations have caused the identity of either the
+ Designated Router or Backup Designated Router to change, the set of
+ adjacencies associated with this interface will need to be modified.
+ Some adjacencies may need to be formed, and others may need to be
+ broken. To accomplish this, invoke the event AdjOK? on all
+ neighbors whose state is at least 2-Way. This will cause their
+ eligibility for adjacency to be reexamined (see Sections 10.3 and
+ 10.4).
+
+
+The reason behind the election algorithm's complexity is the desire for
+an orderly transition from Backup Designated Router to Designated
+Router, when the current Designated Router fails. This orderly
+transition is ensured through the introduction of hysteresis: no new
+Backup router can be chosen until the old Backup accepts its new
+Designated Router responsibilities.
+
+If Router X is not itself eligible to become Designated Router, it is
+possible that neither a Backup Designated Router nor a Designated Router
+will be selected in the above procedure. Note also that if Router X is
+the only attached router that is eligible to become Designated Router,
+it will select itself as Designated Router and there will be no Backup
+Designated Router for the network.
+
+
+
+
+[Moy] [Page 52]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+9.5 Sending Hello packets
+
+Hello packets are sent out each functioning router interface. They are
+used to discover and maintain neighbor relationships.[6] On multi-access
+networks, hellos are also used to elect the Designated Router and Backup
+Designated Router, and in that way determine what adjacencies should be
+formed.
+
+The format of a Hello packet is detailed in Section A.3.2. The Hello
+Packet contains the router's Router Priority (used in choosing the
+Designated Router), and the interval between Hello broadcasts
+(HelloInterval). The Hello Packet also indicates how often a neighbor
+must be heard from to remain active (RouterDeadInterval). Both
+HelloInterval and RouterDeadInterval must be the same for all routers
+attached to a common network. The Hello packet also contains the IP
+address mask of the attached network (Network Mask). On unnumbered
+point-to-point networks and on virtual links this field should be set to
+0.
+
+The Hello packet's Options field describes the router's optional OSPF
+capabilities. There are currently two optional capabilities defined
+(see Sections 4.5 and A.2). The T-bit of the Options field should be
+set if the router is capable of calculating separate routes for each IP
+TOS. The E-bit should be set if and only if the attached area is
+capable of processing AS external advertisements (i.e., it is not a stub
+area). If the E-bit is set incorrectly the neighboring routers will
+refuse to accept the Hello Packet (see Section 10.5). The rest of the
+Hello Packet's Options field should be set to zero.
+
+In order to ensure two-way communication between adjacent routers, the
+Hello packet contains the list of all routers from which hellos have
+been seen recently. The Hello packet also contains the router's current
+choice for Designated Router and Backup Designated Router. A value of 0
+in these fields means that one has not yet been selected.
+
+On broadcast networks and physical point-to-point networks, Hello
+packets are sent every HelloInterval seconds to the IP multicast address
+AllSPFRouters. On virtual links, Hello packets are sent as unicasts
+(addressed directly to the other end of the virtual link) every
+HelloInterval seconds. On non-broadcast networks, the sending of Hello
+packets is more complicated. This will be covered in the next section.
+
+
+9.5.1 Sending Hello packets on non-broadcast networks
+
+Static configuration information is necessary in order for the Hello
+Protocol to function on non-broadcast networks (see Section C.5). Every
+attached router which is eligible to become Designated Router has a
+
+
+
+[Moy] [Page 53]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+configured list of all of its neighbors on the network. Each listed
+neighbor is labelled with its Designated Router eligibility.
+
+The interface state must be at least Waiting for any hellos to be sent.
+Hellos are then sent directly (as unicasts) to some subset of a router's
+neighbors. Sometimes an hello is sent periodically on a timer; at other
+times it is sent as a response to a received hello. A router's hello-
+sending behavior varies depending on whether the router itself is
+eligible to become Designated Router.
+
+If the router is eligible to become Designated Router, it must
+periodically send hellos to all neighbors that are also eligible. In
+addition, if the router is itself the Designated Router or Backup
+Designated Router, it must also send periodic hellos to all other
+neighbors. This means that any two eligible routers are always
+exchanging hellos, which is necessary for the correct operation of the
+Designated Router election algorithm. To minimize the number of hellos
+sent, the number of eligible routers on a non-broadcast network should
+be kept small.
+
+If the router is not eligible to become Designated Router, it must
+periodically send hellos to both the Designated Router and the Backup
+Designated Router (if they exist). It must also send an hello in reply
+to an hello received from any eligible neighbor (other than the current
+Designated Router and Backup Designated Router). This is needed to
+establish an initial bidirectional relationship with any potential
+Designated Router.
+
+When sending Hello packets periodically to any neighbor, the interval
+between hellos is determined by the neighbor's state. If the neighbor
+is in state Down, hellos are sent every PollInterval seconds.
+Otherwise, hellos are sent every HelloInterval seconds.
+
+
+10. The Neighbor Data Structure
+
+An OSPF router converses with its neighboring routers. Each separate
+conversation is described by a "neighbor data structure". Each
+conversation is bound to a particular OSPF router interface, and is
+identified either by the neighboring router's OSPF router ID or by its
+Neighbor IP address (see below). Thus if the OSPF router and another
+router have multiple attached networks in common, multiple conversations
+ensue, each described by a unique neighbor data structure. Each
+separate conversation is loosely referred to in the text as being a
+separate "neighbor".
+
+The neighbor data structure contains all information pertinent to the
+forming or formed adjacency between the two neighbors. (However,
+
+
+
+[Moy] [Page 54]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+remember that not all neighbors become adjacent.) An adjacency can be
+viewed as a highly developed conversation between two routers.
+
+
+State
+ The functional level of the neighbor conversation. This is
+ described in more detail in Section 10.1.
+
+Inactivity Timer
+ A single shot timer whose firing indicates that no Hello Packet has
+ been seen from this neighbor recently. The length of the timer is
+ RouterDeadInterval seconds.
+
+Master/Slave
+ When the two neighbors are exchanging databases, they form a Master
+ Slave relationship. The Master sends the first Database Description
+ Packet, and is the only part that is allowed to retransmit. The
+ slave can only respond to the master's Database Description Packets.
+ The master/slave relationship is negotiated in state ExStart.
+
+Sequence Number
+ A 32-bit number identifying individual Database Description packets.
+ When the neighbor state ExStart is entered, the sequence number
+ should be set to a value not previously seen by the neighboring
+ router. One possible scheme is to use the machine's time of day
+ counter. The sequence number is then incremented by the master with
+ each new Database Description packet sent. The slave's sequence
+ number indicates the last packet received from the master. Only one
+ packet is allowed outstanding at a time.
+
+Neighbor ID
+ The OSPF Router ID of the neighboring router. The neighbor ID is
+ learned when Hello packets are received from the neighbor, or is
+ configured if this is a virtual adjacency (see Section C.4).
+
+Neighbor priority
+ The Router Priority of the neighboring router. Contained in the
+ neighbor's Hello packets, this item is used when selecting the
+ Designated Router for the attached network.
+
+Neighbor IP address
+ The IP address of the neighboring router's interface to the attached
+ network. Used as the Destination IP address when protocol packets
+ are sent as unicasts along this adjacency. Also used in router
+ links advertisements as the Link ID for the attached network if the
+ neighboring router is selected to be Designated Router (see Section
+ 12.4.1). The neighbor IP address is learned when Hello packets are
+ received from the neighbor. For virtual links, the neighbor IP
+
+
+
+[Moy] [Page 55]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ address is learned during the routing table build process (see
+ Section 15).
+
+Neighbor Options
+ The optional OSPF capabilities supported by the neighbor. Learned
+ during the Database Exchange process (see Section 10.6). The
+ neighbor's optional OSPF capabilities are also listed in its Hello
+ packets. This enables received Hellos to be rejected (i.e.,
+ neighbor relationships will not even start to form) if there is a
+ mismatch in certain crucial OSPF capabilities (see Section 10.5).
+ The optional OSPF capabilities are documented in Section 4.5.
+
+Neighbor's Designated Router
+ The neighbor's idea of the Designated Router. If this is the
+ neighbor itself, this is important in the local calculation of the
+ Designated Router. Defined only on multi-access networks.
+
+Neighbor's Backup Designated Router
+ The neighbor's idea of the Backup Designated Router. If this is the
+ neighbor itself, this is important in the local calculation of the
+ Backup Designated Router. Defined only on multi-access networks.
+
+
+The next set of variables are lists of link state advertisements. These
+lists describe subsets of the area topological database. There can be
+five distinct types of link state advertisements in an area topological
+database: router links, network links, and type 3 and 4 summary links
+(all stored in the area data structure), and AS external links (stored
+in the global data structure).
+
+
+Link state retransmission list
+ The list of link state advertisements that have been flooded but not
+ acknowledged on this adjacency. These will be retransmitted at
+ intervals until they are acknowledged, or until the adjacency is
+ destroyed.
+
+Database summary list
+ The complete list of link state advertisements that make up the area
+ topological database, at the moment the neighbor goes into Database
+ Exchange state. This list is sent to the neighbor in Database
+ Description packets.
+
+Link state request list
+ The list of link state advertisements that need to be received from
+ this neighbor in order to synchronize the two neighbors' topological
+ databases. This list is created as Database Description packets are
+ received, and is then sent to the neighbor in Link State Request
+
+
+
+[Moy] [Page 56]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ packets. The list is depleted as appropriate Link State Update
+ packets are received.
+
+
+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 show 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.
+
+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.
+
+
+
+ _____________________________________________________
+
+ (Figures not included in text version.)
+
+ Figure 12: Neighbor state changes (Hello Protocol)
+ Figure 13: Neighbor state changes (Database Exchange)
+ _____________________________________________________
+
+
+
+
+
+
+[Moy] [Page 57]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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 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 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.
+
+
+
+
+[Moy] [Page 58]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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.
+
+
+10.2 Events causing neighbor state changes
+
+State changes can be effected by a number of events. These events are
+shown in the labels of the arcs in Figures 12 and 13. The label
+definitions are as follows:
+
+
+Hello Received
+ A Hello packet has been received from a neighbor.
+
+Start
+ This is an indication that Hello Packets should now be sent to the
+ neighbor at intervals of HelloInterval seconds. This event is
+ generated only for neighbors associated with non-broadcast networks.
+
+2-Way Received
+ Bidirectional communication has been realized between the two
+ neighboring routers. This is indicated by this router seeing itself
+ in the other's Hello packet.
+
+NegotiationDone
+ The Master/Slave relationship has been negotiated, and sequence
+ numbers have been exchanged. This signals the start of the
+ sending/receiving of Database Description packets. For more
+ information on the generation of this event, consult Section 10.8.
+
+Exchange Done
+ Both routers have successfully transmitted a full sequence of
+ Database Description packets. Each router now knows what parts of
+ its link state database are out of date. For more information on
+ the generation of this event, consult Section 10.8.
+
+BadLSReq
+ A Link State Request has been received for a link state
+ advertisement not contained in the database. This indicates an
+ error in the synchronization process.
+
+
+
+
+[Moy] [Page 59]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Loading Done
+ Link State Updates have been received for all out-of-date portions
+ of the database. This is indicated by the Link state request list
+ becoming empty after the Database Description Process has completed.
+
+AdjOK?
+ A decision must be made (again) as to whether an adjacency should be
+ established/maintained with the neighbor. This event will start
+ some adjacencies forming, and destroy others.
+
+
+The following events cause well developed neighbors to revert to lesser
+states. Unlike the above events, these events may occur when the
+neighbor conversation is in any of a number of states.
+
+
+Seq Number Mismatch
+ A Database Description packet has been received that either a) has
+ an unexpected sequence number, b) unexpectedly has the Init bit set
+ or c) has an Options field differing from the last Options field
+ received in a Database Description packet. Any of these conditions
+ indicate that some error has occurred during adjacency
+ establishment.
+
+1-Way
+ An Hello packet has been received from the neighbor, in which this
+ router is not mentioned. This indicates that communication with the
+ neighbor is not bidirectional.
+
+KillNbr
+ This is an indication that all communication with the
+ neighbor is now impossible, forcing the neighbor to revert
+ to Down state.
+
+Inactivity Timer
+ The inactivity Timer has fired. This means that no Hello packets
+ have been seen recently from the neighbor. The neighbor reverts to
+ Down state.
+
+LLDown
+ This is an indication from the lower level protocols that the
+ neighbor is now unreachable. For example, on an X.25 network this
+ could be indicated by an X.25 clear indication with appropriate
+ cause and diagnostic fields. This event forces the neighbor into
+ Down state.
+
+
+
+
+
+
+[Moy] [Page 60]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+10.3 The Neighbor state machine
+
+A detailed description of the neighbor state changes follows. Each
+state change is invoked by an event (Section 10.2). This event may
+produce different effects, depending on the current state of the
+neighbor. For this reason, the state machine below is organized by
+current neighbor state and received event. Each entry in the state
+machine describes the resulting new neighbor state and the required set
+of additional actions.
+
+When an neighbor's state changes, it may be necessary to rerun the
+Designated Router election algorithm. This is determined by whether the
+interface Neighbor Change event is generated (see Section 9.2). Also,
+if the Interface is in DR state (the router is itself Designated
+Router), changes in neighbor state may cause a new network links
+advertisement to be originated (see Section 12.4).
+
+When the neighbor state machine needs to invoke the interface state
+machine, it should be done as a scheduled task (see Section 4.4). This
+simplifies things, by ensuring that neither state machine will be
+executed recursively.
+
+
+ State(s): Down
+
+ Event: Start
+
+New state: Attempt
+
+ Action: Send an hello to the neighbor (this neighbor is always
+ associated with a non-broadcast network) and start the
+ inactivity timer for the neighbor. The timer's later firing
+ would indicate that communication with the neighbor was not
+ attained.
+
+
+ State(s): Attempt
+
+ Event: Hello Received
+
+New state: Init
+
+ Action: Restart the inactivity timer for the neighbor, since the
+ neighbor has now been heard from.
+
+
+ State(s): Down
+
+
+
+
+[Moy] [Page 61]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Event: Hello Received
+
+New state: Init
+
+ Action: Start the inactivity timer for the neighbor. The timer's
+ later firing would indicate that the neighbor is dead.
+
+
+ State(s): Init or greater
+
+ Event: Hello Received
+
+New state: No state change.
+
+ Action: Restart the inactivity timer for the neighbor, since the
+ neighbor has again been heard from.
+
+
+ State(s): Init
+
+ Event: 2-Way Received
+
+New state: Depends upon action routine.
+
+ Action: Determine whether an adjacency should be established with
+ the neighbor (see Section 10.4). If not, the new neighbor
+ state is 2-Way.
+
+ Otherwise (an adjacency should be established) the neighbor
+ state transitions to ExStart. Upon entering this state, the
+ router increments the sequence number for this neighbor. If
+ this is the first time that an adjacency has been attempted,
+ the sequence number should be assigned some unique value
+ (like the time of day clock). It then declares itself
+ master (sets the master/slave bit to master), and starts
+ sending Database Description Packets, with the initialize
+ (I), more (M) and master (MS) bits set. This Database
+ Description Packet should be otherwise empty. This Database
+ Description Packet should be retransmitted at intervals of
+ RxmtInterval until the next state is entered (see Section
+ 10.8).
+
+
+ State(s): ExStart
+
+ Event: NegDone
+
+
+
+
+
+[Moy] [Page 62]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+New state: Exchange
+
+ Action: The router must list the contents of its entire area link
+ state database in the neighbor Database summary list. The
+ area link state database consists of the router links,
+ network links and summary links contained in the area
+ structure, along with the AS external links contained in the
+ global structure. AS external link advertisements are
+ omitted from a virtual neighbor's Database summary list. AS
+ external advertisements are omitted from the Database
+ summary list if the area has been configured as a stub (see
+ Section 3.6). Advertisements whose age is equal to MaxAge
+ are instead added to the neighbor's Link state
+ retransmission list. A summary of the Database summary list
+ will be sent to the neighbor in Database Description
+ packets. Each Database Description Packet has a sequence
+ number, and is explicitly acknowledged. Only one Database
+ Description Packet is allowed outstanding at any one time.
+ For more detail on the sending and receiving of Database
+ Description packets, see Sections 10.8 and 10.6.
+
+
+ State(s): Exchange
+
+ Event: Exchange Done
+
+New state: Depends upon action routine.
+
+ Action: If the neighbor Link state request list is empty, the new
+ neighbor state is Full. No other action is required. This
+ is an adjacency's final state.
+
+ Otherwise, the new neighbor state is Loading. Start (or
+ continue) sending Link State Request packets to the neighbor
+ (see Section 10.9). These are requests for the neighbor's
+ more recent advertisements (which were discovered but not
+ yet received in the Exchange state). These advertisements
+ are listed in the Link state request list associated with
+ the neighbor.
+
+
+ State(s): Loading
+
+ Event: Loading Done
+
+New state: Full
+
+
+
+
+
+[Moy] [Page 63]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Action: No action required. This is an adjacency's final state.
+
+
+ State(s): 2-Way
+
+ Event: AdjOK?
+
+New state: Depends upon action routine.
+
+ Action: Determine whether an adjacency should be formed with the
+ neighboring router (see Section 10.4). If not, the neighbor
+ state remains at 2-Way. Otherwise, transition the neighbor
+ state to ExStart and perform the actions associated with the
+ above state machine entry for state Init and event 2-Way
+ Received.
+
+
+ State(s): ExStart or greater
+
+ Event: AdjOK?
+
+New state: Depends upon action routine.
+
+ Action: Determine whether the neighboring router should still be
+ adjacent. If yes, there is no state change and no further
+ action is necessary.
+
+ Otherwise, the (possibly partially formed) adjacency must be
+ destroyed. The neighbor state transitions to 2-Way. The
+ Link state retransmission list, Database summary list and
+ Link state request list are cleared of link state
+ advertisements.
+
+
+ State(s): Exchange or greater
+
+ Event: Seq Number Mismatch
+
+New state: ExStart
+
+ Action: The (possibly partially formed) adjacency is torn down, and
+ then an attempt is made at reestablishment. The neighbor
+ state first transitions to ExStart. The Link state
+ retransmission list, Database summary list and Link state
+ request list are cleared of link state advertisements. Then
+ the router increments the sequence number for this neighbor,
+ declares itself master (sets the master/slave bit to
+ master), and starts sending Database Description Packets,
+
+
+
+[Moy] [Page 64]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ with the initialize (I), more (M) and master (MS) bits set.
+ This Database Description Packet should be otherwise empty
+ (see Section 10.8).
+
+
+ State(s): Exchange or greater
+
+ Event: BadLSReq
+
+New state: ExStart
+
+ Action: The action for event BadLSReq is exactly the same as for the
+ neighbor event SeqNumberMismatch. The (possibly partially
+ formed) adjacency is torn down, and then an attempt is made
+ at reestablishment. For more information, see the neighbor
+ state machine entry that is invoked when event
+ SeqNumberMismatch is generated in state Exchange or greater.
+
+
+ State(s): Any state
+
+ Event: KillNbr
+
+New state: Down
+
+ Action: The Link state retransmission list, Database summary list
+ and Link state request list are cleared of link state
+ advertisements. Also, the inactivity timer is disabled.
+
+
+ State(s): Any state
+
+ Event: LLDown
+
+New state: Down
+
+ Action: The Link state retransmission list, Database summary list
+ and Link state request list are cleared of link state
+ advertisements. Also, the inactivity timer is disabled.
+
+
+ State(s): Any state
+
+ Event: Inactivity Timer
+
+New state: Down
+
+
+
+
+
+[Moy] [Page 65]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Action: The Link state retransmission list, Database summary list
+ and Link state request list are cleared of link state
+ advertisements.
+
+
+ State(s): 2-Way or greater
+
+ Event: 1-Way Received
+
+New state: Init
+
+ Action: The Link state retransmission list, Database summary list
+ and Link state request list are cleared of link state
+ advertisements.
+
+
+ State(s): 2-Way or greater
+
+ Event: 2-Way received
+
+New state: No state change.
+
+ Action: No action required.
+
+
+ State(s): Init
+
+ Event: 1-Way received
+
+New state: No state change.
+
+ Action: No action required.
+
+
+10.4 Whether to become adjacent
+
+Adjacencies are established with some subset of the router's neighbors.
+Routers connected by point-to-point networks and virtual links always
+become adjacent. On multi-access networks, all routers become adjacent
+to both the Designated Router and the Backup Designated Router.
+
+The adjacency-forming decision occurs in two places in the neighbor
+state machine. First, when bidirectional communication is initially
+established with the neighbor, and secondly, when the identity of the
+attached network's (Backup) Designated Router changes. If the decision
+is made to not attempt an adjacency, the state of the neighbor
+communication stops at 2-Way.
+
+
+
+
+[Moy] [Page 66]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+An adjacency should be established with a (bidirectional) neighbor when
+at least one of the following conditions holds:
+
+
+o The underlying network type is point-to-point
+
+o The underlying network type is virtual link
+
+o The router itself is the Designated Router
+
+o The router itself is the Backup Designated Router
+
+o The neighboring router is the Designated Router
+
+o The neighboring router is the Backup Designated Router
+
+
+10.5 Receiving Hello packets
+
+This section explains the detailed processing of a received Hello
+packet. (See Section A.3.2 for the format of Hello packets.) The
+generic input processing of OSPF packets will have checked the validity
+of the IP header and the OSPF packet header. Next, the values of the
+Network Mask, HelloInt, and DeadInt fields in the received Hello packet
+must be checked against the values configured for the receiving
+interface. Any mismatch causes processing to stop and the packet to be
+dropped. In other words, the above fields are really describing the
+attached network's configuration. Note that the value of the Network
+Mask field should not be checked in Hellos received on unnumbered serial
+lines or on virtual links.
+
+The receiving interface attaches to a single OSPF area (this could be
+the backbone). The setting of the E-bit found in the Hello Packet's
+option field must match this area's external routing capability. If AS
+external advertisements are not flooded into/throughout the area (i.e,
+the area is a "stub") the E-bit must be clear in received hellos,
+otherwise the E-bit must be set. A mismatch causes processing to stop
+and the packet to be dropped. The setting of the rest of the bits in
+the Hello Packet's option field should be ignored.
+
+At this point, an attempt is made to match the source of the Hello
+Packet to one of the receiving interface's neighbors. If the receiving
+interface is a multi-access network (either broadcast or non-broadcast)
+the source is identified by the IP source address found in the Hello's
+IP header. If the receiving interface is a point-to-point link or a
+virtual link, the source is identified by the Router ID found in the
+Hello's OSPF packet header. The interface's current list of neighbors
+is contained in the interface's data structure. If a matching neighbor
+
+
+
+[Moy] [Page 67]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+structure cannot be found, (i.e., this is the first time the neighbor
+has been detected), one is created. The initial state of a newly
+created neighbor is set to Down.
+
+When receiving an Hello Packet from a neighbor on a multi-access network
+(broadcast or non-broadcast), set the neighbor structure's Neighbor ID
+equal to the Router ID found in the packet's OSPF header. When
+receiving an Hello on a point-to-point network (but not on a virtual
+link) set the neighbor structure's Neighbor IP address to the packet's
+IP source address.
+
+Now the rest of the Hello Packet is examined, generating events to be
+given to the neighbor and interface state machines. These state
+machines are specified either to be executed or scheduled (see Section
+4.4). For example, by specifying below that the neighbor state machine
+be executed in line, several neighbor state transitions may be effected
+by a single received Hello:
+
+
+o Each Hello Packet causes the neighbor state machine to be executed
+ with the event Hello Received.
+
+o Then the list of neighbors contained in the Hello Packet is
+ examined. If the router itself appears in this list, the neighbor
+ state machine should be executed with the event 2-Way Received.
+ Otherwise, the neighbor state machine should be executed with the
+ event 1-Way Received, and the processing of the packet stops.
+
+o Next, the Hello packet's Router Priority field is examined. If this
+ field is different than the one previously received from the
+ neighbor, the receiving interface's state machine is scheduled with
+ the event NeighborChange. In any case, the Router Priority field in
+ the neighbor data structure should be set accordingly.
+
+o Next the Designated Router field in the Hello Packet is examined.
+ If the neighbor is both declaring itself to be Designated Router
+ (Designated Router field = neighbor IP address) and the Backup
+ Designated Router field in the packet is equal to 0.0.0.0 and the
+ receiving interface is in state Waiting, the receiving interface's
+ state machine is scheduled with the event BackupSeen. Otherwise, if
+ the neighbor is declaring itself to be Designated Router and it had
+ not previously, or the neighbor is not declaring itself Designated
+ Router where it had previously, the receiving interface's state
+ machine is scheduled with the event NeighborChange. In any case,
+ the Designated Router item in the neighbor structure is set
+ accordingly.
+
+
+
+
+
+[Moy] [Page 68]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+o Finally, the Backup Designated Router field in the Hello Packet is
+ examined. If the neighbor is declaring itself to be Backup
+ Designated Router (Backup Designated Router field = neighbor IP
+ address) and the receiving interface is in state Waiting, the
+ receiving interface's state machine is scheduled with the event
+ BackupSeen. Otherwise, if the neighbor is declaring itself to be
+ Backup Designated Router and it had not previously, or the neighbor
+ is not declaring itself Backup Designated Router where it had
+ previously, the receiving interface's state machine is scheduled
+ with the event NeighborChange. In any case, the Backup Designated
+ Router item in the neighbor structure is set accordingly.
+
+
+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-Way
+ Received. This causes an immediate state change to either state 2-
+ Way or state Exstart. The processing of the current packet should
+ then continue in this new state.
+
+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.
+
+ o 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 sequence
+ number to that specified by the master.
+
+
+
+[Moy] [Page 69]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ o The initialize(I) and master(MS) bits are off, the packet's
+ sequence number equals the router's own 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 Seq Number
+ Mismatch and stop processing the packet. Otherwise:
+
+ o If the initialize(I) bit is set, generate the neighbor event Seq
+ Number Mismatch and stop processing the packet.
+
+ o 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 Seq Number
+ Mismatch and stop processing the packet.
+
+ o If the router is master, and the packet's sequence number equals
+ the router's own sequence number (this packet is the next in
+ sequence) the packet should be accepted and its contents
+ processed (below).
+
+ o If the router is master, and the packet's sequence number is one
+ less than the router's sequence number, the packet is a
+ duplicate. Duplicates should be discarded by the master.
+
+ o If the router is slave, and the packet's sequence number is one
+ more than the router's own sequence number (this packet is the
+ next in sequence) the packet should be accepted and its contents
+ processed (below).
+
+ o If the router is slave, and the packet's sequence number is
+ equal to the router's sequence number, the packet is a
+ duplicate. The slave must respond to duplicates by repeating
+ the last Database Description packet that it sent.
+
+ o Else, generate the neighbor event Seq Number Mismatch and stop
+ processing the packet.
+
+Loading or Full
+ In this state, the router has sent and received an entire sequence
+ of Database Descriptions. 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
+
+
+
+[Moy] [Page 70]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ neighbor Options field). Any other packets received, including the
+ reception of a packet with the Initialize(I) bit set, should
+ generate the neighbor event Seq Number Mismatch.[8] Duplicates
+ should be discarded by the master. The slave must respond to
+ duplicates by repeating the last Database Description packet that it
+ 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 Seq Number Mismatch 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 sequence number. If the router has already sent its
+ entire sequence of Database Descriptions, and the just accepted
+ packet has the more bit (M) set to 0, the neighbor event Exchange
+ Done is generated. Otherwise, it should send a new Database
+ Description to the slave.
+
+Slave
+ Sets the sequence number to the sequence number appearing in the
+ received packet. The slave must send a Database Description in
+ reply. If the received packet has the more bit (M) set to 0, and
+ the packet to be sent by the slave will have the M-bit set to 0
+ also, the neighbor event Exchange Done is generated. Note that the
+ slave always generates this event before the master.
+
+
+10.7 Receiving Link State Request Packets
+
+This section explains the detailed processing of received Link State
+Request packets. Received Link State Request Packets specify a list of
+link state advertisements that the neighbor wishes to receive. Link
+
+
+
+[Moy] [Page 71]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+state Request Packets should be accepted when the neighbor is in states
+Exchange, Loading, or Full. In all other states Link State Request
+Packets should be ignored.
+
+Each link state advertisement specified in the Link State Request packet
+should be located in the router's database, and copied into Link State
+Update packets for transmission to the neighbor. These link state
+advertisements should NOT be placed on the Link state retransmission
+list for the neighbor. If a link state advertisement cannot be found in
+the database, something has gone wrong with the synchronization
+procedure, and neighbor event BadLSReq should be generated.
+
+
+10.8 Sending Database Description Packets
+
+This section describes how Database Description Packets are sent to a
+neighbor. The router's optional OSPF capabilities (see Section 4.5) are
+transmitted to the neighbor in the Options field of the Database
+Description packet. The router should maintain the same set of optional
+capabilities throughout the Database Exchange and flooding procedures.
+If for some reason the router's optional capabilities change, the
+Database Exchange procedure should be restarted by reverting to neighbor
+state ExStart. There are currently two optional capabilities defined.
+The T-bit should be set if and only if the router is capable of
+calculating separate routes for each IP TOS. The E-bit should be set if
+and only if the attached network belongs to a non-stub area. The rest
+of the Options field should be set to zero.
+
+The sending of Database Description packets depends on the neighbor's
+state. In state ExStart the router sends empty Database Description
+packets, with the initialize (I), more (M) and master (MS) bits set.
+These packets are retransmitted every RxmtInterval seconds.
+
+In state Exchange the Database Description Packets actually contain
+summaries of the link state information contained in the router's
+database. Each link state advertisement in the area's topological
+database (at the time the neighbor transitions into Exchange state) is
+listed in the neighbor Database summary list. When a new Database
+Description Packet is to be sent, the packet's sequence number is
+incremented, and the (new) top of the Database summary list is described
+by the packet. Items are removed from the Database summary list when
+the previous packet is acknowledged.
+
+In state Exchange, the determination of when to send a packet depends on
+whether the router is master or slave:
+
+
+
+
+
+
+[Moy] [Page 72]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Master
+ Packets are sent when either a) the slave acknowledges the previous
+ packet by echoing the sequence number or b) RxmtInterval seconds
+ elapse without an acknowledgment, in which case the previous packet
+ is retransmitted.
+
+Slave
+ Packets are sent only in response to packets received from the
+ master. If the packet received from the master is new, a new packet
+ is sent, otherwise the previous packet is resent.
+
+
+In states Loading and Full the slave must resend its last packet in
+response to duplicate packets received from the master. For this reason
+the slave must wait RouterDeadInterval seconds before freeing the last
+packet. Reception of a packet from the master after this interval will
+generate a Seq Number Mismatch neighbor event.
+
+
+10.9 Sending Link State Request Packets
+
+In neighbor states Exchange or Loading, the Link state request list
+contains a list of those link state advertisements that need to be
+obtained from the neighbor. To request these advertisements, a router
+sends the neighbor the beginning of the Link state request list,
+packaged in a Link State Request packet.
+
+When the neighbor responds to these requests with the proper Link State
+Update packet(s), the Link state request list is truncated and a new
+Link State Request packet is sent. This process continues until the
+link state request list becomes empty. Unsatisfied Link State Requests
+are retransmitted at intervals of RxmtInterval. There should be at most
+one Link State Request packet outstanding at any one time.
+
+When the Link state request list becomes empty, and the neighbor state
+is Loading (i.e., a complete sequence of Database Description packets
+has been received from the neighbor), the Loading Done neighbor event is
+generated.
+
+
+10.10 An Example
+
+Figure 14 shows an example of an adjacency forming. Routers RT1 and RT2
+are both connected to a broadcast network. It is assumed that RT2 is
+the Designated Router for the network, and that RT2 has a higher Router
+ID that router RT1.
+
+The neighbor state changes realized by each router are listed on the
+
+
+
+[Moy] [Page 73]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+sides of the figure.
+
+
+At the beginning of Figure 14, router RT1's interface to the network
+becomes operational. It begins sending hellos, although it doesn't know
+the identity of the Designated Router or of any other neighboring
+routers. Router RT2 hears this hello (moving the neighbor to Init
+state), and in its next hello indicates that it is itself the Designated
+Router and that it has heard hellos from RT1. This in turn causes RT1
+to go to state ExStart, as it starts to bring up the adjacency.
+
+RT1 begins by asserting itself as the master. When it sees that RT2 is
+indeed the master (because of RT2's higher Router ID), RT1 transitions
+to slave state and adopts its neighbor's sequence number. Database
+Description packets are then exchanged, with polls coming from the
+master (RT2) and responses from the slave (RT1). This sequence of
+Database Description Packets ends when both the poll and associated
+response has the M-bit off.
+
+In this example, it is assumed that RT2 has a completely up to date
+database. In that case, RT2 goes immediately into Full state. RT1 will
+go into Full state after updating the necessary parts of its database.
+This is done by sending Link State Request Packets, and receiving Link
+State Update Packets in response. Note that, while RT1 has waited until
+a complete set of Database Description Packets has been received (from
+RT2) before sending any Link State Request Packets, this need not be the
+case. RT1 could have interleaved the sending of Link State Request
+Packets with the reception of Database Description Packets.
+
+
+11. The Routing Table Structure
+
+The routing table data structure contains all the information necessary
+to forward an IP data packet toward its destination. Each routing table
+entry describes the collection of best paths to a particular
+destination. When forwarding an IP data packet, the routing table entry
+providing the best match for the packet's IP destination is located.
+
+
+ ________________________________________
+
+ (Figure not included in text version.)
+
+ Figure 14: An adjacency bring-up example
+ ________________________________________
+
+
+
+
+
+
+[Moy] [Page 74]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+The matching routing table entry then provides the next hop towards the
+packet's destination. OSPF also provides for the existence of a default
+route (Destination ID = DefaultDestination). When the default route
+exists, it matches all IP destinations (although any other matching
+entry is a better match). Finding the routing table entry that best
+matches an IP destination is further described in Section 11.1.
+
+There is a single routing table in each router. Two sample routing
+tables are described in Sections 11.2 and 11.3. The building of the
+routing table is discussed in Section 16.
+
+The rest of this section defines the fields found in a routing table
+entry. The first set of fields describes the routing table entry's
+destination.
+
+
+Destination Type
+ The destination can be one of three types. Only the first type,
+ Network, is actually used when forwarding IP data traffic. The
+ other destinations are used solely as intermediate steps in the
+ routing table build process.
+
+ Network
+ A range of IP addresses, to which IP data traffic may be
+ forwarded. This includes IP networks (class A, B, or C), IP
+ subnets, and single IP hosts. The default route also falls in
+ this category.
+
+ Area border router
+ Routers that are connected to multiple OSPF areas. Such routers
+ originate summary link advertisements. These routing table
+ entries are used when calculating the inter-area routes (see
+ Section 16.2). These routing table entries may also be
+ associated with configured virtual links.
+
+ AS boundary router
+ Routers that originate AS external link advertisements. These
+ routing table entries are used when calculating the AS external
+ routes (see Section 16.4).
+
+Destination ID
+ The destination's identifier or name. This depends on the
+ destination's type. For networks, the identifier is their
+ associated IP address. For all other types, the identifier is the
+ OSPF Router ID.[9]
+
+Address Mask
+ Only defined for networks. The network's IP address together with
+
+
+
+[Moy] [Page 75]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ its address mask defines a range of IP addresses. For IP subnets,
+ the address mask is referred to as the subnet mask. For host
+ routes, the mask is "all ones" (0xffffffff).
+
+Optional Capabilities
+ When the destination is a router (either an area border router or an
+ AS boundary router) this field indicates the optional OSPF
+ capabilities supported by the destination router. The two optional
+ capabilities currently defined by this specification are the ability
+ to route based on IP TOS and the ability to process AS external
+ advertisements. For a further discussion of OSPF's optional
+ capabilities, see Section 4.5.
+
+
+The set of paths to use for a destination may vary based on IP Type of
+Service and the OSPF area to which the paths belong. This means that
+there may be multiple routing table entries for the same destination,
+depending on the values of the next two fields.
+
+
+Type of Service
+ There can be a separate set of routes for each IP Type of Service.
+ The encoding of TOS in OSPF link state advertisements is described
+ in Section 12.3.
+
+Area
+ This field indicates the area whose link state information has led
+ to the routing table entry's collection of paths. This is called
+ the entry's associated area. For sets of AS external paths, this
+ field is not defined. For destinations of type "area border
+ router", there may be separate sets of paths (and therefore separate
+ routing table entries) associated with each of several areas. This
+ will happen when two area border routers share multiple areas in
+ common. For all other destination types, only the set of paths
+ associated with the best area (the one providing the shortest route)
+ is kept.
+
+
+The rest of the routing table entry describes the set of paths to the
+destination. The following fields pertain to the set of paths as a
+whole. In other words, each one of the paths contained in a routing
+table entry is of the same path-type and cost (see below).
+
+
+Path-type
+ There are four possible types of paths used to route traffic to the
+ destination, listed here in order of preference: intra-area, inter-
+ area, type 1 external or type 2 external. Intra-area paths indicate
+
+
+
+[Moy] [Page 76]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ destinations belonging to one of the router's attached areas.
+ Inter-area paths are paths to destinations in other OSPF areas.
+ These are discovered through the examination of received summary
+ link advertisements. AS external paths are paths to destinations
+ external to the AS. These are detected through the examination of
+ received AS external link advertisements.
+
+Cost
+ The link state cost of the path to the destination. For all paths
+ except type 2 external paths this describes the entire path's cost.
+ For Type 2 external paths, this field describes the cost of the
+ portion of the path internal to the AS. This cost is calculated as
+ the sum of the costs of the path's constituent links.
+
+Type 2 cost
+ Only valid for type 2 external paths. For these paths, this field
+ indicates the cost of the path's external portion. This cost has
+ been advertised by an AS boundary router, and is the most
+ significant part of the total path cost. For example, an external
+ type 2 path with type 2 cost of 5 is always preferred over a path
+ with type 2 cost of 10, regardless of the cost of the two paths'
+ internal components.
+
+Link State Origin
+ Valid only for intra-area paths, this field indicates the link state
+ advertisement (router links or network links) that directly
+ references the destination. For example, if the destination is a
+ transit network, this is the transit network's network links
+ advertisement. If the destination is a stub network, this is the
+ router links advertisement for the attached router. The
+ advertisement is discovered during the shortest-path tree
+ calculation (see Section 16.1). Multiple advertisements may
+ reference the destination, however a tie-breaking scheme always
+ reduces the choice to a single advertisement.
+
+ This field is for informational purposes only. The advertisement
+ could be used as a root for an SPF calculation when building a
+ reverse path forwarding tree. This is beyond the scope of this
+ specification.
+
+
+When multiple paths of equal path-type and cost exist to a destination
+(called elsewhere "equal-cost" paths), they are stored in a single
+routing table entry. Each one of the "equal-cost" paths is
+distinguished by the following fields:
+
+
+
+
+
+
+[Moy] [Page 77]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Next hop
+ The outgoing router interface to use when forwarding traffic to the
+ destination. On multi-access networks, the next hop also includes
+ the IP address of the next router (if any) in the path towards the
+ destination. This next router will always be one of the adjacent
+ neighbors.
+
+Advertising router
+ Valid only for inter-area and AS external paths. This field
+ indicates the Router ID of the router advertising the summary link
+ or AS external link that led to this path.
+
+
+11.1 Routing table lookup
+
+When an IP data packet is received, an OSPF router finds the routing
+table entry that best matches the packet's destination. This routing
+table entry then provides the outgoing interface and next hop router to
+use in forwarding the packet. This section describes the process of
+finding the best matching routing table entry. The process consists of a
+number of steps, wherein the collection of routing table entries is
+progressively pruned. In the end, the single routing table entry
+remaining is the called best match.
+
+Note that the steps described below may fail to produce a best match
+routing table entry (i.e., all existing routing table entries are pruned
+for some reason or another). In this case, the packet's IP destination
+is considered unreachable. Instead of being forwarded, the packet should
+be dropped and an ICMP destination unreachable message should be
+returned to the packet's source.
+
+
+(1) Select the complete set of "matching" routing table entries from the
+ routing table. Each routing table entry describes a (set of)
+ path(s) to a range of IP addresses. If the data packet's IP
+ destination falls into an entry's range of IP addresses, the routing
+ table entry is called a match. (It is quite likely that multiple
+ entries will match the data packet. For example, a default route
+ will match all packets.)
+
+(2) Suppose that the packet's IP destination falls into one of the
+ router's configured area address ranges (see Section 3.5), and that
+ the particular area address range is active. This means that there
+ are one or more reachable (by intra-area paths) networks contained
+ in the area address range. The packet's IP destination is then
+ required to belong to one of these constituent networks. For this
+ reason, only matching routing table entries with path-type of
+ intra-area are considered (all others are pruned). If no such
+
+
+
+[Moy] [Page 78]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ matching entries exist, the destination is unreachable (see above).
+ Otherwise, skip to step 4.
+
+(3) Reduce the set of matching entries to those having the most
+ preferential path-type (see Section 11). OSPF has a four level
+ hierarchy of paths. Intra-area paths are the most preferred,
+ followed in order by inter-area, Type 1 external and Type 2 external
+ paths.
+
+(4) Select the remaining routing table entry that provides the longest
+ (most specific) match. Another way of saying this is to choose the
+ remaining entry that specifies the narrowest range of IP
+ addresses.[10] For example, the entry for the address/mask pair of
+ (128.185.1.0, 0xffffff00) is more specific than an entry for the
+ pair (128.185.0.0, 0xffff0000). The default route is the least
+ specific match, since it matches all destinations.
+
+(5) At this point, there may still be multiple routing table entries
+ remaining. Each routing entry will specify the same range of IP
+ addresses, but a different IP Type of Service. Select the routing
+ table entry whose TOS value matches the TOS found in the packet
+ header. If there is no routing table entry for this TOS, select the
+ routing table entry for TOS 0. In other words, packets requesting
+ TOS X are routed along the TOS 0 path if a TOS X path does not
+ exist.
+
+
+11.2 Sample routing table, without areas
+
+Consider the Autonomous System pictured in Figure 2. No OSPF areas have
+been configured. A single metric is shown per outbound interface,
+indicating that routes will not vary based on TOS. The calculation
+router RT6's routing table proceeds as described in Section 2.1. The
+resulting routing table is shown in Table 12. Destination types are
+abbreviated: Network as "N", area border router as "BR" and AS boundary
+router as "ASBR".
+
+There are no instances of multiple equal-cost shortest paths in this
+example. Also, since there are no areas, there are no inter-area paths.
+
+Routers RT5 and RT7 are AS boundary routers. Intra-area routes have
+been calculated to routers RT5 and RT7. This allows external routes to
+be calculated to the destinations advertised by RT5 and RT7 (i.e.,
+networks N12, N13, N14 and N15). It is assumed all AS external
+advertisements originated by RT5 and RT7 are advertising type 1 external
+metrics. This results in type 1 external paths being calculated to
+destinations N12-N15.
+
+
+
+
+[Moy] [Page 79]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+11.3 Sample routing table, with areas
+
+Consider the previous example, this time split into OSPF areas. An OSPF
+area configuration is pictured in Figure 6. Router RT4's routing table
+will be described for this area configuration. Router RT4 has a
+connection to Area 1 and a backbone connection. This causes Router RT4
+to view the AS as the concatenation of the two graphs shown in Figures 7
+and 8. The resulting routing table is displayed in Table 13.
+
+Again, routers RT5 and RT7 are AS boundary routers. Routers RT3, RT4,
+RT7, RT10 and RT11 are area border routers. Note that there are two
+routing entries (in this case having identical paths) for router RT7, in
+its dual capacities as an area border router and an AS boundary router.
+Note also that there are two routing entries for the area border router
+RT3, since it has two areas in common with RT4 (Area 1 and the
+backbone).
+
+Backbone paths have been calculated to all area border routers (BR).
+These are used when determining the inter-area routes. Note that all of
+
+
+Type Dest Area Path Type Cost Next Hop(s) Adv. Router(s)
+__________________________________________________________________________
+N N1 0 intra-area 10 RT3 *
+N N2 0 intra-area 10 RT3 *
+N N3 0 intra-area 7 RT3 *
+N N4 0 intra-area 8 RT3 *
+N Ib 0 intra-area 7 * *
+N Ia 0 intra-area 12 RT10 *
+N N6 0 intra-area 8 RT10 *
+N N7 0 intra-area 12 RT10 *
+N N8 0 intra-area 10 RT10 *
+N N9 0 intra-area 11 RT10 *
+N N10 0 intra-area 13 RT10 *
+N N11 0 intra-area 14 RT10 *
+N H1 0 intra-area 21 RT10 *
+ASBR RT5 0 intra-area 6 RT5 *
+ASBR RT7 0 intra-area 8 RT10 *
+__________________________________________________________________________
+N N12 * type 1 external 10 RT10 RT7
+N N13 * type 1 external 14 RT5 RT5
+N N14 * type 1 external 14 RT5 RT5
+N N15 * type 1 external 17 RT10 RT7
+
+
+ Table 12: The routing table for Router RT6 (no configured areas).
+
+
+
+
+
+[Moy] [Page 80]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+the inter-area routes are associated with the backbone; this is always
+the case when the router is itself an area border router. Routing
+information is condensed at area boundaries. In this example, we assume
+that Area 3 has been defined so that networks N9-N11 and the host route
+to H1 are all condensed to a single route when advertised to the
+backbone (by router RT11). Note that the cost of this route is the
+minimum of the set of costs to its individual components.
+
+There is a virtual link configured between routers RT10 and RT11.
+Without this configured virtual link, RT11 would be unable to advertise
+a route for networks N9-N11 and host H1 into the backbone, and there
+would not be an entry for these networks in router RT4's routing table.
+
+In this example there are two equal-cost paths to network N12. However,
+they both use the same next hop (Router RT5).
+
+
+
+Router RT4's routing table would improve (i.e., some of the paths in the
+routing table would become shorter) if an additional virtual link were
+configured between router RT4 and router RT3. The new virtual link
+would itself be associated with the first entry for area border router
+RT3 in Table 13 (an intra-area path through Area 1). This would yield a
+cost of 1 for the virtual link. The routing table entries changes that
+would be caused by the addition of this virtual link are shown in Table
+14.
+
+
+
+12. Link State Advertisements
+
+Each router in the Autonomous System originates one or more link state
+advertisements. There are five distinct types of link state
+advertisements, which are described in Section 4.3. The collection of
+link state advertisements forms the link state or topological database.
+Each separate type of advertisement has a separate function. Router
+links and network links advertisements describe how an area's routers
+and networks are interconnected. Summary link advertisements provide a
+way of condensing an area's routing information. AS external
+advertisements provide a way of transparently advertising externally-
+derived routing information throughout the Autonomous System.
+
+Each link state advertisement begins with a standard 20-byte header.
+This link state header is discussed below.
+
+
+
+
+
+
+
+[Moy] [Page 81]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+
+
+Type Dest Area Path Type Cost Next Hop(s) Adv. Router(s)
+_______________________________________________________________________________
+N N1 1 intra-area 4 RT1 *
+N N2 1 intra-area 4 RT2 *
+N N3 1 intra-area 1 * *
+N N4 1 intra-area 3 RT3 *
+BR RT3 1 intra-area 1 * *
+_______________________________________________________________________________
+N Ib 0 intra-area 22 RT5 *
+N Ia 0 intra-area 27 RT5 *
+BR RT3 0 intra-area 21 RT5 *
+BR RT7 0 intra-area 14 RT5 *
+BR RT10 0 intra-area 22 RT5 *
+BR RT11 0 intra-area 25 RT5 *
+ASBR RT5 0 intra-area 8 * *
+ASBR RT7 0 intra-area 14 RT5 *
+_______________________________________________________________________________
+N N6 0 inter-area 15 RT5 RT7
+N N7 0 inter-area 19 RT5 RT7
+N N8 0 inter-area 18 RT5 RT7
+N N9-N11,H1 0 inter-area 26 RT5 RT11
+_______________________________________________________________________________
+N N12 * type 1 external 16 RT5 RT5,RT7
+N N13 * type 1 external 16 RT5 RT5
+N N14 * type 1 external 16 RT5 RT5
+N N15 * type 1 external 23 RT5 RT7
+
+
+ Table 13: Router RT4's routing table in the presence of areas.
+
+
+Type Dest Area Path Type Cost Next Hop(s) Adv. Router(s)
+__________________________________________________________________________
+N Ib 0 intra-area 16 RT3 *
+N Ia 0 intra-area 21 RT3 *
+BR RT3 0 intra-area 1 * *
+BR RT10 0 intra-area 16 RT3 *
+BR RT11 0 intra-area 19 RT3 *
+__________________________________________________________________________
+N N9-N11,H1 0 inter-area 20 RT3 RT11
+
+
+ Table 14: Changes resulting from an additional virtual link.
+
+12.1 The Link State Header
+
+
+
+
+[Moy] [Page 82]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+The link state header contains the LS type, Link State ID and
+Advertising Router fields. The combination of these three fields
+uniquely identifies the link state advertisement.
+
+There may be several instances of an advertisement present in the
+Autonomous System, all at the same time. It must then be determined
+which instance is more recent. This determination is made be examining
+the LS sequence, LS checksum and LS age fields. These fields are also
+contained in the 20-byte link state header.
+
+Several of the OSPF packet types list link state advertisements. When
+the instance is not important, an advertisement is referred to by its LS
+type, Link State ID and Advertising Router (see Link State Request
+Packets). Otherwise, the LS sequence number, LS age and LS checksum
+fields must also be referenced.
+
+A detailed explanation of the fields contained in the link state header
+follows.
+
+
+12.1.1 LS age
+
+This field is the age of the link state advertisement in seconds. It
+should be processed as an unsigned 16-bit integer. It is set to 0 when
+the link state advertisement is originated. It must be incremented by
+InfTransDelay on every hop of the flooding procedure. Link state
+advertisements are also aged as they are held in each router's database.
+
+The age of a link state advertisement is never incremented past MaxAge.
+Advertisements having age MaxAge are not used in the routing table
+calculation. When an advertisement's age first reaches MaxAge, it is
+reflooded. A link state advertisement of age MaxAge is finally flushed
+from the database when it is no longer contained on any neighbor Link
+state retransmission lists. This indicates that it has been
+acknowledged by all adjacent neighbors. For more information on the
+aging of link state advertisements, consult Section 14.
+
+Ages are examined when a router receives two instances of a link state
+advertisement, both having identical sequence numbers and checksums. An
+instance of age MaxAge is then always accepted as most recent; this
+allows old advertisements to be flushed quickly from the routing domain.
+Otherwise, if the ages differ by more than MaxAgeDiff, the instance
+having the smaller age is accepted as most recent.[11] See Section 13.1
+for more details.
+
+
+
+
+
+
+
+[Moy] [Page 83]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+12.1.2 Options
+
+The options field in the link state header indicates which optional
+capabilities are associated with the advertisement. OSPF's optional
+capabilities are described in Section 4.5. There are currently two
+optional capabilities defined; they are represented by the T-bit and E-
+bit found in the options field. The rest of the options field should be
+set to zero.
+
+The E-bit represents OSPF's external routing capability. This bit
+should be set in all advertisements associated with the backbone, and
+all advertisements associated with non-stub areas (see Section 3.6). It
+should also be set in all AS external advertisements. It should be
+reset in all router links, network links and summary link advertisements
+associated with a stub area. For all link state advertisements, the
+setting of the E-bit is for informational purposes only; it does not
+affect the routing table calculation.
+
+The T-bit represents OSPF's TOS routing capability. This bit should be
+set in a router links advertisement if and only if the router is capable
+of calculating separate routes for each IP TOS (see Section 2.4). The
+T-bit should always be set in network links advertisements. It should
+be set in summary link and AS external link advertisements if and only
+if the advertisement describes paths for all TOS values, instead of just
+the TOS 0 path. Note that, with the T-bit set, there may still be only
+a single metric in the advertisement (the TOS 0 metric). This would
+mean that paths for non-zero TOS exist, but are equivalent to the TOS 0
+path. A link state advertisement's T-bit is examined when calculating
+the routing table's non-zero TOS paths (see Section 16.9).
+
+
+12.1.3 LS type
+
+The LS type field dictates the format and function of the link state
+advertisement. Advertisements of different types have different names
+(e.g., router links or network links). All advertisement types, except
+the AS external link advertisements (LS type = 5), are flooded
+throughout a single area only. AS external link advertisements are
+flooded throughout the entire Autonomous System, excluding stub areas
+(see Section 3.6). Each separate advertisement type is briefly
+described below in Table 15.
+
+
+ LS Type Advertisement description
+ __________________________________________________
+ 1 These are the router links
+ advertisements. They describe the
+
+
+
+
+[Moy] [Page 84]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ LS Type Advertisement description
+ __________________________________________________
+ collected states of the router's
+ interfaces. For more information,
+ consult Section 12.4.1.
+ __________________________________________________
+ 2 These are the network links
+ advertisements. They describe the set
+ of routers attached to the network. For
+ more information, consult
+ Section 12.4.2.
+ __________________________________________________
+ 3 or 4 These are the summary link
+ advertisements. They describe
+ inter-area routes, and enable the
+ condensation of routing information at
+ area borders. Originated by area border
+ routers, the Type 3 advertisements
+ describe routes to networks while the
+ Type 4 advertisements describe routes to
+ AS boundary routers.
+ __________________________________________________
+ 5 These are the AS external link
+ advertisements. Originated by AS
+ boundary routers, they describe routes
+ to destinations external to the
+ Autonomous System. A default route for
+ the Autonomous System can also be
+ described by an AS external link
+ advertisement.
+
+
+ Table 15: OSPF link state advertisements.
+
+
+12.1.4 Link State ID
+
+This field identifies the piece of the routing domain that is being
+described by the advertisement. Depending on the advertisement's LS
+type, the Link State ID takes on the values listed in Table 16.
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 85]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+
+ LS Type Link State ID
+ ______________________________________________________________________
+ 1 The originating router's Router ID.
+ 2 The IP interface address of the network's Designated Router.
+ 3 The destination network's IP address.
+ 4 The Router ID of the described AS boundary router.
+ 5 The destination network's IP address.
+
+
+ Table 16: The advertisement's Link State ID.
+
+
+When the link state advertisement is describing a network, the Link
+State ID is either the network's IP address (as in type 3 summary link
+advertisements and in AS external link advertisements) or the network's
+IP address is easily derivable from the Link State ID (note that masking
+a network links advertisement's Link State ID with the network's subnet
+mask yields the network's IP address). When the link state
+advertisement is describing a router, the Link State ID is always the
+described router's OSPF Router ID.
+
+When an AS external advertisement (LS Type = 5) is describing a default
+route, its Link State ID is set to DefaultDestination (0.0.0.0).
+
+
+12.1.5 Advertising Router
+
+This field specifies the OSPF Router ID of the advertisement's
+originator. For router links advertisements, this field is identical to
+the Link State ID field. Network link advertisements are originated by
+the network's Designated Router. Summary link advertisements are
+originated by area border routers. Finally, AS external link
+advertisements are originated by AS boundary routers.
+
+
+12.1.6 LS sequence number
+
+The sequence number field is a signed 32-bit integer. It is used to
+detect old and duplicate link state advertisements. The space of
+sequence numbers is linearly ordered. The larger the sequence number
+(when compared as signed 32-bit integers) the more recent the
+advertisement. To describe to sequence number space more precisely, let
+N refer in the discussion below to the constant 2**31.
+
+The sequence number -N (0x80000000) is reserved (and unused). This
+leaves -N + 1 (0x80000001) as the smallest (and therefore oldest)
+sequence number. A router uses this sequence number the first time it
+
+
+
+[Moy] [Page 86]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+originates any link state advertisement. Afterwards, the
+advertisement's sequence number is incremented each time the router
+originates a new instance of the advertisement. When an attempt is made
+to increment the sequence number past the maximum value of of N - 1
+(0x7fffffff), the current instance of the advertisement must first be
+flushed from the routing domain. This is done by prematurely aging the
+advertisement (see Section 14.1) and reflooding it. As soon as this
+flood has been acknowledged by all adjacent neighbors, a new instance
+can be originated with sequence number of -N + 1 (0x80000001).
+
+The router may be forced to promote the sequence number of one of its
+advertisements when a more recent instance of the advertisement is
+unexpectedly received during the flooding process. This should be a
+rare event. This may indicate that an out-of-date advertisement,
+originated by the router itself before its last restart/reload, still
+exists in the Autonomous System. For more information see Section 13.4.
+
+,uh "12.1.7 LS checksum"
+
+This field is the checksum of the complete contents of the
+advertisement, excepting the age field. The age field is excepted so
+that an advertisement's age can be incremented without updating the
+checksum. The checksum used is the same that is used for ISO
+connectionless datagrams; it is commonly referred to as the Fletcher
+checksum. It is documented in Annex C of [RFC 994]. The link state
+header also contains the length of the advertisement in bytes;
+subtracting the size of the age field (two bytes) yields the amount of
+data to checksum.
+
+The checksum is used to detect data corruption of an advertisement.
+This corruption can occur while an advertisement is being flooded, or
+while it is being held in a router's memory. The LS checksum field
+cannot take on the value of zero; the occurrence of such a value should
+be considered a checksum failure. In other words, calculation of the
+checksum is not optional.
+
+The checksum of a link state advertisement is verified in two cases: a)
+when it is received in a Link State Update Packet and b) at times during
+the aging of the link state database. The detection of a checksum
+failure leads to separate actions in each case. See Sections 13 and 14
+for more details.
+
+Whenever the LS sequence number field indicates that two instances of an
+advertisement are the same, the LS checksum field is examined. If there
+is a difference, the instance with the larger checksum is considered to
+be most recent.[12] See Section 13.1 for more details.
+
+
+
+
+
+[Moy] [Page 87]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+12.2 The link state database
+
+A router has a separate link state database for every area to which it
+belongs. The link state database has been referred to elsewhere in the
+text as the topological database. All routers belonging to the same
+area have identical topological databases for the area.
+
+The databases for each individual area are always dealt with separately.
+The shortest path calculation is performed separately for each area (see
+Section 16). Components of the area topological database are flooded
+throughout the area only. Finally, when an adjacency (belonging to Area
+A) is being brought up, only the database for Area A is synchronized
+between the two routers.
+
+The area database is composed of router links advertisements, network
+links advertisements, and summary link advertisements (all listed in the
+area data structure). In addition, external routes (AS external
+advertisements) are included in all non-stub area databases (see Section
+3.6).
+
+An implementation of OSPF must be able to access individual pieces of an
+area database. This lookup function is based on an advertisement's LS
+type, Link State ID and Advertising Router.[13] There will be a single
+instance (the most up-to-date) of each link state advertisement in the
+database. The database lookup function is invoked during the link state
+flooding procedure (Section 13) and the routing table calculation
+(Section 16). In addition, using this lookup function the router can
+determine whether it has itself ever originated a particular link state
+advertisement, and if so, with what LS sequence number.
+
+A link state advertisement is added to a router's database when either
+a) it is received during the flooding process (Section 13) or b) it is
+originated by the router itself (Section 12.4). A link state
+advertisement is deleted from a router's database when either a) it has
+been overwritten by a newer instance during the flooding process
+(Section 13) or b) the router originates a newer instance of one of its
+self-originated advertisements (Section 12.4) or c) the advertisement
+ages out and is flushed from the routing domain (Section 14). Whenever
+a link state advertisement is deleted from the database it must also be
+removed from all neighbors' Link state retransmission lists (see Section
+10).
+
+
+12.3 Representation of TOS
+
+All OSPF link state advertisements (with the exception of network links
+advertisements) specify metrics. In router links advertisements, the
+metrics indicate the costs of the described interfaces. In summary link
+
+
+
+[Moy] [Page 88]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+and AS external link advertisements, the metric indicates the cost of
+the described path. In all of these advertisements, a separate metric
+can be specified for each IP TOS. TOS is encoded in an OSPF link state
+advertisement as the following mapping of the Delay (D), Throughput (T)
+and Reliability (R) flags found in the IP packet header's TOS field (see
+[RFC 791]).
+
+
+
+ OSPF encoding D T R
+ _________________________
+ 0 0 0 0
+ 4 0 0 1
+ 8 0 1 0
+ 12 0 1 1
+ 16 1 0 0
+ 20 1 0 1
+ 24 1 1 0
+ 28 1 1 1
+
+
+ Table 17: Representing TOS in OSPF.
+
+
+Each OSPF link state advertisement must specify the TOS 0 metric. Other
+TOS metrics, if they appear, must appear in order of increasing TOS
+encoding. For example, the TOS 8 (high throughput) metric must always
+appear before the TOS 16 (low delay) metric when both are specified. If
+a metric for some non-zero TOS is not specified, its cost defaults to
+the cost for TOS 0, unless the T-bit is reset in the advertisement's
+options field (see Section 12.1.2 for more details).
+
+Note that if more TOS types are defined in a future IP architecture,
+OSPF's TOS encoding can be extended in a straightforward manner.
+
+
+12.4 Originating link state advertisements
+
+A router may originate many types of link state advertisements. A
+router originates a router links advertisement for each area to which it
+belongs. If the router is also the Designated Router for any of its
+attached networks, it will originate a network links advertisement for
+that network.
+
+Area border routers originate a single summary links advertisement for
+each known inter-area destination. AS boundary routers originate a
+single AS external links advertisement for each known AS external
+destination. Destinations are advertised one at a time so that the
+
+
+
+[Moy] [Page 89]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+change in any single route can be flooded without reflooding the entire
+collection of routes. During the flooding procedure, many link state
+advertisements can be carried by a single Link State Update packet.
+
+As an example, consider router RT4 in Figure 6. It is an area border
+router, having a connection to Area 1 and the backbone. Router RT4
+originates 5 distinct link state advertisements into the backbone (one
+router links, and one summary link for each of the networks N1-N4).
+Router RT4 will also originate 8 distinct link state advertisements into
+Area 1 (one router links and seven summary link advertisements as
+pictured in Figure 7). If RT4 has been selected as Designated Router
+for network N3, it will also originate a network links advertisement for
+N3 into Area 1.
+
+In this same figure, router RT5 will be originating 3 distinct AS
+external link advertisements (one for each of the networks N12-N14).
+These will be flooded throughout the entire AS, assuming that none of
+the areas have been configured as stubs. However, if area 3 has been
+configured as a stub area, the external advertisements for networks
+N12-N14 will not be flooded into area 3 (see Section 3.6). Instead,
+router RT11 would originate a default summary link advertisement that
+would be flooded throughout area 3 (see Section 12.4.3). This instructs
+all of area 3's internal routers to send their AS external traffic to
+RT11.
+
+Whenever a new instance of a link state advertisement is originated, its
+LS sequence number is incremented, its LS age is set to 0, its LS
+checksum is calculated, and the advertisement is added to the link state
+database and flooded out the appropriate interfaces. See Section 13.2
+for details concerning the installation of the advertisement into the
+link state database. See Section 13.3 for details concerning the
+flooding of newly originated advertisements.
+
+
+The eight events that cause a new instance of a link state advertisement
+to be originated are:
+
+
+(1) The LS refresh timer firing. There is a LS refresh timer for each
+ link state advertisement that the router has originated. The LS
+ refresh timer is an interval timer, with length LSRefreshTimer. The
+ LS refresh timer guarantees periodic originations regardless of any
+ other events that cause new instances. This periodic updating of
+ link state advertisements adds robustness to the link state
+ algorithm. Link state advertisements that solely describe
+ unreachable destinations should not be refreshed, but should instead
+ be flushed from the routing domain (see Section 14.1).
+
+
+
+
+[Moy] [Page 90]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+When whatever is being described by a link state advertisement changes,
+a new advertisement is originated. Two instances of the same link state
+advertisement may not be originated within the time period
+MinLSInterval. This may require that the generation of the next
+instance to be delayed by up to MinLSInterval. The following changes
+may cause a router to originate a new instance of an advertisement.
+These changes should cause new originations only if the contents of the
+new advertisement would be different.
+
+
+(2) An interface's state changes (see Section 9.1). This may mean that
+ it is necessary to produce a new instance of the router links
+ advertisement.
+
+(3) An attached network's Designated Router changes. A new router links
+ advertisement should be originated. Also, if the router itself is
+ now the Designated Router, a new network links advertisement should
+ be produced.
+
+(4) One of the neighboring routers changes to/from the FULL state. This
+ may mean that it is necessary to produce a new instance of the
+ router links advertisement. Also, if the router is itself the
+ Designated Router for the attached network, a new network links
+ advertisement should be produced.
+
+
+The next three events concern area border routers only.
+
+
+(5) An intra-area route has been added/deleted/modified in the routing
+ table. This may cause a new instance of a summary links
+ advertisement (for this route) to be originated in each attached
+ area (this includes the backbone).
+
+(6) An inter-area route has been added/deleted/modified in the routing
+ table. This may cause a new instance of a summary links
+ advertisement (for this route) to be originated in each attached
+ area (but NEVER for the backbone).
+
+(7) The router becomes newly attached to an area. The router must then
+ originate summary link advertisements into the newly attached area
+ for all pertinent intra-area and inter-area routes in its routing
+ table. See Section 12.4.3 for more details.
+
+
+The last event concerns AS boundary routers only.
+
+
+
+
+
+[Moy] [Page 91]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+(8) An external route gained through direct experience with an external
+ routing protocol (like EGP) changes. This will cause the AS
+ boundary router to originate a new instance of an external links
+ advertisement.
+
+
+The construction of each type of the link state advertisement is
+explained below. In general, these sections describe the contents of
+the advertisement body (i.e., the part coming after the 20-byte
+advertisement header). For information concerning the building of the
+link state advertisement header, see Section 12.1.
+
+
+
+12.4.1 Router links
+
+A router originates a router links advertisement for each area that it
+belongs to. Such an advertisement describes the collected states of the
+router's links to the area. The advertisement is flooded throughout the
+particular area, and no further.
+
+The format of a router links advertisement is shown in Appendix A
+(Section A.4.2). The first 20 bytes of the advertisement consist of the
+generic link state header that was discussed in Section 12.1. Router
+links advertisements have LS type = 1. The router indicates whether it
+is willing to calculate separate routes for each IP TOS by setting (or
+resetting) the T-bit of the link state advertisement's Options field.
+
+A router also indicates whether it is an area border router, or an AS
+boundary router, by setting the appropriate bits in its router links
+advertisements. This enables paths to those types of routers to be
+saved in the routing table, for later processing of summary link
+advertisements and AS external link advertisements.
+
+The router links advertisement then describes the router's working
+connections (links) to the area. Each link is typed according to the
+
+
+ _________________________________________
+
+ (Figure not included in text version.)
+
+ Figure 15: Area 1 with IP addresses shown
+ Figure 16: Forwarding address example
+ _________________________________________
+
+
+
+
+
+
+[Moy] [Page 92]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+kind of attached network. Each link is also labelled with its Link ID.
+This ID gives a name to the entity that is on the other end of the link.
+Table 18 summarizes the values used for the type and Link ID fields.
+
+
+
+Link type Description Link ID
+____________________________________________________________________________
+1 Point-to-point link Neighbor Router ID
+2 Link to transit network Interface address of Designated Router
+3 Link to stub network IP network number
+4 Virtual link Neighbor Router ID
+
+
+ Table 18: Link descriptions in the router links advertisement.
+
+
+In addition, the Link Data field is specified for each link. This field
+gives 32 bits of extra information for the link. For links to routers
+and transit networks, this field specifies the IP interface address of
+the associated router interface (this is needed by the routing table
+calculation, see Section 16.3). For links to stub networks, this field
+specifies the network's IP address mask.
+
+Finally, the cost of using the link for output (possibly specifying a
+different cost for each type of service) is specified. The output cost
+of a link is configurable. It must always be non-zero.
+
+To further describe the process of building the list of link records,
+suppose a router wishes to build router links advertisement for an Area
+A. The router examines its collection of interface data structures.
+For each interface, the following steps are taken:
+
+
+o If the attached network does not belong to Area A, no links are
+ added to the advertisement, and the next interface should be
+ examined.
+
+o Else, if the state of the interface is Down, no links are added.
+
+o Else, if the state of the interface is Point-to-Point, then add
+ links according to the following:
+
+ - If the neighboring router is fully adjacent, add a Type 1 link
+ (point-to-point) if this is an interface to a point-to-point
+ network, or add a type 4 link (virtual link) if this is a
+ virtual link. The Link ID should be set to the Router ID of the
+ neighboring router, and the Link Data should specify the
+
+
+
+[Moy] [Page 93]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ interface IP address.
+
+ - If this is a numbered point-to-point network (i.e, not a virtual
+ link and not an unnumbered point-to-point network) and the
+ neighboring router's IP address is known, add a Type 3 link
+ (stub network) whose Link ID is the neighbor's IP address, whose
+ Link Data is the mask 0xffffffff indicating a host route, and
+ whose cost is the interface's configured output cost.
+
+o Else if the state of the interface is Loopback, add a Type 3 link
+ (stub network) as long as this is not an interface to an unnumbered
+ serial line. The Link ID should be set to the IP interface address,
+ the Link Data set to the mask 0xffffffff (indicating a host route),
+ and the cost set to 0.
+
+o Else if the state of the interface is Waiting, add a Type 3 link
+ (stub network) whose Link ID is the IP network number of the
+ attached network and whose Link Data is the attached network's
+ address mask.
+
+o Else, there has been a Designated Router selected for the attached
+ network. If the router is fully adjacent to the Designated Router,
+ or if the router itself is Designated Router and is fully adjacent
+ to at least one other router, add a single Type 2 link (transit
+ network) whose whose link ID is the IP interface address of the
+ attached network's Designated Router (which may be the router
+ itself) and whose Link Data is the interface IP address. Otherwise,
+ add a link as if the interface state were Waiting (see above).
+
+
+Unless otherwise specified, the cost of each link generated by the above
+procedure is equal to the output cost of the associated interface. Note
+that in the case of serial lines, multiple links may be generated by a
+single interface.
+
+After consideration of all the router interfaces, host links are added
+to the advertisement by examining the list of attached hosts. A host
+route is represented as a Type 3 link (stub network) whose link ID is
+the host's IP address and whose Link Data is the mask of all ones
+(0xffffffff).
+
+As an example, consider the router links advertisements generated by
+router RT3, as pictured in Figure 6. The area containing router RT3
+(Area 1) has been redrawn, with actual network addresses, in Figure 15.
+Assume that the last byte of all of RT3's interface addresses is 3,
+giving it the interface addresses 192.1.1.3 and 192.1.4.3, and that the
+other routers have similar addressing schemes. In addition, assume that
+all links are functional, and that Router IDs are assigned as the
+
+
+
+[Moy] [Page 94]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+smallest IP interface address.
+
+RT3 originates two router links advertisements, one for Area 1 and one
+for the backbone. Assume that router RT4 has been selected as the
+Designated router for network 192.1.1.0. RT3's router links
+advertisement for Area 1 is then shown below. It indicates that RT3 has
+two connections to Area 1, the first a link to the transit network
+192.1.1.0 and the second a link to the stub network 192.1.4.0. Note
+that the transit network is identified by the IP interface of its
+Designated Router (i.e., the Link ID = 192.1.1.4 which is the Designated
+Router RT4's IP interface to 192.1.1.0). Note also that RT3 has
+indicated that it is capable of calculating separate routes based on IP
+TOS, through setting the T-bit in the Options field. It has also
+indicated that it is an area border router.
+
+ ; RT3's router links advertisement for Area 1
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 1 ;indicates router links
+ Link State ID = 192.1.1.3 ;RT3's Router ID
+ Advertising Router = 192.1.1.3 ;RT3's Router ID
+ bit E = 0 ;not an AS boundary router
+ bit B = 1 ;RT3 is an area border router
+ #links = 2
+ Link ID = 192.1.1.4 ;IP address of Designated Router
+ Link Data = 192.1.1.3 ;RT3's IP interface to net
+ Type = 2 ;connects to transit network
+ # other metrics = 0
+ TOS 0 metric = 1
+
+ Link ID = 192.1.4.0 ;IP Network number
+ Link Data = 0xffffff00 ;Network mask
+ Type = 3 ;connects to stub network
+ # other metrics = 0
+ TOS 0 metric = 2
+
+Next RT3's router links advertisement for the backbone is shown. It
+indicates that RT3 has a single attachment to the backbone. This
+attachment is via an unnumbered point-to-point link to router RT6. RT3
+has again indicated that it is TOS-capable, and that it is an area
+border router.
+
+ ; RT3's router links advertisement for the backbone
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 1 ;indicates router links
+
+
+
+[Moy] [Page 95]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Link State ID = 192.1.1.3 ;RT3's router ID
+ Advertising Router = 192.1.1.3 ;RT3's router ID
+ bit E = 0 ;not an AS boundary router
+ bit B = 1 ;RT3 is an area border router
+ #links = 1
+ Link ID = 18.10.0.6 ;Neighbor's Router ID
+ Link Data = 0.0.0.0 ;Interface to unnumbered SL
+ Type = 1 ;connects to router
+ # other metrics = 0
+ TOS 0 metric = 8
+
+Even though router RT3 has indicated that it is TOS-capable in the above
+examples, only a single metric (the TOS 0 metric) has been specified for
+each interface. Different metrics can be specified for each TOS. The
+encoding of TOS in OSPF link state advertisements is described in
+Section 12.3.
+
+As an example, suppose the point-to-point link between routers RT3 and
+RT6 in Figure 15 is a satellite link. The AS administrator may want to
+encourage the use of the line for high bandwidth traffic. This would be
+done by setting the metric artificially low for that TOS. Router RT3
+would then originate the following router links advertisement for the
+backbone (IP TOS 8 = high bandwidth):
+
+ ; RT3's router links advertisement for the backbone
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 1 ;indicates router links
+ Link State ID = 192.1.1.3 ;RT3's Router ID
+ Advertising Router = 192.1.1.3
+ bit E = 0 ;not an AS boundary router
+ bit B = 1 ;RT3 is an area border router
+ #links = 1
+ Link ID = 18.10.0.6 ; Neighbor's Router ID
+ Link Data = 0.0.0.0 ;Interface to unnumbered SL
+ Type = 1 ;connects to router
+ # other metrics = 1
+ TOS 0 metric = 8
+ TOS = 8 ;High bandwidth
+ metric = 1 ;traffic preferred
+
+
+12.4.2 Network links
+
+A network links advertisement is generated for every transit multi-
+access network. (A transit network is a network having two or more
+attached routers). The network links advertisement describes all the
+
+
+
+[Moy] [Page 96]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+routers that are attached to the network.
+
+The Designated Router for the network originates the advertisement. The
+Designated Router originates the advertisement only if it is fully
+adjacent to at least one other router on the network. The network links
+advertisement is flooded throughout the area that contains the transit
+network, and no further. The networks links advertisement lists those
+routers that are fully adjacent to the Designated Router; each fully
+adjacent router is identified by its OSPF Router ID. The Designated
+Router includes itself in this list.
+
+The Link State ID for a network links advertisement is the IP interface
+address of the Designated Router. This value, masked by the network's
+address mask (which is also contained in the network links
+advertisement) yields the network's IP address.
+
+A router that has formerly been the Designated Router for a network, but
+is no longer, should flush the network links advertisement that it had
+previously originated. This advertisement is no longer used in the
+routing table calculation. It is flushed by prematurely incrementing
+the advertisement's age to MaxAge and reflooding (see Section 14.1).
+
+As an example of a network links advertisement, again consider the area
+configuration in Figure 6. Network links advertisements are originated
+for network N3 in Area 1, networks N6 and N8 in Area 2, and network N9
+in Area 3. Assuming that router RT4 has been selected as the Designated
+Router for network N3, the following network links advertisement is
+generated by RT4 on behalf of network N3 (see Figure 15 for the address
+assignments):
+
+ ; network links advertisement for network N3
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 2 ;indicates network links
+ Link State ID = 192.1.1.4 ;IP address of Designated Router
+ Advertising Router = 192.1.1.4 ;RT4's Router ID
+ Network Mask = 0xffffff00
+ Attached Router = 192.1.1.4 ;Router ID
+ Attached Router = 192.1.1.1 ;Router ID
+ Attached Router = 192.1.1.2 ;Router ID
+ Attached Router = 192.1.1.3 ;Router ID
+
+
+12.4.3 Summary links
+
+Each summary link advertisement describes a route to a single
+destination. Summary link advertisements are flooded throughout a
+
+
+
+[Moy] [Page 97]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+single area only. The destination described is one that is external to
+the area, yet still belonging to the Autonomous System.
+
+The DefaultDestination can also be specified in summary link
+advertisements. This is used when implementing OSPF's stub area
+functionality (see Section 3.6). In a stub area, instead of importing
+external routes each area border router originates a "default summary
+link" (Link State ID = DefaultDestination) into the area.
+
+Summary link advertisements are originated by area border routers. The
+precise summary routes to advertise into an area are determined by
+examining the routing table structure (see Section 11). Only intra-area
+routes are advertised into the backbone. Both intra-area and inter-area
+routes are advertised into the other areas.
+
+To determine which routes to advertise into an attached Area A, each
+routing table entry is processed as follows:
+
+
+o Only Destination types of network and AS boundary router are
+ advertised in summary link advertisements. If the routing table
+ entry's Destination type is area border router, examine the next
+ routing table entry.
+
+o AS external routes are never advertised in summary link
+ advertisements. If the routing table entry has Path-type type 1
+ external or type 2 external, examine the next routing table entry.
+
+o Else, if the area associated with this set of paths is the Area A
+ itself, do not generate a summary link advertisement for the
+ route.[14]
+
+o Else, if the destination of this route is an AS boundary router,
+ generate a Type 4 link state advertisement for the destination, with
+ Link State ID equal to the AS boundary router's ID and metric equal
+ to the routing table entry's cost. These advertisements should not
+ be generated if area A has been configured as a stub area.
+
+o Else, the Destination type is network. If this is an inter-area
+ route, generate a Type 3 advertisement for the destination, with
+ Link State ID equal to the network's address and metric equal to the
+ routing table cost.
+
+o The one remaining case is an intra-area route to a network. This
+ means that the network is contained in one of the router's directly
+ attached areas. In general, this information must be condensed
+ before appearing in summary link advertisements. Remember that an
+ area has been defined as a list of address ranges, each range
+
+
+
+[Moy] [Page 98]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ consisting of an [address,mask] pair. A single Type 3 advertisement
+ must be made for each range, with Link State ID equal to the range's
+ address and cost equal to the smallest cost of any of the component
+ networks.
+
+ If virtual links are being used to provide/increase connectivity of
+ the backbone, routing information concerning the backbone networks
+ should not be condensed before being summarized into the virtual
+ links' transit areas. In other words, the backbone ranges should be
+ ignored when originating summary links into these areas. The
+ existence of virtual links can be determined during the shortest
+ path calculation for the backbone (see Section 16.1).
+
+
+In addition, if area A has been configured as a stub area and the router
+is an area border router, it should advertise a default summary link
+into Area A. The Link State ID for the advertisement should be set to
+DefaultDestination, and the metric set to the (per-area) configurable
+parameter StubDefaultCost.
+
+If a router advertises a summary advertisement for a destination which
+then becomes unreachable, the router must then flush the advertisement
+from the routing domain by setting its age to MaxAge and reflooding (see
+Section 14.1). Also, if the destination is still reachable, yet can no
+longer be advertised according to the above procedure (e.g., it is now
+an inter-area route, when it used to be an intra-area route associated
+with some non-backbone area; it would thus no longer be advertisable to
+the backbone), the advertisement should also be flushed from the routing
+domain.
+
+For an example of summary link advertisements, consider again the area
+configuration in Figure 6. Routers RT3, RT4, RT7, RT10 and RT11 are all
+area border routers, and therefore are originating summary links
+advertisements. Consider in particular router RT4. Its routing table
+was calculated as the example in Section 11.3. RT4 originates summary
+link advertisements into both the backbone and Area 1. Into the
+backbone, router RT4 originates separate advertisements for each of the
+networks N1-N4. Into Area 1, router RT4 originates separate
+advertisements for networks N6-N8 and the AS boundary routers RT5,RT7.
+It also condenses host routes Ia and Ib into a single summary
+advertisement. Finally, the routes to networks N9,N10,N11 and host H9
+are advertised by a single summary link. This condensation was
+originally performed by the router RT11.
+
+These advertisements are illustrated graphically in Figures 7 and 8.
+Two of the summary link advertisements originated by router RT4 follow.
+The actual IP addresses for the networks and routers in question have
+been assigned in Figure 15.
+
+
+
+[Moy] [Page 99]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ ; summary link advertisement for network N1,
+ ; originated by router RT4 into the backbone
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 3 ;indicates summary link to IP net
+ Link State ID = 192.1.2.0 ;N1's IP network number
+ Advertising Router = 192.1.1.4 ;RT4's ID
+ TOS = 0
+ metric = 4
+
+ ; summary link advertisement for AS boundary router RT7
+ ; originated by router RT4 into Area 1
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 4 ;indicates summary link to ASBR
+ Link State ID = router RT7's ID
+ Advertising Router = 192.1.1.4 ;RT4's ID
+ TOS = 0
+ metric = 14
+
+Summary link advertisements pertain to a single destination (IP network
+or AS boundary router). However, for a single destination there may be
+separate sets of paths, and therefore separate routing table entries,
+for each Type of Service. All these entries must be considered when
+building the summary link advertisement for the destination; a single
+advertisement must specify the separate costs (if they exist) for each
+TOS. The encoding of TOS in OSPF link state advertisements is described
+in Section 12.3.
+
+Clearing the T-bit in the Options field of a summary link advertisement
+indicates that there is a TOS 0 path to the destination, but no paths
+for non-zero TOS. This can happen when non-TOS capable routers exist in
+the routing domain (see Section 2.4).
+
+
+12.4.4 AS external links
+
+AS external link advertisements describe routes to destinations external
+to the Autonomous System. Most AS external link advertisements describe
+routes to specific external destinations. However, a default route for
+the Autonomous System can be described in an AS external advertisement
+by setting the advertisement's Link State ID to DefaultDestination
+(0.0.0.0). AS external link advertisements are originated by AS
+boundary routers. An AS boundary router originates a single AS external
+link advertisement for each external route that it has learned, either
+through another routing protocol (such as EGP), or through configuration
+
+
+
+[Moy] [Page 100]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+information.
+
+In general, AS external link advertisements are the only type of link
+state advertisements that are flooded throughout the entire Autonomous
+System; all other types of link state advertisements are specific to a
+single area. However, AS external advertisements are not flooded
+into/throughout stub areas (see Section 3.6). This enables a reduction
+in link state database size for routers internal to stub areas.
+
+The metric that is advertised for an external route can be one of two
+types. Type 1 metrics are comparable to the link state metric. Type 2
+metrics are assumed to be larger than the cost of any intra-AS path. As
+with summary link advertisements, if separate paths exist based on TOS,
+separate TOS costs can be included in the AS external link
+advertisement. The encoding of TOS in OSPF link state advertisements is
+described in Section 12.3. If the T-bit of the advertisement's Options
+field is clear, no non-zero TOS paths to the destination exist.
+
+If a router advertises an AS external link advertisement for a
+destination which then becomes unreachable, the router must then flush
+the advertisement from the routing domain by setting its age to MaxAge
+and reflooding (see Section 14.1).
+
+For an example of AS external link advertisements, consider once again
+the AS pictured in Figure 6. There are two AS boundary routers: RT5 and
+RT7. Router RT5 originates three external link advertisements, for
+networks N12-N14. Router RT7 originates two external link
+advertisements, for networks N12 and N15. Assume that RT7 has learned
+its route to N12 via EGP, and that it wishes to advertise a Type 2
+metric to the AS. RT7 would then originate the following advertisement
+for N12:
+
+ ; AS external link advertisement for network N12,
+ ; originated by router RT7
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 5 ;indicates AS external link
+ Link State ID = N12's IP network number
+ Advertising Router = Router RT7's ID
+ bit E = 1 ;Type 2 metric
+ TOS = 0
+ metric = 2
+ Forwarding address = 0.0.0.0
+
+In the above example, the forwarding address field has been set to
+0.0.0.0, indicating that packets for the external destination should be
+forwarded to the advertising OSPF router (RT7). This is not always
+
+
+
+[Moy] [Page 101]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+desirable. Consider the example pictured in Figure 16. There are three
+OSPF routers (RTA, RTB and RTC) connected to a common network. Only one
+of these routers, RTA, is exchanging EGP information with the non-OSPF
+router RTX. RTA must then originate AS external link state
+advertisements for those destinations it has learned from RTX. By using
+the AS external advertisement's forwarding address field, RTA can
+specify that packets for these destinations be forwarded directly to
+RTX. Without this feature, routers RTB and RTC would take an extra hop
+to get to these destinations.
+
+Note that when the forwarding address field is non-zero, it should point
+to a router belonging to another Autonomous System.
+
+A forwarding address can also be specified for the default route. For
+example, in figure 16 RTA may want to specify that all externally-
+destined packets should by default be forwarded to its EGP peer RTX.
+The resulting AS external link advertisement is pictured below. Note
+that the Link State ID is set to DefaultDestination.
+
+ ; Default route, originated by router RTA
+ ; Packets forwarded through RTX
+
+ LS age = 0 ;always true on origination
+ Options = (T-bit|E-bit) ;TOS-capable
+ LS type = 5 ;indicates AS external link
+ Link State ID = DefaultDestination ; default route
+ Advertising Router = Router RTA's ID
+ bit E = 1 ;Type 2 metric
+ TOS = 0
+ metric = 1
+ Forwarding address = RTX's IP address
+
+In figure 16, suppose instead that both RTA and RTB exchange EGP
+information with RTX. In this case, RTA and RTB would originate the
+same set of external advertisements. These advertisements, if they
+specify the same metric, would be functionally equivalent since they
+would specify the same destination and forwarding address (RTX). This
+leads to a clear duplication of effort. If only one of RTA or RTB
+originated the set of external advertisements, the routing would remain
+the same, and the size of the link state database would decrease.
+However, it must be unambiguously defined as to which router originates
+the advertisements (otherwise neither may, or the identity of the
+originator may oscillate). The following rule is thereby established:
+if two routers, both reachable from one another, originate functionally
+equivalent AS external advertisements (i.e., same destination, cost and
+non-zero forwarding address), then the advertisement originated by the
+router having the highest OSPF Router ID is used. The router having the
+lower OSPF Router ID can then flush its advertisement. Flushing a link
+
+
+
+[Moy] [Page 102]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+state advertisement is discussed in Section 14.1.
+
+
+13. The Flooding Procedure
+
+Link State Update packets provide the mechanism for flooding link state
+advertisements. A Link State Update packet may contain several distinct
+advertisements, and floods each advertisement one hop further from its
+point of origination. To make the flooding procedure reliable, each
+advertisement must be acknowledged separately. Acknowledgments are
+transmitted in Link State Acknowledgment packets. Many separate
+acknowledgments can be grouped together into a single packet.
+
+The flooding procedure starts when a Link State Update packet has been
+received. Many consistency checks have been made on the received packet
+before being handed to the flooding procedure (see Section 8.2). In
+particular, the Link State Update packet has been associated with a
+particular neighbor, and a particular area. If the neighbor is in a
+lesser state than Exchange, the packet should be dropped without further
+processing.
+
+All types of link state advertisements, other than AS external links,
+are associated with a specific area. However, link state advertisements
+do not contain an area field. A link state advertisement's area must be
+deduced from the Link State Update packet header.
+
+For each link state advertisement contained in the packet, the following
+steps are taken:
+
+
+(1) Validate the advertisement's link state checksum. If the checksum
+ turns out to be invalid, discard the advertisement and get the next
+ one from the Link State Update packet.
+
+(2) Examine the link state advertisement's LS type. If the LS type is
+ unknown, discard the advertisement and get the next one from the
+ Link State Update Packet. This specification defines LS Types 1-5
+ (see Section 4.3).
+
+(3) Else if this is a AS external advertisement (LS type = 5), and the
+ area has been configured as a stub area, discard the advertisement
+ and get the next one from the Link State Update Packet. AS external
+ advertisements are not flooded into/throughout stub areas (see
+ Section 3.6).
+
+(4) Else if the advertisement's age is equal to MaxAge, and there is
+ currently no instance of the advertisement in the router's link
+ state database, then take the following actions:
+
+
+
+[Moy] [Page 103]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ (a) Acknowledge the receipt of the advertisement by sending a Link
+ State Acknowledgment packet back to the sending neighbor (see
+ Section 13.5).
+
+ (b) Purge all outstanding requests for equal or previous instances
+ of the advertisement from the sending neighbor's Link State
+ Request list (see Section 10).
+
+ (c) If the sending neighbor is in state Exchange or in state
+ Loading, then install the MaxAge advertisement in the link state
+ database. Otherwise, simply discard the advertisement. In
+ either case, examine the next advertisement (if any) listed in
+ the Link State Update packet.
+
+(5) Otherwise, find the instance of this advertisement that is currently
+ contained in the router's link state database. If there is no
+ database copy, or the received advertisement is more recent than the
+ database copy (see Section 13.1 below for the determination of which
+ advertisement is more recent) the following steps must be performed:
+
+ (a) If there is already a database copy, and if the database copy
+ was installed less than MinLSInterval seconds ago, discard the
+ new advertisement (without acknowledging it) and examine the
+ next advertisement (if any) listed in the Link State Update
+ packet.
+
+ (b) Otherwise immediately flood the new advertisement out some
+ subset of the router's interfaces (see Section 13.3). In some
+ cases (e.g., the state of the receiving interface is DR and the
+ advertisement was received from a router other than the Backup
+ DR) the advertisement will be flooded back out the receiving
+ interface. This occurrence should be noted for later use by the
+ acknowledgment process (Section 13.5).
+
+ (c) Remove the current database copy from all neighbors' Link state
+ retransmission lists.
+
+ (d) Install the new advertisement in the link state database
+ (replacing the current database copy). This may cause the
+ routing table calculation to be scheduled. In addition,
+ timestamp the new advertisement with the current time (i.e., the
+ time it was received). The flooding procedure cannot overwrite
+ the newly installed advertisement until MinLSInterval seconds
+ have elapsed. The advertisement installation process is
+ discussed further in Section 13.2.
+
+ (e) Possibly acknowledge the receipt of the advertisement by sending
+ a Link State Acknowledgment packet back out the receiving
+
+
+
+[Moy] [Page 104]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ interface. This is explained below in Section 13.5.
+
+ (f) If this new link state advertisement indicates that it was
+ originated by this router itself, the router must advance the
+ advertisement's link state sequence number, and issue a new
+ instance of the advertisement (see Section 13.4).
+
+(6) Else, if there is an instance of the advertisement on the sending
+ neighbor's Link state request list, an error has occurred in the
+ Database Description process. In this case, restart the Database
+ Description process by generating the neighbor event BadLSReq for
+ the sending neighbor and stop processing the Link State Update
+ packet.
+
+(7) Else, if the received advertisement is the same instance as the
+ database copy (i.e., neither one is more recent) the following two
+ steps should be performed:
+
+ (a) If the advertisement is listed in the Link state retransmission
+ list for the receiving adjacency, the router itself is expecting
+ an acknowledgment for this advertisement. The router should
+ treat the received advertisement as an acknowledgment, by
+ removing the advertisement from the Link state retransmission
+ list. This is termed an "implied acknowledgment". Its
+ occurrence should be noted for later use by the acknowledgment
+ process (Section 13.5).
+
+ (b) Possibly acknowledge the receipt of the advertisement by sending
+ a Link State Acknowledgment packet back out the receiving
+ interface. This is explained below in Section 13.5.
+
+(8) Else, the database copy is more recent. Note an unusual event to
+ network management, discard the advertisement and process the next
+ link state advertisement contained in the packet.
+
+
+13.1 Determining which link state is newer
+
+When a router encounters two instances of a link state advertisement, it
+must determine which is more recent. This occurred above when comparing
+a received advertisement to the database copy. This comparison must
+also be done during the database exchange procedure which occurs during
+adjacency bring-up.
+
+A link state advertisement is identified by its LS type, Link State ID
+and Advertising Router. For two instances of the same advertisement,
+the LS sequence number, LS age, and LS checksum fields are used to
+determine which instance is more recent:
+
+
+
+[Moy] [Page 105]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+o The advertisement having the newer LS sequence number is more
+ recent. See Section 12.1.6 for an explanation of the LS sequence
+ number space. If both instances have the same LS sequence number,
+ then:
+
+o If the two instances have different LS checksums, then the instance
+ having the larger LS checksum (when considered as a 16-bit unsigned
+ integer) is considered more recent.
+
+o Else, if only one of the instances is of age MaxAge, the instance of
+ age MaxAge is considered to be more recent.
+
+o Else, if the ages of the two instances differ by more than
+ MaxAgeDiff, the instance having the smaller (younger) age is
+ considered to be more recent.
+
+o Else, the two instances are considered to be identical.
+
+
+13.2 Installing link state advertisements in the database
+
+Installing a new link state advertisement in the database, either as the
+result of flooding or a newly self originated advertisement, may cause
+the routing table structure to be recalculated. The contents of the new
+advertisement should be compared to the old instance, if present. If
+there is no difference, there is no need to recalculate the routing
+table. (Note that even if the contents are the same, the LS checksum
+will probably be different, since the checksum covers the LS sequence
+number.)
+
+If the contents are different, the following pieces of the routing table
+must be recalculated, depending on the LS type field:
+
+
+Router links, network links
+ The entire routing table must be recalculated, starting with the
+ shortest path calculations for each area (not just the area whose
+ topological database has changed). The reason that the shortest
+ path calculation cannot be restricted to the single changed area has
+ to do with the fact that AS boundary routers may belong to multiple
+ areas. A change in the area currently providing the best route may
+ force the router to use an intra-area route provided by a different
+ area.[15]
+
+Summary link
+ The best route to the destination described by the summary link
+ advertisement must be re-examined (see Section 16.5). If this
+ destination is an AS boundary router, it may also be necessary to
+
+
+
+[Moy] [Page 106]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ re-examine all the AS external link advertisements.
+
+AS external link
+ The best route to the destination described by the AS external link
+ advertisement must be re-examined (see Section 16.6).
+
+
+Also, any old instance of the advertisement must be removed from the
+database when the new advertisement is installed. This old instance
+must also be removed from all neighbors' Link state retransmission lists
+(see Section 10).
+
+
+13.3 Next step in the flooding procedure
+
+When a new (and more recent) advertisement has been received, it must be
+flooded out some set of the router's interfaces. This section describes
+the second part of flooding procedure (the first part being the
+processing that occurred in Section 13), namely, selecting the outgoing
+interfaces and adding the advertisement to the appropriate neighbors'
+Link state retransmission lists. Also included in this part of the
+flooding procedure is the maintenance of the neighbors' Link state
+request lists.
+
+This section is equally applicable to the flooding of an advertisement
+that the router itself has just originated (see Section 12.4). For
+these advertisements, this section provides the entirety of the flooding
+procedure (i.e., the processing of Section 13 is not performed, since,
+for example, the advertisement has not been received from a neighbor and
+therefore does not need to be acknowledged).
+
+Depending upon the advertisement's LS type, the advertisement can be
+flooded out only certain interfaces. These interfaces, defined by the
+following, are called the eligible interfaces:
+
+
+AS external links (LS Type = 5)
+ AS external links are flooded throughout the entire AS, with the
+ exception of stub areas (see Section 3.6). The eligible interfaces
+ are all the router's interfaces, excluding virtual links and those
+ interfaces attaching to stub areas.
+
+All other types
+ All other types are specific to a single area (Area A). The
+ eligible interfaces are all those interfaces attaching to the Area
+ A. If Area A is the backbone, this includes all the virtual links.
+
+
+
+
+
+[Moy] [Page 107]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Link state databases must remain synchronized over all adjacencies
+associated with the above eligible interfaces. This is accomplished by
+executing the following steps on each eligible interface. It should be
+noted that this procedure may decide not to flood a link state
+advertisement out a particular interface, if there is a high probability
+that the attached neighbors have already received the advertisement.
+However, in these cases the flooding procedure must be absolutely sure
+that the neighbors eventually do receive the advertisement, so the
+advertisement is still added to each adjacency's Link state
+retransmission list. For each eligible interface:
+
+
+(1) Each of the neighbors attached to this interface are examined, to
+ determine whether they must receive the new advertisement. The
+ following steps are executed for each neighbor:
+
+ (a) If the neighbor is in a lesser state than Exchange, it does not
+ participate in flooding, and the next neighbor should be
+ examined.
+
+ (b) Else, if the adjacency is not yet full (neighbor state is
+ Exchange or Loading), examine the Link state request list
+ associated with this adjacency. If there is an instance of the
+ new advertisement on the list, it indicates that the neighboring
+ router has an instance of the advertisement already. Compare
+ the new advertisement to the neighbor's copy:
+
+ o If the new advertisement is less recent, then try the next
+ neighbor.
+
+ o If the two copies are the same instance, then delete the
+ advertisement from the Link state request list, and try the
+ next neighbor.[16]
+
+ o Else, the new advertisement is more recent. Delete the
+ advertisement from the Link state request list.
+
+ (c) If the new advertisement was received from this neighbor, try
+ the next neighbor.
+
+ (d) At this point we are not positive that the new neighbor has an
+ up-to-date instance of this new advertisement. Add the new
+ advertisement to the Link state retransmission list for the
+ adjacency. This ensures that the flooding procedure is
+ reliable; the advertisement will be retransmitted at intervals
+ until an acknowledgment is seen from the neighbor.
+
+
+
+
+
+[Moy] [Page 108]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+(2) The router must now decide whether to flood the new link state
+ advertisement out this interface. If in the previous step, the link
+ state advertisement was NOT added to any of the Link state
+ retransmission lists, there is no need to flood the advertisement
+ and the next interface should be examined.
+
+(3) If the new advertisement was received on this interface, and it was
+ received from either the Designated Router or the Backup Designated
+ Router, chances are all the neighbors have received the
+ advertisement already. Therefore, examine the next interface.
+
+(4) If the new advertisement was received on this interface, and the
+ interface state is Backup (i.e., the router itself is the Backup
+ Designated Router), examine the next interface. The Designated
+ Router will do the flooding on this interface. If the Designated
+ Router fails, this router will end up retransmitting the updates.
+
+(5) If this step is reached, the advertisement must be flooded out the
+ interface. Send a Link State Update packet (with the new
+ advertisement as contents) out the interface. The advertisement's
+ LS age must be incremented by InfTransDelay (which must be > 0) when
+ copied into the outgoing packet (until the LS age field reaches its
+ maximum value of MaxAge).
+
+ On broadcast networks, the Link State Update packets are multicast.
+ The destination IP address specified for the Link State Update
+ Packet depends on the state of the interface. If the interface
+ state is DR or Backup, the address AllSPFRouters should be used.
+ Otherwise, the address AllDRouters should be used.
+
+ On non-broadcast, multi-access networks, separate Link State Update
+ packets must be sent, as unicasts, to each adjacent neighbor (i.e.,
+ those in state Exchange or greater). The destination IP addresses
+ for these packets are the neighbors' IP addresses.
+
+
+13.4 Receiving self-originated link state
+
+It is a common occurrence to receive a self-originated link state
+advertisement via the flooding procedure. If the advertisement received
+is a newer instance than the last instance that the router actually
+originated, the router must take special action.
+
+The reception of such an advertisement indicates that there are link
+state advertisements in the routing domain that were originated before
+the last time the router was restarted. In this case, the router must
+advance the sequence number for the advertisement one past the received
+sequence number, and originate a new instance of the advertisement.
+
+
+
+[Moy] [Page 109]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Note also that if the type of the advertisement is Summary link or AS
+external link, the router may no longer have an (advertisable) route to
+the destination. In this case, the advertisement should be flushed from
+the routing domain by incrementing the advertisement's LS age to MaxAge
+and reflooding (see Section 14.1).
+
+
+13.5 Sending Link State Acknowledgment packets
+
+Each newly received link state advertisement must be acknowledged. This
+is usually done by sending Link State Acknowledgment packets. However,
+acknowledgments can also be accomplished implicitly by sending Link
+State Update packets (see step 7a of Section 13).
+
+Many acknowledgments may be grouped together into a single Link State
+Acknowledgment packet. Such a packet is sent back out the interface
+that has received the advertisements. The packet can be sent in one of
+two ways: delayed and sent on an interval timer, or sent directly (as a
+unicast) to a particular neighbor. The particular acknowledgment
+strategy used depends on the circumstances surrounding the receipt of
+the advertisement.
+
+Sending delayed acknowledgments accomplishes several things: it
+facilitates the packaging of multiple acknowledgments in a single
+packet; it enables a single packet to indicate acknowledgments to
+several neighbors at once (through multicasting); and it randomizes the
+acknowledgment packets sent by the various routers attached to a multi-
+access network. The fixed interval between a router's delayed
+transmissions must be short (less than RxmtInterval) or needless
+retransmissions will ensue.
+
+Direct acknowledgments are sent to a particular neighbor in response to
+the receipt of duplicate link state advertisements. These
+acknowledgments are sent as unicasts, and are sent immediately when the
+duplicate is received.
+
+The precise procedure for sending Link State Acknowledgment packets is
+described in Table 19. The circumstances surrounding the receipt of the
+advertisement are listed in the left column. The acknowledgment action
+then taken is listed in one of the two right columns. This action
+depends on the state of the concerned interface; interfaces in state
+Backup behave differently from interfaces in all other states.
+
+
+ Action taken in state
+ Circumstances Backup All other states
+ ______________________________________________________________
+
+
+
+
+[Moy] [Page 110]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ Action taken in state
+ Circumstances Backup All other states
+ ______________________________________________________________
+Advertisement has No acknowledgment No acknowledgment
+been flooded back sent. sent.
+out receiving in-
+terface (see Sec-
+tion 13, step 5b).
+______________________________________________________________
+Advertisement is Delayed ack- Delayed ack-
+more recent than nowledgment sent nowledgment sent.
+database copy, but if advertisement
+was not flooded received from DR,
+back out receiving otherwise do noth-
+interface ing
+______________________________________________________________
+Advertisement is a Delayed ack- No acknowledgment
+duplicate, and was nowledgment sent sent.
+treated as an im- if advertisement
+plied acknowledg- received from DR,
+ment (see Section otherwise do noth-
+13, step 7a). ing
+______________________________________________________________
+Advertisement is a Direct acknowledg- Direct acknowledg-
+duplicate, and was ment sent. ment sent.
+not treated as an
+implied ack-
+nowledgment.
+______________________________________________________________
+Advertisement's age Direct acknowledg- Direct acknowledg-
+is equal to MaxAge, ment sent. ment sent.
+and there is no
+current instance of
+the advertisement in
+the link state
+database (see
+Section 13, step 4).
+
+
+ Table 19: Sending link state acknowledgements.
+
+Delayed acknowledgments must be delivered to all adjacent routers
+associated with the interface. On broadcast networks, this is
+accomplished by sending the delayed Link State Acknowledgment packets as
+multicasts. The Destination IP address used depends on the state of the
+interface. If the state is DR or Backup, the destination AllSPFRouters
+is used. In other states, the destination AllDRouters is used. On
+non-broadcast networks, delayed acks must be unicast separately over
+
+
+
+[Moy] [Page 111]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+each adjacency (neighbor whose state is >= Exchange).
+
+The reasoning behind sending the above packets as multicasts is best
+explained by an example. Consider the network configuration depicted in
+Figure 15. Suppose RT4 has been elected as DR, and RT3 as Backup for
+the network N3. When router RT4 floods a new advertisement to network
+N3, it is received by routers RT1, RT2, and RT3. These routers will not
+flood the advertisement back onto net N3, but they still must ensure
+that their topological databases remain synchronized with their adjacent
+neighbors. So RT1, RT2, and RT4 are waiting to see an acknowledgment
+from RT3. Likewise, RT4 and RT3 are both waiting to see acknowledgments
+from RT1 and RT2. This is best achieved by sending the acknowledgments
+as multicasts.
+
+The reason that the acknowledgment logic for Backup DRs is slightly
+different is because they perform differently during the flooding of
+link state advertisements (see Section 13.3, step 4).
+
+
+
+13.6 Retransmitting link state advertisements
+
+Advertisements flooded out an adjacency are placed on the adjacency's
+Link state retransmission list. In order to ensure that flooding is
+reliable, these advertisements are retransmitted until they are
+acknowledged. The length of time between retransmissions is a
+configurable per-interface value, RxmtInterval. If this is set too low
+for an interface, needless retransmissions will ensue. If the value is
+set too high, the speed of the flooding, in the face of lost packets,
+may be affected.
+
+Several retransmitted advertisements may fit into a single Link State
+Update packet. When advertisements are to be retransmitted, only the
+number fitting in a single Link State Update packet should be
+transmitted. Another packet of retransmissions can be sent when some of
+the advertisements are acknowledged, or on the next firing of the
+retransmission timer.
+
+Link State Update Packets carrying retransmissions are always sent as
+unicasts (directly to the physical address of the neighbor). They are
+never sent as multicasts. Each advertisement's LS age must be
+incremented by InfTransDelay (which must be > 0) when copied into the
+outgoing packet (until the LS age field reaches its maximum value of
+MaxAge).
+
+If the adjacent router goes down, retransmissions may occur until the
+adjacency is destroyed by OSPF's Hello Protocol. When the adjacency is
+destroyed, the Link state retransmission list is cleared.
+
+
+
+[Moy] [Page 112]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+13.7 Receiving link state acknowledgments
+
+Many consistency checks have been made on a received Link State
+Acknowledgment packet before it is handed to the flooding procedure. In
+particular, it has been associated with a particular neighbor. If this
+neighbor is in a lesser state than Exchange, the packet is discarded.
+
+Otherwise, for each acknowledgment in the packet, the following steps
+are performed:
+
+
+o Does the advertisement acknowledged have an instance on the Link
+ state retransmission list for the neighbor? If not, examine the
+ next acknowledgment. Otherwise:
+
+o If the acknowledgment is for the same instance that is contained on
+ the list, remove the item from the list and examine the next
+ acknowledgment. Otherwise:
+
+o Log the questionable acknowledgment, and examine the next one.
+
+
+14. Aging The Link State Database
+
+Each link state advertisement has an age field. The age is expressed in
+seconds. An advertisement's age field is incremented while it is
+contained in a router's database. Also, when copied into a Link State
+Update Packet for flooding out a particular interface, the
+advertisement's age is incremented by InfTransDelay.
+
+An advertisement's age is never incremented past the value MaxAge.
+Advertisements having age MaxAge are not used in the routing table
+calculation. As a router ages its link state database, an
+advertisement's age may reach MaxAge.[17] At this time, the router must
+attempt to flush the advertisement from the routing domain. This is
+done simply by reflooding the MaxAge advertisement just as if it was a
+newly originated advertisement (see Section 13.3).
+
+When a Database summary list for a newly adjacent neighbor is formed,
+any MaxAge advertisements present in the link state database are added
+to the neighbor's Link state retransmission list instead of the
+neighbor's Database summary list. See Section 10.3 for more details.
+
+A MaxAge advertisement is removed entirely from the router's link state
+database when a) it is no longer contained on any neighbor Link state
+retransmission lists and b) none of the router's neighbors are in states
+Exchange or Loading.
+
+
+
+
+[Moy] [Page 113]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+When, in the process of aging the link state database, an
+advertisement's age hits a multiple of CheckAge, its checksum should be
+verified. If the checksum is incorrect, a program or memory error has
+been detected, and at the very least the router itself should be
+restarted.
+
+
+14.1 Premature aging of advertisements
+
+A link state advertisement can be flushed from the routing domain by
+setting its age to MaxAge and reflooding the advertisement. This
+procedure follows the same course as flushing an advertisement whose age
+has naturally reached the value MaxAge (see Section 14). In particular,
+the MaxAge advertisement is removed from the router's link state
+database as soon as a) it is no longer contained on any neighbor Link
+state retransmission lists and b) none of the router's neighbors are in
+states Exchange or Loading. We call the setting of an advertisement's
+age to MaxAge premature aging.
+
+Premature aging is used when it is time for a self-originated
+advertisement's sequence number field to wrap. At this point, the
+current advertisement instance (having LS sequence number of 0x7fffffff)
+must be prematurely aged and flushed from the routing domain before a
+new instance with sequence number 0x80000001 can be originated. See
+Section 12.1.6 for more information.
+
+Premature aging can also be used when, for example, one of the router's
+previously advertised external routes is no longer reachable. In this
+circumstance, the router can flush its external advertisement from the
+routing domain via premature aging. This procedure is preferable to the
+alternative, which is to originate a new advertisement for the
+destination specifying a metric of LSInfinity.
+
+A router may only prematurely age its own (self-originated) link state
+advertisements. These are the link state advertisements having the
+router's own OSPF Router ID in the Advertising Router field.
+
+
+15. Virtual Links
+
+The single backbone area (Area ID = 0) cannot be disconnected, or some
+areas of the Autonomous System will become unreachable. To
+establish/maintain connectivity of the backbone, virtual links can be
+configured through non-backbone areas. Virtual links serve to connect
+separate components of the backbone. The two endpoints of a virtual
+link are area border routers. The virtual link must be configured in
+both routers. The configuration information in each router consists of
+the other virtual endpoint (the other area border router), and the non-
+
+
+
+[Moy] [Page 114]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+backbone area the two routers have in common (called the transit area).
+Virtual links cannot be configured through stub areas (see Section 3.6).
+
+The virtual link is treated as if it were an unnumbered point-to-point
+network (belonging to the backbone) joining the two area border routers.
+An attempt is made to establish an adjacency over the virtual link.
+When this adjacency is established, the virtual link will be included in
+backbone router links advertisements, and OSPF packets pertaining to the
+backbone area will flow over the adjacency. Such an adjacency has been
+referred to as a "virtual adjacency".
+
+In each endpoint router, the cost and viability of the virtual link is
+discovered by examining the routing table entry for the other endpoint
+router. (The entry's associated area must be the configured transit
+area). Actually, there may be a separate routing table entry for each
+Type of Service. These are called the virtual link's corresponding
+routing table entries. The Interface Up event occurs for a virtual link
+when its corresponding TOS 0 routing table entry becomes reachable.
+Conversely, the Interface Down event occurs when its TOS 0 routing table
+entry becomes unreachable.[18] In other words, the virtual link's
+viability is determined by the existence of an intra-area path, through
+the transit area, between the two endpoints. The other details
+concerning virtual links are as follows:
+
+o AS external links are NEVER flooded over virtual adjacencies. This
+ would be duplication of effort, since the same AS external links are
+ already flooded throughout the virtual link's transit area. For
+ this same reason, AS external link advertisements are not summarized
+ over virtual adjacencies during the database exchange process.
+
+o The cost of a virtual link is NOT configured. It is defined to be
+ the cost of the intra-area path between the two defining area border
+ routers. This cost appears in the virtual link's corresponding
+ routing table entry. When the cost of a virtual link changes, a new
+ router links advertisement should be originated for the backbone
+ area.
+
+o Just as the virtual link's cost and viability are determined by the
+ routing table build process (through construction of the routing
+ table entry for the other endpoint), so are the IP interface address
+ for the virtual interface and the virtual neighbor's IP address.
+ These are used when sending protocol packets over the virtual link.
+
+o In each endpoint's router links advertisement for the backbone, the
+ virtual link is represented as a link having link type 4, Link ID
+ set to the virtual neighbor's OSPF Router ID and Link Data set to
+ the virtual interface's IP address. See Section 12.4.1 for more
+ information. Also, it may be the case that there is a TOS 0 path,
+
+
+
+[Moy] [Page 115]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ but no non-zero TOS paths to the other endpoint router. In this
+ case, non-zero TOS costs must be set to LSInfinity in the router
+ links advertisement.
+
+o When virtual links are configured for the backbone, information
+ concerning backbone networks should not be condensed before being
+ summarized for the transit areas. In other words, each backbone
+ network should be advertised in a separate summary link
+ advertisement, regardless of the backbone's configured area address
+ ranges. See Section 12.4.3 for more information.
+
+o The time between link state retransmissions, RxmtInterval, is
+ configured for a virtual link. This 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.
+
+
+16. Calculation Of The Routing Table
+
+This section details the OSPF routing table calculation. Using its
+attached areas' link state databases as input, a router runs the
+following algorithm, building its routing table step by step. At each
+step, the router must access individual pieces of the link state
+databases (e.g., a router links advertisement originated by a certain
+router). This access is performed by the lookup function discussed in
+Section 12.2. The lookup process may return a link state advertisement
+whose LS age is equal to MaxAge. Such an advertisement should not be
+used in the routing table calculation, and is treated just as if the
+lookup process had failed.
+
+The OSPF routing table's organization is explained in Section 11. Two
+examples of the routing table build process are presented in Sections
+11.2 and 11.3. This process can be broken into the following steps:
+
+
+(1) The present routing table is invalidated. The routing table is
+ built again from scratch. The old routing table is saved so that
+ changes in routing table entries can be identified.
+
+(2) The intra-area routes are calculated by building the shortest path
+ tree for each attached area. In particular, all routing table
+ entries whose Destination type is "area border router" are
+ calculated in this step. This step is described in two parts. At
+ first the tree is constructed by only considering those links
+ between routers and transit networks. Then the stub networks are
+ incorporated into the tree.
+
+
+
+
+[Moy] [Page 116]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+(3) The inter-area routes are calculated, through examination of summary
+ link advertisements. If the router is attached to multiple areas
+ (i.e., it is an area border router), only backbone summary link
+ advertisements are examined.
+
+(4) For those routing entries whose next hop is over a virtual link, a
+ real (physical) next hop is calculated. The real next hop will be
+ on one of the router's directly attached networks. This step only
+ concerns routers having configured virtual links.
+
+(5) Routes to external destinations are calculated, through examination
+ of AS external link advertisements. The location of the AS boundary
+ routers (which originate the AS external link advertisements) has
+ been determined in steps 2-4.
+
+
+Steps 2-5 are explained in further detail below. The explanations
+describe the calculations for TOS 0 only. It may also be necessary to
+perform each step (separately) for each of the non-zero TOS values.[19]
+For more information concerning the building of non-zero TOS routes see
+Section 16.9.
+
+Changes made to routing table entries as a result of these calculations
+can cause the OSPF protocol to take further actions. For example, a
+change to an intra-area route will cause an area border router to
+originate new summary link advertisements (see Section 12.4). See
+Section 16.7 for a complete list of the OSPF protocol actions resulting
+from routing table table changes.
+
+
+16.1 Calculating the shortest-path tree for an area
+
+This calculation yields the set of intra-area routes associated with an
+area (called hereafter Area A). A router calculates the shortest-path
+tree using itself as the root.[20] The formation of the shortest path
+tree is done here in two stages. In the first stage, only links between
+routers and transit networks are considered. Using the Dijkstra
+algorithm, a tree is formed from this subset of the link state database.
+In the second stage, leaves are added to the tree by considering the
+links to stub networks.
+
+The procedure will be explained using the graph terminology that was
+introduced in Section 2. The area's link state database is represented
+as a directed graph. The graph's vertices are routers, transit networks
+and stub networks. The first stage of the procedure concerns only the
+transit vertices (routers and transit networks) and their connecting
+links. Throughout the shortest path calculation, the following data is
+also associated with each transit vertex:
+
+
+
+[Moy] [Page 117]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Vertex (node) ID
+ A 32-bit number uniquely identifying the vertex. For router
+ vertices this is the OSPF Router ID. For network vertices, this is
+ the IP address of the network's Designated Router.
+
+A link state advertisement
+ Each transit vertex has an associated link state advertisement. For
+ router vertices, this is a router links advertisement. For transit
+ networks, this is a network links advertisement (which is actually
+ originated by the network's Designated Router). In any case, the
+ advertisement's Link State ID is always equal to the above Vertex
+ ID.
+
+List of next hops
+ The list of next hops for the current shortest paths from the root
+ to this vertex. There can be multiple shortest paths due to the
+ equal-cost multipath capability. Each next hop indicates the
+ outgoing router interface to use when forwarding traffic to the
+ destination. On multi-access networks, the next hop also includes
+ the IP address of the next router (if any) in the path towards the
+ destination.
+
+Distance from root
+ The link state cost of the current shortest path(s) from the root to
+ the vertex. The link state cost of a path is calculated as the sum
+ of the costs of the path's constituent links (as advertised in
+ router links and network links advertisements). One path is said to
+ be "shorter" than another if it has a smaller link state cost.
+
+
+The first stage of the procedure can now be summarized as follows. At
+each iteration of the algorithm, there is a list of candidate vertices.
+The shortest paths from the root to these vertices have not
+(necessarily) been found. The candidate vertex closest to the root is
+added to the shortest-path tree, removed from the candidate list, and
+its adjacent vertices are examined for possible addition to/modification
+of the candidate list. The algorithm then iterates again. It
+terminates when the candidate list becomes empty.
+
+The following steps describe the first stage in detail. Remember that
+we are computing the shortest path tree for Area A. All references to
+link state database lookup below are from Area A's database.
+
+
+(1) Initialize the algorithm's data structures. Clear the list of
+ candidate vertices. Initialize the shortest-path tree to only the
+ root (which is the router doing the calculation).
+
+
+
+
+[Moy] [Page 118]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+(2) Call the vertex just added to the tree vertex V. Examine the link
+ state advertisement associated with vertex V. This is a lookup in
+ the area link state database based on the Vertex ID. Each link
+ described by the advertisement gives the cost to an adjacent vertex.
+ For each described link, (say it joins vertex V to vertex W):
+
+ (a) If this is a link to a stub network, examine the next link in
+ V's advertisement. Links to stub networks will be considered in
+ the second stage of the shortest path calculation.
+
+ (b) Otherwise, W is a transit vertex (router or transit network).
+ Look up the vertex W's link state advertisement (router links or
+ network links) in Area A's link state database. If the
+ advertisement does not exist, or its age is equal to MaxAge, or
+ it does not have a link back to vertex V, examine the next link
+ in V's advertisement. Both ends of a link must advertise the
+ link before it will be used for data traffic.[21]
+
+ (c) If vertex W is already on the shortest-path tree, examine the
+ next link in the advertisement.
+
+ (d) If the cost of the link (from V to W) is LSInfinity, the link
+ should not be used for data traffic. In this case, examine the
+ next link in the advertisement.
+
+ (e) Calculate the link state cost D of the resulting path from the
+ root to vertex W. D is equal to the sum of the link state cost
+ of the (already calculated) shortest path to vertex V and the
+ advertised cost of the link between vertices V and W. If D is:
+
+ o Greater than the value that already appears for vertex W on
+ the candidate list, then examine the next link.
+
+ o Equal to the value that appears for vertex W on the the
+ candidate list, calculate the set of next hops that result
+ from using the advertised link. Input to this calculation
+ is the destination (W), and its parent (V). This
+ calculation is shown in Section 16.1.1. This set of hops
+ should be added to the next hop values that appear for W on
+ the candidate list.
+
+ o Less than the value that appears for vertex W on the the
+ candidate list, or if W does not yet appear on the candidate
+ list, then set the entry for W on the candidate list to
+ indicate a distance of D from the root. Also calculate the
+ list of next hops that result from using the advertised
+ link, setting the next hop values for W accordingly. The
+ next hop calculation is described in Section 16.1.1; it
+
+
+
+[Moy] [Page 119]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ takes as input the destination (W) and its parent (V).
+
+(3) If at this step the candidate list is empty, the shortest-path tree
+ (of transit vertices) has been completely built and this stage of
+ the algorithm terminates. Otherwise, choose the vertex belonging to
+ the candidate list that is closest to the root, and add it to the
+ shortest-path tree (removing it from the candidate list in the
+ process).
+
+(4) Possibly modify the routing table. For those routing table entries
+ modified, the associated area will be set to Area A, the path type
+ will be set to intra-area, and the cost will be set to the newly
+ discovered shortest path's calculated distance.
+
+ If the newly added vertex is an area border router, a routing table
+ entry is added whose destination type is "area border router". The
+ Options field found in the associated router links advertisement is
+ copied into the routing table entry's Optional capabilities field.
+
+ If the newly added vertex is an AS boundary router, the routing
+ table entry of type "AS boundary router" for the destination is
+ located. Since routers can belong to more than one area, it is
+ possible that several sets of intra-area paths exist to the AS
+ boundary router, each set using a different area. However, the AS
+ boundary router's routing table entry must indicate a set of paths
+ which utilize a single area. The area leading to the routing table
+ entry is selected as follows: A set of intra-area paths having no
+ virtual next hops is always preferred over a set of intra-area paths
+ in which some virtual next hops appear[22] ; all other things being
+ equal the set of paths having lower cost is preferred. Note that
+ whenever an AS boundary router's routing table entry is
+ added/modified, the Options found in the associated router links
+ advertisement is copied into the routing table entry's Optional
+ capabilities field.
+
+ If the newly added vertex is a transit network, the routing table
+ entry for the network is located. The entry's destination ID is the
+ IP network number, which can be obtained by masking the Vertex ID
+ (Link State ID) with its associated subnet mask (found in the
+ associated network links advertisement). If the routing table entry
+ already exists (i.e., there is already an intra-area route to the
+ destination installed in the routing table), multiple vertices have
+ mapped to the same IP network. For example, this can occur when a
+ new Designated Router is being established. In this case, the
+ current routing table entry should be overwritten if and only if the
+ newly found path is just as short and the current routing table
+ entry's Link State Origin has a smaller Link State ID than the newly
+ added vertex' link state advertisement.
+
+
+
+[Moy] [Page 120]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ If there is no routing table entry for the network (the usual case),
+ a routing table entry for the IP network should be added. The
+ routing table entry's Link State origin should be set to the newly
+ added vertex' link state advertisement.
+
+(5) Iterate the algorithm by returning to Step 2.
+
+
+The stub networks are added to the tree in the procedure's second stage.
+In this stage, all router vertices are again examined. Those that have
+been determined to be unreachable in the above first phase are
+discarded. For each reachable router vertex (call it V), the associated
+router links advertisement is found in the link state database. Each
+stub network link appearing in the advertisement is then examined, and
+the following steps are executed:
+
+
+(1) If the cost of the stub network link is LSInfinity, the link should
+ not be used for data traffic. In this case, go on to examine the
+ next stub network link in the advertisement.
+
+(2) Otherwise, Calculate the distance D of stub network from the root.
+ D is equal to the distance from the root to the router vertex
+ (calculated in stage 1), plus the stub network link's advertised
+ cost. Compare this distance to the current best cost to the stub
+ network. This is done by looking up the network's current routing
+ table entry. If the calculated distance D is larger, go on to
+ examine the next stub network link in the advertisement.
+
+(3) If this step is reached, the stub network's routing table entry must
+ be updated. Calculate the set of next hops that would result from
+ using the stub network link. This calculation is shown in Section
+ 16.1.1; input to this calculation is the destination (the stub
+ network) and the parent vertex (the router vertex). If the distance
+ D is the same as the current routing table cost, simply add this set
+ of next hops to the routing table entry's list of next hops. In
+ this case, the routing table already has a Link State origin. If
+ this Link State origin is a router links advertisement whose Link
+ State ID is smaller than V's Router ID, reset the Link State origin
+ to V's router links advertisement.
+
+ Otherwise D is smaller than the routing table cost. Overwrite the
+ current routing table entry by setting the routing table entry's
+ cost to D, and by setting the entry's list of next hops to the newly
+ calculated set. Set the routing table entry's Link State origin to
+ V's router links advertisement. Then go on to examine the next stub
+ network link.
+
+
+
+
+[Moy] [Page 121]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+For all routing table entries added/modified in the second stage, the
+associated area will be set to Area A and the path type will be set to
+intra-area. When the list of reachable router links is exhausted, the
+second stage is completed. At this time, all intra-area routes
+associated with Area A have been determined.
+
+The specification does not require that the above two stage method be
+used to calculate the shortest path tree. However, if another algorithm
+is used, an identical tree must be produced. For this reason, it is
+important to note that links between transit vertices must be
+bidirectional in ordered to be included in the above tree. It should
+also be mentioned that algorithms exist for incrementally updating the
+shortest-path tree (see [BBN]).
+
+
+16.1.1 The next hop calculation
+
+This section explains how to calculate the current set of next hops to
+use for a destination. Each next hop consists of the outgoing interface
+to use in forwarding packets to the destination together with the next
+hop router (if any). The next hop calculation is invoked each time a
+shorter path to the destination is discovered. This can happen in
+either stage of the shortest-path tree calculation (see Section 16.1).
+In stage 1 of the shortest-path tree calculation a shorter path is found
+as the destination is added to the candidate list, or when the
+destination's entry on the candidate list is modified (Step 2e of Stage
+1). In stage 2 a shorter path is discovered each time the destination's
+routing table entry is modified (Step 3 of Stage 2).
+
+The set of next hops to use for the destination may be recalculated
+several times during the shortest-path tree calculation, as shorter and
+shorter paths are discovered. In the end, the destination's routing
+table entry will always reflect the next hops resulting from the
+absolute shortest path(s).
+
+Input to the next hop calculation is a) the destination and b) its
+parent in the current shortest path between the root (the calculating
+router) and the destination. The parent is always a transit vertex
+(i.e., always a router or a transit network).
+
+If there is at least one intervening router in the current shortest path
+between the destination and the root, the destination simply inherits
+the set of next hops from the parent. Otherwise, there are two cases.
+In the first case, the parent vertex is the root (the calculating router
+itself). This means that the destination is either a directly connected
+network or directly connected router. The next hop in this case is
+simply the OSPF interface connecting to the network/router; no next hop
+router is required.
+
+
+
+[Moy] [Page 122]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+In the second case, the destination is a router, and its parent vertex
+is a network. The list of next hops is then determined by examining the
+destination's router links advertisement. For each link in the
+advertisement that points back to the parent network, the link's Link
+Data field provides the IP address of a next hop router. The outgoing
+interface to use can then be derived from the next hop IP address (or it
+can be inherited from the parent network).
+
+
+16.2 Calculating the inter-area routes
+
+The inter-area routes are calculated by examining summary link
+advertisements. If the router has active attachments to multiple areas,
+only backbone summary link advertisements are examined. Routers
+attached to a single area examine that area's summary links. In either
+case, the summary links examined below are all part of a single area's
+link state database (call it Area A).
+
+Summary link advertisements are originated by the area border routers.
+Each summary link advertisement in Area A is considered in turn.
+Remember that the destination described by a summary link advertisement
+is either a network (type 3 summary link advertisements) or an AS
+boundary router (type 4 summary link advertisements). For each summary
+link advertisement:
+
+
+(1) If the cost specified by the advertisement is LSInfinity, then
+ examine the next advertisement.
+
+(2) If the advertisement was originated by the calculating router
+ itself, examine the next advertisement.
+
+(3) If the collection of destinations described by the summary link
+ falls into one of the router's configured area address ranges (see
+ Section 3.5) and the particular area address range is active, the
+ summary link should be ignored. Active means that there are one or
+ more reachable (by intra-area paths) networks contained in the area
+ range. In this case, all addresses in the area range are assumed to
+ be either reachable via intra-area paths, or else to be unreachable
+ by any other means.
+
+(4) Else, call the destination described by the advertisement N, and the
+ area border originating the advertisement BR. Look up the routing
+ table entry for BR having A as its associated area. If no such
+ entry exists for router BR (i.e., BR is unreachable in Area A), do
+ nothing with this advertisement and consider the next in the list.
+ Else, this advertisement describes an inter-area path to destination
+ N, whose cost is the distance to BR plus the cost specified in the
+
+
+
+[Moy] [Page 123]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ advertisement. Call the cost of this inter-area path IAC.
+
+(5) Next, look up the routing table entry for the destination N. (The
+ entry's Destination type is either Network or AS boundary router.)
+ If no entry exists for N or if the entry's path type is "AS
+ external", install the inter-area path to N, with associated area A,
+ cost IAC, next hop equal to the list of next hops to router BR, and
+ advertising router equal to BR.
+
+(6) Else, if the paths present in the table are intra-area paths, do
+ nothing with the advertisement (intra-area paths are always
+ preferred).
+
+(7) Else, the paths present in the routing table are also inter-area
+ paths. Install the new path through BR if it is cheaper, overriding
+ the paths in the routing table. Otherwise, if the new path is the
+ same cost, add it to the list of paths that appear in the routing
+ table entry.
+
+
+16.3 Resolving virtual next hops
+
+This step is only necessary in area-border routers having configured
+virtual links. In these routers, some of the routing table entries may
+have virtual next hops. That is, one or more of the next hops installed
+in Sections 16.1 and 16.2 may be over a virtual link. However, when
+forwarding data traffic to a destination, the next hops must always be
+on a directly attached network.
+
+In this section, each virtual next hop is replaced by a real next hop.
+In the process a new routing table distance is calculated that may be
+smaller than the previously calculated distance. In this case, the list
+of next hops is pruned so that only those giving rise to the new
+shortest distance are included, and the routing table entry's distance
+is updated accordingly.
+
+
+
+
+ ______________________________________
+
+ (Figure not included in text version.)
+
+ Figure 17: Resolving virtual next hops
+ ______________________________________
+
+
+
+
+
+
+[Moy] [Page 124]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+This resolution of virtual next hops is done only for Destination types
+Network or AS Boundary router. Suppose that one of a routing table
+entry's next hops is a virtual link. This is determined by the
+following combination: the routing table entry's path type is either
+intra-area or inter-area, the area associated with the routing table
+entry must be the backbone, yet the next hop belongs to a different area
+(the virtual link's transit area).
+
+Let N be the above entry's destination, and A the virtual link's transit
+area. The real next hop (and new distance) is calculated as follows.
+Let D be a distance counter, and set the real next hop NH to null.
+Then, look up all the summary link advertisements for N in area A's
+database, performing the following steps for each advertisement:[23]
+
+
+(1) Call the border router that originated the advertisement BR. If
+ there is no routing table entry for BR having A as associated area
+ (i.e., BR is unreachable through Area A), examine the next
+ advertisement.
+
+(2) Else, let X be the distance to BR via Area A. If the cost
+ advertised by BR (call it Y) to the destination is LSInfinity,
+ examine the next summary link advertisement. Else, the cost to
+ destination N through area border router BR is X+Y.
+
+(3) If next hop NH is null or X+Y is smaller is smaller than D, set D to
+ X+Y and set the next hop NH to the next hop specified in router BR's
+ routing table entry.
+
+
+At this point, the real next hop NH should be set, and the distance D
+calculated should be less than or equal to the cost originally specified
+in destination N's routing table entry. This same calculation should be
+done for all of N's virtual next hops, and then N's new cost set to the
+minimum calculated distance, with the its new set of next hops that
+combination of non-virtual and recalculated next hops that correspond to
+this (possibly same as original) distance.
+
+The resolving of virtual next hops may produce unexpected results.
+After the virtual next hops are resolved, traffic that was originally
+scheduled to go over the virtual link may instead take a different path
+through the virtual link's transit area. In other words, virtual links
+allow transit traffic to be forwarded through an area, but do not
+dictate the precise path that the traffic will take.
+
+As an example, consider the Autonomous System pictured in Figure 17.
+There is a single non-backbone area (Area 1) that physically divides the
+backbone into two separate pieces. To maintain connectivity of the
+
+
+
+[Moy] [Page 125]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+backbone, a virtual link has been configured between routers RT1 and
+RT4. On the right side of the figure, network N1 belongs to the
+backbone. The dotted lines indicate that there is a much shorter
+intra-area backbone path between router RT5 and network N1 (cost 20)
+than there is between router RT4 and network N1 (cost 100). Both router
+RT4 and router RT5 will inject summary link advertisements for network
+N1 into Area 1.
+
+After the shortest-path tree has been calculated for the backbone,
+router RT1 (one end of the virtual link) will have selected router RT4
+as the virtual next hop for all data traffic destined for network N1.
+However, since router RT5 is so much closer to network N1, all routers
+internal to Area 1 (e.g., routers RT2 and RT3) will forward their
+network N1 traffic towards router RT5, instead of RT4. And indeed,
+after resolving the virtual next hop by the above calculation, router
+RT1 will also forward network N1 traffic towards RT5. So, in this
+example the virtual link enables network N1 traffic to be forwarded
+through the transit Area 1, but the actual path the data traffic takes
+does not follow the virtual link.
+
+
+16.4 Calculating AS external routes
+
+AS external routes are calculated by examining AS external link
+advertisements. Each of the AS external link advertisements is
+considered in turn. Most AS external advertisements describe routes to
+specific IP destinations. An AS external advertisement can also
+describe a default route for the Autonomous System (destination =
+DefaultDestination). For each AS external link advertisement:
+
+
+(1) If the cost specified by the advertisement is LSInfinity, then
+ examine the next advertisement.
+
+(2) If the advertisement was originated by the calculating router
+ itself, examine the next advertisement.
+
+(3) Call the destination described by the advertisement N. Look up the
+ routing table entry for the AS boundary router (ASBR) that
+ originated the advertisement. If no entry exists for router ASBR
+ (i.e., ASBR is unreachable), do nothing with this advertisement and
+ consider the next in the list.
+
+ Else, this advertisement describes an AS external path to
+ destination N. Examine the forwarding address specified in the
+ external advertisement. This indicates the IP address to which
+ packets for the destination should be forwarded. If forwarding
+ address is set to 0.0.0.0, packets should be sent to the ASBR
+
+
+
+[Moy] [Page 126]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ itself. Otherwise, look up the forwarding address in the routing
+ table.[24] An intra-area or inter-area path must exist to the
+ forwarding address. If no such path exists, do nothing with the
+ advertisement and consider the next in the list.
+
+ Call the routing table distance to the forwarding address X (when
+ the forwarding address is set to 0.0.0.0, this is the distance to
+ the ASBR itself), and the cost specified in the advertisement Y. X
+ is in terms of the link state metric, and Y is a Type 1 or 2
+ external metric.
+
+(4) Next, look up the routing table entry for the destination N. If no
+ entry exists for N, install the AS external path to N, with next hop
+ equal to the list of next hops to the forwarding address, and
+ advertising router equal to ASBR. If the external metric type is 1,
+ then the path-type is set to type 1 external and the cost is equal
+ to X+Y. If the external metric type is 2, the the path-type is set
+ to type 2 external, the link state component of the route's cost is
+ X, and the Type 2 cost is Y.
+
+(5) Else, if the paths present in the table are not type 1 or type 2
+ external paths, do nothing (AS external paths have the lowest
+ priority).
+
+(6) Otherwise, compare the cost of this new AS external path to the ones
+ present in the table. Type 1 external paths are always shorter than
+ Type 2 external paths. Type 1 external paths are compared by
+ looking at the sum of the distance to the forwarding address and the
+ advertised Type 1 metric (X+Y). Type 2 external paths are compared
+ by looking at the advertised Type 2 metrics, and then if necessary,
+ the distance to the forwarding addresses.
+
+ If the new path is shorter, it replaces the present paths in the
+ routing table entry. If the new path is the same cost, it is added
+ to the routing table entry's list of paths.
+
+
+16.5 Incremental updates --- summary links
+
+When a new summary link advertisement is received, it is not necessary
+to recalculate the entire routing table. Call the destination described
+by the summary link advertisement N, and let A be the area to which the
+advertisement belongs.
+
+Look up the routing table entry for N. If the next hop to N is a
+virtual link through Area A (this means that the entry's associated area
+is the backbone, and the listed next hop does not belong to the
+backbone, but instead belongs to Area A), the real next hop must again
+
+
+
+[Moy] [Page 127]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+be resolved. This means running the algorithm in Section 16.3 for
+destination N only.
+
+Else, if there is an intra-area route to destination N nothing need be
+done (intra-area routes always take precedence). Otherwise, if Area A
+is the router's sole attached area, or Area A is the backbone, the
+procedure in Section 16.2 will have to be performed, but only for those
+summary link advertisements whose destination is N. Before this
+procedure is performed, the present routing table entry for N should be
+invalidated (but kept for comparison purposes). If this procedure leads
+to a virtual next hop, the algorithm in Section 16.3 will again have to
+be performed in order to calculate the real next hop.
+
+If N's routing table entry changes, and N is an AS boundary router, the
+AS external links will have to be reexamined (Section 16.4).
+
+
+16.6 Incremental updates --- AS external links
+
+When a new AS external link advertisement is received, it is not
+necessary to recalculate the entire routing table. Call the destination
+described by the AS external link advertisement N. If there is already
+an intra-area or inter-area route to the destination, no recalculation
+is necessary (these routes take precedence).
+
+Otherwise, the procedure in Section 16.4 will have to be performed, but
+only for those AS external link advertisements whose destination is N.
+Before this procedure is performed, the present routing table entry for
+N should be invalidated.
+
+
+16.7 Events generated as a result of routing table changes
+
+Changes to routing table entries sometimes cause the OSPF area border
+routers to take additional actions. These routers need to act on the
+following routing table changes:
+
+
+o The cost or path type of a routing table entry has changed. If the
+ destination described by this entry is a Network or AS boundary
+ router, and this is not simply a change of AS external routes, new
+ summary link advertisements may have to be generated (potentially
+ one for each attached area, including the backbone). See Section
+ 12.4.3 for more information. If a previously advertised entry has
+ been deleted, or is no longer advertisable to a particular area, the
+ advertisement must be flushed from the routing domain by setting its
+ age to MaxAge and reflooding (see Section 14.1).
+
+
+
+
+[Moy] [Page 128]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+o A routing table entry associated with a configured virtual link has
+ changed. The destination of such a routing table entry is an area
+ border router. The change indicates a modification to the virtual
+ link's cost or viability.
+
+ If the entry indicates that the area border router is newly
+ reachable (via TOS 0), the corresponding virtual link is now
+ operational. An Interface Up event should be generated for the
+ virtual link, which will cause a virtual adjacency to begin to form
+ (see Section 10.3). At this time the virtual interface's IP address
+ and the virtual neighbor's IP address are also calculated.
+
+ If the entry indicates that the area border router is no longer
+ reachable (via TOS 0), the virtual link and its associated adjacency
+ should be destroyed. This means an Interface Down event should be
+ generated for the associated virtual link.
+
+ If the cost of the entry has changed, and there is a fully
+ established virtual adjacency, a new router links advertisement for
+ the backbone must be originated. This in turn may cause further
+ routing table changes.
+
+
+16.8 Equal-cost multipath
+
+The OSPF protocol maintains multiple equal-cost routes to all
+destinations. This can be seen in the steps used above to calculate the
+routing table, and in the definition of the routing table structure.
+
+Each one of the multiple routes will be of the same type (intra-area,
+inter-area, type 1 external or type 2 external), cost, and will have the
+same associated area. However, each route specifies a separate next hop
+and advertising router.
+
+There is no requirement that a router running OSPF keep track of all
+possible equal-cost routes to a destination. An implementation may
+choose to keep only a fixed number of routes to any given destination.
+This does not affect any of the algorithms presented in this
+specification.
+
+
+16.9 Building the non-zero-TOS portion of the routing table
+
+The OSPF protocol can calculate a different set of routes for each IP
+TOS (see Section 2.4). Support for TOS-based routing is optional.
+TOS-capable and non-TOS-capable routers can be mixed in an OSPF routing
+domain. Routers not supporting TOS calculate only the TOS 0 route to
+each destination. These routes are then used to forward all data
+
+
+
+[Moy] [Page 129]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+traffic, regardless of the TOS indications in the data packet's IP
+header. A router that does not support TOS indicates this fact to the
+other OSPF routers by clearing the T-bit in the Options field of its
+router links advertisement.
+
+The above sections detailing the routing table calculations handle the
+TOS 0 case only. In general, for routers supporting TOS-based routing,
+each piece of the routing table calculation must be rerun separately for
+the non-zero TOS values. When calculating routes for TOS X, only TOS X
+metrics can be used. Any link state advertisement may specify a
+separate cost for each TOS (a cost for TOS 0 must always be specified).
+The encoding of TOS in OSPF link state advertisements is described in
+Section 12.3.
+
+An advertisement can specify that it is restricted to TOS 0 (i.e., non-
+zero TOS is not handled) by clearing the T-bit in the link state
+advertisement's Option field. Such advertisements are not used when
+calculating routes for non-zero TOS. For this reason, it is possible
+that a destination is unreachable for some non-zero TOS. In this case,
+the TOS 0 path is used when forwarding packets (see Section 11.1).
+
+The following lists the modifications needed when running the routing
+table calculation for a non-zero TOS value (called TOS X). In general,
+routers and advertisements that do not support TOS are omitted from the
+calculation.
+
+
+Calculating the shortest-path tree (Section 16.1).
+ Routers that do not support TOS-based routing should be omitted from
+ the shortest-path tree calculation. These routers are identified as
+ those having the T-bit reset in their router links advertisements.
+ Such routers should never be added to the Dijktra algorithm's
+ candidate list, nor should their router links advertisements be
+ examined when adding the stub networks to the tree.
+
+Calculating the inter-area routes (Section 16.2).
+ Inter-area paths are the concatenation of a path to an area border
+ router with a summary link. When calculating TOS X routes, both
+ path components must also specify TOS X. In other words, only TOS X
+ paths to the area border router are examined, and the area border
+ router must be advertising a TOS X route to the destination. Note
+ that this means that summary link advertisements having the T-bit
+ reset in their Options field are not considered.
+
+Resolving virtual next hops (Section 16.3).
+ This calculation again considers the concatenation of a path to an
+ area border router with a summary link. As with inter-area routes,
+ only TOS X paths to the area border router are examined, and the
+
+
+
+[Moy] [Page 130]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ area border router must be advertising a TOS X route to the
+ destination.
+
+Calculating AS external routes (Section 16.4).
+ This calculation considers the concatenation of a path to a
+ forwarding address with an AS external link. Only TOS X paths to
+ the forwarding address are examined, and the AS boundary router must
+ be advertising a TOS X route to the destination. Note that this
+ means that AS external link advertisements having the T-bit reset in
+ their Options field are not considered.
+
+ In addition, the advertising AS boundary router must also be
+ reachable for its advertisements to be considered (see Section
+ 16.4). However, if the advertising router and the forwarding
+ address are not one in the same, the advertising router need only be
+ reachable via TOS 0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 131]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ [1]The graph's vertices represent either routers, transit networks,
+ or stub networks. Since routers may belong to multiple areas, it is
+ not possible to color the graph's vertices.
+
+ [2]It is possible for all of a router's interfaces to be unnumbered
+ point-to-point links. In this case, an IP address must be assigned
+ to the router. This address will then be advertised in the router's
+ router links advertisement as a host route.
+
+ [3]Note that in these cases both interfaces, the non-virtual and the
+ virtual, would have the same IP address.
+
+ [4]Note that no host route is generated for, and no IP packets can
+ be addressed to, interfaces to unnumbered point-to-point networks.
+ This is regardless of such an interface's state.
+
+ [5]It is instructive to see what happens when the Designated Router
+ for the network crashes. Call the Designated Router for the network
+ RT1, and the the Backup Designated Router RT2. If router RT1
+ crashes (or maybe its interface to the network dies), the other
+ routers on the network will detect RT1's absence within
+ RouterDeadInterval seconds. All routers may not detect this at
+ precisely the same time; the routers that detect RT1's absence
+ before RT2 does will, for a time, select RT2 to be both Designated
+ Router and Backup Designated Router. When RT2 detects that RT1 is
+ gone it will move itself to Designated Router. At this time, the
+ remaining router having highest Router Priority will be selected as
+ Backup Designated Router.
+
+ [6]On point-to-point networks, the lower level protocols indicate
+ whether the neighbor is up and running. Likewise, existence of the
+ neighbor on virtual links is indicated by the routing table
+ calculation. However, in both these cases, the Hello Protocol is
+ still used. This ensures that communication between the neighbors
+ is bidirectional, and that each of the neighbors has a functioning
+ routing protocol layer.
+
+ [7]When the identity of the Designated Router is changing, it may be
+ quite common for a neighbor in this state to send the router a
+ Database Description packet; this means that there is some momentary
+ disagreement on the Designated Router's identity.
+
+ [8]Note that it is possible for a router to resynchronize any of its
+ fully established adjacencies by setting the adjacency's state back
+ to ExStart. This will cause the other end of the adjacency to
+ process a Seq Number Mismatch event, and therefore to also go back
+ to ExStart state.
+
+
+
+
+[Moy] [Page 132]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ [9]The address space of IP networks and the address space of OSPF
+ Router IDs may overlap. That is, a network may have an IP address
+ which is identical (when considered as a 32-bit number) to some
+ router's Router ID.
+
+ [10]It is assumed that, for two different address ranges matching
+ the destination, one range is more specific than the other. Non-
+ contiguous subnet masks can be configured to violate this
+ assumption. Such subnet mask configurations cannot be handled by the
+ OSPF protocol.
+
+ [11]MaxAgeDiff is an architectural constant. It indicates the
+ maximum dispersion of ages, in seconds, that can occur for a single
+ link state instance as it is flooded throughout the routing domain.
+ If two advertisements differ by more than this, they are assumed to
+ be different instances of the same advertisement. This can occur
+ when a router restarts and loses track of its previous sequence
+ number. See Section 13.4 for more details.
+
+ [12]When two advertisements have different checksums, they are
+ assumed to be separate instances. This can occur when a router
+ restarts, and loses track of its previous sequence number. In this
+ case, since the two advertisements have the same sequence number, it
+ is not possible to determine which link state is actually newer. If
+ the wrong advertisement is accepted as newer, the originating router
+ will originate another instance. See Section 13.4 for further
+ details.
+
+ [13]There is one instance where a lookup must be done based on
+ partial information. This is during the routing table calculation,
+ when a network links advertisement must be found based solely on its
+ Link State ID. The lookup in this case is still well defined, since
+ no two network advertisements can have the same Link State ID.
+
+ [14]This clause covers the case: Inter-area routes are not
+ summarized to the backbone. This is because inter-area routes are
+ always associated with the backbone area.
+
+ [15]By keeping more information in the routing table, it is possible
+ for an implementation to recalculate the shortest path tree only for
+ a single area. In fact, there are incremental algorithms that allow
+ an implementation to recalculate only a portion of the shortest path
+ tree [BBN]. These algorithms are beyond the scope of this
+ specification.
+
+ [16]This is how the Link state request list is emptied, which
+ eventually causes the neighbor state to transition to Full. See
+ Section 10.9 for more details.
+
+
+
+[Moy] [Page 133]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ [17]It should be a relatively rare occurrence for an advertisement's
+ age to reach MaxAge. Usually, the advertisement will be replaced by
+ a more recent instance before it ages out.
+
+ [18]Only the TOS 0 routes are important here. This is because all
+ routing protocol packets are sent with TOS= 0. See Appendix A.
+
+ [19]It may be the case that paths to certain destinations do not
+ vary based on TOS. For these destinations, the routing calculation
+ need not be repeated for each TOS value. In addition, there need
+ only be a single routing table entry for these destinations (instead
+ of a separate entry for each TOS value).
+
+ [20]Strictly speaking, because of equal-cost multipath, the
+ algorithm does not create a tree. We continue to use the "tree"
+ terminology because that is what occurs most often in the existing
+ literature.
+
+ [21]This means that before data traffic will flow between a pair of
+ neighboring routers, their link state databases must be
+ synchronized. Before synchronization (neighbor state < Full), a
+ router will not include the connection to its neighbor in its link
+ state advertisements.
+
+ [22]As a result of this clause, when a virtual link exists between
+ the calculating router and an AS boundary router, the intra-area
+ path through the virtual link's transit area is always preferred
+ over the virtual link itself.
+
+ [23]Note the similarity between this procedure and the calculation
+ of inter-area routes by a router internal to Area A.
+
+ [24]When the forwarding address is non-zero, it should point to a
+ router belonging to another Autonomous System. See Section 12.4.4
+ for more details.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 134]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+References
+
+
+[BBN] McQuillan, J.M., Richer, I. and Rosen, E.C. ARPANET
+ Routing Algorithm Improvements. BBN Technical Report 3803,
+ April 1978.
+
+[DEC] Digital Equipment Corporation. Information processing
+ systems -- Data communications -- Intermediate System to
+ Intermediate System Intra-Domain Routing Protocol. October
+ 1987.
+
+[McQuillan] McQuillan, J. et.al. The New Routing Algorithm for the
+ Arpanet. IEEE Transactions on Communications, May 1980.
+
+[Perlman] Perlman, Radia. Fault-Tolerant Broadcast of Routing
+ Information. Computer Networks, Dec. 1983.
+
+[RFC 791] Postel, Jon. Internet Protocol. September 1981
+
+[RFC 944] ANSI X3S3.3 86-60. Final Text of DIS 8473, Protocol for
+ Providing the Connectionless-mode Network Service. March
+ 1986.
+
+[RFC 1060] Reynolds, J. and Postel, J. Assigned Numbers. March 1990.
+
+[RFC 1112] Deering, S.E. Host extensions for IP multicasting. May
+ 1988.
+
+[RFC 1131] Moy, J. The OSPF Specification. October 1989.
+
+[RS-85-153] Leiner, Dr. Barry M., et.al. The DARPA Internet Protocol
+ Suite. DDN Protocol Handbook, April 1985.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 135]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+A. OSPF data formats
+
+This appendix describes the format of OSPF protocol packets and OSPF
+link state advertisements. The OSPF protocol runs directly over the IP
+network layer. Before any data formats are described, the details of
+the OSPF encapsulation are explained.
+
+Next the OSPF options field is described. This field describes various
+capabilities that may or may not be supported by pieces of the OSPF
+routing domain. It is contained both in OSPF protocol packets and in
+OSPF link state advertisements.
+
+OSPF packet formats are detailed in Section A.3. A description of OSPF
+link state advertisements appears in Section A.4.
+
+
+A.1 Encapsulation of OSPF packets
+
+OSPF runs directly over the Internet Protocol's network layer. OSPF
+packets are therefore encapsulated solely by IP and local network
+headers.
+
+OSPF does not define a way to fragment its protocol packets, and depends
+on IP fragmentation when transmitting packets larger than the network
+MTU. The OSPF packet types that are likely to be large (Database
+Description Packets, Link State Request, Link State Update, and Link
+State Acknowledgment packets) can usually be split into several separate
+protocol packets, without loss of functionality. This is recommended;
+IP fragmentation should be avoided whenever possible. Using this
+reasoning, an attempt should be made to limit the sizes of packets sent
+over virtual links to 576 bytes. However, if necessary, the length of
+OSPF packets can be up to 65,535 bytes (including the IP header).
+
+The other important features of OSPF's IP encapsulation are:
+
+
+o Use of IP multicast. Some OSPF messages are multicast, when sent
+ over multi-access networks. Two distinct IP multicast addresses are
+ used. Packets destined to these multicast addresses should never be
+ forwarded. Such packets are meant to travel a single hop only. To
+ ensure that these packets will not travel multiple hops, their IP
+ TTL must be set to 1.
+
+ AllSPFRouters
+ This multicast address has been assigned the value 224.0.0.5.
+ All routers running OSPF should be prepared to receive packets
+ sent to this address. Hello packets are always sent to this
+ destination. Also, certain protocol packets are sent to this
+
+
+
+[Moy] [Page 136]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ address during the flooding procedure.
+
+ AllDRouters
+ This multicast address has been assigned the value 224.0.0.6.
+ Both the Designated Router and Backup Designated Router must be
+ prepared to receive packets destined to this address. Certain
+ packets are sent to this address during the flooding procedure.
+
+o OSPF is IP protocol number 89. This number has been registered with
+ the Network Information Center. IP protocol number assignments are
+ documented in [RFC 1060].
+
+o Routing protocol packets are sent with IP TOS of 0. The OSPF
+ protocol supports TOS-based routing. Routes to any particular
+ destination may vary based on TOS. However, all OSPF routing
+ protocol packets are sent with the DTR bits in the IP header's TOS
+ field (see [RFC 791]) set to 0.
+
+o Routing protocol packets are sent with IP precedence set to
+ Internetwork Control. OSPF protocol packets should be given
+ precedence over regular IP data traffic, in both sending and
+ receiving. Setting the IP precedence field in the IP header to
+ Internetwork Control [RFC 791] may help implement this objective.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 137]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+A.2 The options field
+
+The OSPF options field is present in OSPF Hello packets, Database
+Description packets and all link state advertisements. The options
+field enables OSPF routers to support (or not support) optional
+capabilities, and to communicate their capability level to other OSPF
+routers. Through this mechanism routers of differing capabilities can
+be mixed within an OSPF routing domain.
+
+When used in Hello packets, the options field allows a router to reject
+a neighbor because of a capability mismatch. Alternatively, when
+capabilities are exchanged in Database Description packets a router can
+choose not to forward certain LSA types to a neighbor because of its
+reduced functionality. Lastly, listing capabilities in LSAs allows
+routers to route traffic around reduced functionality routers, by
+excluding them from parts of the routing table calculation.
+
+Two capabilities are currently defined. For each capability, the effect
+of the capability's appearance (or lack of appearance) in Hello packets,
+Database Description packets and link state advertisements is specified
+below. For example, the external routing capability (below called the
+E-bit) has meaning only in OSPF Hello Packets. Routers should reset
+(i.e. clear) the unassigned part of the capability field when sending
+Hello packets or Database Description packets and when originating link
+state advertisements.
+
+Additional capabilities may be assigned in the future. Routers
+encountering unrecognized capabilities in received Hello Packets,
+Database Description packets or link state advertisements should ignore
+the capability and process the packet/advertisement normally.
+
+ +-+-+-+-+-+-+-+-+
+ | | | | | | |E|T|
+ +-+-+-+-+-+-+-+-+
+
+ The options field
+
+
+T-bit
+ This describes the router's TOS capability. If the T-bit is reset,
+ then the router supports only a single TOS (TOS 0). Such a router
+ is also said to be incapable of TOS-routing. The absence of the T-
+ bit in a router links advertisement causes the router to be skipped
+ when building a non-zero TOS shortest-path tree (see Section 16.9).
+ In other words, routers incapable of TOS routing will be avoided as
+ much as possible when forwarding data traffic requesting a non-zero
+ TOS. The absence of the T-bit in a summary link advertisement or an
+ AS external link advertisement indicates that the advertisement is
+
+
+
+[Moy] [Page 138]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ describing a TOS 0 route only (and not routes for non-zero TOS).
+
+E-bit
+ AS external link advertisements are not flooded into/through OSPF
+ stub areas (see Section 3.6). The E-bit ensures that all members of
+ a stub area agree on that area's configuration. The E-bit is
+ meaningful only in OSPF Hello packets. When the E-bit is reset in
+ the Hello packet sent out a particular interface, it means that the
+ router will neither send nor receive AS external link state
+ advertisements on that interface (in other words, the interface
+ connects to a stub area). Two routers will not become neighbors
+ unless they agree on the state of the E-bit.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 139]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+A.3 OSPF Packet Formats
+
+There are five distinct OSPF packet types. All OSPF packet types begin
+with a standard 24 byte header. This header is described first. Each
+packet type is then described in a succeeding section. In these
+sections each packet's division into fields is displayed, and then the
+field definitions are enumerated.
+
+All OSPF packet types (other than the OSPF Hello packets) deal with
+lists of link state advertisements. For example, Link State Update
+packets implement the flooding of advertisements throughout the OSPF
+routing domain. Because of this, OSPF protocol packets cannot be parsed
+unless the format of link state advertisements is also understood. The
+format of Link state advertisements is described in Section A.4.
+
+The receive processing of OSPF packets is detailed in Section 8.2. The
+sending of OSPF packets is explained in Section 8.1.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 140]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+A.3.1 The OSPF packet header
+
+Every OSPF packet starts with a common 24 byte header. This header
+contains all the necessary information to determine whether the packet
+should be accepted for further processing. This determination is
+described in Section 8.2 of the specification.
+
+
+ 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 # | Type | Packet length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Router ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Area ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Checksum | Autype |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Authentication |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Authentication |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+Version #
+ The OSPF version number. This specification documents version 2 of
+ the protocol.
+
+Type
+ The OSPF packet types are as follows. The format of each of these
+ packet types is described in a succeeding section.
+
+
+
+ Type Description
+ ________________________________
+ 1 Hello
+ 2 Database Description
+ 3 Link State Request
+ 4 Link State Update
+ 5 Link State Acknowledgment
+
+
+
+
+
+
+
+
+[Moy] [Page 141]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Packet length
+ The length of the protocol packet in bytes. This length includes
+ the standard OSPF header.
+
+Router ID
+ The Router ID of the packet's source. In OSPF, the source and
+ destination of a routing protocol packet are the two ends of an
+ (potential) adjacency.
+
+Area ID
+ A 32 bit number identifying the area that this packet belongs 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.
+
+Checksum
+ The standard IP checksum of the entire contents of the packet,
+ 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 E of the specification.
+ Consult Appendix E for a list of the currently defined
+ authentication types.
+
+Authentication
+ A 64-bit field for use by the authentication scheme.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 142]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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, Hellos 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, hello and dead intervals). 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | HelloInt | Options | Rtr Pri |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | DeadInt |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Designated Router |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Backup Designated Router |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Neighbor |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+
+
+
+
+
+
+
+[Moy] [Page 143]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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.
+
+HelloInt
+ 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.
+
+Deadint
+ 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 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 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
+ DeadInt seconds.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 144]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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'
+sequence numbers.
+
+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 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 |
+ +- -+
+ | |
+ +- -+
+ | |
+
+
+
+[Moy] [Page 145]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+
+
+
+
+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 descriptions.
+
+M-bit
+ The More bit. When set to 1, it indicates that more database
+ descriptions 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 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 header. The link state 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 146]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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). It 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).
+
+
+
+[Moy] [Page 147]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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
+
+
+
+[Moy] [Page 148]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 149]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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
+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 |
+ +- -+
+ | |
+ +- -+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+
+
+
+
+[Moy] [Page 150]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Each acknowledged link state advertisement is described by its link
+state header. The link state 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 151]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 152]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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):
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 153]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+
+ 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. 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 header.
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 154]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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 (or
+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.
+
+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.
+
+
+ 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 |E|B| 0 | # links |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Link ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Link Data |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | # TOS | TOS 0 metric |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | TOS | 0 | metric |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | TOS | 0 | metric |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Link ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Link Data |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+[Moy] [Page 155]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ | ... |
+
+
+
+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 to the area.
+
+
+The following fields are used to describe each router link. 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 the 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 other advertisement's
+
+
+
+[Moy] [Page 156]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ 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 ID
+ 2 IP address of Designated Router
+ 3 IP network/subnet number
+ 4 Neighboring router's ID
+
+
+
+
+Link Data
+ Contents again depend on the link's Type field. For connections to
+ stub network, it specifies the network mask. 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.
+
+#metrics
+ 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
+
+
+
+[Moy] [Page 157]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ specified TOS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 158]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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's length field.
+
+
+
+[Moy] [Page 159]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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. 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.
+
+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.
+
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+[Moy] [Page 160]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ | Network Mask |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | TOS | metric |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+
+
+
+Network Mask
+ For Type 3 link state advertisements, this indicates the
+ destination's IP network 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'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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 161]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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. 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.
+
+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.
+
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+
+
+
+[Moy] [Page 162]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Network Mask
+ The IP network 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'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.
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 163]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+B. Architectural Constants
+
+Several OSPF protocol parameters have fixed architectural values. These
+parameters have been referred to in the text by names such as
+LSRefreshTimer. 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. For each link state advertisement that a
+ router originates, an interval timer should be set to this value.
+ Firing of this timer causes a new instance of the link state
+ advertisement to be originated. 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 age reaches MaxAge, it is reflooded. It is then
+ removed from the database as soon as this flood is acknowledged,
+ i.e., as soon as it has been removed from all neighbor Link state
+ retransmission lists. Advertisements having 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.
+
+
+
+
+
+[Moy] [Page 164]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+LSInfinity
+ The link state metric value indicating that the destination is
+ unreachable. It is defined to be the binary value of all ones. It
+ depends on the size of the metric field, which is 16 bits in router
+ links advertisements, and 24 bits in both summary and AS external
+ links advertisements.
+
+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 type 3 summary link advertisements for stub
+ areas. Its value is the IP address 0.0.0.0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 165]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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.
+
+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 traffic. The following items
+must be configured for an area:
+
+
+
+
+
+
+[Moy] [Page 166]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Area ID
+ This is a 32-bit number that identifies the area. The Area ID of 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 [IP address, mask] pairs. Each
+ pair describes a range of IP addresses. 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. Routing information is condensed at area
+ boundaries. External to the area, a single route is advertised for
+ each address range.
+
+ 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 internet mask. A single route would
+ be advertised external to the area, describing the entire subnetted
+ network.
+
+Authentication type
+ Each area can be configured for a separate type of
+ authentication. See Appendix E for a discussion of the
+ defined authentication types.
+
+External routing capability
+ 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.
+
+
+
+
+
+
+
+
+[Moy] [Page 167]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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
+ This denotes the portion of the IP interface address that
+ identifies the attached network. This is often referred to
+ as the subnet mask.
+
+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 for 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
+
+
+
+[Moy] [Page 168]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ 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 hello interval, the
+ faster topological changes will be detected, but more routing
+ traffic will ensue. Sample value for a X.25 PDN network: 30
+ seconds. Sample value for a local area network: 10 seconds.
+
+RouterDeadInterval
+ The number of seconds that a router's Hellos have not been seen
+ before its neighbors declare the router down. This is also
+ advertised in the router's Hello Packets in the DeadInt 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. For
+ example, if the authentication type 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 protocol packets it sends along the
+
+
+
+[Moy] [Page 169]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+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 many 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 DR
+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 to become Designated Router, until the
+ identity of the Designated Router is discovered.
+
+PollInterval
+ If a neighboring router has become inactive (hellos have not been
+ seen for RouterDeadInterval seconds), it may still be necessary to
+ send Hellos to the dead neighbor. These Hellos will be sent at the
+ reduced rate PollInterval, which should be much larger than
+ HelloInterval. Sample value for a PDN X.25 network: 2 minutes.
+
+
+
+
+
+
+[Moy] [Page 170]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+C.6 Host route parameters
+
+Host routes are advertised in network links advertisements as stub
+networks with mask 0xffffffff. They indicate either router interfaces
+to point-to-point networks, looped router interfaces, or IP hosts that
+are directly connected to the router (e.g., via a SLIP line). For each
+host directly connected to the router, the following items must be
+configured:
+
+
+Host IP address
+ The IP address of the host.
+
+Cost of link to host
+ The cost of sending a packet to the host, in terms of the link state
+ metric. There may be multiple costs configured, one for each IP
+ TOS. However, since the host probably has only a single connection
+ to the internet, the actual configured cost(s) in many cases is
+ unimportant (i.e., will have no effect on routing).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 171]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+D. Required Statistics
+
+An OSPF implementation must provide a minimum set of statistics
+indicating the operational state of the protocol. These statistics must
+be accessible to the user; this will probably be accomplished through
+some sort of network management interface.
+
+It is hoped that these statistics will aid in the debugging of the
+implementation, and in the analysis of the protocol's performance.
+
+The statistics can be broken into two broad categories. The first
+consists of what we will call logging messages. These are messages
+produced in real time, with generally a single message produced as the
+result of a single protocol event. Such messages are also commonly
+referred to as traps.
+
+The second category will be referred to as cumulative statistics. These
+are counters whose value have collected over time, such as the count of
+link state retransmissions over the last hour. Also falling into this
+category are dumps of the various routing data structures.
+
+
+D.1 Logging messages
+
+A logging message should be produced on every significant protocol
+event. The major events are listed below. Most of these events
+indicate a topological change in the routing domain. However, some
+number of logging messages can be expected even when the routing domain
+remains intact for long periods of time. For example, link state
+originations will still happen due to the link state refresh timer
+firing.
+
+Any of the messages that refer to link state advertisements should print
+the area associated with the advertisement. There is no area associated
+with AS external link advertisements.
+
+The following list of logging messages indicate topological changes in
+the routing domain:
+
+
+T1 The state of a router interface changes. Interface state changes
+ are documented in Section 9.3. In general, they will cause new link
+ state advertisements to be originated. The logging message produced
+ should include the interface's IP address (or other name), interface
+ type (virtual link, etc.) and old and new state values (as
+ documented in Section 9.1).
+
+
+
+
+
+[Moy] [Page 172]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+T2 The state of a neighbor changes. Neighbor state changes are
+ documented in Section 10.3. The logging message produced should
+ include the neighbor IP address, and old and new state values.
+
+T3 The (Backup) Designated Router has changed on one of the attached
+ networks. See Section 9.4. The logging message produced should
+ include the network IP address, and the old and new (Backup)
+ Designated Routers.
+
+T4 The router is originating a new instance of a link state
+ advertisement. The logging message produced should indicate the LS
+ type, Link State ID and Advertising Router associated with the
+ advertisement (see Section 12.4).
+
+T5 The router has received a new instance of a link state
+ advertisement. The router receives these in Link State Update
+ packets. This will cause recalculation of the routing table. The
+ logging message produced should indicate the advertisement's LS
+ type, Link State ID and Advertising Router. The message should also
+ include the neighbor from whom the advertisement was received.
+
+T6 An entry in the routing table has changed (see Section 11). The
+ logging message produced should indicate the Destination type,
+ Destination ID, and the old and new paths to the destination.
+
+
+The following logging messages may indicate that there is a network
+configuration error:
+
+
+C1 A received OSPF packet is rejected due to errors in its IP/OSPF
+ header. The reasons for rejection are documented in Section 8.2.
+ They include OSPF checksum failure, authentication failure, and
+ inability to match the source with an active OSPF neighbor. The
+ logging message produced should include the IP source and
+ destination addresses, the router ID in the OSPF header, and the
+ reason for the rejection.
+
+C2 An incoming Hello packet is rejected due to mismatches between the
+ Hello's parameters and those configured for the receiving interface
+ (see Section 10.5). This indicates a configuration problem on the
+ attached network. The logging message should include the Hello's
+ source, the receiving interface, and the non-matching parameters.
+
+C3 An incoming Database Description packet, Link State Request Packet,
+ Link State Acknowledgment Packet or Link State Update packet is
+ rejected due to the source neighbor being in the wrong state (see
+ Sections 10.6, 10.7, 13.7 , and 13 respectively). This can be
+
+
+
+[Moy] [Page 173]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ normal when the identity of the network's Designated Router changes,
+ causing momentary disagreements over the validity of adjacencies.
+ The logging message should include the source neighbor, its state,
+ and the packet's type.
+
+C4 A Database Description packet has been retransmitted. This may mean
+ that the value of RxmtInterval that has been configured for the
+ associated interface is too small. The logging message should
+ include the neighbor to whom the packet is being sent.
+
+
+The following messages can be caused by packet transmission errors, or
+software errors in an OSPF implementation:
+
+
+E1 The checksum in a received link state advertisement is incorrect.
+ The advertisement is discarded (see Section 13). The logging
+ message should include the advertisement's LS type, Link State ID
+ and Advertising Router (which may be incorrect). The message should
+ also include the neighbor from whom the advertisement was received.
+
+E2 During the aging process, it is discovered that one of the link
+ state advertisements in the database has an incorrect checksum.
+ This indicates memory corruption or a software error in the router
+ itself. The router should be dumped and restarted.
+
+
+The following messages are an indication that a router has restarted,
+losing track of its previous LS sequence number. Should these messages
+continue, it may indicate the presence of duplicate Router IDs:
+
+
+R1 Two link state advertisements have been seen, whose LS type, Link
+ State ID, Advertising Router and LS sequence number are the same,
+ yet with differing LS checksums. These are considered to be
+ different instances of the same advertisement. The instance with
+ the larger checksum is accepted as more recent (see Section 12.1.7,
+ 13.1). The logging message should include the LS type, Link State
+ ID, Advertising Router, LS sequence number and the two differing
+ checksums.
+
+R2 Two link state advertisements have been seen, whose LS type, Link
+ State ID, Advertising Router, LS sequence number and LS checksum are
+ the same, yet can be distinguished by their LS age fields. This
+ means that one of the advertisement's LS age is MaxAge, or the two
+ LS age fields differ by more than MaxAgeDiff. The logging message
+ should include the LS type, Link State ID, Advertising Router, LS
+ sequence number and the two differing ages.
+
+
+
+[Moy] [Page 174]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+R3 The router has received an instance of one of its self-originated
+ advertisements, that is considered to be more recent. This forces
+ the router to originate a new advertisement (see Section 13.4). The
+ logging message should include the advertisement's LS type, Link
+ State ID, and Advertising Router along with the neighbor from whom
+ the advertisement was received.
+
+R4 An acknowledgment has been received for an instance of an
+ advertisement that is not currently contained in the router's
+ database (see Section 13.7). The logging message should detail the
+ instance being acknowledged and the database copy (if any), along
+ with the neighbor from whom the acknowledgment was received.
+
+R5 An advertisement has been received through the flooding procedure
+ that is LESS recent the the router's current database copy (see
+ Section 13). The logging message should include the received
+ advertisement's LS type, Link State ID, Advertising Router, LS
+ sequence number, LS age and LS checksum. Also, the message should
+ display the neighbor from whom the advertisement was received.
+
+
+The following messages are indication of normal, yet infrequent protocol
+events. These messages will help in the interpretation of some of the
+above messages:
+
+
+N1 The Link state refresh timer has fired for one of the router's
+ self-originated advertisements (see Section 12.4). A new instance
+ of the advertisement must be originated. The message should include
+ the advertisement's LS type, Link State ID and Advertising Router.
+
+N2 One of the advertisements in the router's link state database has
+ aged to MaxAge (see Section 14). At this point, the advertisement
+ is no longer included in the routing table calculation, and is
+ reflooded. The message should list the advertisement's LS type,
+ Link State ID and Advertising Router.
+
+N3 An advertisement of age MaxAge has been flushed from the router's
+ database. This occurs after the advertisement has been acknowledged
+ by all adjacent neighbors. The message should list the
+ advertisement's LS type, Link State ID and Advertising Router.
+
+
+D.2 Cumulative statistics
+
+These statistics display collections of the routing data structures.
+They should be able to be obtained interactively, through some kind of
+network management facility.
+
+
+
+[Moy] [Page 175]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+All the following statistics displays, with the exception of the area
+list, routing table and the AS external links, are specific to a single
+area. As noted in Section 4, most OSPF protocol mechanisms work on each
+area separately.
+
+The following statistics displays should be available:
+
+
+(1) A list of all the areas attached to the router, along with the
+ authentication type to use for the area, the number of router
+ interfaces attaching to the area, and the total number of nets and
+ routers belonging to the area.
+
+ For example, consider the router RT3 pictured in Figure 15. It has
+ interfaces to two separate areas, Area 1 and the backbone (Area 0).
+ Table 20 then indicates that the backbone is using a simple password
+ for authentication, and that Area 1 is not using any authentication.
+ The number of nets includes IP networks, subnets, and hosts (this is
+ the reason for 2 backbone nets -- they are the host routes
+ corresponding to the serial line between backbone routers RT6 and
+ RT10).
+
+
+
+ Area ID # ifcs AuType # nets # routers
+ ______________________________________________
+ 0 1 1 2 7
+ 1 2 0 4 4
+
+
+ Table 20: Sample OSPF area display.
+
+
+
+(2) A list of all the router's interfaces to an area, along with their
+ addresses, output cost, current state, the (Backup) Designated
+ Router for the attached network, and the number of neighbors
+ currently associated with the interface. Some number of these
+ neighbors will have become adjacent, the number of these is noted in
+ the display also.
+
+ Again consider router RT3 in Figure 15. Table 21 below indicates
+ that RT4 has been selected as Designated Router for network N3, and
+ router RT1 has been selected as Backup. Adjacencies have been
+ established to both of these routers. There are no routers besides
+ RT3 attached to network N4, so it becomes DR, yet still advertises
+ the network as a stub in its router links advertisements.
+
+
+
+
+[Moy] [Page 176]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+
+ Ifc IP address state cost DR Backup # nbrs # adjs
+ __________________________________________________________________________
+ 192.1.1.3 DR other 1 192.1.1.4 192.1.1.1 3 2
+ 192.1.4.3 DR 2 192.1.4.3 none 0 0
+
+
+ Table 21: Sample OSPF interface display.
+
+
+
+(3) The list of neighbors associated with a particular interface. Each
+ neighbor's IP address, router ID, state, and the length of the three
+ link state advertisement queues (see Section 10) to the neighbor is
+ displayed.
+
+ Suppose router RT4 is the Designated Router for network N3, and
+ router RT1 is the Backup Designated router. Suppose also that the
+ adjacency between router RT3 and RT1 has not yet fully formed. The
+ display of router RT3's neighbors (associated with its interface to
+ network N3) may then look like Table 22. The display indicates that
+ RT3 and RT1 are still in the database exchange procedure, Router RT3
+ has more Database Description packets to send to RT1, and RT1 has at
+ least one link state advertisement that RT3 doesn't. Also, there is
+ a single link state advertisement that has been flooded, but not
+ acknowledged, to each neighbor that participates in the flooding
+ procedure (state >= Exchng). (In the following examples we assume
+ that a router's Router ID is assigned to be its smallest IP
+ interface address).
+
+
+
+ Nbr IP address Router ID state LS rxmt len DB summ len LS req len
+ ____________________________________________________________________________
+ 192.1.1.1 192.1.1.1 Exchng 1 10 1
+ 192.1.1.2 192.1.1.2 2-Way 0 0 0
+ 192.1.1.4 192.1.1.4 Full 1 0 0
+
+
+ Table 22: Sample OSPF neighbor display.
+
+
+
+(4) A list of the area's link state database. This is the same in all
+ of the routers attached to the area. It is composed of that area's
+ router links, network links, and summary links advertisements.
+ Also, the AS external link advertisements are a part of all the
+ areas' databases.
+
+
+
+[Moy] [Page 177]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+ The link state database for Area 1 in Figure 15 might look like
+ Table 23 (compare this with Figure 7). Assume the the Designated
+ Router for network N3 is router RT4, as above. Both routers RT3 and
+ RT4 are originating summary link advertisements into Area 1, since
+ they are area border routers. Routers RT5 and RT7 are AS external
+ routers. Their location must be described in summary links
+ advertisements. Also, their AS external link advertisements are
+ flooded throughout the entire AS.
+
+ Router RT3 can locate its self-originated advertisements by looking
+ for its own router ID (192.1.1.3) in advertisements' Advertising
+ Router fields.
+
+ The LS sequence number, LS age, and LS checksum fields indicate the
+ advertisement's instance. Their values are stored in the
+ advertisement's link state header; we have not bothered to make up
+ values for the example.
+
+
+LS type Link State ID Advertising Router LS seq no LS age LS checksum
+_______________________________________________________________________________
+1 192.1.1.1 192.1.1.1 * * *
+1 192.1.1.2 192.1.1.2 * * *
+1 192.1.1.3 192.1.1.3 * * *
+1 192.1.1.4 192.1.1.4 * * *
+_______________________________________________________________________________
+2 192.1.1.4 192.1.1.4 * * *
+_______________________________________________________________________________
+3 Ia,Ib 192.1.1.3 * * *
+3 N6 192.1.1.3 * * *
+3 N7 192.1.1.3 * * *
+3 N8 192.1.1.3 * * *
+3 N9-N11,H1 192.1.1.3 * * *
+3 Ia,Ib 192.1.1.4 * * *
+3 N6 192.1.1.4 * * *
+3 N7 192.1.1.4 * * *
+3 N8 192.1.1.4 * * *
+3 N9-N11,H1 192.1.1.4 * * *
+4 RT5 192.1.1.3 * * *
+4 RT7 192.1.1.3 * * *
+4 RT5 192.1.1.4 * * *
+4 RT7 192.1.1.4 * * *
+_______________________________________________________________________________
+4 N12 RT5's ID * * *
+4 N13 RT5's ID * * *
+4 N14 RT5's ID * * *
+4 N12 RT7's ID * * *
+
+
+
+
+[Moy] [Page 178]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+LS type Link State ID Advertising Router LS seq no LS age LS checksum
+_______________________________________________________________________________
+4 N15 RT7's ID * * *
+
+
+ Table 23: Sample OSPF link state database display.
+
+
+(5) The contents of any particular link state advertisement. For
+ example, a listing of the router links advertisement for Area 1,
+ with LS type = 1 and Link State ID = 192.1.1.3 is shown in Section
+ 12.4.1.
+
+(6) A listing of the entire routing table. Several examples are shown
+ in Section 11. The routing table is calculated from the combined
+ databases of each attached area (see Section 16). It may be
+ desirable to sort the routing table by Type of Service, or by
+ destination, or a combination of the two.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 179]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+E. Authentication
+
+All OSPF protocol exchanges are authenticated. The OSPF packet header
+(see Section A.3.1) includes an authentication type field, and 64-bits
+of data for use by the appropriate authentication scheme (determined by
+the type field).
+
+The authentication type is configurable on a per-area basis. Additional
+authentication data is configurable on a per-interface basis. For
+example, if an area uses a simple password scheme for authentication, a
+separate password may be configured for each network contained in the
+area.
+
+Authentication types 0 and 1 are defined by this specification. All
+other authentication types are reserved for definition by the IANA
+(iana@ISI.EDU). The current list of authentication types is described
+below in Table 24.
+
+
+
+ AuType Description
+ _______________________________________________________________
+ 0 No authentication
+ 1 Simple password
+ All others Reserved for assignment by the IANA (iana@ISI.EDU)
+
+
+ Table 24: OSPF authentication types.
+
+
+
+E.1 Autype 0 -- No authentication
+
+Use of this authentication type means that routing exchanges in the area
+are not authenticated. The 64-bit field in the OSPF header can contain
+anything; it is not examined on packet reception.
+
+
+E.2 Autype 1 -- Simple password
+
+Using this authentication type, a 64-bit field is configured on a per-
+network basis. All packets sent on a particular network must have this
+configured value in their OSPF header 64-bit authentication field. This
+essentially serves as a "clear" 64-bit password.
+
+This guards against routers inadvertently coming up in the area. They
+must first be configured with their attached networks' passwords before
+they can join the routing domain.
+
+
+
+[Moy] [Page 180]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+F. Version 1 differences
+
+This section documents the changes between OSPF version 1 and OSPF
+version 2. The impetus for these changes derives from comments received
+on RFC 1131 and recent field experience with the OSPF protocol.
+Unfortunately, the changes are not backward-compatible. For that
+reason, OSPF version 1 will not interoperate with OSPF version 2.
+However, the changes are small in scope and should not greatly affect
+any existing implementations. In addition, some of the proposed changes
+should enable future protocol additions to be made in a backward-
+compatible manner (see Section F.4).
+
+
+F.1 Protocol Enhancements
+
+The following enhancements were made to the OSPF protocol.
+
+
+F.1.1 Stub area support
+
+In many Autonomous Systems, the majority of the OSPF link state database
+consists of AS external advertisements. In these Autonomous Systems,
+some OSPF areas may be organized in such a way that external
+advertisements can be safely ignored, enabling a reduction of the area's
+database size. This applies to OSPF areas where there is only a single
+exit/entry that is used by all externally addressed packets, or to cases
+where some sub-optimality of external routing is acceptable.
+
+Therefore, an OSPF area configuration option has been added (see
+Sections 3.6 and C.2) allowing the import of external advertisements to
+be disabled for an area. When this option is enabled, no AS external
+advertisements will be flooded into the area (Sections 13, 13.3 and
+10.3). Instead, within the area all data traffic to external
+destinations will follow a (per-area) default route. These areas are
+called "stub" areas.
+
+To implement this, all area border routers attached to stub areas will
+originate a default summary link advertisement for the area (Section
+12.4.3). This will direct all internal routers to an area border router
+when forwarding externally addressed packets. In addition, to ensure
+that stub areas are configured consistently, an Options field has been
+added to OSPF Hello packets (Sections A.2 and A.3.2). A bit is reset in
+the Options field indicating that the attached area is a stub area
+(Section 9.5). A router will not accept a neighbor's hellos unless they
+both agree on the area's ability to process AS external advertisements
+(Section 10.5). In this way, a system administrator will be able to
+discover incorrectly configured routers, and data traffic will be routed
+around them (in order to avoid potential looping situations) until their
+
+
+
+[Moy] [Page 181]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+configuration can be repaired.
+
+
+F.1.2 Optional TOS support
+
+In OSPF there is conceptually a separate routing table for each TOS; the
+calculations detailed in steps 1-5 of Section 16 must be done separately
+for each TOS. (Note however that link and summary costs need not be
+specified separately for each TOS; costs for unspecified TOS values
+default to the cost of TOS 0).
+
+In version 1 of the OSPF specification, all OSPF routers were required
+to route based on TOS. However, producing a separate routing table for
+each TOS may prove costly, both in terms of memory and processor
+resources. For this reason, version 2 allows the system administrator
+to configure routers to calculate/use only a single routing table (the
+TOS 0 table). When this is done, some traffic may take non-optimal
+routes. But all packets will still be delivered, and routing will
+remain loop free (see Section 2.4).
+
+In order to avoid routing loops, a router (router X) using a single
+table must communicate this information to its peers. This is done by
+resetting the new TOS-capable bit in the router X's router links
+advertisement (Section 12.4.1). Then, when its peers perform the
+Dijkstra calculation (Section 16.1) for non-zero TOS values, they will
+omit router X from the calculation. In effect, an attempt will be made
+to bypass router X when forwarding non-zero TOS traffic. Summary link
+and AS external link advertisements can also indicate their non-
+availability for non-zero TOS traffic (Sections 12.4.3 and 12.4.4).
+
+The result may be that no route can be found for some non-zero value of
+TOS. When this happens, the packet is routed along the TOS 0 route
+instead (Section 11.1).
+
+It is still mandatory for all OSPF implementations to be able to
+construct separate routing tables for each TOS value, if desired by the
+system administrator.
+
+
+F.1.3 Preventing external extra-hops
+
+In some cases, version 1 of the OSPF specification will introduce
+extra-hops when calculating routes to external destinations. This is
+because it is implicit in the format of AS external advertisements that
+packets should be forwarded through the advertising router. However,
+consider the situation where multiple OSPF routers share a LAN with an
+external router (call it router Y) , and only one OSPF router (call it
+router X) exchanges routing information with Y. The OSPF routers on the
+
+
+
+[Moy] [Page 182]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+LAN other than X will forward packets destined for Y and beyond through
+X, generating an extra hop (see Section 2.2).
+
+To fix this, a new field has been added to AS external advertisements.
+This field (called the forwarding address) will indicate the router
+address to which packets should be forwarded (Section 12.4.4). In the
+above example, router X will put Y's IP address into this field. If the
+field is 0, packets are (as before) forwarded to the originator of the
+advertisement. A different forwarding address can be specified for each
+TOS value.
+
+Whenever possible, this new field should be set to 0. This is because
+setting it to an actual router address incurs additional cost during the
+routing table build process (Section 16.4).
+
+Besides preventing extra-hops, there are two other applications for this
+field. The first is for use by "route servers". Using the forwarding
+address, a router in the middle of the Autonomous System can gather
+external routing information and originate AS external advertisements
+that specify the correct exit route to use for each external destination
+(Section 2.2).
+
+The other application possibly enables the reduction of the number of AS
+external advertisements that need be imported. Suppose in the example
+at the beginning of this section that there are two routers (X and Z)
+exchanging EGP information with the non-OSPF router Y. It is then
+likely that both X and Z will originate the same set of external routes.
+Two AS external advertisements that specify the same (non-zero)
+forwarding address, destination and cost are obviously functionally
+equivalent, regardless of their originators (advertising routers). The
+OSPF specification dictates that the advertisement originated by the
+router with the largest Router ID will always be used. This allows the
+other router to flush its equivalent advertisement (Section 12.4.4).
+
+
+F.2 Corrected problems
+
+The following problems in OSPF version 1 have been corrected in version
+2.
+
+
+F.2.1 LS sequence number space changes
+
+The LS sequence number space has been changed from version 1's lollipop
+shape to a linear sequence space (Section 12.1.6). Sequence numbers
+will now be compared as signed 32-bit integers. Link state
+advertisements having larger sequence numbers will be considered more
+recent. The sequence number space will still begin at (-N+1) (where N =
+
+
+
+[Moy] [Page 183]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+2**31). The value of -N remains reserved. The LS sequence number of
+successive instances of an advertisement will continue to be incremented
+until it reaches the maximum possible value: N-1. At this point, when a
+new instance of the advertisement must be originated (due either to
+topological change of the expiration of the LS refresh timer) the
+current instance must first be "prematurely aged".
+
+There will be a new section discussing premature aging (Section 14.1).
+This is a method for flushing a link state advertisement from the
+routing domain: the advertisement's age is set to MaxAge and
+advertisement is reflooded just as if it were a newly received
+advertisement. As soon as the new flooding is acknowledged by all of
+the router's adjacent neighbors, the advertisement is flushed from the
+database.
+
+Premature aging can also be used when, for example, a previously
+advertised external route is no longer reachable. In this circumstance,
+premature aging is preferable to the alternative, which is to originate
+a new advertisement for the destination specifying a metric of
+LSInfinity.
+
+A router may only prematurely age its own (self-originated) link state
+advertisements. These are the link state advertisements having the
+router's own OSPF router ID in the Advertising Router field.
+
+
+F.2.2 Flooding of unexpected MaxAge advertisements
+
+Version 1 of the OSPF omitted the handling of a special case in the
+flooding procedure: the reception of a MaxAge advertisement that has no
+database instance. A paragraph has been added to Section 13 to deal
+with this occurrence. Without this paragraph, retransmissions of MaxAge
+advertisements could possibly delay their being flushed from the routing
+domain.
+
+
+F.2.3 Virtual links and address ranges
+
+When summarizing information into a virtual link's transit area, version
+2 of the OSPF specification prohibits the collapsing of multiple
+backbone IP networks/subnets into a single summary link. This
+restriction has been added to deal with certain anomalous OSPF area
+configurations. See Sections 15 and 12.4.3 for more information.
+
+
+
+
+
+
+
+
+[Moy] [Page 184]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+F.2.4 Routing table lookup explained
+
+When forwarding an IP data packet, a router looks up the packet's IP
+destination in the routing table. This determines the packet's next
+hop. A new section (Section 11.1) has been added describing the routing
+table lookup (instead of just specifying a "best match"). This section
+clarifies OSPF's four level routing hierarchy (i.e., intra-area, inter-
+area, external type 1 and external type 2 routes). It also specifies
+the effect of TOS on routing.
+
+
+F.2.5 Sending Link State Request packets
+
+OSPF Version 2 eases the restrictions on the sending of Link State
+Request packets. Link State Request packets can now be sent to a
+neighboring router before a complete set of Database Description packets
+have been exchanged. This enables a more efficient use of a router's
+memory resources; an OSPF version 2 implementation may limit the size of
+the neighbor Link state request lists. See Sections 10.9, 10.7 and 10.3
+for more details.
+
+
+F.2.6 Changes to the Database description process
+
+The specification has been modified to ensure that, when two routers are
+synchronizing their databases during the Database Description process,
+none of the component link state advertisements can have their sequence
+numbers decrease. A link state advertisement's sequence number
+decreases when it is flushed from the routing domain via premature-
+aging, and then reoriginated with the smallest sequence number
+0x80000001 (see Section 14.1). So the specification now dictates that
+an advertisement cannot be flushed from a router's database until both
+a) it no longer appears on any neighbor Link State Retransmission lists
+and b) none of the router's neighbors are in states Exchange or Loading.
+See Sections 13 (step 4c) and 14.1 for more details.
+
+In addition, a new step has been added to the flooding procedure
+(Section 13) in order to make the Database Description process more
+robust. This step detects when a neighbor lists one instance of an
+advertisement in its Database Description packets, but responds to Link
+State Request packets by sending another (earlier) instance. This
+behavior now causes the event BadLSReq to be generated, which restarts
+the Database Description process with the neighbor. In OSPF version 1,
+the neighbor event BadLSReq erroneously did not restart the Database
+Description process.
+
+
+
+
+
+
+[Moy] [Page 185]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+F.2.7 Receiving OSPF Hello packets
+
+The section detailing the receive processing of OSPF Hello packets
+(Section 10.5) has been modified to include the generation of the
+neighbor Backup Seen event. In addition, the section detailing the
+Designated Router election algorithm (Section 9.4) has been modified to
+include the algorithm's initial state.
+
+
+F.2.8 Network mask defined for default route
+
+The network mask for the default route, when it appears as the
+destination in either an AS external link advertisement or in a summary
+link advertisement, has been set to 0.0.0.0. See Sections A.4.4 and
+A.4.5 for more details.
+
+
+F.2.9 Rate limit imposed on flooding
+
+When an advertisement is installed in the link state database, it is
+timestamped. The flooding procedure is then not allowed to install a
+new instance of the advertisement until MinLSInterval seconds have
+elapsed. This enforces a rate limit on the flooding procedure; a new
+instance can be flooded only once every MinLSInterval seconds. This
+guards against routers that disregard the limit on self-originated
+advertisements (already present in OSPF version 1) of one origination
+every MinLSInterval seconds. For more information, see Section 13.
+
+
+F.3 Packet format changes
+
+The following changes have been made to the format of OSPF packets and
+link state advertisements. Some of these changes were required to
+support the added functionality listed above. Other changes were made
+to further simplify the parsing of OSPF packets.
+
+
+F.3.1 Adding a Capability bitfield
+
+To support the new "stub area" and "optional TOS" features, a bitfield
+listing protocol capabilities has been added to the Hello packet,
+Database Description packet and all link state advertisements. When
+used in Hello packets, this allows a router to reject a neighbor because
+of a capability mismatch. Alternatively, when capabilities are
+exchanged in Database Description packets a router can choose not to
+forward certain link state advertisements to a neighbor because of its
+reduced functionality. Lastly, listing capabilities in link state
+advertisements allows routers to route traffic around reduced
+
+
+
+[Moy] [Page 186]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+functionality router, by excluding them from parts of the routing table
+calculation. See Section A.2 for more details.
+
+
+F.3.2 Packet simplification
+
+To simplify the format of Database Description packets and Link State
+Acknowledgment packets, their description of link state advertisements
+has been modified. Each advertisement is now be described by its 20-
+byte link state header (see Section A.4). This does not consume any
+additional space in the packets. The one additional piece of
+information that will be present is the LS length. However, this field
+need not be used when processing the Database Description and Link State
+Acknowledgment packets.
+
+
+F.3.3 Adding forwarding addresses to AS external advertisements
+
+As discussed in Section F.1.3, a forwarding address field has been added
+to the AS external advertisement.
+
+
+F.3.4 Labelling of virtual links
+
+Virtual links will be labelled as such in router links advertisements.
+This separates virtual links from unnumbered point-to-point links,
+allowing all backbone routers to discover whether any virtual links are
+in use. See Section 12.4.1 for more details.
+
+
+F.3.5 TOS costs ordered
+
+When a link state advertisement specifies a separate cost depending on
+TOS, these costs must be ordered by increasing TOS value. For example,
+the cost for TOS 16 must always follow the cost for TOS 8.
+
+
+F.3.6 OSPF's TOS encoding redefined
+
+The way that OSPF encodes TOS in its link state advertisements has been
+redefined in version 2. OSPF's encoding of the Delay (D), Throughput (T)
+and Reliability (R) TOS flags defined by [RFC 791] is described in
+Section 12.3.
+
+
+
+
+
+
+
+
+[Moy] [Page 187]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+F.4 Backward-compatibility provisions
+
+Additional functionality will probably be added to OSPF in the future.
+One example of this is a multicast routing capability, which is
+currently under development. In order to be able to add such features
+in a backward-compatible manner, the following provisions have been made
+in the OSPF specification.
+
+New capabilities will probably involve the introduction of new link
+state advertisements. If a router receives a link state advertisement
+of unknown type during the flooding procedure, the advertisement is
+simply ignored (Section 13. The router should not attempt to further
+flood the advertisement, nor acknowledge it. The advertisement should
+not be installed into the link state database. If the router receives
+an advertisement of unknown type during the Database Description
+process, this is an error (see Sections 10.6 and 10.3). The Database
+Description process is then restarted.
+
+There is also an Options field in both the Hello packets, Database
+Description packets and the link state advertisement headers.
+Unrecognized capabilities found in these places should be ignored, and
+should not affect the normal processing of protocol packets/link state
+advertisements (see Sections 10.5 and 10.6). Routers will originate
+their Hello packets, Database Description packets and link state
+advertisements with unrecognized capabilities set to 0 (see Sections
+9.5, 10.8 and 12.1.2).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 188]
+
+RFC 1247 OSPF Version 2 July 1991
+
+
+Security Considerations
+
+All OSPF protocol exchanges are authenticated. This is accomplished
+through authentication fields contained in the OSPF packet header. For
+more information, see Sections 8.1, 8.2, and Appendix E.
+
+
+Author's Address
+
+John Moy
+Proteon, Inc.
+2 Technology Drive
+Westborough, MA 01581
+
+Phone: (508) 898-2800
+EMail: jmoy@proteon.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Moy] [Page 189]
+