home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc1583 < prev    next >
Text File  |  1994-03-20  |  524KB  |  12,098 lines

  1.  
  2.  
  3.  
  4.  
  5. Network Working Group                                             J. Moy
  6. Request for Comments: 1583                                 Proteon, Inc.
  7. Obsoletes: 1247                                               March 1994
  8. Category: Standards Track
  9.  
  10.  
  11.                              OSPF Version 2
  12.  
  13.  
  14.  
  15. Status of this Memo
  16.  
  17.     This document specifies an Internet standards track protocol for the
  18.     Internet community, and requests discussion and suggestions for
  19.     improvements.  Please refer to the current edition of the "Internet
  20.     Official Protocol Standards" (STD 1) for the standardization state
  21.     and status of this protocol.  Distribution of this memo is
  22.     unlimited.
  23.  
  24. Abstract
  25.  
  26.     This memo documents version 2 of the OSPF protocol.  OSPF is a
  27.     link-state routing protocol.  It is designed to be run internal to a
  28.     single Autonomous System.  Each OSPF router maintains an identical
  29.     database describing the Autonomous System's topology.  From this
  30.     database, a routing table is calculated by constructing a shortest-
  31.     path tree.
  32.  
  33.     OSPF recalculates routes quickly in the face of topological changes,
  34.     utilizing a minimum of routing protocol traffic.  OSPF provides
  35.     support for equal-cost multipath.  Separate routes can be calculated
  36.     for each IP Type of Service.  An area routing capability is
  37.     provided, enabling an additional level of routing protection and a
  38.     reduction in routing protocol traffic.  In addition, all OSPF
  39.     routing protocol exchanges are authenticated.
  40.  
  41.     OSPF Version 2 was originally documented in RFC 1247. The
  42.     differences between RFC 1247 and this memo are explained in Appendix
  43.     E. The differences consist of bug fixes and clarifications, and are
  44.     backward-compatible in nature. Implementations of RFC 1247 and of
  45.     this memo will interoperate.
  46.  
  47.     Please send comments to ospf@gated.cornell.edu.
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. Moy                                                             [Page 1]
  57.  
  58. RFC 1583                     OSPF Version 2                   March 1994
  59.  
  60.  
  61. Table of Contents
  62.  
  63.     1       Introduction ........................................... 5
  64.     1.1     Protocol Overview ...................................... 5
  65.     1.2     Definitions of commonly used terms ..................... 6
  66.     1.3     Brief history of link-state routing technology ......... 9
  67.     1.4     Organization of this document .......................... 9
  68.     2       The Topological Database .............................. 10
  69.     2.1     The shortest-path tree ................................ 13
  70.     2.2     Use of external routing information ................... 16
  71.     2.3     Equal-cost multipath .................................. 20
  72.     2.4     TOS-based routing ..................................... 20
  73.     3       Splitting the AS into Areas ........................... 21
  74.     3.1     The backbone of the Autonomous System ................. 22
  75.     3.2     Inter-area routing .................................... 22
  76.     3.3     Classification of routers ............................. 23
  77.     3.4     A sample area configuration ........................... 24
  78.     3.5     IP subnetting support ................................. 30
  79.     3.6     Supporting stub areas ................................. 31
  80.     3.7     Partitions of areas ................................... 32
  81.     4       Functional Summary .................................... 34
  82.     4.1     Inter-area routing .................................... 35
  83.     4.2     AS external routes .................................... 35
  84.     4.3     Routing protocol packets .............................. 35
  85.     4.4     Basic implementation requirements ..................... 38
  86.     4.5     Optional OSPF capabilities ............................ 39
  87.     5       Protocol data structures .............................. 41
  88.     6       The Area Data Structure ............................... 42
  89.     7       Bringing Up Adjacencies ............................... 45
  90.     7.1     The Hello Protocol .................................... 45
  91.     7.2     The Synchronization of Databases ...................... 46
  92.     7.3     The Designated Router ................................. 47
  93.     7.4     The Backup Designated Router .......................... 48
  94.     7.5     The graph of adjacencies .............................. 49
  95.     8       Protocol Packet Processing ............................ 50
  96.     8.1     Sending protocol packets .............................. 51
  97.     8.2     Receiving protocol packets ............................ 53
  98.     9       The Interface Data Structure .......................... 55
  99.     9.1     Interface states ...................................... 58
  100.     9.2     Events causing interface state changes ................ 61
  101.     9.3     The Interface state machine ........................... 62
  102.     9.4     Electing the Designated Router ........................ 65
  103.     9.5     Sending Hello packets ................................. 67
  104.     9.5.1   Sending Hello packets on non-broadcast networks ....... 68
  105.     10      The Neighbor Data Structure ........................... 69
  106.     10.1    Neighbor states ....................................... 72
  107.     10.2    Events causing neighbor state changes ................. 75
  108.     10.3    The Neighbor state machine ............................ 77
  109.  
  110.  
  111.  
  112. Moy                                                             [Page 2]
  113.  
  114. RFC 1583                     OSPF Version 2                   March 1994
  115.  
  116.  
  117.     10.4    Whether to become adjacent ............................ 83
  118.     10.5    Receiving Hello Packets ............................... 83
  119.     10.6    Receiving Database Description Packets ................ 86
  120.     10.7    Receiving Link State Request Packets .................. 89
  121.     10.8    Sending Database Description Packets .................. 89
  122.     10.9    Sending Link State Request Packets .................... 90
  123.     10.10   An Example ............................................ 91
  124.     11      The Routing Table Structure ........................... 93
  125.     11.1    Routing table lookup .................................. 96
  126.     11.2    Sample routing table, without areas ................... 97
  127.     11.3    Sample routing table, with areas ...................... 98
  128.     12      Link State Advertisements ............................ 100
  129.     12.1    The Link State Advertisement Header .................. 101
  130.     12.1.1  LS age ............................................... 102
  131.     12.1.2  Options .............................................. 102
  132.     12.1.3  LS type .............................................. 103
  133.     12.1.4  Link State ID ........................................ 103
  134.     12.1.5  Advertising Router ................................... 105
  135.     12.1.6  LS sequence number ................................... 105
  136.     12.1.7  LS checksum .......................................... 106
  137.     12.2    The link state database .............................. 107
  138.     12.3    Representation of TOS ................................ 108
  139.     12.4    Originating link state advertisements ................ 109
  140.     12.4.1  Router links ......................................... 112
  141.     12.4.2  Network links ........................................ 118
  142.     12.4.3  Summary links ........................................ 120
  143.     12.4.4  Originating summary links into stub areas ............ 123
  144.     12.4.5  AS external links .................................... 124
  145.     13      The Flooding Procedure ............................... 126
  146.     13.1    Determining which link state is newer ................ 130
  147.     13.2    Installing link state advertisements in the database . 130
  148.     13.3    Next step in the flooding procedure .................. 131
  149.     13.4    Receiving self-originated link state ................. 134
  150.     13.5    Sending Link State Acknowledgment packets ............ 135
  151.     13.6    Retransmitting link state advertisements ............. 136
  152.     13.7    Receiving link state acknowledgments ................. 138
  153.     14      Aging The Link State Database ........................ 139
  154.     14.1    Premature aging of advertisements .................... 139
  155.     15      Virtual Links ........................................ 140
  156.     16      Calculation Of The Routing Table ..................... 142
  157.     16.1    Calculating the shortest-path tree for an area ....... 143
  158.     16.1.1  The next hop calculation ............................. 149
  159.     16.2    Calculating the inter-area routes .................... 150
  160.     16.3    Examining transit areas' summary links ............... 152
  161.     16.4    Calculating AS external routes ....................... 154
  162.     16.5    Incremental updates -- summary link advertisements ... 156
  163.     16.6    Incremental updates -- AS external link advertisements 157
  164.     16.7    Events generated as a result of routing table changes  157
  165.  
  166.  
  167.  
  168. Moy                                                             [Page 3]
  169.  
  170. RFC 1583                     OSPF Version 2                   March 1994
  171.  
  172.  
  173.     16.8    Equal-cost multipath ................................. 158
  174.     16.9    Building the non-zero-TOS portion of the routing table 158
  175.             Footnotes ............................................ 161
  176.             References ........................................... 164
  177.     A       OSPF data formats .................................... 166
  178.     A.1     Encapsulation of OSPF packets ........................ 166
  179.     A.2     The Options field .................................... 168
  180.     A.3     OSPF Packet Formats .................................. 170
  181.     A.3.1   The OSPF packet header ............................... 171
  182.     A.3.2   The Hello packet ..................................... 173
  183.     A.3.3   The Database Description packet ...................... 175
  184.     A.3.4   The Link State Request packet ........................ 177
  185.     A.3.5   The Link State Update packet ......................... 179
  186.     A.3.6   The Link State Acknowledgment packet ................. 181
  187.     A.4     Link state advertisement formats ..................... 183
  188.     A.4.1   The Link State Advertisement header .................. 184
  189.     A.4.2   Router links advertisements .......................... 186
  190.     A.4.3   Network links advertisements ......................... 190
  191.     A.4.4   Summary link advertisements .......................... 192
  192.     A.4.5   AS external link advertisements ...................... 194
  193.     B       Architectural Constants .............................. 196
  194.     C       Configurable Constants ............................... 198
  195.     C.1     Global parameters .................................... 198
  196.     C.2     Area parameters ...................................... 198
  197.     C.3     Router interface parameters .......................... 200
  198.     C.4     Virtual link parameters .............................. 202
  199.     C.5     Non-broadcast, multi-access network parameters ....... 203
  200.     C.6     Host route parameters ................................ 203
  201.     D       Authentication ....................................... 205
  202.     D.1     AuType 0 -- No authentication ........................ 205
  203.     D.2     AuType 1 -- Simple password .......................... 205
  204.     E       Differences from RFC 1247 ............................ 207
  205.     E.1     A fix for a problem with OSPF Virtual links .......... 207
  206.     E.2     Supporting supernetting and subnet 0 ................. 208
  207.     E.3     Obsoleting LSInfinity in router links advertisements . 209
  208.     E.4     TOS encoding updated ................................. 209
  209.     E.5     Summarizing routes into transit areas ................ 210
  210.     E.6     Summarizing routes into stub areas ................... 210
  211.     E.7     Flushing anomalous network links advertisements ...... 210
  212.     E.8     Required Statistics appendix deleted ................. 211
  213.     E.9     Other changes ........................................ 211
  214.     F.      An algorithm for assigning Link State IDs ............ 213
  215.             Security Considerations .............................. 216
  216.             Author's Address ..................................... 216
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224. Moy                                                             [Page 4]
  225.  
  226. RFC 1583                     OSPF Version 2                   March 1994
  227.  
  228.  
  229. 1.  Introduction
  230.  
  231.     This document is a specification of the Open Shortest Path First
  232.     (OSPF) TCP/IP internet routing protocol.  OSPF is classified as an
  233.     Interior Gateway Protocol (IGP).  This means that it distributes
  234.     routing information between routers belonging to a single Autonomous
  235.     System.  The OSPF protocol is based on link-state or SPF technology.
  236.     This is a departure from the Bellman-Ford base used by traditional
  237.     TCP/IP internet routing protocols.
  238.  
  239.     The OSPF protocol was developed by the OSPF working group of the
  240.     Internet Engineering Task Force.  It has been designed expressly for
  241.     the TCP/IP internet environment, including explicit support for IP
  242.     subnetting, TOS-based routing and the tagging of externally-derived
  243.     routing information.  OSPF also provides for the authentication of
  244.     routing updates, and utilizes IP multicast when sending/receiving
  245.     the updates.  In addition, much work has been done to produce a
  246.     protocol that responds quickly to topology changes, yet involves
  247.     small amounts of routing protocol traffic.
  248.  
  249.     The author would like to thank Fred Baker, Jeffrey Burgan, Rob
  250.     Coltun, Dino Farinacci, Vince Fuller, Phanindra Jujjavarapu, Milo
  251.     Medin, Kannan Varadhan and the rest of the OSPF working group for
  252.     the ideas and support they have given to this project.
  253.  
  254.     1.1.  Protocol overview
  255.  
  256.         OSPF routes IP packets based solely on the destination IP
  257.         address and IP Type of Service found in the IP packet header.
  258.         IP packets are routed "as is" -- they are not encapsulated in
  259.         any further protocol headers as they transit the Autonomous
  260.         System.  OSPF is a dynamic routing protocol.  It quickly detects
  261.         topological changes in the AS (such as router interface
  262.         failures) and calculates new loop-free routes after a period of
  263.         convergence.  This period of convergence is short and involves a
  264.         minimum of routing traffic.
  265.  
  266.         In a link-state routing protocol, each router maintains a
  267.         database describing the Autonomous System's topology.  Each
  268.         participating router has an identical database.  Each individual
  269.         piece of this database is a particular router's local state
  270.         (e.g., the router's usable interfaces and reachable neighbors).
  271.         The router distributes its local state throughout the Autonomous
  272.         System by flooding.
  273.  
  274.         All routers run the exact same algorithm, in parallel.  From the
  275.         topological database, each router constructs a tree of shortest
  276.         paths with itself as root.  This shortest-path tree gives the
  277.  
  278.  
  279.  
  280. Moy                                                             [Page 5]
  281.  
  282. RFC 1583                     OSPF Version 2                   March 1994
  283.  
  284.  
  285.         route to each destination in the Autonomous System.  Externally
  286.         derived routing information appears on the tree as leaves.
  287.  
  288.         OSPF calculates separate routes for each Type of Service (TOS).
  289.         When several equal-cost routes to a destination exist, traffic
  290.         is distributed equally among them.  The cost of a route is
  291.         described by a single dimensionless metric.
  292.  
  293.         OSPF allows sets of networks to be grouped together.  Such a
  294.         grouping is called an area.  The topology of an area is hidden
  295.         from the rest of the Autonomous System.  This information hiding
  296.         enables a significant reduction in routing traffic.  Also,
  297.         routing within the area is determined only by the area's own
  298.         topology, lending the area protection from bad routing data.  An
  299.         area is a generalization of an IP subnetted network.
  300.  
  301.         OSPF enables the flexible configuration of IP subnets.  Each
  302.         route distributed by OSPF has a destination and mask.  Two
  303.         different subnets of the same IP network number may have
  304.         different sizes (i.e., different masks).  This is commonly
  305.         referred to as variable length subnetting.  A packet is routed
  306.         to the best (i.e., longest or most specific) match.  Host routes
  307.         are considered to be subnets whose masks are "all ones"
  308.         (0xffffffff).
  309.  
  310.         All OSPF protocol exchanges are authenticated.  This means that
  311.         only trusted routers can participate in the Autonomous System's
  312.         routing.  A variety of authentication schemes can be used; a
  313.         single authentication scheme is configured for each area.  This
  314.         enables some areas to use much stricter authentication than
  315.         others.
  316.  
  317.         Externally derived routing data (e.g., routes learned from the
  318.         Exterior Gateway Protocol (EGP)) is passed transparently
  319.         throughout the Autonomous System.  This externally derived data
  320.         is kept separate from the OSPF protocol's link state data.  Each
  321.         external route can also be tagged by the advertising router,
  322.         enabling the passing of additional information between routers
  323.         on the boundaries of the Autonomous System.
  324.  
  325.  
  326.     1.2.  Definitions of commonly used terms
  327.  
  328.         This section provides definitions for terms that have a specific
  329.         meaning to the OSPF protocol and that are used throughout the
  330.         text.  The reader unfamiliar with the Internet Protocol Suite is
  331.         referred to [RS-85-153] for an introduction to IP.
  332.  
  333.  
  334.  
  335.  
  336. Moy                                                             [Page 6]
  337.  
  338. RFC 1583                     OSPF Version 2                   March 1994
  339.  
  340.  
  341.         Router
  342.             A level three Internet Protocol packet switch.  Formerly
  343.             called a gateway in much of the IP literature.
  344.  
  345.         Autonomous System
  346.             A group of routers exchanging routing information via a
  347.             common routing protocol.  Abbreviated as AS.
  348.  
  349.         Interior Gateway Protocol
  350.             The routing protocol spoken by the routers belonging to an
  351.             Autonomous system.  Abbreviated as IGP.  Each Autonomous
  352.             System has a single IGP.  Separate Autonomous Systems may be
  353.             running different IGPs.
  354.  
  355.         Router ID
  356.             A 32-bit number assigned to each router running the OSPF
  357.             protocol.  This number uniquely identifies the router within
  358.             an Autonomous System.
  359.  
  360.         Network
  361.             In this memo, an IP network/subnet/supernet.  It is possible
  362.             for one physical network to be assigned multiple IP
  363.             network/subnet numbers.  We consider these to be separate
  364.             networks.  Point-to-point physical networks are an exception
  365.             - they are considered a single network no matter how many
  366.             (if any at all) IP network/subnet numbers are assigned to
  367.             them.
  368.  
  369.         Network mask
  370.             A 32-bit number indicating the range of IP addresses
  371.             residing on a single IP network/subnet/supernet.  This
  372.             specification displays network masks as hexadecimal numbers.
  373.             For example, the network mask for a class C IP network is
  374.             displayed as 0xffffff00.  Such a mask is often displayed
  375.             elsewhere in the literature as 255.255.255.0.
  376.  
  377.         Multi-access networks
  378.             Those physical networks that support the attachment of
  379.             multiple (more than two) routers.  Each pair of routers on
  380.             such a network is assumed to be able to communicate directly
  381.             (e.g., multi-drop networks are excluded).
  382.  
  383.         Interface
  384.             The connection between a router and one of its attached
  385.             networks.  An interface has state information associated
  386.             with it, which is obtained from the underlying lower level
  387.             protocols and the routing protocol itself.  An interface to
  388.             a network has associated with it a single IP address and
  389.  
  390.  
  391.  
  392. Moy                                                             [Page 7]
  393.  
  394. RFC 1583                     OSPF Version 2                   March 1994
  395.  
  396.  
  397.             mask (unless the network is an unnumbered point-to-point
  398.             network).  An interface is sometimes also referred to as a
  399.             link.
  400.  
  401.         Neighboring routers
  402.             Two routers that have interfaces to a common network.  On
  403.             multi-access networks, neighbors are dynamically discovered
  404.             by OSPF's Hello Protocol.
  405.  
  406.         Adjacency
  407.             A relationship formed between selected neighboring routers
  408.             for the purpose of exchanging routing information.  Not
  409.             every pair of neighboring routers become adjacent.
  410.  
  411.         Link state advertisement
  412.             Describes the local state of a router or network.  This
  413.             includes the state of the router's interfaces and
  414.             adjacencies.  Each link state advertisement is flooded
  415.             throughout the routing domain.  The collected link state
  416.             advertisements of all routers and networks forms the
  417.             protocol's topological database.
  418.  
  419.         Hello Protocol
  420.             The part of the OSPF protocol used to establish and maintain
  421.             neighbor relationships.  On multi-access networks the Hello
  422.             Protocol can also dynamically discover neighboring routers.
  423.  
  424.         Designated Router
  425.             Each multi-access network that has at least two attached
  426.             routers has a Designated Router.  The Designated Router
  427.             generates a link state advertisement for the multi-access
  428.             network and has other special responsibilities in the
  429.             running of the protocol.  The Designated Router is elected
  430.             by the Hello Protocol.
  431.  
  432.             The Designated Router concept enables a reduction in the
  433.             number of adjacencies required on a multi-access network.
  434.             This in turn reduces the amount of routing protocol traffic
  435.             and the size of the topological database.
  436.  
  437.         Lower-level protocols
  438.             The underlying network access protocols that provide
  439.             services to the Internet Protocol and in turn the OSPF
  440.             protocol.  Examples of these are the X.25 packet and frame
  441.             levels for X.25 PDNs, and the ethernet data link layer for
  442.             ethernets.
  443.  
  444.  
  445.  
  446.  
  447.  
  448. Moy                                                             [Page 8]
  449.  
  450. RFC 1583                     OSPF Version 2                   March 1994
  451.  
  452.  
  453.     1.3.  Brief history of link-state routing technology
  454.  
  455.         OSPF is a link state routing protocol.  Such protocols are also
  456.         referred to in the literature as SPF-based or distributed-
  457.         database protocols.  This section gives a brief description of
  458.         the developments in link-state technology that have influenced
  459.         the OSPF protocol.
  460.  
  461.         The first link-state routing protocol was developed for use in
  462.         the ARPANET packet switching network.  This protocol is
  463.         described in [McQuillan].  It has formed the starting point for
  464.         all other link-state protocols.  The homogeneous Arpanet
  465.         environment, i.e., single-vendor packet switches connected by
  466.         synchronous serial lines, simplified the design and
  467.         implementation of the original protocol.
  468.  
  469.         Modifications to this protocol were proposed in [Perlman].
  470.         These modifications dealt with increasing the fault tolerance of
  471.         the routing protocol through, among other things, adding a
  472.         checksum to the link state advertisements (thereby detecting
  473.         database corruption).  The paper also included means for
  474.         reducing the routing traffic overhead in a link-state protocol.
  475.         This was accomplished by introducing mechanisms which enabled
  476.         the interval between link state advertisement originations to be
  477.         increased by an order of magnitude.
  478.  
  479.         A link-state algorithm has also been proposed for use as an ISO
  480.         IS-IS routing protocol.  This protocol is described in [DEC].
  481.         The protocol includes methods for data and routing traffic
  482.         reduction when operating over broadcast networks.  This is
  483.         accomplished by election of a Designated Router for each
  484.         broadcast network, which then originates a link state
  485.         advertisement for the network.
  486.  
  487.         The OSPF subcommittee of the IETF has extended this work in
  488.         developing the OSPF protocol.  The Designated Router concept has
  489.         been greatly enhanced to further reduce the amount of routing
  490.         traffic required.  Multicast capabilities are utilized for
  491.         additional routing bandwidth reduction.  An area routing scheme
  492.         has been developed enabling information
  493.         hiding/protection/reduction.  Finally, the algorithm has been
  494.         modified for efficient operation in TCP/IP internets.
  495.  
  496.  
  497.     1.4.  Organization of this document
  498.  
  499.         The first three sections of this specification give a general
  500.         overview of the protocol's capabilities and functions.  Sections
  501.  
  502.  
  503.  
  504. Moy                                                             [Page 9]
  505.  
  506. RFC 1583                     OSPF Version 2                   March 1994
  507.  
  508.  
  509.         4-16 explain the protocol's mechanisms in detail.  Packet
  510.         formats, protocol constants and configuration items are
  511.         specified in the appendices.
  512.  
  513.         Labels such as HelloInterval encountered in the text refer to
  514.         protocol constants.  They may or may not be configurable.  The
  515.         architectural constants are explained in Appendix B.  The
  516.         configurable constants are explained in Appendix C.
  517.  
  518.         The detailed specification of the protocol is presented in terms
  519.         of data structures.  This is done in order to make the
  520.         explanation more precise.  Implementations of the protocol are
  521.         required to support the functionality described, but need not
  522.         use the precise data structures that appear in this memo.
  523.  
  524.  
  525. 2.  The Topological Database
  526.  
  527.     The Autonomous System's topological database describes a directed
  528.     graph.  The vertices of the graph consist of routers and networks.
  529.     A graph edge connects two routers when they are attached via a
  530.     physical point-to-point network.  An edge connecting a router to a
  531.     network indicates that the router has an interface on the network.
  532.  
  533.     The vertices of the graph can be further typed according to
  534.     function.  Only some of these types carry transit data traffic; that
  535.     is, traffic that is neither locally originated nor locally destined.
  536.     Vertices that can carry transit traffic are indicated on the graph
  537.     by having both incoming and outgoing edges.
  538.  
  539.  
  540.  
  541.                      Vertex type   Vertex name    Transit?
  542.                      _____________________________________
  543.                      1             Router         yes
  544.                      2             Network        yes
  545.                      3             Stub network   no
  546.  
  547.  
  548.                           Table 1: OSPF vertex types.
  549.  
  550.  
  551.     OSPF supports the following types of physical networks:
  552.  
  553.  
  554.     Point-to-point networks
  555.         A network that joins a single pair of routers.  A 56Kb serial
  556.         line is an example of a point-to-point network.
  557.  
  558.  
  559.  
  560. Moy                                                            [Page 10]
  561.  
  562. RFC 1583                     OSPF Version 2                   March 1994
  563.  
  564.  
  565.     Broadcast networks
  566.         Networks supporting many (more than two) attached routers,
  567.         together with the capability to address a single physical
  568.         message to all of the attached routers (broadcast).  Neighboring
  569.         routers are discovered dynamically on these nets using OSPF's
  570.         Hello Protocol.  The Hello Protocol itself takes advantage of
  571.         the broadcast capability.  The protocol makes further use of
  572.         multicast capabilities, if they exist.  An ethernet is an
  573.         example of a broadcast network.
  574.  
  575.     Non-broadcast networks
  576.         Networks supporting many (more than two) routers, but having no
  577.         broadcast capability.  Neighboring routers are also discovered
  578.         on these nets using OSPF's Hello Protocol.  However, due to the
  579.         lack of broadcast capability, some configuration information is
  580.         necessary for the correct operation of the Hello Protocol.  On
  581.         these networks, OSPF protocol packets that are normally
  582.         multicast need to be sent to each neighboring router, in turn.
  583.         An X.25 Public Data Network (PDN) is an example of a non-
  584.         broadcast network.
  585.  
  586.  
  587.     The neighborhood of each network node in the graph depends on
  588.     whether the network has multi-access capabilities (either broadcast
  589.     or non-broadcast) and, if so, the number of routers having an
  590.     interface to the network.  The three cases are depicted in Figure 1.
  591.     Rectangles indicate routers.  Circles and oblongs indicate multi-
  592.     access networks.  Router names are prefixed with the letters RT and
  593.     network names with the letter N.  Router interface names are
  594.     prefixed by the letter I.  Lines between routers indicate point-to-
  595.     point networks.  The left side of the figure shows a network with
  596.     its connected routers, with the resulting graph shown on the right.
  597.  
  598.     Two routers joined by a point-to-point network are represented in
  599.     the directed graph as being directly connected by a pair of edges,
  600.     one in each direction.  Interfaces to physical point-to-point
  601.     networks need not be assigned IP addresses.  Such a point-to-point
  602.     network is called unnumbered.  The graphical representation of
  603.     point-to-point networks is designed so that unnumbered networks can
  604.     be supported naturally.  When interface addresses exist, they are
  605.     modelled as stub routes.  Note that each router would then have a
  606.     stub connection to the other router's interface address (see Figure
  607.     1).
  608.  
  609.     When multiple routers are attached to a multi-access network, the
  610.     directed graph shows all routers bidirectionally connected to the
  611.     network vertex (again, see Figure 1).  If only a single router is
  612.     attached to a multi-access network, the network will appear in the
  613.  
  614.  
  615.  
  616. Moy                                                            [Page 11]
  617.  
  618. RFC 1583                     OSPF Version 2                   March 1994
  619.  
  620.  
  621.  
  622.  
  623.  
  624.                                                   **FROM**
  625.  
  626.                                            *      |RT1|RT2|
  627.                 +---+Ia    +---+           *   ------------
  628.                 |RT1|------|RT2|           T   RT1|   | X |
  629.                 +---+    Ib+---+           O   RT2| X |   |
  630.                                            *    Ia|   | X |
  631.                                            *    Ib| X |   |
  632.  
  633.                      Physical point-to-point networks
  634.  
  635.                                                   **FROM**
  636.                 +---+      +---+
  637.                 |RT3|      |RT4|              |RT3|RT4|RT5|RT6|N2 |
  638.                 +---+      +---+        *  ------------------------
  639.                   |    N2    |          *  RT3|   |   |   |   | X |
  640.             +----------------------+    T  RT4|   |   |   |   | X |
  641.                   |          |          O  RT5|   |   |   |   | X |
  642.                 +---+      +---+        *  RT6|   |   |   |   | X |
  643.                 |RT5|      |RT6|        *   N2| X | X | X | X |   |
  644.                 +---+      +---+
  645.  
  646.                           Multi-access networks
  647.  
  648.                                                   **FROM**
  649.                       +---+                *
  650.                       |RT7|                *      |RT7| N3|
  651.                       +---+                T   ------------
  652.                         |                  O   RT7|   |   |
  653.             +----------------------+       *    N3| X |   |
  654.                        N3                  *
  655.  
  656.                        Stub multi-access networks
  657.  
  658.  
  659.  
  660.                     Figure 1: Network map components
  661.  
  662.              Networks and routers are represented by vertices.
  663.              An edge connects Vertex A to Vertex B iff the
  664.              intersection of Column A and Row B is marked with
  665.                                   an X.
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672. Moy                                                            [Page 12]
  673.  
  674. RFC 1583                     OSPF Version 2                   March 1994
  675.  
  676.  
  677.     directed graph as a stub connection.
  678.  
  679.     Each network (stub or transit) in the graph has an IP address and
  680.     associated network mask.  The mask indicates the number of nodes on
  681.     the network.  Hosts attached directly to routers (referred to as
  682.     host routes) appear on the graph as stub networks.  The network mask
  683.     for a host route is always 0xffffffff, which indicates the presence
  684.     of a single node.
  685.  
  686.     Figure 2 shows a sample map of an Autonomous System.  The rectangle
  687.     labelled H1 indicates a host, which has a SLIP connection to Router
  688.     RT12.  Router RT12 is therefore advertising a host route.  Lines
  689.     between routers indicate physical point-to-point networks.  The only
  690.     point-to-point network that has been assigned interface addresses is
  691.     the one joining Routers RT6 and RT10.  Routers RT5 and RT7 have EGP
  692.     connections to other Autonomous Systems.  A set of EGP-learned
  693.     routes have been displayed for both of these routers.
  694.  
  695.     A cost is associated with the output side of each router interface.
  696.     This cost is configurable by the system administrator.  The lower
  697.     the cost, the more likely the interface is to be used to forward
  698.     data traffic.  Costs are also associated with the externally derived
  699.     routing data (e.g., the EGP-learned routes).
  700.  
  701.     The directed graph resulting from the map in Figure 2 is depicted in
  702.     Figure 3.  Arcs are labelled with the cost of the corresponding
  703.     router output interface.  Arcs having no labelled cost have a cost
  704.     of 0.  Note that arcs leading from networks to routers always have
  705.     cost 0; they are significant nonetheless.  Note also that the
  706.     externally derived routing data appears on the graph as stubs.
  707.  
  708.     The topological database (or what has been referred to above as the
  709.     directed graph) is pieced together from link state advertisements
  710.     generated by the routers.  The neighborhood of each transit vertex
  711.     is represented in a single, separate link state advertisement.
  712.     Figure 4 shows graphically the link state representation of the two
  713.     kinds of transit vertices: routers and multi-access networks.
  714.     Router RT12 has an interface to two broadcast networks and a SLIP
  715.     line to a host.  Network N6 is a broadcast network with three
  716.     attached routers.  The cost of all links from Network N6 to its
  717.     attached routers is 0.  Note that the link state advertisement for
  718.     Network N6 is actually generated by one of the attached routers: the
  719.     router that has been elected Designated Router for the network.
  720.  
  721.     2.1.  The shortest-path tree
  722.  
  723.         When no OSPF areas are configured, each router in the Autonomous
  724.         System has an identical topological database, leading to an
  725.  
  726.  
  727.  
  728. Moy                                                            [Page 13]
  729.  
  730. RFC 1583                     OSPF Version 2                   March 1994
  731.  
  732.  
  733.  
  734.                  +
  735.                  | 3+---+                     N12      N14
  736.                N1|--|RT1|\ 1                    \ N13 /
  737.                  |  +---+ \                     8\ |8/8
  738.                  +         \ ____                 \|/
  739.                             /    \   1+---+8    8+---+6
  740.                            *  N3  *---|RT4|------|RT5|--------+
  741.                             \____/    +---+      +---+        |
  742.                   +         /   |                  |7         |
  743.                   | 3+---+ /    |                  |          |
  744.                 N2|--|RT2|/1    |1                 |6         |
  745.                   |  +---+    +---+8            6+---+        |
  746.                   +           |RT3|--------------|RT6|        |
  747.                               +---+              +---+        |
  748.                                 |2               Ia|7         |
  749.                                 |                  |          |
  750.                            +---------+             |          |
  751.                                N4                  |          |
  752.                                                    |          |
  753.                                                    |          |
  754.                        N11                         |          |
  755.                    +---------+                     |          |
  756.                         |                          |          |    N12
  757.                         |3                         |          |6 2/
  758.                       +---+                        |        +---+/
  759.                       |RT9|                        |        |RT7|---N15
  760.                       +---+                        |        +---+ 9
  761.                         |1                   +     |          |1
  762.                        _|__                  |   Ib|5       __|_
  763.                       /    \      1+----+2   |  3+----+1   /    \
  764.                      *  N9  *------|RT11|----|---|RT10|---*  N6  *
  765.                       \____/       +----+    |   +----+    \____/
  766.                         |                    |                |
  767.                         |1                   +                |1
  768.              +--+   10+----+                N8              +---+
  769.              |H1|-----|RT12|                                |RT8|
  770.              +--+SLIP +----+                                +---+
  771.                         |2                                    |4
  772.                         |                                     |
  773.                    +---------+                            +--------+
  774.                        N10                                    N7
  775.  
  776.                     Figure 2: A sample Autonomous System
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784. Moy                                                            [Page 14]
  785.  
  786. RFC 1583                     OSPF Version 2                   March 1994
  787.  
  788.  
  789.                                 **FROM**
  790.  
  791.                  |RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|
  792.                  |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|N3|N6|N8|N9|
  793.               ----- ---------------------------------------------
  794.               RT1|  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |  |
  795.               RT2|  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |  |
  796.               RT3|  |  |  |  |  |6 |  |  |  |  |  |  |0 |  |  |  |
  797.               RT4|  |  |  |  |8 |  |  |  |  |  |  |  |0 |  |  |  |
  798.               RT5|  |  |  |8 |  |6 |6 |  |  |  |  |  |  |  |  |  |
  799.               RT6|  |  |8 |  |7 |  |  |  |  |5 |  |  |  |  |  |  |
  800.               RT7|  |  |  |  |6 |  |  |  |  |  |  |  |  |0 |  |  |
  801.           *   RT8|  |  |  |  |  |  |  |  |  |  |  |  |  |0 |  |  |
  802.           *   RT9|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |
  803.           T  RT10|  |  |  |  |  |7 |  |  |  |  |  |  |  |0 |0 |  |
  804.           O  RT11|  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |0 |
  805.           *  RT12|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |0 |
  806.           *    N1|3 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  807.                N2|  |3 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
  808.                N3|1 |1 |1 |1 |  |  |  |  |  |  |  |  |  |  |  |  |
  809.                N4|  |  |2 |  |  |  |  |  |  |  |  |  |  |  |  |  |
  810.                N6|  |  |  |  |  |  |1 |1 |  |1 |  |  |  |  |  |  |
  811.                N7|  |  |  |  |  |  |  |4 |  |  |  |  |  |  |  |  |
  812.                N8|  |  |  |  |  |  |  |  |  |3 |2 |  |  |  |  |  |
  813.                N9|  |  |  |  |  |  |  |  |1 |  |1 |1 |  |  |  |  |
  814.               N10|  |  |  |  |  |  |  |  |  |  |  |2 |  |  |  |  |
  815.               N11|  |  |  |  |  |  |  |  |3 |  |  |  |  |  |  |  |
  816.               N12|  |  |  |  |8 |  |2 |  |  |  |  |  |  |  |  |  |
  817.               N13|  |  |  |  |8 |  |  |  |  |  |  |  |  |  |  |  |
  818.               N14|  |  |  |  |8 |  |  |  |  |  |  |  |  |  |  |  |
  819.               N15|  |  |  |  |  |  |9 |  |  |  |  |  |  |  |  |  |
  820.                H1|  |  |  |  |  |  |  |  |  |  |  |10|  |  |  |  |
  821.  
  822.  
  823.                      Figure 3: The resulting directed graph
  824.  
  825.                  Networks and routers are represented by vertices.
  826.                  An edge of cost X connects Vertex A to Vertex B iff
  827.                  the intersection of Column A and Row B is marked
  828.                                      with an X.
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840. Moy                                                            [Page 15]
  841.  
  842. RFC 1583                     OSPF Version 2                   March 1994
  843.  
  844.  
  845.                      **FROM**                       **FROM**
  846.  
  847.                   |RT12|N9|N10|H1|             |RT9|RT11|RT12|N9|
  848.            *  --------------------          *  ----------------------
  849.            *  RT12|    |  |   |  |          *   RT9|   |    |    |0 |
  850.            T    N9|1   |  |   |  |          T  RT11|   |    |    |0 |
  851.            O   N10|2   |  |   |  |          O  RT12|   |    |    |0 |
  852.            *    H1|10  |  |   |  |          *    N9|   |    |    |  |
  853.            *                                *
  854.                 RT12's router links            N9's network links
  855.                    advertisement                  advertisement
  856.  
  857.                   Figure 4: Individual link state components
  858.  
  859.               Networks and routers are represented by vertices.
  860.               An edge of cost X connects Vertex A to Vertex B iff
  861.               the intersection of Column A and Row B is marked
  862.                                   with an X.
  863.  
  864.         identical graphical representation.  A router generates its
  865.         routing table from this graph by calculating a tree of shortest
  866.         paths with the router itself as root.  Obviously, the shortest-
  867.         path tree depends on the router doing the calculation.  The
  868.         shortest-path tree for Router RT6 in our example is depicted in
  869.         Figure 5.
  870.  
  871.         The tree gives the entire route to any destination network or
  872.         host.  However, only the next hop to the destination is used in
  873.         the forwarding process.  Note also that the best route to any
  874.         router has also been calculated.  For the processing of external
  875.         data, we note the next hop and distance to any router
  876.         advertising external routes.  The resulting routing table for
  877.         Router RT6 is pictured in Table 2.  Note that there is a
  878.         separate route for each end of a numbered serial line (in this
  879.         case, the serial line between Routers RT6 and RT10).
  880.  
  881.  
  882.         Routes to networks belonging to other AS'es (such as N12) appear
  883.         as dashed lines on the shortest path tree in Figure 5.  Use of
  884.         this externally derived routing information is considered in the
  885.         next section.
  886.  
  887.  
  888.     2.2.  Use of external routing information
  889.  
  890.         After the tree is created the external routing information is
  891.         examined.  This external routing information may originate from
  892.         another routing protocol such as EGP, or be statically
  893.  
  894.  
  895.  
  896. Moy                                                            [Page 16]
  897.  
  898. RFC 1583                     OSPF Version 2                   March 1994
  899.  
  900.  
  901.  
  902.                                 RT6(origin)
  903.                     RT5 o------------o-----------o Ib
  904.                        /|\    6      |\     7
  905.                      8/8|8\          | \
  906.                      /  |  \         |  \
  907.                     o   |   o        |   \7
  908.                    N12  o  N14       |    \
  909.                        N13        2  |     \
  910.                             N4 o-----o RT3  \
  911.                                     /        \    5
  912.                                   1/     RT10 o-------o Ia
  913.                                   /           |\
  914.                        RT4 o-----o N3        3| \1
  915.                                 /|            |  \ N6     RT7
  916.                                / |         N8 o   o---------o
  917.                               /  |            |   |        /|
  918.                          RT2 o   o RT1        |   |      2/ |9
  919.                             /    |            |   |RT8   /  |
  920.                            /3    |3      RT11 o   o     o   o
  921.                           /      |            |   |    N12 N15
  922.                       N2 o       o N1        1|   |4
  923.                                               |   |
  924.                                            N9 o   o N7
  925.                                              /|
  926.                                             / |
  927.                         N11      RT9       /  |RT12
  928.                          o--------o-------o   o--------o H1
  929.                              3                |   10
  930.                                               |2
  931.                                               |
  932.                                               o N10
  933.  
  934.  
  935.                      Figure 5: The SPF tree for Router RT6
  936.  
  937.               Edges that are not marked with a cost have a cost of
  938.               of zero (these are network-to-router links). Routes
  939.               to networks N12-N15 are external information that is
  940.                          considered in Section 2.2
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952. Moy                                                            [Page 17]
  953.  
  954. RFC 1583                     OSPF Version 2                   March 1994
  955.  
  956.  
  957.                    Destination   Next  Hop   Distance
  958.                    __________________________________
  959.                    N1            RT3         10
  960.                    N2            RT3         10
  961.                    N3            RT3         7
  962.                    N4            RT3         8
  963.                    Ib            *           7
  964.                    Ia            RT10        12
  965.                    N6            RT10        8
  966.                    N7            RT10        12
  967.                    N8            RT10        10
  968.                    N9            RT10        11
  969.                    N10           RT10        13
  970.                    N11           RT10        14
  971.                    H1            RT10        21
  972.                    __________________________________
  973.                    RT5           RT5         6
  974.                    RT7           RT10        8
  975.  
  976.  
  977.     Table 2: The portion of Router RT6's routing table listing local
  978.                              destinations.
  979.  
  980.         configured (static routes).  Default routes can also be included
  981.         as part of the Autonomous System's external routing information.
  982.  
  983.         External routing information is flooded unaltered throughout the
  984.         AS.  In our example, all the routers in the Autonomous System
  985.         know that Router RT7 has two external routes, with metrics 2 and
  986.         9.
  987.  
  988.         OSPF supports two types of external metrics.  Type 1 external
  989.         metrics are equivalent to the link state metric.  Type 2
  990.         external metrics are greater than the cost of any path internal
  991.         to the AS.  Use of Type 2 external metrics assumes that routing
  992.         between AS'es is the major cost of routing a packet, and
  993.         eliminates the need for conversion of external costs to internal
  994.         link state metrics.
  995.  
  996.         As an example of Type 1 external metric processing, suppose that
  997.         the Routers RT7 and RT5 in Figure 2 are advertising Type 1
  998.         external metrics.  For each external route, the distance from
  999.         Router RT6 is calculated as the sum of the external route's cost
  1000.         and the distance from Router RT6 to the advertising router.  For
  1001.         every external destination, the router advertising the shortest
  1002.         route is discovered, and the next hop to the advertising router
  1003.         becomes the next hop to the destination.
  1004.  
  1005.  
  1006.  
  1007.  
  1008. Moy                                                            [Page 18]
  1009.  
  1010. RFC 1583                     OSPF Version 2                   March 1994
  1011.  
  1012.  
  1013.         Both Router RT5 and RT7 are advertising an external route to
  1014.         destination Network N12.  Router RT7 is preferred since it is
  1015.         advertising N12 at a distance of 10 (8+2) to Router RT6, which
  1016.         is better than Router RT5's 14 (6+8).  Table 3 shows the entries
  1017.         that are added to the routing table when external routes are
  1018.         examined:
  1019.  
  1020.  
  1021.  
  1022.                          Destination   Next  Hop   Distance
  1023.                          __________________________________
  1024.                          N12           RT10        10
  1025.                          N13           RT5         14
  1026.                          N14           RT5         14
  1027.                          N15           RT10        17
  1028.  
  1029.  
  1030.                  Table 3: The portion of Router RT6's routing table
  1031.                            listing external destinations.
  1032.  
  1033.  
  1034.         Processing of Type 2 external metrics is simpler.  The AS
  1035.         boundary router advertising the smallest external metric is
  1036.         chosen, regardless of the internal distance to the AS boundary
  1037.         router.  Suppose in our example both Router RT5 and Router RT7
  1038.         were advertising Type 2 external routes.  Then all traffic
  1039.         destined for Network N12 would be forwarded to Router RT7, since
  1040.         2 < 8.  When several equal-cost Type 2 routes exist, the
  1041.         internal distance to the advertising routers is used to break
  1042.         the tie.
  1043.  
  1044.         Both Type 1 and Type 2 external metrics can be present in the AS
  1045.         at the same time.  In that event, Type 1 external metrics always
  1046.         take precedence.
  1047.  
  1048.         This section has assumed that packets destined for external
  1049.         destinations are always routed through the advertising AS
  1050.         boundary router.  This is not always desirable.  For example,
  1051.         suppose in Figure 2 there is an additional router attached to
  1052.         Network N6, called Router RTX.  Suppose further that RTX does
  1053.         not participate in OSPF routing, but does exchange EGP
  1054.         information with the AS boundary router RT7.  Then, Router RT7
  1055.         would end up advertising OSPF external routes for all
  1056.         destinations that should be routed to RTX.  An extra hop will
  1057.         sometimes be introduced if packets for these destinations need
  1058.         always be routed first to Router RT7 (the advertising router).
  1059.  
  1060.         To deal with this situation, the OSPF protocol allows an AS
  1061.  
  1062.  
  1063.  
  1064. Moy                                                            [Page 19]
  1065.  
  1066. RFC 1583                     OSPF Version 2                   March 1994
  1067.  
  1068.  
  1069.         boundary router to specify a "forwarding address" in its
  1070.         external advertisements.  In the above example, Router RT7 would
  1071.         specify RTX's IP address as the "forwarding address" for all
  1072.         those destinations whose packets should be routed directly to
  1073.         RTX.
  1074.  
  1075.         The "forwarding address" has one other application.  It enables
  1076.         routers in the Autonomous System's interior to function as
  1077.         "route servers".  For example, in Figure 2 the router RT6 could
  1078.         become a route server, gaining external routing information
  1079.         through a combination of static configuration and external
  1080.         routing protocols.  RT6 would then start advertising itself as
  1081.         an AS boundary router, and would originate a collection of OSPF
  1082.         external advertisements.  In each external advertisement, Router
  1083.         RT6 would specify the correct Autonomous System exit point to
  1084.         use for the destination through appropriate setting of the
  1085.         advertisement's "forwarding address" field.
  1086.  
  1087.  
  1088.     2.3.  Equal-cost multipath
  1089.  
  1090.         The above discussion has been simplified by considering only a
  1091.         single route to any destination.  In reality, if multiple
  1092.         equal-cost routes to a destination exist, they are all
  1093.         discovered and used.  This requires no conceptual changes to the
  1094.         algorithm, and its discussion is postponed until we consider the
  1095.         tree-building process in more detail.
  1096.  
  1097.         With equal cost multipath, a router potentially has several
  1098.         available next hops towards any given destination.
  1099.  
  1100.  
  1101.     2.4.  TOS-based routing
  1102.  
  1103.         OSPF can calculate a separate set of routes for each IP Type of
  1104.         Service. This means that, for any destination, there can
  1105.         potentially be multiple routing table entries, one for each IP
  1106.         TOS. The IP TOS values are represented in OSPF exactly as they
  1107.         appear in the IP packet header.
  1108.  
  1109.         Up to this point, all examples shown have assumed that routes do
  1110.         not vary on TOS.  In order to differentiate routes based on TOS,
  1111.         separate interface costs can be configured for each TOS.  For
  1112.         example, in Figure 2 there could be multiple costs (one for each
  1113.         TOS) listed for each interface.  A cost for TOS 0 must always be
  1114.         specified.
  1115.  
  1116.         When interface costs vary based on TOS, a separate shortest path
  1117.  
  1118.  
  1119.  
  1120. Moy                                                            [Page 20]
  1121.  
  1122. RFC 1583                     OSPF Version 2                   March 1994
  1123.  
  1124.  
  1125.         tree is calculated for each TOS (see Section 2.1).  In addition,
  1126.         external costs can vary based on TOS.  For example, in Figure 2
  1127.         Router RT7 could advertise a separate type 1 external metric for
  1128.         each TOS.  Then, when calculating the TOS X distance to Network
  1129.         N15 the cost of the shortest TOS X path to RT7 would be added to
  1130.         the TOS X cost advertised by RT7 for Network N15 (see Section
  1131.         2.2).
  1132.  
  1133.         All OSPF implementations must be capable of calculating routes
  1134.         based on TOS.  However, OSPF routers can be configured to route
  1135.         all packets on the TOS 0 path (see Appendix C), eliminating the
  1136.         need to calculate non-zero TOS paths.  This can be used to
  1137.         conserve routing table space and processing resources in the
  1138.         router.  These TOS-0-only routers can be mixed with routers that
  1139.         do route based on TOS.  TOS-0-only routers will be avoided as
  1140.         much as possible when forwarding traffic requesting a non-zero
  1141.         TOS.
  1142.  
  1143.         It may be the case that no path exists for some non-zero TOS,
  1144.         even if the router is calculating non-zero TOS paths.  In that
  1145.         case, packets requesting that non-zero TOS are routed along the
  1146.         TOS 0 path (see Section 11.1).
  1147.  
  1148.  
  1149. 3.  Splitting the AS into Areas
  1150.  
  1151.     OSPF allows collections of contiguous networks and hosts to be
  1152.     grouped together.  Such a group, together with the routers having
  1153.     interfaces to any one of the included networks, is called an area.
  1154.     Each area runs a separate copy of the basic link-state routing
  1155.     algorithm.  This means that each area has its own topological
  1156.     database and corresponding graph, as explained in the previous
  1157.     section.
  1158.  
  1159.     The topology of an area is invisible from the outside of the area.
  1160.     Conversely, routers internal to a given area know nothing of the
  1161.     detailed topology external to the area.  This isolation of knowledge
  1162.     enables the protocol to effect a marked reduction in routing traffic
  1163.     as compared to treating the entire Autonomous System as a single
  1164.     link-state domain.
  1165.  
  1166.     With the introduction of areas, it is no longer true that all
  1167.     routers in the AS have an identical topological database.  A router
  1168.     actually has a separate topological database for each area it is
  1169.     connected to.  (Routers connected to multiple areas are called area
  1170.     border routers).  Two routers belonging to the same area have, for
  1171.     that area, identical area topological databases.
  1172.  
  1173.  
  1174.  
  1175.  
  1176. Moy                                                            [Page 21]
  1177.  
  1178. RFC 1583                     OSPF Version 2                   March 1994
  1179.  
  1180.  
  1181.     Routing in the Autonomous System takes place on two levels,
  1182.     depending on whether the source and destination of a packet reside
  1183.     in the same area (intra-area routing is used) or different areas
  1184.     (inter-area routing is used).  In intra-area routing, the packet is
  1185.     routed solely on information obtained within the area; no routing
  1186.     information obtained from outside the area can be used.  This
  1187.     protects intra-area routing from the injection of bad routing
  1188.     information.  We discuss inter-area routing in Section 3.2.
  1189.  
  1190.  
  1191.     3.1.  The backbone of the Autonomous System
  1192.  
  1193.         The backbone consists of those networks not contained in any
  1194.         area, their attached routers, and those routers that belong to
  1195.         multiple areas.  The backbone must be contiguous.
  1196.  
  1197.         It is possible to define areas in such a way that the backbone
  1198.         is no longer contiguous.  In this case the system administrator
  1199.         must restore backbone connectivity by configuring virtual links.
  1200.  
  1201.         Virtual links can be configured between any two backbone routers
  1202.         that have an interface to a common non-backbone area.  Virtual
  1203.         links belong to the backbone.  The protocol treats two routers
  1204.         joined by a virtual link as if they were connected by an
  1205.         unnumbered point-to-point network.  On the graph of the
  1206.         backbone, two such routers are joined by arcs whose costs are
  1207.         the intra-area distances between the two routers.  The routing
  1208.         protocol traffic that flows along the virtual link uses intra-
  1209.         area routing only.
  1210.  
  1211.         The backbone is responsible for distributing routing information
  1212.         between areas.  The backbone itself has all of the properties of
  1213.         an area.  The topology of the backbone is invisible to each of
  1214.         the areas, while the backbone itself knows nothing of the
  1215.         topology of the areas.
  1216.  
  1217.  
  1218.     3.2.  Inter-area routing
  1219.  
  1220.         When routing a packet between two areas the backbone is used.
  1221.         The path that the packet will travel can be broken up into three
  1222.         contiguous pieces: an intra-area path from the source to an area
  1223.         border router, a backbone path between the source and
  1224.         destination areas, and then another intra-area path to the
  1225.         destination.  The algorithm finds the set of such paths that
  1226.         have the smallest cost.
  1227.  
  1228.         Looking at this another way, inter-area routing can be pictured
  1229.  
  1230.  
  1231.  
  1232. Moy                                                            [Page 22]
  1233.  
  1234. RFC 1583                     OSPF Version 2                   March 1994
  1235.  
  1236.  
  1237.         as forcing a star configuration on the Autonomous System, with
  1238.         the backbone as hub and each of the areas as spokes.
  1239.  
  1240.         The topology of the backbone dictates the backbone paths used
  1241.         between areas.  The topology of the backbone can be enhanced by
  1242.         adding virtual links.  This gives the system administrator some
  1243.         control over the routes taken by inter-area traffic.
  1244.  
  1245.         The correct area border router to use as the packet exits the
  1246.         source area is chosen in exactly the same way routers
  1247.         advertising external routes are chosen.  Each area border router
  1248.         in an area summarizes for the area its cost to all networks
  1249.         external to the area.  After the SPF tree is calculated for the
  1250.         area, routes to all other networks are calculated by examining
  1251.         the summaries of the area border routers.
  1252.  
  1253.  
  1254.     3.3.  Classification of routers
  1255.  
  1256.         Before the introduction of areas, the only OSPF routers having a
  1257.         specialized function were those advertising external routing
  1258.         information, such as Router RT5 in Figure 2.  When the AS is
  1259.         split into OSPF areas, the routers are further divided according
  1260.         to function into the following four overlapping categories:
  1261.  
  1262.  
  1263.         Internal routers
  1264.             A router with all directly connected networks belonging to
  1265.             the same area.  Routers with only backbone interfaces also
  1266.             belong to this category.  These routers run a single copy of
  1267.             the basic routing algorithm.
  1268.  
  1269.         Area border routers
  1270.             A router that attaches to multiple areas.  Area border
  1271.             routers run multiple copies of the basic algorithm, one copy
  1272.             for each attached area and an additional copy for the
  1273.             backbone.  Area border routers condense the topological
  1274.             information of their attached areas for distribution to the
  1275.             backbone.  The backbone in turn distributes the information
  1276.             to the other areas.
  1277.  
  1278.         Backbone routers
  1279.             A router that has an interface to the backbone.  This
  1280.             includes all routers that interface to more than one area
  1281.             (i.e., area border routers).  However, backbone routers do
  1282.             not have to be area border routers.  Routers with all
  1283.             interfaces connected to the backbone are considered to be
  1284.             internal routers.
  1285.  
  1286.  
  1287.  
  1288. Moy                                                            [Page 23]
  1289.  
  1290. RFC 1583                     OSPF Version 2                   March 1994
  1291.  
  1292.  
  1293.         AS boundary routers
  1294.             A router that exchanges routing information with routers
  1295.             belonging to other Autonomous Systems.  Such a router has AS
  1296.             external routes that are advertised throughout the
  1297.             Autonomous System.  The path to each AS boundary router is
  1298.             known by every router in the AS.  This classification is
  1299.             completely independent of the previous classifications: AS
  1300.             boundary routers may be internal or area border routers, and
  1301.             may or may not participate in the backbone.
  1302.  
  1303.  
  1304.     3.4.  A sample area configuration
  1305.  
  1306.         Figure 6 shows a sample area configuration.  The first area
  1307.         consists of networks N1-N4, along with their attached routers
  1308.         RT1-RT4.  The second area consists of networks N6-N8, along with
  1309.         their attached routers RT7, RT8, RT10 and RT11.  The third area
  1310.         consists of networks N9-N11 and Host H1, along with their
  1311.         attached routers RT9, RT11 and RT12.  The third area has been
  1312.         configured so that networks N9-N11 and Host H1 will all be
  1313.         grouped into a single route, when advertised external to the
  1314.         area (see Section 3.5 for more details).
  1315.  
  1316.         In Figure 6, Routers RT1, RT2, RT5, RT6, RT8, RT9 and RT12 are
  1317.         internal routers.  Routers RT3, RT4, RT7, RT10 and RT11 are area
  1318.         border routers.  Finally, as before, Routers RT5 and RT7 are AS
  1319.         boundary routers.
  1320.  
  1321.         Figure 7 shows the resulting topological database for the Area
  1322.         1.  The figure completely describes that area's intra-area
  1323.         routing.  It also shows the complete view of the internet for
  1324.         the two internal routers RT1 and RT2.  It is the job of the area
  1325.         border routers, RT3 and RT4, to advertise into Area 1 the
  1326.         distances to all destinations external to the area.  These are
  1327.         indicated in Figure 7 by the dashed stub routes.  Also, RT3 and
  1328.         RT4 must advertise into Area 1 the location of the AS boundary
  1329.         routers RT5 and RT7.  Finally, external advertisements from RT5
  1330.         and RT7 are flooded throughout the entire AS, and in particular
  1331.         throughout Area 1.  These advertisements are included in Area
  1332.         1's database, and yield routes to Networks N12-N15.
  1333.  
  1334.         Routers RT3 and RT4 must also summarize Area 1's topology for
  1335.         distribution to the backbone.  Their backbone advertisements are
  1336.         shown in Table 4.  These summaries show which networks are
  1337.         contained in Area 1 (i.e., Networks N1-N4), and the distance to
  1338.         these networks from the routers RT3 and RT4 respectively.
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344. Moy                                                            [Page 24]
  1345.  
  1346. RFC 1583                     OSPF Version 2                   March 1994
  1347.  
  1348.  
  1349.  
  1350.              ...........................
  1351.              .   +                     .
  1352.              .   | 3+---+              .      N12      N14
  1353.              . N1|--|RT1|\ 1           .        \ N13 /
  1354.              .   |  +---+ \            .        8\ |8/8
  1355.              .   +         \ ____      .          \|/
  1356.              .              /    \   1+---+8    8+---+6
  1357.              .             *  N3  *---|RT4|------|RT5|--------+
  1358.              .              \____/    +---+      +---+        |
  1359.              .    +         /      \   .           |7         |
  1360.              .    | 3+---+ /        \  .           |          |
  1361.              .  N2|--|RT2|/1        1\ .           |6         |
  1362.              .    |  +---+            +---+8    6+---+        |
  1363.              .    +                   |RT3|------|RT6|        |
  1364.              .                        +---+      +---+        |
  1365.              .                      2/ .         Ia|7         |
  1366.              .                      /  .           |          |
  1367.              .             +---------+ .           |          |
  1368.              .Area 1           N4      .           |          |
  1369.              ...........................           |          |
  1370.           ..........................               |          |
  1371.           .            N11         .               |          |
  1372.           .        +---------+     .               |          |
  1373.           .             |          .               |          |    N12
  1374.           .             |3         .             Ib|5         |6 2/
  1375.           .           +---+        .             +----+     +---+/
  1376.           .           |RT9|        .    .........|RT10|.....|RT7|---N15.
  1377.           .           +---+        .    .        +----+     +---+ 9    .
  1378.           .             |1         .    .    +  /3    1\      |1       .
  1379.           .            _|__        .    .    | /        \   __|_       .
  1380.           .           /    \      1+----+2   |/          \ /    \      .
  1381.           .          *  N9  *------|RT11|----|            *  N6  *     .
  1382.           .           \____/       +----+    |             \____/      .
  1383.           .             |          .    .    |                |        .
  1384.           .             |1         .    .    +                |1       .
  1385.           .  +--+   10+----+       .    .   N8              +---+      .
  1386.           .  |H1|-----|RT12|       .    .                   |RT8|      .
  1387.           .  +--+SLIP +----+       .    .                   +---+      .
  1388.           .             |2         .    .                     |4       .
  1389.           .             |          .    .                     |        .
  1390.           .        +---------+     .    .                 +--------+   .
  1391.           .            N10         .    .                     N7       .
  1392.           .                        .    .Area 2                        .
  1393.           .Area 3                  .    ................................
  1394.           ..........................
  1395.  
  1396.                     Figure 6: A sample OSPF area configuration
  1397.  
  1398.  
  1399.  
  1400. Moy                                                            [Page 25]
  1401.  
  1402. RFC 1583                     OSPF Version 2                   March 1994
  1403.  
  1404.  
  1405.                      Network   RT3 adv.   RT4 adv.
  1406.                      _____________________________
  1407.                      N1        4          4
  1408.                      N2        4          4
  1409.                      N3        1          1
  1410.                      N4        2          3
  1411.  
  1412.  
  1413.               Table 4: Networks advertised to the backbone
  1414.                         by Routers RT3 and RT4.
  1415.  
  1416.         The topological database for the backbone is shown in Figure 8.
  1417.         The set of routers pictured are the backbone routers.  Router
  1418.         RT11 is a backbone router because it belongs to two areas.  In
  1419.         order to make the backbone connected, a virtual link has been
  1420.         configured between Routers R10 and R11.
  1421.  
  1422.         Again, Routers RT3, RT4, RT7, RT10 and RT11 are area border
  1423.         routers.  As Routers RT3 and RT4 did above, they have condensed
  1424.         the routing information of their attached areas for distribution
  1425.         via the backbone; these are the dashed stubs that appear in
  1426.         Figure 8.  Remember that the third area has been configured to
  1427.         condense Networks N9-N11 and Host H1 into a single route.  This
  1428.         yields a single dashed line for networks N9-N11 and Host H1 in
  1429.         Figure 8.  Routers RT5 and RT7 are AS boundary routers; their
  1430.         externally derived information also appears on the graph in
  1431.         Figure 8 as stubs.
  1432.  
  1433.         The backbone enables the exchange of summary information between
  1434.         area border routers.  Every area border router hears the area
  1435.         summaries from all other area border routers.  It then forms a
  1436.         picture of the distance to all networks outside of its area by
  1437.         examining the collected advertisements, and adding in the
  1438.         backbone distance to each advertising router.
  1439.  
  1440.         Again using Routers RT3 and RT4 as an example, the procedure
  1441.         goes as follows: They first calculate the SPF tree for the
  1442.         backbone.  This gives the distances to all other area border
  1443.         routers.  Also noted are the distances to networks (Ia and Ib)
  1444.         and AS boundary routers (RT5 and RT7) that belong to the
  1445.         backbone.  This calculation is shown in Table 5.
  1446.  
  1447.  
  1448.         Next, by looking at the area summaries from these area border
  1449.         routers, RT3 and RT4 can determine the distance to all networks
  1450.         outside their area.  These distances are then advertised
  1451.         internally to the area by RT3 and RT4.  The advertisements that
  1452.         Router RT3 and RT4 will make into Area 1 are shown in Table 6.
  1453.  
  1454.  
  1455.  
  1456. Moy                                                            [Page 26]
  1457.  
  1458. RFC 1583                     OSPF Version 2                   March 1994
  1459.  
  1460.  
  1461.  
  1462.                                **FROM**
  1463.  
  1464.                           |RT|RT|RT|RT|RT|RT|
  1465.                           |1 |2 |3 |4 |5 |7 |N3|
  1466.                        ----- -------------------
  1467.                        RT1|  |  |  |  |  |  |0 |
  1468.                        RT2|  |  |  |  |  |  |0 |
  1469.                        RT3|  |  |  |  |  |  |0 |
  1470.                    *   RT4|  |  |  |  |  |  |0 |
  1471.                    *   RT5|  |  |14|8 |  |  |  |
  1472.                    T   RT7|  |  |20|14|  |  |  |
  1473.                    O    N1|3 |  |  |  |  |  |  |
  1474.                    *    N2|  |3 |  |  |  |  |  |
  1475.                    *    N3|1 |1 |1 |1 |  |  |  |
  1476.                         N4|  |  |2 |  |  |  |  |
  1477.                      Ia,Ib|  |  |15|22|  |  |  |
  1478.                         N6|  |  |16|15|  |  |  |
  1479.                         N7|  |  |20|19|  |  |  |
  1480.                         N8|  |  |18|18|  |  |  |
  1481.                  N9-N11,H1|  |  |19|16|  |  |  |
  1482.                        N12|  |  |  |  |8 |2 |  |
  1483.                        N13|  |  |  |  |8 |  |  |
  1484.                        N14|  |  |  |  |8 |  |  |
  1485.                        N15|  |  |  |  |  |9 |  |
  1486.  
  1487.                       Figure 7: Area 1's Database.
  1488.  
  1489.               Networks and routers are represented by vertices.
  1490.               An edge of cost X connects Vertex A to Vertex B iff
  1491.               the intersection of Column A and Row B is marked
  1492.                                with an X.
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512. Moy                                                            [Page 27]
  1513.  
  1514. RFC 1583                     OSPF Version 2                   March 1994
  1515.  
  1516.  
  1517.                                   **FROM**
  1518.  
  1519.                             |RT|RT|RT|RT|RT|RT|RT
  1520.                             |3 |4 |5 |6 |7 |10|11|
  1521.                          ------------------------
  1522.                          RT3|  |  |  |6 |  |  |  |
  1523.                          RT4|  |  |8 |  |  |  |  |
  1524.                          RT5|  |8 |  |6 |6 |  |  |
  1525.                          RT6|8 |  |7 |  |  |5 |  |
  1526.                          RT7|  |  |6 |  |  |  |  |
  1527.                      *  RT10|  |  |  |7 |  |  |2 |
  1528.                      *  RT11|  |  |  |  |  |3 |  |
  1529.                      T    N1|4 |4 |  |  |  |  |  |
  1530.                      O    N2|4 |4 |  |  |  |  |  |
  1531.                      *    N3|1 |1 |  |  |  |  |  |
  1532.                      *    N4|2 |3 |  |  |  |  |  |
  1533.                           Ia|  |  |  |  |  |5 |  |
  1534.                           Ib|  |  |  |7 |  |  |  |
  1535.                           N6|  |  |  |  |1 |1 |3 |
  1536.                           N7|  |  |  |  |5 |5 |7 |
  1537.                           N8|  |  |  |  |4 |3 |2 |
  1538.                    N9-N11,H1|  |  |  |  |  |  |1 |
  1539.                          N12|  |  |8 |  |2 |  |  |
  1540.                          N13|  |  |8 |  |  |  |  |
  1541.                          N14|  |  |8 |  |  |  |  |
  1542.                          N15|  |  |  |  |9 |  |  |
  1543.  
  1544.  
  1545.                      Figure 8: The backbone's database.
  1546.  
  1547.               Networks and routers are represented by vertices.
  1548.               An edge of cost X connects Vertex A to Vertex B iff
  1549.               the intersection of Column A and Row B is marked
  1550.                                  with an X.
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568. Moy                                                            [Page 28]
  1569.  
  1570. RFC 1583                     OSPF Version 2                   March 1994
  1571.  
  1572.  
  1573.                  Area  border   dist  from   dist  from
  1574.                  router         RT3          RT4
  1575.                  ______________________________________
  1576.                  to  RT3        *            21
  1577.                  to  RT4        22           *
  1578.                  to  RT7        20           14
  1579.                  to  RT10       15           22
  1580.                  to  RT11       18           25
  1581.                  ______________________________________
  1582.                  to  Ia         20           27
  1583.                  to  Ib         15           22
  1584.                  ______________________________________
  1585.                  to  RT5        14           8
  1586.                  to  RT7        20           14
  1587.  
  1588.  
  1589.                  Table 5: Backbone distances calculated
  1590.                         by Routers RT3 and RT4.
  1591.  
  1592.         Note that Table 6 assumes that an area range has been configured
  1593.         for the backbone which groups Ia and Ib into a single
  1594.         advertisement.
  1595.  
  1596.  
  1597.         The information imported into Area 1 by Routers RT3 and RT4
  1598.         enables an internal router, such as RT1, to choose an area
  1599.         border router intelligently.  Router RT1 would use RT4 for
  1600.         traffic to Network N6, RT3 for traffic to Network N10, and would
  1601.         load share between the two for traffic to Network N8.
  1602.  
  1603.  
  1604.  
  1605.                    Destination   RT3 adv.   RT4 adv.
  1606.                    _________________________________
  1607.                    Ia,Ib         15         22
  1608.                    N6            16         15
  1609.                    N7            20         19
  1610.                    N8            18         18
  1611.                    N9-N11,H1     19         26
  1612.                    _________________________________
  1613.                    RT5           14         8
  1614.                    RT7           20         14
  1615.  
  1616.  
  1617.               Table 6: Destinations advertised into Area 1
  1618.                         by Routers RT3 and RT4.
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624. Moy                                                            [Page 29]
  1625.  
  1626. RFC 1583                     OSPF Version 2                   March 1994
  1627.  
  1628.  
  1629.         Router RT1 can also determine in this manner the shortest path
  1630.         to the AS boundary routers RT5 and RT7.  Then, by looking at RT5
  1631.         and RT7's external advertisements, Router RT1 can decide between
  1632.         RT5 or RT7 when sending to a destination in another Autonomous
  1633.         System (one of the networks N12-N15).
  1634.  
  1635.         Note that a failure of the line between Routers RT6 and RT10
  1636.         will cause the backbone to become disconnected.  Configuring a
  1637.         virtual link between Routers RT7 and RT10 will give the backbone
  1638.         more connectivity and more resistance to such failures. Also, a
  1639.         virtual link between RT7 and RT10 would allow a much shorter
  1640.         path between the third area (containing N9) and the router RT7,
  1641.         which is advertising a good route to external network N12.
  1642.  
  1643.  
  1644.     3.5.  IP subnetting support
  1645.  
  1646.         OSPF attaches an IP address mask to each advertised route.  The
  1647.         mask indicates the range of addresses being described by the
  1648.         particular route.  For example, a summary advertisement for the
  1649.         destination 128.185.0.0 with a mask of 0xffff0000 actually is
  1650.         describing a single route to the collection of destinations
  1651.         128.185.0.0 - 128.185.255.255.  Similarly, host routes are
  1652.         always advertised with a mask of 0xffffffff, indicating the
  1653.         presence of only a single destination.
  1654.  
  1655.         Including the mask with each advertised destination enables the
  1656.         implementation of what is commonly referred to as variable-
  1657.         length subnetting.  This means that a single IP class A, B, or C
  1658.         network number can be broken up into many subnets of various
  1659.         sizes.  For example, the network 128.185.0.0 could be broken up
  1660.         into 62 variable-sized subnets: 15 subnets of size 4K, 15
  1661.         subnets of size 256, and 32 subnets of size 8.  Table 7 shows
  1662.         some of the resulting network addresses together with their
  1663.         masks:
  1664.  
  1665.  
  1666.  
  1667.                   Network address   IP address mask   Subnet size
  1668.                   _______________________________________________
  1669.                   128.185.16.0      0xfffff000        4K
  1670.                   128.185.1.0       0xffffff00        256
  1671.                   128.185.0.8       0xfffffff8        8
  1672.  
  1673.  
  1674.                          Table 7: Some sample subnet sizes.
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680. Moy                                                            [Page 30]
  1681.  
  1682. RFC 1583                     OSPF Version 2                   March 1994
  1683.  
  1684.  
  1685.         There are many possible ways of dividing up a class A, B, and C
  1686.         network into variable sized subnets.  The precise procedure for
  1687.         doing so is beyond the scope of this specification.  This
  1688.         specification however establishes the following guideline: When
  1689.         an IP packet is forwarded, it is always forwarded to the network
  1690.         that is the best match for the packet's destination.  Here best
  1691.         match is synonymous with the longest or most specific match.
  1692.         For example, the default route with destination of 0.0.0.0 and
  1693.         mask 0x00000000 is always a match for every IP destination.  Yet
  1694.         it is always less specific than any other match.  Subnet masks
  1695.         must be assigned so that the best match for any IP destination
  1696.         is unambiguous.
  1697.  
  1698.         The OSPF area concept is modelled after an IP subnetted network.
  1699.         OSPF areas have been loosely defined to be a collection of
  1700.         networks.  In actuality, an OSPF area is specified to be a list
  1701.         of address ranges (see Section C.2 for more details).  Each
  1702.         address range is defined as an [address,mask] pair.  Many
  1703.         separate networks may then be contained in a single address
  1704.         range, just as a subnetted network is composed of many separate
  1705.         subnets.  Area border routers then summarize the area contents
  1706.         (for distribution to the backbone) by advertising a single route
  1707.         for each address range.  The cost of the route is the minimum
  1708.         cost to any of the networks falling in the specified range.
  1709.  
  1710.         For example, an IP subnetted network can be configured as a
  1711.         single OSPF area.  In that case, the area would be defined as a
  1712.         single address range: a class A, B, or C network number along
  1713.         with its natural IP mask.  Inside the area, any number of
  1714.         variable sized subnets could be defined.  External to the area,
  1715.         a single route for the entire subnetted network would be
  1716.         distributed, hiding even the fact that the network is subnetted
  1717.         at all.  The cost of this route is the minimum of the set of
  1718.         costs to the component subnets.
  1719.  
  1720.  
  1721.     3.6.  Supporting stub areas
  1722.  
  1723.         In some Autonomous Systems, the majority of the topological
  1724.         database may consist of AS external advertisements.  An OSPF AS
  1725.         external advertisement is usually flooded throughout the entire
  1726.         AS.  However, OSPF allows certain areas to be configured as
  1727.         "stub areas".  AS external advertisements are not flooded
  1728.         into/throughout stub areas; routing to AS external destinations
  1729.         in these areas is based on a (per-area) default only.  This
  1730.         reduces the topological database size, and therefore the memory
  1731.         requirements, for a stub area's internal routers.
  1732.  
  1733.  
  1734.  
  1735.  
  1736. Moy                                                            [Page 31]
  1737.  
  1738. RFC 1583                     OSPF Version 2                   March 1994
  1739.  
  1740.  
  1741.         In order to take advantage of the OSPF stub area support,
  1742.         default routing must be used in the stub area.  This is
  1743.         accomplished as follows.  One or more of the stub area's area
  1744.         border routers must advertise a default route into the stub area
  1745.         via summary link advertisements.  These summary defaults are
  1746.         flooded throughout the stub area, but no further.  (For this
  1747.         reason these defaults pertain only to the particular stub area).
  1748.         These summary default routes will match any destination that is
  1749.         not explicitly reachable by an intra-area or inter-area path
  1750.         (i.e., AS external destinations).
  1751.  
  1752.         An area can be configured as stub when there is a single exit
  1753.         point from the area, or when the choice of exit point need not
  1754.         be made on a per-external-destination basis.  For example, Area
  1755.         3 in Figure 6 could be configured as a stub area, because all
  1756.         external traffic must travel though its single area border
  1757.         router RT11.  If Area 3 were configured as a stub, Router RT11
  1758.         would advertise a default route for distribution inside Area 3
  1759.         (in a summary link advertisement), instead of flooding the AS
  1760.         external advertisements for Networks N12-N15 into/throughout the
  1761.         area.
  1762.  
  1763.         The OSPF protocol ensures that all routers belonging to an area
  1764.         agree on whether the area has been configured as a stub.  This
  1765.         guarantees that no confusion will arise in the flooding of AS
  1766.         external advertisements.
  1767.  
  1768.         There are a couple of restrictions on the use of stub areas.
  1769.         Virtual links cannot be configured through stub areas.  In
  1770.         addition, AS boundary routers cannot be placed internal to stub
  1771.         areas.
  1772.  
  1773.  
  1774.     3.7.  Partitions of areas
  1775.  
  1776.         OSPF does not actively attempt to repair area partitions.  When
  1777.         an area becomes partitioned, each component simply becomes a
  1778.         separate area.  The backbone then performs routing between the
  1779.         new areas.  Some destinations reachable via intra-area routing
  1780.         before the partition will now require inter-area routing.
  1781.  
  1782.         In the previous section, an area was described as a list of
  1783.         address ranges.  Any particular address range must still be
  1784.         completely contained in a single component of the area
  1785.         partition.  This has to do with the way the area contents are
  1786.         summarized to the backbone.  Also, the backbone itself must not
  1787.         partition.  If it does, parts of the Autonomous System will
  1788.         become unreachable.  Backbone partitions can be repaired by
  1789.  
  1790.  
  1791.  
  1792. Moy                                                            [Page 32]
  1793.  
  1794. RFC 1583                     OSPF Version 2                   March 1994
  1795.  
  1796.  
  1797.         configuring virtual links (see Section 15).
  1798.  
  1799.         Another way to think about area partitions is to look at the
  1800.         Autonomous System graph that was introduced in Section 2.  Area
  1801.         IDs can be viewed as colors for the graph's edges.[1] Each edge
  1802.         of the graph connects to a network, or is itself a point-to-
  1803.         point network.  In either case, the edge is colored with the
  1804.         network's Area ID.
  1805.  
  1806.         A group of edges, all having the same color, and interconnected
  1807.         by vertices, represents an area.  If the topology of the
  1808.         Autonomous System is intact, the graph will have several regions
  1809.         of color, each color being a distinct Area ID.
  1810.  
  1811.         When the AS topology changes, one of the areas may become
  1812.         partitioned.  The graph of the AS will then have multiple
  1813.         regions of the same color (Area ID).  The routing in the
  1814.         Autonomous System will continue to function as long as these
  1815.         regions of same color are connected by the single backbone
  1816.         region.
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848. Moy                                                            [Page 33]
  1849.  
  1850. RFC 1583                     OSPF Version 2                   March 1994
  1851.  
  1852.  
  1853. 4.  Functional Summary
  1854.  
  1855.     A separate copy of OSPF's basic routing algorithm runs in each area.
  1856.     Routers having interfaces to multiple areas run multiple copies of
  1857.     the algorithm.  A brief summary of the routing algorithm follows.
  1858.  
  1859.     When a router starts, it first initializes the routing protocol data
  1860.     structures.  The router then waits for indications from the lower-
  1861.     level protocols that its interfaces are functional.
  1862.  
  1863.     A router then uses the OSPF's Hello Protocol to acquire neighbors.
  1864.     The router sends Hello packets to its neighbors, and in turn
  1865.     receives their Hello packets.  On broadcast and point-to-point
  1866.     networks, the router dynamically detects its neighboring routers by
  1867.     sending its Hello packets to the multicast address AllSPFRouters.
  1868.     On non-broadcast networks, some configuration information is
  1869.     necessary in order to discover neighbors.  On all multi-access
  1870.     networks (broadcast or non-broadcast), the Hello Protocol also
  1871.     elects a Designated router for the network.
  1872.  
  1873.     The router will attempt to form adjacencies with some of its newly
  1874.     acquired neighbors.  Topological databases are synchronized between
  1875.     pairs of adjacent routers.  On multi-access networks, the Designated
  1876.     Router determines which routers should become adjacent.
  1877.  
  1878.     Adjacencies control the distribution of routing protocol packets.
  1879.     Routing protocol packets are sent and received only on adjacencies.
  1880.     In particular, distribution of topological database updates proceeds
  1881.     along adjacencies.
  1882.  
  1883.     A router periodically advertises its state, which is also called
  1884.     link state.  Link state is also advertised when a router's state
  1885.     changes.  A router's adjacencies are reflected in the contents of
  1886.     its link state advertisements.  This relationship between
  1887.     adjacencies and link state allows the protocol to detect dead
  1888.     routers in a timely fashion.
  1889.  
  1890.     Link state advertisements are flooded throughout the area.  The
  1891.     flooding algorithm is reliable, ensuring that all routers in an area
  1892.     have exactly the same topological database.  This database consists
  1893.     of the collection of link state advertisements received from each
  1894.     router belonging to the area.  From this database each router
  1895.     calculates a shortest-path tree, with itself as root.  This
  1896.     shortest-path tree in turn yields a routing table for the protocol.
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904. Moy                                                            [Page 34]
  1905.  
  1906. RFC 1583                     OSPF Version 2                   March 1994
  1907.  
  1908.  
  1909.     4.1.  Inter-area routing
  1910.  
  1911.         The previous section described the operation of the protocol
  1912.         within a single area.  For intra-area routing, no other routing
  1913.         information is pertinent.  In order to be able to route to
  1914.         destinations outside of the area, the area border routers inject
  1915.         additional routing information into the area.  This additional
  1916.         information is a distillation of the rest of the Autonomous
  1917.         System's topology.
  1918.  
  1919.         This distillation is accomplished as follows: Each area border
  1920.         router is by definition connected to the backbone.  Each area
  1921.         border router summarizes the topology of its attached areas for
  1922.         transmission on the backbone, and hence to all other area border
  1923.         routers.  An area border router then has complete topological
  1924.         information concerning the backbone, and the area summaries from
  1925.         each of the other area border routers.  From this information,
  1926.         the router calculates paths to all destinations not contained in
  1927.         its attached areas.  The router then advertises these paths into
  1928.         its attached areas.  This enables the area's internal routers to
  1929.         pick the best exit router when forwarding traffic to
  1930.         destinations in other areas.
  1931.  
  1932.  
  1933.     4.2.  AS external routes
  1934.  
  1935.         Routers that have information regarding other Autonomous Systems
  1936.         can flood this information throughout the AS.  This external
  1937.         routing information is distributed verbatim to every
  1938.         participating router.  There is one exception: external routing
  1939.         information is not flooded into "stub" areas (see Section 3.6).
  1940.  
  1941.         To utilize external routing information, the path to all routers
  1942.         advertising external information must be known throughout the AS
  1943.         (excepting the stub areas).  For that reason, the locations of
  1944.         these AS boundary routers are summarized by the (non-stub) area
  1945.         border routers.
  1946.  
  1947.  
  1948.     4.3.  Routing protocol packets
  1949.  
  1950.         The OSPF protocol runs directly over IP, using IP protocol 89.
  1951.         OSPF does not provide any explicit fragmentation/reassembly
  1952.         support.  When fragmentation is necessary, IP
  1953.         fragmentation/reassembly is used.  OSPF protocol packets have
  1954.         been designed so that large protocol packets can generally be
  1955.         split into several smaller protocol packets.  This practice is
  1956.         recommended; IP fragmentation should be avoided whenever
  1957.  
  1958.  
  1959.  
  1960. Moy                                                            [Page 35]
  1961.  
  1962. RFC 1583                     OSPF Version 2                   March 1994
  1963.  
  1964.  
  1965.         possible.
  1966.  
  1967.         Routing protocol packets should always be sent with the IP TOS
  1968.         field set to 0.  If at all possible, routing protocol packets
  1969.         should be given preference over regular IP data traffic, both
  1970.         when being sent and received.  As an aid to accomplishing this,
  1971.         OSPF protocol packets should have their IP precedence field set
  1972.         to the value Internetwork Control (see [RFC 791]).
  1973.  
  1974.         All OSPF protocol packets share a common protocol header that is
  1975.         described in Appendix A.  The OSPF packet types are listed below
  1976.         in Table 8.  Their formats are also described in Appendix A.
  1977.  
  1978.  
  1979.  
  1980.              Type   Packet  name           Protocol  function
  1981.              __________________________________________________________
  1982.              1      Hello                  Discover/maintain  neighbors
  1983.              2      Database Description   Summarize database contents
  1984.              3      Link State Request     Database download
  1985.              4      Link State Update      Database update
  1986.              5      Link State Ack         Flooding acknowledgment
  1987.  
  1988.  
  1989.                             Table 8: OSPF packet types.
  1990.  
  1991.  
  1992.         OSPF's Hello protocol uses Hello packets to discover and
  1993.         maintain neighbor relationships.  The Database Description and
  1994.         Link State Request packets are used in the forming of
  1995.         adjacencies.  OSPF's reliable update mechanism is implemented by
  1996.         the Link State Update and Link State Acknowledgment packets.
  1997.  
  1998.         Each Link State Update packet carries a set of new link state
  1999.         advertisements one hop further away from their point of
  2000.         origination.  A single Link State Update packet may contain the
  2001.         link state advertisements of several routers.  Each
  2002.         advertisement is tagged with the ID of the originating router
  2003.         and a checksum of its link state contents.  The five different
  2004.         types of OSPF link state advertisements are listed below in
  2005.         Table 9.
  2006.  
  2007.         As mentioned above, OSPF routing packets (with the exception of
  2008.         Hellos) are sent only over adjacencies.  Note that this means
  2009.         that all OSPF protocol packets travel a single IP hop, except
  2010.         those that are sent over virtual adjacencies.  The IP source
  2011.         address of an OSPF protocol packet is one end of a router
  2012.         adjacency, and the IP destination address is either the other
  2013.  
  2014.  
  2015.  
  2016. Moy                                                            [Page 36]
  2017.  
  2018. RFC 1583                     OSPF Version 2                   March 1994
  2019.  
  2020.  
  2021.  
  2022.  
  2023.        LS     Advertisement      Advertisement description
  2024.        type   name
  2025.        _________________________________________________________
  2026.        1      Router links       Originated by all routers.
  2027.               advertisements     This advertisement describes
  2028.                                  the collected states of the
  2029.                                  router's interfaces to an
  2030.                                  area. Flooded throughout a
  2031.                                  single area only.
  2032.        _________________________________________________________
  2033.        2      Network links      Originated for multi-access
  2034.               advertisements     networks by the Designated
  2035.                                  Router. This advertisement
  2036.                                  contains the list of routers
  2037.                                  connected to the network.
  2038.                                  Flooded throughout a single
  2039.                                  area only.
  2040.        _________________________________________________________
  2041.        3,4    Summary link       Originated by area border
  2042.               advertisements     routers, and flooded through-
  2043.                                  out the advertisement's
  2044.                                  associated area. Each summary
  2045.                                  link advertisement describes
  2046.                                  a route to a destination out-
  2047.                                  side the area, yet still inside
  2048.                                  the AS (i.e., an inter-area
  2049.                                  route). Type 3 advertisements
  2050.                                  describe routes to networks.
  2051.                                  Type 4 advertisements describe
  2052.                                  routes to AS boundary routers.
  2053.        _________________________________________________________
  2054.        5      AS external link   Originated by AS boundary
  2055.               advertisements     routers, and flooded through-
  2056.                                  out the AS. Each AS external
  2057.                                  link advertisement describes
  2058.                                  a route to a destination in
  2059.                                  another Autonomous System.
  2060.                                  Default routes for the AS can
  2061.                                  also be described by AS
  2062.                                  external link advertisements.
  2063.  
  2064.  
  2065.                 Table 9: OSPF link state advertisements.
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072. Moy                                                            [Page 37]
  2073.  
  2074. RFC 1583                     OSPF Version 2                   March 1994
  2075.  
  2076.  
  2077.         end of the adjacency or an IP multicast address.
  2078.  
  2079.  
  2080.     4.4.  Basic implementation requirements
  2081.  
  2082.         An implementation of OSPF requires the following pieces of
  2083.         system support:
  2084.  
  2085.  
  2086.         Timers
  2087.             Two different kind of timers are required.  The first kind,
  2088.             called single shot timers, fire once and cause a protocol
  2089.             event to be processed.  The second kind, called interval
  2090.             timers, fire at continuous intervals.  These are used for
  2091.             the sending of packets at regular intervals.  A good example
  2092.             of this is the regular broadcast of Hello packets (on
  2093.             broadcast networks).  The granularity of both kinds of
  2094.             timers is one second.
  2095.  
  2096.             Interval timers should be implemented to avoid drift.  In
  2097.             some router implementations, packet processing can affect
  2098.             timer execution.  When multiple routers are attached to a
  2099.             single network, all doing broadcasts, this can lead to the
  2100.             synchronization of routing packets (which should be
  2101.             avoided).  If timers cannot be implemented to avoid drift,
  2102.             small random amounts should be added to/subtracted from the
  2103.             timer interval at each firing.
  2104.  
  2105.         IP multicast
  2106.             Certain OSPF packets take the form of IP multicast
  2107.             datagrams.  Support for receiving and sending IP multicast
  2108.             datagrams, along with the appropriate lower-level protocol
  2109.             support, is required.  The IP multicast datagrams used by
  2110.             OSPF never travel more than one hop. For this reason, the
  2111.             ability to forward IP multicast datagrams is not required.
  2112.             For information on IP multicast, see [RFC 1112].
  2113.  
  2114.         Variable-length subnet support
  2115.             The router's IP protocol support must include the ability to
  2116.             divide a single IP class A, B, or C network number into many
  2117.             subnets of various sizes.  This is commonly called
  2118.             variable-length subnetting; see Section 3.5 for details.
  2119.  
  2120.         IP supernetting support
  2121.             The router's IP protocol support must include the ability to
  2122.             aggregate contiguous collections of IP class A, B, and C
  2123.             networks into larger quantities called supernets.
  2124.             Supernetting has been proposed as one way to improve the
  2125.  
  2126.  
  2127.  
  2128. Moy                                                            [Page 38]
  2129.  
  2130. RFC 1583                     OSPF Version 2                   March 1994
  2131.  
  2132.  
  2133.             scaling of IP routing in the worldwide Internet. For more
  2134.             information on IP supernetting, see [RFC 1519].
  2135.  
  2136.         Lower-level protocol support
  2137.             The lower level protocols referred to here are the network
  2138.             access protocols, such as the Ethernet data link layer.
  2139.             Indications must be passed from these protocols to OSPF as
  2140.             the network interface goes up and down.  For example, on an
  2141.             ethernet it would be valuable to know when the ethernet
  2142.             transceiver cable becomes unplugged.
  2143.  
  2144.         Non-broadcast lower-level protocol support
  2145.             Remember that non-broadcast networks are multi-access
  2146.             networks such as a X.25 PDN.  On these networks, the Hello
  2147.             Protocol can be aided by providing an indication to OSPF
  2148.             when an attempt is made to send a packet to a dead or non-
  2149.             existent router.  For example, on an X.25 PDN a dead
  2150.             neighboring router may be indicated by the reception of a
  2151.             X.25 clear with an appropriate cause and diagnostic, and
  2152.             this information would be passed to OSPF.
  2153.  
  2154.         List manipulation primitives
  2155.             Much of the OSPF functionality is described in terms of its
  2156.             operation on lists of link state advertisements.  For
  2157.             example, the collection of advertisements that will be
  2158.             retransmitted to an adjacent router until acknowledged are
  2159.             described as a list.  Any particular advertisement may be on
  2160.             many such lists.  An OSPF implementation needs to be able to
  2161.             manipulate these lists, adding and deleting constituent
  2162.             advertisements as necessary.
  2163.  
  2164.         Tasking support
  2165.             Certain procedures described in this specification invoke
  2166.             other procedures.  At times, these other procedures should
  2167.             be executed in-line, that is, before the current procedure
  2168.             is finished.  This is indicated in the text by instructions
  2169.             to execute a procedure.  At other times, the other
  2170.             procedures are to be executed only when the current
  2171.             procedure has finished.  This is indicated by instructions
  2172.             to schedule a task.
  2173.  
  2174.  
  2175.     4.5.  Optional OSPF capabilities
  2176.  
  2177.         The OSPF protocol defines several optional capabilities.  A
  2178.         router indicates the optional capabilities that it supports in
  2179.         its OSPF Hello packets, Database Description packets and in its
  2180.         link state advertisements.  This enables routers supporting a
  2181.  
  2182.  
  2183.  
  2184. Moy                                                            [Page 39]
  2185.  
  2186. RFC 1583                     OSPF Version 2                   March 1994
  2187.  
  2188.  
  2189.         mix of optional capabilities to coexist in a single Autonomous
  2190.         System.
  2191.  
  2192.         Some capabilities must be supported by all routers attached to a
  2193.         specific area.  In this case, a router will not accept a
  2194.         neighbor's Hello Packet unless there is a match in reported
  2195.         capabilities (i.e., a capability mismatch prevents a neighbor
  2196.         relationship from forming).  An example of this is the
  2197.         ExternalRoutingCapability (see below).
  2198.  
  2199.         Other capabilities can be negotiated during the Database
  2200.         Exchange process.  This is accomplished by specifying the
  2201.         optional capabilities in Database Description packets.  A
  2202.         capability mismatch with a neighbor in this case will result in
  2203.         only a subset of link state advertisements being exchanged
  2204.         between the two neighbors.
  2205.  
  2206.         The routing table build process can also be affected by the
  2207.         presence/absence of optional capabilities.  For example, since
  2208.         the optional capabilities are reported in link state
  2209.         advertisements, routers incapable of certain functions can be
  2210.         avoided when building the shortest path tree.  An example of
  2211.         this is the TOS routing capability (see below).
  2212.  
  2213.         The current OSPF optional capabilities are listed below.  See
  2214.         Section A.2 for more information.
  2215.  
  2216.  
  2217.         ExternalRoutingCapability
  2218.             Entire OSPF areas can be configured as "stubs" (see Section
  2219.             3.6).  AS external advertisements will not be flooded into
  2220.             stub areas.  This capability is represented by the E-bit in
  2221.             the OSPF options field (see Section A.2).  In order to
  2222.             ensure consistent configuration of stub areas, all routers
  2223.             interfacing to such an area must have the E-bit clear in
  2224.             their Hello packets (see Sections 9.5 and 10.5).
  2225.  
  2226.         TOS capability
  2227.             All OSPF implementations must be able to calculate separate
  2228.             routes based on IP Type of Service.  However, to save
  2229.             routing table space and processing resources, an OSPF router
  2230.             can be configured to ignore TOS when forwarding packets.  In
  2231.             this case, the router calculates routes for TOS 0 only.
  2232.             This capability is represented by the T-bit in the OSPF
  2233.             options field (see Section A.2).  TOS-capable routers will
  2234.             attempt to avoid non-TOS-capable routers when calculating
  2235.             non-zero TOS paths.
  2236.  
  2237.  
  2238.  
  2239.  
  2240. Moy                                                            [Page 40]
  2241.  
  2242. RFC 1583                     OSPF Version 2                   March 1994
  2243.  
  2244.  
  2245. 5.  Protocol Data Structures
  2246.  
  2247.     The OSPF protocol is described in this specification in terms of its
  2248.     operation on various protocol data structures.  The following list
  2249.     comprises the top-level OSPF data structures.  Any initialization
  2250.     that needs to be done is noted.  OSPF areas, interfaces and
  2251.     neighbors also have associated data structures that are described
  2252.     later in this specification.
  2253.  
  2254.  
  2255.     Router ID
  2256.         A 32-bit number that uniquely identifies this router in the AS.
  2257.         One possible implementation strategy would be to use the
  2258.         smallest IP interface address belonging to the router. If a
  2259.         router's OSPF Router ID is changed, the router's OSPF software
  2260.         should be restarted before the new Router ID takes effect.
  2261.         Before restarting in order to change its Router ID, the router
  2262.         should flush its self-originated link state advertisements from
  2263.         the routing domain (see Section 14.1), or they will persist for
  2264.         up to MaxAge minutes.
  2265.  
  2266.     Area structures
  2267.         Each one of the areas to which the router is connected has its
  2268.         own data structure.  This data structure describes the working
  2269.         of the basic algorithm.  Remember that each area runs a separate
  2270.         copy of the basic algorithm.
  2271.  
  2272.     Backbone (area) structure
  2273.         The basic algorithm operates on the backbone as if it were an
  2274.         area.  For this reason the backbone is represented as an area
  2275.         structure.
  2276.  
  2277.     Virtual links configured
  2278.         The virtual links configured with this router as one endpoint.
  2279.         In order to have configured virtual links, the router itself
  2280.         must be an area border router.  Virtual links are identified by
  2281.         the Router ID of the other endpoint -- which is another area
  2282.         border router.  These two endpoint routers must be attached to a
  2283.         common area, called the virtual link's Transit area.  Virtual
  2284.         links are part of the backbone, and behave as if they were
  2285.         unnumbered point-to-point networks between the two routers.  A
  2286.         virtual link uses the intra-area routing of its Transit area to
  2287.         forward packets.  Virtual links are brought up and down through
  2288.         the building of the shortest-path trees for the Transit area.
  2289.  
  2290.     List of external routes
  2291.         These are routes to destinations external to the Autonomous
  2292.         System, that have been gained either through direct experience
  2293.  
  2294.  
  2295.  
  2296. Moy                                                            [Page 41]
  2297.  
  2298. RFC 1583                     OSPF Version 2                   March 1994
  2299.  
  2300.  
  2301.         with another routing protocol (such as EGP), or through
  2302.         configuration information, or through a combination of the two
  2303.         (e.g., dynamic external information to be advertised by OSPF
  2304.         with configured metric). Any router having these external routes
  2305.         is called an AS boundary router.  These routes are advertised by
  2306.         the router into the OSPF routing domain via AS external link
  2307.         advertisements.
  2308.  
  2309.     List of AS external link advertisements
  2310.         Part of the topological database.  These have originated from
  2311.         the AS boundary routers.  They comprise routes to destinations
  2312.         external to the Autonomous System.  Note that, if the router is
  2313.         itself an AS boundary router, some of these AS external link
  2314.         advertisements have been self-originated.
  2315.  
  2316.     The routing table
  2317.         Derived from the topological database.  Each destination that
  2318.         the router can forward to is represented by a cost and a set of
  2319.         paths.  A path is described by its type and next hop.  For more
  2320.         information, see Section 11.
  2321.  
  2322.     TOS capability
  2323.         This item indicates whether the router will calculate separate
  2324.         routes based on TOS.  This is a configurable parameter.  For
  2325.         more information, see Sections 4.5 and 16.9.
  2326.  
  2327.  
  2328.     Figure 9 shows the collection of data structures present in a
  2329.     typical router.  The router pictured is RT10, from the map in Figure
  2330.     6.  Note that Router RT10 has a virtual link configured to Router
  2331.     RT11, with Area 2 as the link's Transit area.  This is indicated by
  2332.     the dashed line in Figure 9.  When the virtual link becomes active,
  2333.     through the building of the shortest path tree for Area 2, it
  2334.     becomes an interface to the backbone (see the two backbone
  2335.     interfaces depicted in Figure 9).
  2336.  
  2337. 6.  The Area Data Structure
  2338.  
  2339.     The area data structure contains all the information used to run the
  2340.     basic routing algorithm. Each area maintains its own topological
  2341.     database. A network belongs to a single area, and a router interface
  2342.     connects to a single area. Each router adjacency also belongs to a
  2343.     single area.
  2344.  
  2345.     The OSPF backbone has all the properties of an area.  For that
  2346.     reason it is also represented by an area data structure.  Note that
  2347.     some items in the structure apply differently to the backbone than
  2348.     to non-backbone areas.
  2349.  
  2350.  
  2351.  
  2352. Moy                                                            [Page 42]
  2353.  
  2354. RFC 1583                     OSPF Version 2                   March 1994
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.                               +----+
  2361.                               |RT10|------+
  2362.                               +----+       \+-------------+
  2363.                              /      \       |Routing Table|
  2364.                             /        \      +-------------+
  2365.                            /          \
  2366.               +------+    /            \    +--------+
  2367.               |Area 2|---+              +---|Backbone|
  2368.               +------+***********+          +--------+
  2369.              /        \           *        /          \
  2370.             /          \           *      /            \
  2371.        +---------+  +---------+    +------------+       +------------+
  2372.        |Interface|  |Interface|    |Virtual Link|       |Interface Ib|
  2373.        |  to N6  |  |  to N8  |    |   to RT11  |       +------------+
  2374.        +---------+  +---------+    +------------+             |
  2375.            /  \           |               |                   |
  2376.           /    \          |               |                   |
  2377.    +--------+ +--------+  |        +-------------+      +------------+
  2378.    |Neighbor| |Neighbor|  |        |Neighbor RT11|      |Neighbor RT6|
  2379.    |  RT8   | |  RT7   |  |        +-------------+      +------------+
  2380.    +--------+ +--------+  |
  2381.                           |
  2382.                      +-------------+
  2383.                      |Neighbor RT11|
  2384.                      +-------------+
  2385.  
  2386.  
  2387.                 Figure 9: Router RT10's Data structures
  2388.  
  2389.     The area topological (or link state) database consists of the
  2390.     collection of router links, network links and summary link
  2391.     advertisements that have originated from the area's routers.  This
  2392.     information is flooded throughout a single area only.  The list of
  2393.     AS external link advertisements (see Section 5) is also considered
  2394.     to be part of each area's topological database.
  2395.  
  2396.  
  2397.     Area ID
  2398.         A 32-bit number identifying the area.  0.0.0.0 is reserved for
  2399.         the Area ID of the backbone.  If assigning subnetted networks as
  2400.         separate areas, the IP network number could be used as the Area
  2401.         ID.
  2402.  
  2403.     List of component address ranges
  2404.         The address ranges that define the area.  Each address range is
  2405.  
  2406.  
  2407.  
  2408. Moy                                                            [Page 43]
  2409.  
  2410. RFC 1583                     OSPF Version 2                   March 1994
  2411.  
  2412.  
  2413.         specified by an [address,mask] pair and a status indication of
  2414.         either Advertise or DoNotAdvertise (see Section 12.4.3). Each
  2415.         network is then assigned to an area depending on the address
  2416.         range that it falls into (specified address ranges are not
  2417.         allowed to overlap).  As an example, if an IP subnetted network
  2418.         is to be its own separate OSPF area, the area is defined to
  2419.         consist of a single address range - an IP network number with
  2420.         its natural (class A, B or C) mask.
  2421.  
  2422.     Associated router interfaces
  2423.         This router's interfaces connecting to the area.  A router
  2424.         interface belongs to one and only one area (or the backbone).
  2425.         For the backbone structure this list includes all the virtual
  2426.         links.  A virtual link is identified by the Router ID of its
  2427.         other endpoint; its cost is the cost of the shortest intra-area
  2428.         path through the Transit area that exists between the two
  2429.         routers.
  2430.  
  2431.     List of router links advertisements
  2432.         A router links advertisement is generated by each router in the
  2433.         area.  It describes the state of the router's interfaces to the
  2434.         area.
  2435.  
  2436.     List of network links advertisements
  2437.         One network links advertisement is generated for each transit
  2438.         multi-access network in the area.  A network links advertisement
  2439.         describes the set of routers currently connected to the network.
  2440.  
  2441.     List of summary link advertisements
  2442.         Summary link advertisements originate from the area's area
  2443.         border routers.  They describe routes to destinations internal
  2444.         to the Autonomous System, yet external to the area.
  2445.  
  2446.     Shortest-path tree
  2447.         The shortest-path tree for the area, with this router itself as
  2448.         root.  Derived from the collected router links and network links
  2449.         advertisements by the Dijkstra algorithm (see Section 16.1).
  2450.  
  2451.     AuType
  2452.         The type of authentication used for this area.  Authentication
  2453.         types are defined in Appendix D.  All OSPF packet exchanges are
  2454.         authenticated.  Different authentication schemes may be used in
  2455.         different areas.
  2456.  
  2457.     TransitCapability
  2458.         Set to TRUE if and only if there are one or more active virtual
  2459.         links using the area as a Transit area. Equivalently, this
  2460.         parameter indicates whether the area can carry data traffic that
  2461.  
  2462.  
  2463.  
  2464. Moy                                                            [Page 44]
  2465.  
  2466. RFC 1583                     OSPF Version 2                   March 1994
  2467.  
  2468.  
  2469.         neither originates nor terminates in the area itself. This
  2470.         parameter is calculated when the area's shortest-path tree is
  2471.         built (see Section 16.1, and is used as an input to a subsequent
  2472.         step of the routing table build process (see Section 16.3).
  2473.  
  2474.     ExternalRoutingCapability
  2475.         Whether AS external advertisements will be flooded
  2476.         into/throughout the area.  This is a configurable parameter.  If
  2477.         AS external advertisements are excluded from the area, the area
  2478.         is called a "stub".  Internal to stub areas, routing to AS
  2479.         external destinations will be based solely on a default summary
  2480.         route.  The backbone cannot be configured as a stub area.  Also,
  2481.         virtual links cannot be configured through stub areas.  For more
  2482.         information, see Section 3.6.
  2483.  
  2484.     StubDefaultCost
  2485.         If the area has been configured as a stub area, and the router
  2486.         itself is an area border router, then the StubDefaultCost
  2487.         indicates the cost of the default summary link that the router
  2488.         should advertise into the area.  There can be a separate cost
  2489.         configured for each IP TOS.  See Section 12.4.3 for more
  2490.         information.
  2491.  
  2492.  
  2493.     Unless otherwise specified, the remaining sections of this document
  2494.     refer to the operation of the protocol in a single area.
  2495.  
  2496.  
  2497. 7.  Bringing Up Adjacencies
  2498.  
  2499.     OSPF creates adjacencies between neighboring routers for the purpose
  2500.     of exchanging routing information.  Not every two neighboring
  2501.     routers will become adjacent.  This section covers the generalities
  2502.     involved in creating adjacencies.  For further details consult
  2503.     Section 10.
  2504.  
  2505.  
  2506.     7.1.  The Hello Protocol
  2507.  
  2508.         The Hello Protocol is responsible for establishing and
  2509.         maintaining neighbor relationships.  It also ensures that
  2510.         communication between neighbors is bidirectional.  Hello packets
  2511.         are sent periodically out all router interfaces.  Bidirectional
  2512.         communication is indicated when the router sees itself listed in
  2513.         the neighbor's Hello Packet.
  2514.  
  2515.         On multi-access networks, the Hello Protocol elects a Designated
  2516.         Router for the network.  Among other things, the Designated
  2517.  
  2518.  
  2519.  
  2520. Moy                                                            [Page 45]
  2521.  
  2522. RFC 1583                     OSPF Version 2                   March 1994
  2523.  
  2524.  
  2525.         Router controls what adjacencies will be formed over the network
  2526.         (see below).
  2527.  
  2528.         The Hello Protocol works differently on broadcast networks, as
  2529.         compared to non-broadcast networks.  On broadcast networks, each
  2530.         router advertises itself by periodically multicasting Hello
  2531.         Packets.  This allows neighbors to be discovered dynamically.
  2532.         These Hello Packets contain the router's view of the Designated
  2533.         Router's identity, and the list of routers whose Hello Packets
  2534.         have been seen recently.
  2535.  
  2536.         On non-broadcast networks some configuration information is
  2537.         necessary for the operation of the Hello Protocol.  Each router
  2538.         that may potentially become Designated Router has a list of all
  2539.         other routers attached to the network.  A router, having
  2540.         Designated Router potential, sends Hello Packets to all other
  2541.         potential Designated Routers when its interface to the non-
  2542.         broadcast network first becomes operational.  This is an attempt
  2543.         to find the Designated Router for the network.  If the router
  2544.         itself is elected Designated Router, it begins sending Hello
  2545.         Packets to all other routers attached to the network.
  2546.  
  2547.         After a neighbor has been discovered, bidirectional
  2548.         communication ensured, and (if on a multi-access network) a
  2549.         Designated Router elected, a decision is made regarding whether
  2550.         or not an adjacency should be formed with the neighbor (see
  2551.         Section 10.4).  An attempt is always made to establish
  2552.         adjacencies over point-to-point networks and virtual links.  The
  2553.         first step in bringing up an adjacency is to synchronize the
  2554.         neighbors' topological databases.  This is covered in the next
  2555.         section.
  2556.  
  2557.  
  2558.     7.2.  The Synchronization of Databases
  2559.  
  2560.         In a link-state routing algorithm, it is very important for all
  2561.         routers' topological databases to stay synchronized.  OSPF
  2562.         simplifies this by requiring only adjacent routers to remain
  2563.         synchronized.  The synchronization process begins as soon as the
  2564.         routers attempt to bring up the adjacency.  Each router
  2565.         describes its database by sending a sequence of Database
  2566.         Description packets to its neighbor.  Each Database Description
  2567.         Packet describes a set of link state advertisements belonging to
  2568.         the router's database.  When the neighbor sees a link state
  2569.         advertisement that is more recent than its own database copy, it
  2570.         makes a note that this newer advertisement should be requested.
  2571.  
  2572.         This sending and receiving of Database Description packets is
  2573.  
  2574.  
  2575.  
  2576. Moy                                                            [Page 46]
  2577.  
  2578. RFC 1583                     OSPF Version 2                   March 1994
  2579.  
  2580.  
  2581.         called the "Database Exchange Process".  During this process,
  2582.         the two routers form a master/slave relationship.  Each Database
  2583.         Description Packet has a sequence number.  Database Description
  2584.         Packets sent by the master (polls) are acknowledged by the slave
  2585.         through echoing of the sequence number.  Both polls and their
  2586.         responses contain summaries of link state data.  The master is
  2587.         the only one allowed to retransmit Database Description Packets.
  2588.         It does so only at fixed intervals, the length of which is the
  2589.         configured constant RxmtInterval.
  2590.  
  2591.         Each Database Description contains an indication that there are
  2592.         more packets to follow --- the M-bit.  The Database Exchange
  2593.         Process is over when a router has received and sent Database
  2594.         Description Packets with the M-bit off.
  2595.  
  2596.         During and after the Database Exchange Process, each router has
  2597.         a list of those link state advertisements for which the neighbor
  2598.         has more up-to-date instances.  These advertisements are
  2599.         requested in Link State Request Packets.  Link State Request
  2600.         packets that are not satisfied are retransmitted at fixed
  2601.         intervals of time RxmtInterval.  When the Database Description
  2602.         Process has completed and all Link State Requests have been
  2603.         satisfied, the databases are deemed synchronized and the routers
  2604.         are marked fully adjacent.  At this time the adjacency is fully
  2605.         functional and is advertised in the two routers' link state
  2606.         advertisements.
  2607.  
  2608.         The adjacency is used by the flooding procedure as soon as the
  2609.         Database Exchange Process begins.  This simplifies database
  2610.         synchronization, and guarantees that it finishes in a
  2611.         predictable period of time.
  2612.  
  2613.  
  2614.     7.3.  The Designated Router
  2615.  
  2616.         Every multi-access network has a Designated Router.  The
  2617.         Designated Router performs two main functions for the routing
  2618.         protocol:
  2619.  
  2620.         o   The Designated Router originates a network links
  2621.             advertisement on behalf of the network.  This advertisement
  2622.             lists the set of routers (including the Designated Router
  2623.             itself) currently attached to the network.  The Link State
  2624.             ID for this advertisement (see Section 12.1.4) is the IP
  2625.             interface address of the Designated Router.  The IP network
  2626.             number can then be obtained by using the subnet/network
  2627.             mask.
  2628.  
  2629.  
  2630.  
  2631.  
  2632. Moy                                                            [Page 47]
  2633.  
  2634. RFC 1583                     OSPF Version 2                   March 1994
  2635.  
  2636.  
  2637.         o   The Designated Router becomes adjacent to all other routers
  2638.             on the network.  Since the link state databases are
  2639.             synchronized across adjacencies (through adjacency bring-up
  2640.             and then the flooding procedure), the Designated Router
  2641.             plays a central part in the synchronization process.
  2642.  
  2643.  
  2644.         The Designated Router is elected by the Hello Protocol.  A
  2645.         router's Hello Packet contains its Router Priority, which is
  2646.         configurable on a per-interface basis.  In general, when a
  2647.         router's interface to a network first becomes functional, it
  2648.         checks to see whether there is currently a Designated Router for
  2649.         the network.  If there is, it accepts that Designated Router,
  2650.         regardless of its Router Priority.  (This makes it harder to
  2651.         predict the identity of the Designated Router, but ensures that
  2652.         the Designated Router changes less often.  See below.)
  2653.         Otherwise, the router itself becomes Designated Router if it has
  2654.         the highest Router Priority on the network.  A more detailed
  2655.         (and more accurate) description of Designated Router election is
  2656.         presented in Section 9.4.
  2657.  
  2658.         The Designated Router is the endpoint of many adjacencies.  In
  2659.         order to optimize the flooding procedure on broadcast networks,
  2660.         the Designated Router multicasts its Link State Update Packets
  2661.         to the address AllSPFRouters, rather than sending separate
  2662.         packets over each adjacency.
  2663.  
  2664.         Section 2 of this document discusses the directed graph
  2665.         representation of an area.  Router nodes are labelled with their
  2666.         Router ID.  Multi-access network nodes are actually labelled
  2667.         with the IP address of their Designated Router.  It follows that
  2668.         when the Designated Router changes, it appears as if the network
  2669.         node on the graph is replaced by an entirely new node.  This
  2670.         will cause the network and all its attached routers to originate
  2671.         new link state advertisements.  Until the topological databases
  2672.         again converge, some temporary loss of connectivity may result.
  2673.         This may result in ICMP unreachable messages being sent in
  2674.         response to data traffic.  For that reason, the Designated
  2675.         Router should change only infrequently.  Router Priorities
  2676.         should be configured so that the most dependable router on a
  2677.         network eventually becomes Designated Router.
  2678.  
  2679.  
  2680.     7.4.  The Backup Designated Router
  2681.  
  2682.         In order to make the transition to a new Designated Router
  2683.         smoother, there is a Backup Designated Router for each multi-
  2684.         access network.  The Backup Designated Router is also adjacent
  2685.  
  2686.  
  2687.  
  2688. Moy                                                            [Page 48]
  2689.  
  2690. RFC 1583                     OSPF Version 2                   March 1994
  2691.  
  2692.  
  2693.         to all routers on the network, and becomes Designated Router
  2694.         when the previous Designated Router fails.  If there were no
  2695.         Backup Designated Router, when a new Designated Router became
  2696.         necessary, new adjacencies would have to be formed between the
  2697.         new Designated Router and all other routers attached to the
  2698.         network.  Part of the adjacency forming process is the
  2699.         synchronizing of topological databases, which can potentially
  2700.         take quite a long time.  During this time, the network would not
  2701.         be available for transit data traffic.  The Backup Designated
  2702.         obviates the need to form these adjacencies, since they already
  2703.         exist.  This means the period of disruption in transit traffic
  2704.         lasts only as long as it takes to flood the new link state
  2705.         advertisements (which announce the new Designated Router).
  2706.  
  2707.         The Backup Designated Router does not generate a network links
  2708.         advertisement for the network.  (If it did, the transition to a
  2709.         new Designated Router would be even faster.  However, this is a
  2710.         tradeoff between database size and speed of convergence when the
  2711.         Designated Router disappears.)
  2712.  
  2713.         The Backup Designated Router is also elected by the Hello
  2714.         Protocol.  Each Hello Packet has a field that specifies the
  2715.         Backup Designated Router for the network.
  2716.  
  2717.         In some steps of the flooding procedure, the Backup Designated
  2718.         Router plays a passive role, letting the Designated Router do
  2719.         more of the work.  This cuts down on the amount of local routing
  2720.         traffic.  See Section 13.3 for more information.
  2721.  
  2722.  
  2723.     7.5.  The graph of adjacencies
  2724.  
  2725.         An adjacency is bound to the network that the two routers have
  2726.         in common.  If two routers have multiple networks in common,
  2727.         they may have multiple adjacencies between them.
  2728.  
  2729.         One can picture the collection of adjacencies on a network as
  2730.         forming an undirected graph.  The vertices consist of routers,
  2731.         with an edge joining two routers if they are adjacent.  The
  2732.         graph of adjacencies describes the flow of routing protocol
  2733.         packets, and in particular Link State Update Packets, through
  2734.         the Autonomous System.
  2735.  
  2736.         Two graphs are possible, depending on whether the common network
  2737.         is multi-access.  On physical point-to-point networks (and
  2738.         virtual links), the two routers joined by the network will be
  2739.         adjacent after their databases have been synchronized.  On
  2740.         multi-access networks, both the Designated Router and the Backup
  2741.  
  2742.  
  2743.  
  2744. Moy                                                            [Page 49]
  2745.  
  2746. RFC 1583                     OSPF Version 2                   March 1994
  2747.  
  2748.  
  2749.         Designated Router are adjacent to all other routers attached to
  2750.         the network, and these account for all adjacencies.
  2751.  
  2752.         These graphs are shown in Figure 10.  It is assumed that Router
  2753.         RT7 has become the Designated Router, and Router RT3 the Backup
  2754.         Designated Router, for the Network N2.  The Backup Designated
  2755.         Router performs a lesser function during the flooding procedure
  2756.         than the Designated Router (see Section 13.3).  This is the
  2757.         reason for the dashed lines connecting the Backup Designated
  2758.         Router RT3.
  2759.  
  2760.  
  2761. 8.  Protocol Packet Processing
  2762.  
  2763.     This section discusses the general processing of OSPF routing
  2764.     protocol packets.  It is very important that the router topological
  2765.     databases remain synchronized.  For this reason, routing protocol
  2766.     packets should get preferential treatment over ordinary data
  2767.     packets, both in sending and receiving.
  2768.  
  2769.     Routing protocol packets are sent along adjacencies only (with the
  2770.  
  2771.  
  2772.  
  2773.           +---+            +---+
  2774.           |RT1|------------|RT2|            o---------------o
  2775.           +---+    N1      +---+           RT1             RT2
  2776.  
  2777.  
  2778.  
  2779.                                                  RT7
  2780.                                                   o---------+
  2781.             +---+   +---+   +---+                /|\        |
  2782.             |RT7|   |RT3|   |RT4|               / | \       |
  2783.             +---+   +---+   +---+              /  |  \      |
  2784.               |       |       |               /   |   \     |
  2785.          +-----------------------+        RT5o RT6o    oRT4 |
  2786.                   |       |     N2            *   *   *     |
  2787.                 +---+   +---+                  *  *  *      |
  2788.                 |RT5|   |RT6|                   * * *       |
  2789.                 +---+   +---+                    ***        |
  2790.                                                   o---------+
  2791.                                                  RT3
  2792.  
  2793.  
  2794.                   Figure 10: The graph of adjacencies
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800. Moy                                                            [Page 50]
  2801.  
  2802. RFC 1583                     OSPF Version 2                   March 1994
  2803.  
  2804.  
  2805.     exception of Hello packets, which are used to discover the
  2806.     adjacencies).  This means that all routing protocol packets travel a
  2807.     single IP hop, except those sent over virtual links.
  2808.  
  2809.     All routing protocol packets begin with a standard header.  The
  2810.     sections below give the details on how to fill in and verify this
  2811.     standard header.  Then, for each packet type, the section is listed
  2812.     that gives more details on that particular packet type's processing.
  2813.  
  2814.     8.1.  Sending protocol packets
  2815.  
  2816.         When a router sends a routing protocol packet, it fills in the
  2817.         fields of the standard OSPF packet header as follows.  For more
  2818.         details on the header format consult Section A.3.1:
  2819.  
  2820.  
  2821.         Version #
  2822.             Set to 2, the version number of the protocol as documented
  2823.             in this specification.
  2824.  
  2825.         Packet type
  2826.             The type of OSPF packet, such as Link state Update or Hello
  2827.             Packet.
  2828.  
  2829.         Packet length
  2830.             The length of the entire OSPF packet in bytes, including the
  2831.             standard OSPF packet header.
  2832.  
  2833.         Router ID
  2834.             The identity of the router itself (who is originating the
  2835.             packet).
  2836.  
  2837.         Area ID
  2838.             The OSPF area that the packet is being sent into.
  2839.  
  2840.         Checksum
  2841.             The standard IP 16-bit one's complement checksum of the
  2842.             entire OSPF packet, excluding the 64-bit authentication
  2843.             field.  This checksum should be calculated before handing
  2844.             the packet to the appropriate authentication procedure.
  2845.  
  2846.         AuType and Authentication
  2847.             Each OSPF packet exchange is authenticated.  Authentication
  2848.             types are assigned by the protocol and documented in
  2849.             Appendix D.  A different authentication scheme can be used
  2850.             for each OSPF area.  The 64-bit authentication field is set
  2851.             by the appropriate authentication procedure (determined by
  2852.             AuType).  This procedure should be the last called when
  2853.  
  2854.  
  2855.  
  2856. Moy                                                            [Page 51]
  2857.  
  2858. RFC 1583                     OSPF Version 2                   March 1994
  2859.  
  2860.  
  2861.             forming the packet to be sent.  The setting of the
  2862.             authentication field is determined by the packet contents
  2863.             and the authentication key (which is configurable on a per-
  2864.             interface basis).
  2865.  
  2866.  
  2867.         The IP destination address for the packet is selected as
  2868.         follows.  On physical point-to-point networks, the IP
  2869.         destination is always set to the address AllSPFRouters.  On all
  2870.         other network types (including virtual links), the majority of
  2871.         OSPF packets are sent as unicasts, i.e., sent directly to the
  2872.         other end of the adjacency.  In this case, the IP destination is
  2873.         just the Neighbor IP address associated with the other end of
  2874.         the adjacency (see Section 10).  The only packets not sent as
  2875.         unicasts are on broadcast networks; on these networks Hello
  2876.         packets are sent to the multicast destination AllSPFRouters, the
  2877.         Designated Router and its Backup send both Link State Update
  2878.         Packets and Link State Acknowledgment Packets to the multicast
  2879.         address AllSPFRouters, while all other routers send both their
  2880.         Link State Update and Link State Acknowledgment Packets to the
  2881.         multicast address AllDRouters.
  2882.  
  2883.         Retransmissions of Link State Update packets are ALWAYS sent as
  2884.         unicasts.
  2885.  
  2886.         The IP source address should be set to the IP address of the
  2887.         sending interface.  Interfaces to unnumbered point-to-point
  2888.         networks have no associated IP address.  On these interfaces,
  2889.         the IP source should be set to any of the other IP addresses
  2890.         belonging to the router.  For this reason, there must be at
  2891.         least one IP address assigned to the router.[2] Note that, for
  2892.         most purposes, virtual links act precisely the same as
  2893.         unnumbered point-to-point networks.  However, each virtual link
  2894.         does have an IP interface address (discovered during the routing
  2895.         table build process) which is used as the IP source when sending
  2896.         packets over the virtual link.
  2897.  
  2898.         For more information on the format of specific OSPF packet
  2899.         types, consult the sections listed in Table 10.
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912. Moy                                                            [Page 52]
  2913.  
  2914. RFC 1583                     OSPF Version 2                   March 1994
  2915.  
  2916.  
  2917.  
  2918.              Type   Packet name            detailed section (transmit)
  2919.              _________________________________________________________
  2920.              1      Hello                  Section  9.5
  2921.              2      Database description   Section 10.8
  2922.              3      Link state request     Section 10.9
  2923.              4      Link state update      Section 13.3
  2924.              5      Link state ack         Section 13.5
  2925.  
  2926.  
  2927.             Table 10: Sections describing OSPF protocol packet transmission.
  2928.  
  2929.  
  2930.  
  2931.     8.2.  Receiving protocol packets
  2932.  
  2933.         Whenever a protocol packet is received by the router it is
  2934.         marked with the interface it was received on.  For routers that
  2935.         have virtual links configured, it may not be immediately obvious
  2936.         which interface to associate the packet with.  For example,
  2937.         consider the Router RT11 depicted in Figure 6.  If RT11 receives
  2938.         an OSPF protocol packet on its interface to Network N8, it may
  2939.         want to associate the packet with the interface to Area 2, or
  2940.         with the virtual link to Router RT10 (which is part of the
  2941.         backbone).  In the following, we assume that the packet is
  2942.         initially associated with the non-virtual  link.[3]
  2943.  
  2944.         In order for the packet to be accepted at the IP level, it must
  2945.         pass a number of tests, even before the packet is passed to OSPF
  2946.         for processing:
  2947.  
  2948.  
  2949.         o   The IP checksum must be correct.
  2950.  
  2951.         o   The packet's IP destination address must be the IP address
  2952.             of the receiving interface, or one of the IP multicast
  2953.             addresses AllSPFRouters or AllDRouters.
  2954.  
  2955.         o   The IP protocol specified must be OSPF (89).
  2956.  
  2957.         o   Locally originated packets should not be passed on to OSPF.
  2958.             That is, the source IP address should be examined to make
  2959.             sure this is not a multicast packet that the router itself
  2960.             generated.
  2961.  
  2962.  
  2963.         Next, the OSPF packet header is verified.  The fields specified
  2964.         in the header must match those configured for the receiving
  2965.  
  2966.  
  2967.  
  2968. Moy                                                            [Page 53]
  2969.  
  2970. RFC 1583                     OSPF Version 2                   March 1994
  2971.  
  2972.  
  2973.         interface.  If they do not, the packet should be discarded:
  2974.  
  2975.  
  2976.         o   The version number field must specify protocol version 2.
  2977.  
  2978.         o   The 16-bit one's complement checksum of the OSPF packet's
  2979.             contents must be verified.  Remember that the 64-bit
  2980.             authentication field must be excluded from the checksum
  2981.             calculation.
  2982.  
  2983.         o   The Area ID found in the OSPF header must be verified.  If
  2984.             both of the following cases fail, the packet should be
  2985.             discarded.  The Area ID specified in the header must either:
  2986.  
  2987.             (1) Match the Area ID of the receiving interface.  In this
  2988.                 case, the packet has been sent over a single hop.
  2989.                 Therefore, the packet's IP source address must be on the
  2990.                 same network as the receiving interface.  This can be
  2991.                 determined by comparing the packet's IP source address
  2992.                 to the interface's IP address, after masking both
  2993.                 addresses with the interface mask.  This comparison
  2994.                 should not be performed on point-to-point networks. On
  2995.                 point-to-point networks, the interface addresses of each
  2996.                 end of the link are assigned independently, if they are
  2997.                 assigned at all.
  2998.  
  2999.             (2) Indicate the backbone.  In this case, the packet has
  3000.                 been sent over a virtual link.  The receiving router
  3001.                 must be an area border router, and the Router ID
  3002.                 specified in the packet (the source router) must be the
  3003.                 other end of a configured virtual link.  The receiving
  3004.                 interface must also attach to the virtual link's
  3005.                 configured Transit area.  If all of these checks
  3006.                 succeed, the packet is accepted and is from now on
  3007.                 associated with the virtual link (and the backbone
  3008.                 area).
  3009.  
  3010.         o   Packets whose IP destination is AllDRouters should only be
  3011.             accepted if the state of the receiving interface is DR or
  3012.             Backup (see Section 9.1).
  3013.  
  3014.         o   The AuType specified in the packet must match the AuType
  3015.             specified for the associated area.
  3016.  
  3017.  
  3018.         Next, the packet must be authenticated.  This depends on the
  3019.         AuType specified (see Appendix D).  The authentication procedure
  3020.         may use an Authentication key, which can be configured on a
  3021.  
  3022.  
  3023.  
  3024. Moy                                                            [Page 54]
  3025.  
  3026. RFC 1583                     OSPF Version 2                   March 1994
  3027.  
  3028.  
  3029.         per-interface basis.  If the authentication fails, the packet
  3030.         should be discarded.
  3031.  
  3032.         If the packet type is Hello, it should then be further processed
  3033.         by the Hello Protocol (see Section 10.5).  All other packet
  3034.         types are sent/received only on adjacencies.  This means that
  3035.         the packet must have been sent by one of the router's active
  3036.         neighbors.  If the receiving interface is a multi-access network
  3037.         (either broadcast or non-broadcast) the sender is identified by
  3038.         the IP source address found in the packet's IP header.  If the
  3039.         receiving interface is a point-to-point link or a virtual link,
  3040.         the sender is identified by the Router ID (source router) found
  3041.         in the packet's OSPF header.  The data structure associated with
  3042.         the receiving interface contains the list of active neighbors.
  3043.         Packets not matching any active neighbor are discarded.
  3044.  
  3045.         At this point all received protocol packets are associated with
  3046.         an active neighbor.  For the further input processing of
  3047.         specific packet types, consult the sections listed in Table 11.
  3048.  
  3049.  
  3050.  
  3051.               Type   Packet name            detailed section (receive)
  3052.               ________________________________________________________
  3053.               1      Hello                  Section 10.5
  3054.               2      Database description   Section 10.6
  3055.               3      Link state request     Section 10.7
  3056.               4      Link state update      Section 13
  3057.               5      Link state ack         Section 13.7
  3058.  
  3059.  
  3060.             Table 11: Sections describing OSPF protocol packet reception.
  3061.  
  3062.  
  3063.  
  3064. 9.  The Interface Data Structure
  3065.  
  3066.     An OSPF interface is the connection between a router and a network.
  3067.     There is a single OSPF interface structure for each attached
  3068.     network; each interface structure has at most one IP interface
  3069.     address (see below).  The support for multiple addresses on a single
  3070.     network is a matter for future consideration.
  3071.  
  3072.     An OSPF interface can be considered to belong to the area that
  3073.     contains the attached network.  All routing protocol packets
  3074.     originated by the router over this interface are labelled with the
  3075.     interface's Area ID.  One or more router adjacencies may develop
  3076.     over an interface.  A router's link state advertisements reflect the
  3077.  
  3078.  
  3079.  
  3080. Moy                                                            [Page 55]
  3081.  
  3082. RFC 1583                     OSPF Version 2                   March 1994
  3083.  
  3084.  
  3085.     state of its interfaces and their associated adjacencies.
  3086.  
  3087.     The following data items are associated with an interface.  Note
  3088.     that a number of these items are actually configuration for the
  3089.     attached network; those items must be the same for all routers
  3090.     connected to the network.
  3091.  
  3092.  
  3093.     Type
  3094.         The kind of network to which the interface attaches.  Its value
  3095.         is either broadcast, non-broadcast yet still multi-access,
  3096.         point-to-point or virtual link.
  3097.  
  3098.     State
  3099.         The functional level of an interface.  State determines whether
  3100.         or not full adjacencies are allowed to form over the interface.
  3101.         State is also reflected in the router's link state
  3102.         advertisements.
  3103.  
  3104.     IP interface address
  3105.         The IP address associated with the interface.  This appears as
  3106.         the IP source address in all routing protocol packets originated
  3107.         over this interface.  Interfaces to unnumbered point-to-point
  3108.         networks do not have an associated IP address.
  3109.  
  3110.     IP interface mask
  3111.         Also referred to as the subnet mask, this indicates the portion
  3112.         of the IP interface address that identifies the attached
  3113.         network.  Masking the IP interface address with the IP interface
  3114.         mask yields the IP network number of the attached network.  On
  3115.         point-to-point networks and virtual links, the IP interface mask
  3116.         is not defined. On these networks, the link itself is not
  3117.         assigned an IP network number, and so the addresses of each side
  3118.         of the link are assigned independently, if they are assigned at
  3119.         all.
  3120.  
  3121.     Area ID
  3122.         The Area ID of the area to which the attached network belongs.
  3123.         All routing protocol packets originating from the interface are
  3124.         labelled with this Area ID.
  3125.  
  3126.     HelloInterval
  3127.         The length of time, in seconds, between the Hello packets that
  3128.         the router sends on the interface.  Advertised in Hello packets
  3129.         sent out this interface.
  3130.  
  3131.     RouterDeadInterval
  3132.         The number of seconds before the router's neighbors will declare
  3133.  
  3134.  
  3135.  
  3136. Moy                                                            [Page 56]
  3137.  
  3138. RFC 1583                     OSPF Version 2                   March 1994
  3139.  
  3140.  
  3141.         it down, when they stop hearing the router's Hello Packets.
  3142.         Advertised in Hello packets sent out this interface.
  3143.  
  3144.     InfTransDelay
  3145.         The estimated number of seconds it takes to transmit a Link
  3146.         State Update Packet over this interface.  Link state
  3147.         advertisements contained in the Link State Update packet will
  3148.         have their age incremented by this amount before transmission.
  3149.         This value should take into account transmission and propagation
  3150.         delays; it must be greater than zero.
  3151.  
  3152.     Router Priority
  3153.         An 8-bit unsigned integer.  When two routers attached to a
  3154.         network both attempt to become Designated Router, the one with
  3155.         the highest Router Priority takes precedence.  A router whose
  3156.         Router Priority is set to 0 is ineligible to become Designated
  3157.         Router on the attached network.  Advertised in Hello packets
  3158.         sent out this interface.
  3159.  
  3160.     Hello Timer
  3161.         An interval timer that causes the interface to send a Hello
  3162.         packet.  This timer fires every HelloInterval seconds.  Note
  3163.         that on non-broadcast networks a separate Hello packet is sent
  3164.         to each qualified neighbor.
  3165.  
  3166.     Wait Timer
  3167.         A single shot timer that causes the interface to exit the
  3168.         Waiting state, and as a consequence select a Designated Router
  3169.         on the network.  The length of the timer is RouterDeadInterval
  3170.         seconds.
  3171.  
  3172.     List of neighboring routers
  3173.         The other routers attached to this network.  On multi-access
  3174.         networks, this list is formed by the Hello Protocol.
  3175.         Adjacencies will be formed to some of these neighbors.  The set
  3176.         of adjacent neighbors can be determined by an examination of all
  3177.         of the neighbors' states.
  3178.  
  3179.     Designated Router
  3180.         The Designated Router selected for the attached network.  The
  3181.         Designated Router is selected on all multi-access networks by
  3182.         the Hello Protocol.  Two pieces of identification are kept for
  3183.         the Designated Router: its Router ID and its IP interface
  3184.         address on the network.  The Designated Router advertises link
  3185.         state for the network; this network link state advertisement is
  3186.         labelled with the Designated Router's IP address.  The
  3187.         Designated Router is initialized to 0.0.0.0, which indicates the
  3188.         lack of a Designated Router.
  3189.  
  3190.  
  3191.  
  3192. Moy                                                            [Page 57]
  3193.  
  3194. RFC 1583                     OSPF Version 2                   March 1994
  3195.  
  3196.  
  3197.     Backup Designated Router
  3198.         The Backup Designated Router is also selected on all multi-
  3199.         access networks by the Hello Protocol.  All routers on the
  3200.         attached network become adjacent to both the Designated Router
  3201.         and the Backup Designated Router.  The Backup Designated Router
  3202.         becomes Designated Router when the current Designated Router
  3203.         fails.  The Backup Designated Router is initialized to 0.0.0.0,
  3204.         indicating the lack of a Backup Designated Router.
  3205.  
  3206.     Interface output cost(s)
  3207.         The cost of sending a data packet on the interface, expressed in
  3208.         the link state metric.  This is advertised as the link cost for
  3209.         this interface in the router links advertisement.  There may be
  3210.         a separate cost for each IP Type of Service.  The cost of an
  3211.         interface must be greater than zero.
  3212.  
  3213.     RxmtInterval
  3214.         The number of seconds between link state advertisement
  3215.         retransmissions, for adjacencies belonging to this interface.
  3216.         Also used when retransmitting Database Description and Link
  3217.         State Request Packets.
  3218.  
  3219.     Authentication key
  3220.         This configured data allows the authentication procedure to
  3221.         generate and/or verify the Authentication field in the OSPF
  3222.         header.  The Authentication key can be configured on a per-
  3223.         interface basis.  For example, if the AuType indicates simple
  3224.         password, the Authentication key would be a 64-bit password.
  3225.         This key would be inserted directly into the OSPF header when
  3226.         originating routing protocol packets, and there could be a
  3227.         separate password for each network.
  3228.  
  3229.  
  3230.     9.1.  Interface states
  3231.  
  3232.         The various states that router interfaces may attain is
  3233.         documented in this section.  The states are listed in order of
  3234.         progressing functionality.  For example, the inoperative state
  3235.         is listed first, followed by a list of intermediate states
  3236.         before the final, fully functional state is achieved.  The
  3237.         specification makes use of this ordering by sometimes making
  3238.         references such as "those interfaces in state greater than X".
  3239.         Figure 11 shows the graph of interface state changes.  The arcs
  3240.         of the graph are labelled with the event causing the state
  3241.         change.  These events are documented in Section 9.2.  The
  3242.         interface state machine is described in more detail in Section
  3243.         9.3.
  3244.  
  3245.  
  3246.  
  3247.  
  3248. Moy                                                            [Page 58]
  3249.  
  3250. RFC 1583                     OSPF Version 2                   March 1994
  3251.  
  3252.  
  3253.  
  3254.                                   +----+   UnloopInd   +--------+
  3255.                                   |Down|<--------------|Loopback|
  3256.                                   +----+               +--------+
  3257.                                      |
  3258.                                      |InterfaceUp
  3259.                           +-------+  |               +--------------+
  3260.                           |Waiting|<-+-------------->|Point-to-point|
  3261.                           +-------+                  +--------------+
  3262.                               |
  3263.                      WaitTimer|BackupSeen
  3264.                               |
  3265.                               |
  3266.                               |   NeighborChange
  3267.           +------+           +-+<---------------- +-------+
  3268.           |Backup|<----------|?|----------------->|DROther|
  3269.           +------+---------->+-+<-----+           +-------+
  3270.                     Neighbor  |       |
  3271.                     Change    |       |Neighbor
  3272.                               |       |Change
  3273.                               |     +--+
  3274.                               +---->|DR|
  3275.                                     +--+
  3276.  
  3277.                       Figure 11: Interface State changes
  3278.  
  3279.                  In addition to the state transitions pictured,
  3280.                  Event InterfaceDown always forces Down State, and
  3281.                  Event LoopInd always forces Loopback State
  3282.  
  3283.  
  3284.         Down
  3285.             This is the initial interface state.  In this state, the
  3286.             lower-level protocols have indicated that the interface is
  3287.             unusable.  No protocol traffic at all will be sent or
  3288.             received on such a interface.  In this state, interface
  3289.             parameters should be set to their initial values.  All
  3290.             interface timers should be disabled, and there should be no
  3291.             adjacencies associated with the interface.
  3292.  
  3293.         Loopback
  3294.             In this state, the router's interface to the network is
  3295.             looped back.  The interface may be looped back in hardware
  3296.             or software.  The interface will be unavailable for regular
  3297.             data traffic.  However, it may still be desirable to gain
  3298.             information on the quality of this interface, either through
  3299.             sending ICMP pings to the interface or through something
  3300.             like a bit error test.  For this reason, IP packets may
  3301.  
  3302.  
  3303.  
  3304. Moy                                                            [Page 59]
  3305.  
  3306. RFC 1583                     OSPF Version 2                   March 1994
  3307.  
  3308.  
  3309.             still be addressed to an interface in Loopback state.  To
  3310.             facilitate this, such interfaces are advertised in router
  3311.             links advertisements as single host routes, whose
  3312.             destination is the IP interface address.[4]
  3313.  
  3314.         Waiting
  3315.             In this state, the router is trying to determine the
  3316.             identity of the (Backup) Designated Router for the network.
  3317.             To do this, the router monitors the Hello Packets it
  3318.             receives.  The router is not allowed to elect a Backup
  3319.             Designated Router nor a Designated Router until it
  3320.             transitions out of Waiting state.  This prevents unnecessary
  3321.             changes of (Backup) Designated Router.
  3322.  
  3323.         Point-to-point
  3324.             In this state, the interface is operational, and connects
  3325.             either to a physical point-to-point network or to a virtual
  3326.             link.  Upon entering this state, the router attempts to form
  3327.             an adjacency with the neighboring router.  Hello Packets are
  3328.             sent to the neighbor every HelloInterval seconds.
  3329.  
  3330.         DR Other
  3331.             The interface is to a multi-access network on which another
  3332.             router has been selected to be the Designated Router.  In
  3333.             this state, the router itself has not been selected Backup
  3334.             Designated Router either.  The router forms adjacencies to
  3335.             both the Designated Router and the Backup Designated Router
  3336.             (if they exist).
  3337.  
  3338.         Backup
  3339.             In this state, the router itself is the Backup Designated
  3340.             Router on the attached network.  It will be promoted to
  3341.             Designated Router when the present Designated Router fails.
  3342.             The router establishes adjacencies to all other routers
  3343.             attached to the network.  The Backup Designated Router
  3344.             performs slightly different functions during the Flooding
  3345.             Procedure, as compared to the Designated Router (see Section
  3346.             13.3).  See Section 7.4 for more details on the functions
  3347.             performed by the Backup Designated Router.
  3348.  
  3349.         DR  In this state, this router itself is the Designated Router
  3350.             on the attached network.  Adjacencies are established to all
  3351.             other routers attached to the network.  The router must also
  3352.             originate a network links advertisement for the network
  3353.             node.  The advertisement will contain links to all routers
  3354.             (including the Designated Router itself) attached to the
  3355.             network.  See Section 7.3 for more details on the functions
  3356.             performed by the Designated Router.
  3357.  
  3358.  
  3359.  
  3360. Moy                                                            [Page 60]
  3361.  
  3362. RFC 1583                     OSPF Version 2                   March 1994
  3363.  
  3364.  
  3365.     9.2.  Events causing interface state changes
  3366.  
  3367.         State changes can be effected by a number of events.  These
  3368.         events are pictured as the labelled arcs in Figure 11.  The
  3369.         label definitions are listed below.  For a detailed explanation
  3370.         of the effect of these events on OSPF protocol operation,
  3371.         consult Section 9.3.
  3372.  
  3373.  
  3374.         InterfaceUp
  3375.             Lower-level protocols have indicated that the network
  3376.             interface is operational.  This enables the interface to
  3377.             transition out of Down state.  On virtual links, the
  3378.             interface operational indication is actually a result of the
  3379.             shortest path calculation (see Section 16.7).
  3380.  
  3381.         WaitTimer
  3382.             The Wait Timer has fired, indicating the end of the waiting
  3383.             period that is required before electing a (Backup)
  3384.             Designated Router.
  3385.  
  3386.         BackupSeen
  3387.             The router has detected the existence or non-existence of a
  3388.             Backup Designated Router for the network.  This is done in
  3389.             one of two ways.  First, an Hello Packet may be received
  3390.             from a neighbor claiming to be itself the Backup Designated
  3391.             Router.  Alternatively, an Hello Packet may be received from
  3392.             a neighbor claiming to be itself the Designated Router, and
  3393.             indicating that there is no Backup Designated Router.  In
  3394.             either case there must be bidirectional communication with
  3395.             the neighbor, i.e., the router must also appear in the
  3396.             neighbor's Hello Packet.  This event signals an end to the
  3397.             Waiting state.
  3398.  
  3399.         NeighborChange
  3400.             There has been a change in the set of bidirectional
  3401.             neighbors associated with the interface.  The (Backup)
  3402.             Designated Router needs to be recalculated.  The following
  3403.             neighbor changes lead to the NeighborChange event.  For an
  3404.             explanation of neighbor states, see Section 10.1.
  3405.  
  3406.             o   Bidirectional communication has been established to a
  3407.                 neighbor.  In other words, the state of the neighbor has
  3408.                 transitioned to 2-Way or higher.
  3409.  
  3410.             o   There is no longer bidirectional communication with a
  3411.                 neighbor.  In other words, the state of the neighbor has
  3412.                 transitioned to Init or lower.
  3413.  
  3414.  
  3415.  
  3416. Moy                                                            [Page 61]
  3417.  
  3418. RFC 1583                     OSPF Version 2                   March 1994
  3419.  
  3420.  
  3421.             o   One of the bidirectional neighbors is newly declaring
  3422.                 itself as either Designated Router or Backup Designated
  3423.                 Router.  This is detected through examination of that
  3424.                 neighbor's Hello Packets.
  3425.  
  3426.             o   One of the bidirectional neighbors is no longer
  3427.                 declaring itself as Designated Router, or is no longer
  3428.                 declaring itself as Backup Designated Router.  This is
  3429.                 again detected through examination of that neighbor's
  3430.                 Hello Packets.
  3431.  
  3432.             o   The advertised Router Priority for a bidirectional
  3433.                 neighbor has changed.  This is again detected through
  3434.                 examination of that neighbor's Hello Packets.
  3435.  
  3436.         LoopInd
  3437.             An indication has been received that the interface is now
  3438.             looped back to itself.  This indication can be received
  3439.             either from network management or from the lower level
  3440.             protocols.
  3441.  
  3442.         UnloopInd
  3443.             An indication has been received that the interface is no
  3444.             longer looped back.  As with the LoopInd event, this
  3445.             indication can be received either from network management or
  3446.             from the lower level protocols.
  3447.  
  3448.         InterfaceDown
  3449.             Lower-level protocols indicate that this interface is no
  3450.             longer functional.  No matter what the current interface
  3451.             state is, the new interface state will be Down.
  3452.  
  3453.  
  3454.     9.3.  The Interface state machine
  3455.  
  3456.         A detailed description of the interface state changes follows.
  3457.         Each state change is invoked by an event (Section 9.2).  This
  3458.         event may produce different effects, depending on the current
  3459.         state of the interface.  For this reason, the state machine
  3460.         below is organized by current interface state and received
  3461.         event.  Each entry in the state machine describes the resulting
  3462.         new interface state and the required set of additional actions.
  3463.  
  3464.         When an interface's state changes, it may be necessary to
  3465.         originate a new router links advertisement.  See Section 12.4
  3466.         for more details.
  3467.  
  3468.         Some of the required actions below involve generating events for
  3469.  
  3470.  
  3471.  
  3472. Moy                                                            [Page 62]
  3473.  
  3474. RFC 1583                     OSPF Version 2                   March 1994
  3475.  
  3476.  
  3477.         the neighbor state machine.  For example, when an interface
  3478.         becomes inoperative, all neighbor connections associated with
  3479.         the interface must be destroyed.  For more information on the
  3480.         neighbor state machine, see Section 10.3.
  3481.  
  3482.  
  3483.          State(s):  Down
  3484.  
  3485.             Event:  InterfaceUp
  3486.  
  3487.         New state:  Depends upon action routine
  3488.  
  3489.            Action:  Start the interval Hello Timer, enabling the
  3490.                     periodic sending of Hello packets out the interface.
  3491.                     If the attached network is a physical point-to-point
  3492.                     network or virtual link, the interface state
  3493.                     transitions to Point-to-Point.  Else, if the router
  3494.                     is not eligible to become Designated Router the
  3495.                     interface state transitions to DR Other.
  3496.  
  3497.                     Otherwise, the attached network is multi-access and
  3498.                     the router is eligible to become Designated Router.
  3499.                     In this case, in an attempt to discover the attached
  3500.                     network's Designated Router the interface state is
  3501.                     set to Waiting and the single shot Wait Timer is
  3502.                     started.  If in addition the attached network is
  3503.                     non-broadcast, examine the configured list of
  3504.                     neighbors for this interface and generate the
  3505.                     neighbor event Start for each neighbor that is also
  3506.                     eligible to become Designated Router.
  3507.  
  3508.  
  3509.          State(s):  Waiting
  3510.  
  3511.             Event:  BackupSeen
  3512.  
  3513.         New state:  Depends upon action routine.
  3514.  
  3515.            Action:  Calculate the attached network's Backup Designated
  3516.                     Router and Designated Router, as shown in Section
  3517.                     9.4.  As a result of this calculation, the new state
  3518.                     of the interface will be either DR Other, Backup or
  3519.                     DR.
  3520.  
  3521.  
  3522.          State(s):  Waiting
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528. Moy                                                            [Page 63]
  3529.  
  3530. RFC 1583                     OSPF Version 2                   March 1994
  3531.  
  3532.  
  3533.             Event:  WaitTimer
  3534.  
  3535.         New state:  Depends upon action routine.
  3536.  
  3537.            Action:  Calculate the attached network's Backup Designated
  3538.                     Router and Designated Router, as shown in Section
  3539.                     9.4.  As a result of this calculation, the new state
  3540.                     of the interface will be either DR Other, Backup or
  3541.                     DR.
  3542.  
  3543.  
  3544.          State(s):  DR Other, Backup or DR
  3545.  
  3546.             Event:  NeighborChange
  3547.  
  3548.         New state:  Depends upon action routine.
  3549.  
  3550.            Action:  Recalculate the attached network's Backup Designated
  3551.                     Router and Designated Router, as shown in Section
  3552.                     9.4.  As a result of this calculation, the new state
  3553.                     of the interface will be either DR Other, Backup or
  3554.                     DR.
  3555.  
  3556.  
  3557.          State(s):  Any State
  3558.  
  3559.             Event:  InterfaceDown
  3560.  
  3561.         New state:  Down
  3562.  
  3563.            Action:  All interface variables are reset, and interface
  3564.                     timers disabled.  Also, all neighbor connections
  3565.                     associated with the interface are destroyed.  This
  3566.                     is done by generating the event KillNbr on all
  3567.                     associated neighbors (see Section 10.2).
  3568.  
  3569.  
  3570.          State(s):  Any State
  3571.  
  3572.             Event:  LoopInd
  3573.  
  3574.         New state:  Loopback
  3575.  
  3576.            Action:  Since this interface is no longer connected to the
  3577.                     attached network the actions associated with the
  3578.                     above InterfaceDown event are executed.
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584. Moy                                                            [Page 64]
  3585.  
  3586. RFC 1583                     OSPF Version 2                   March 1994
  3587.  
  3588.  
  3589.          State(s):  Loopback
  3590.  
  3591.             Event:  UnloopInd
  3592.  
  3593.         New state:  Down
  3594.  
  3595.            Action:  No actions are necessary.  For example, the
  3596.                     interface variables have already been reset upon
  3597.                     entering the Loopback state.  Note that reception of
  3598.                     an InterfaceUp event is necessary before the
  3599.                     interface again becomes fully functional.
  3600.  
  3601.  
  3602.     9.4.  Electing the Designated Router
  3603.  
  3604.         This section describes the algorithm used for calculating a
  3605.         network's Designated Router and Backup Designated Router.  This
  3606.         algorithm is invoked by the Interface state machine.  The
  3607.         initial time a router runs the election algorithm for a network,
  3608.         the network's Designated Router and Backup Designated Router are
  3609.         initialized to 0.0.0.0.  This indicates the lack of both a
  3610.         Designated Router and a Backup Designated Router.
  3611.  
  3612.         The Designated Router election algorithm proceeds as follows:
  3613.         Call the router doing the calculation Router X.  The list of
  3614.         neighbors attached to the network and having established
  3615.         bidirectional communication with Router X is examined.  This
  3616.         list is precisely the collection of Router X's neighbors (on
  3617.         this network) whose state is greater than or equal to 2-Way (see
  3618.         Section 10.1).  Router X itself is also considered to be on the
  3619.         list.  Discard all routers from the list that are ineligible to
  3620.         become Designated Router.  (Routers having Router Priority of 0
  3621.         are ineligible to become Designated Router.)  The following
  3622.         steps are then executed, considering only those routers that
  3623.         remain on the list:
  3624.  
  3625.  
  3626.         (1) Note the current values for the network's Designated Router
  3627.             and Backup Designated Router.  This is used later for
  3628.             comparison purposes.
  3629.  
  3630.         (2) Calculate the new Backup Designated Router for the network
  3631.             as follows.  Only those routers on the list that have not
  3632.             declared themselves to be Designated Router are eligible to
  3633.             become Backup Designated Router.  If one or more of these
  3634.             routers have declared themselves Backup Designated Router
  3635.             (i.e., they are currently listing themselves as Backup
  3636.             Designated Router, but not as Designated Router, in their
  3637.  
  3638.  
  3639.  
  3640. Moy                                                            [Page 65]
  3641.  
  3642. RFC 1583                     OSPF Version 2                   March 1994
  3643.  
  3644.  
  3645.             Hello Packets) the one having highest Router Priority is
  3646.             declared to be Backup Designated Router.  In case of a tie,
  3647.             the one having the highest Router ID is chosen.  If no
  3648.             routers have declared themselves Backup Designated Router,
  3649.             choose the router having highest Router Priority, (again
  3650.             excluding those routers who have declared themselves
  3651.             Designated Router), and again use the Router ID to break
  3652.             ties.
  3653.  
  3654.         (3) Calculate the new Designated Router for the network as
  3655.             follows.  If one or more of the routers have declared
  3656.             themselves Designated Router (i.e., they are currently
  3657.             listing themselves as Designated Router in their Hello
  3658.             Packets) the one having highest Router Priority is declared
  3659.             to be Designated Router.  In case of a tie, the one having
  3660.             the highest Router ID is chosen.  If no routers have
  3661.             declared themselves Designated Router, assign the Designated
  3662.             Router to be the same as the newly elected Backup Designated
  3663.             Router.
  3664.  
  3665.         (4) If Router X is now newly the Designated Router or newly the
  3666.             Backup Designated Router, or is now no longer the Designated
  3667.             Router or no longer the Backup Designated Router, repeat
  3668.             steps 2 and 3, and then proceed to step 5.  For example, if
  3669.             Router X is now the Designated Router, when step 2 is
  3670.             repeated X will no longer be eligible for Backup Designated
  3671.             Router election.  Among other things, this will ensure that
  3672.             no router will declare itself both Backup Designated Router
  3673.             and Designated Router.[5]
  3674.  
  3675.         (5) As a result of these calculations, the router itself may now
  3676.             be Designated Router or Backup Designated Router.  See
  3677.             Sections 7.3 and 7.4 for the additional duties this would
  3678.             entail.  The router's interface state should be set
  3679.             accordingly.  If the router itself is now Designated Router,
  3680.             the new interface state is DR.  If the router itself is now
  3681.             Backup Designated Router, the new interface state is Backup.
  3682.             Otherwise, the new interface state is DR Other.
  3683.  
  3684.         (6) If the attached network is non-broadcast, and the router
  3685.             itself has just become either Designated Router or Backup
  3686.             Designated Router, it must start sending Hello Packets to
  3687.             those neighbors that are not eligible to become Designated
  3688.             Router (see Section 9.5.1).  This is done by invoking the
  3689.             neighbor event Start for each neighbor having a Router
  3690.             Priority of 0.
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696. Moy                                                            [Page 66]
  3697.  
  3698. RFC 1583                     OSPF Version 2                   March 1994
  3699.  
  3700.  
  3701.         (7) If the above calculations have caused the identity of either
  3702.             the Designated Router or Backup Designated Router to change,
  3703.             the set of adjacencies associated with this interface will
  3704.             need to be modified.  Some adjacencies may need to be
  3705.             formed, and others may need to be broken.  To accomplish
  3706.             this, invoke the event AdjOK?  on all neighbors whose state
  3707.             is at least 2-Way.  This will cause their eligibility for
  3708.             adjacency to be reexamined (see Sections 10.3 and 10.4).
  3709.  
  3710.  
  3711.         The reason behind the election algorithm's complexity is the
  3712.         desire for an orderly transition from Backup Designated Router
  3713.         to Designated Router, when the current Designated Router fails.
  3714.         This orderly transition is ensured through the introduction of
  3715.         hysteresis: no new Backup Designated Router can be chosen until
  3716.         the old Backup accepts its new Designated Router
  3717.         responsibilities.
  3718.  
  3719.         The above procedure may elect the same router to be both
  3720.         Designated Router and Backup Designated Router, although that
  3721.         router will never be the calculating router (Router X) itself.
  3722.         The elected Designated Router may not be the router having the
  3723.         highest Router Priority, nor will the Backup Designated Router
  3724.         necessarily have the second highest Router Priority.  If Router
  3725.         X is not itself eligible to become Designated Router, it is
  3726.         possible that neither a Backup Designated Router nor a
  3727.         Designated Router will be selected in the above procedure.  Note
  3728.         also that if Router X is the only attached router that is
  3729.         eligible to become Designated Router, it will select itself as
  3730.         Designated Router and there will be no Backup Designated Router
  3731.         for the network.
  3732.  
  3733.  
  3734.     9.5.  Sending Hello packets
  3735.  
  3736.         Hello packets are sent out each functioning router interface.
  3737.         They are used to discover and maintain neighbor
  3738.         relationships.[6] On multi-access networks, Hello Packets are
  3739.         also used to elect the Designated Router and Backup Designated
  3740.         Router, and in that way determine what adjacencies should be
  3741.         formed.
  3742.  
  3743.         The format of an Hello packet is detailed in Section A.3.2.  The
  3744.         Hello Packet contains the router's Router Priority (used in
  3745.         choosing the Designated Router), and the interval between Hello
  3746.         Packets sent out the interface (HelloInterval).  The Hello
  3747.         Packet also indicates how often a neighbor must be heard from to
  3748.         remain active (RouterDeadInterval).  Both HelloInterval and
  3749.  
  3750.  
  3751.  
  3752. Moy                                                            [Page 67]
  3753.  
  3754. RFC 1583                     OSPF Version 2                   March 1994
  3755.  
  3756.  
  3757.         RouterDeadInterval must be the same for all routers attached to
  3758.         a common network.  The Hello packet also contains the IP address
  3759.         mask of the attached network (Network Mask).  On unnumbered
  3760.         point-to-point networks and on virtual links this field should
  3761.         be set to 0.0.0.0.
  3762.  
  3763.         The Hello packet's Options field describes the router's optional
  3764.         OSPF capabilities.  There are currently two optional
  3765.         capabilities defined (see Sections 4.5 and A.2).  The T-bit of
  3766.         the Options field should be set if the router is capable of
  3767.         calculating separate routes for each IP TOS.  The E-bit should
  3768.         be set if and only if the attached area is capable of processing
  3769.         AS external advertisements (i.e., it is not a stub area).  If
  3770.         the E-bit is set incorrectly the neighboring routers will refuse
  3771.         to accept the Hello Packet (see Section 10.5).  The rest of the
  3772.         Hello Packet's Options field should be set to zero.
  3773.  
  3774.         In order to ensure two-way communication between adjacent
  3775.         routers, the Hello packet contains the list of all routers from
  3776.         which Hello Packets have been seen recently.  The Hello packet
  3777.         also contains the router's current choice for Designated Router
  3778.         and Backup Designated Router.  A value of 0.0.0.0 in these
  3779.         fields means that one has not yet been selected.
  3780.  
  3781.         On broadcast networks and physical point-to-point networks,
  3782.         Hello packets are sent every HelloInterval seconds to the IP
  3783.         multicast address AllSPFRouters.  On virtual links, Hello
  3784.         packets are sent as unicasts (addressed directly to the other
  3785.         end of the virtual link) every HelloInterval seconds.  On non-
  3786.         broadcast networks, the sending of Hello packets is more
  3787.         complicated.  This will be covered in the next section.
  3788.  
  3789.  
  3790.         9.5.1.  Sending Hello packets on non-broadcast networks
  3791.  
  3792.             Static configuration information is necessary in order for
  3793.             the Hello Protocol to function on non-broadcast networks
  3794.             (see Section C.5).  Every attached router which is eligible
  3795.             to become Designated Router has a configured list of all of
  3796.             its neighbors on the network.  Each listed neighbor is
  3797.             labelled with its Designated Router eligibility.
  3798.  
  3799.             The interface state must be at least Waiting for any Hello
  3800.             Packets to be sent.  Hello Packets are then sent directly
  3801.             (as unicasts) to some subset of a router's neighbors.
  3802.             Sometimes an Hello Packet is sent periodically on a timer;
  3803.             at other times it is sent as a response to a received Hello
  3804.             Packet.  A router's hello-sending behavior varies depending
  3805.  
  3806.  
  3807.  
  3808. Moy                                                            [Page 68]
  3809.  
  3810. RFC 1583                     OSPF Version 2                   March 1994
  3811.  
  3812.  
  3813.             on whether the router itself is eligible to become
  3814.             Designated Router.
  3815.  
  3816.             If the router is eligible to become Designated Router, it
  3817.             must periodically send Hello Packets to all neighbors that
  3818.             are also eligible.  In addition, if the router is itself the
  3819.             Designated Router or Backup Designated Router, it must also
  3820.             send periodic Hello Packets to all other neighbors.  This
  3821.             means that any two eligible routers are always exchanging
  3822.             Hello Packets, which is necessary for the correct operation
  3823.             of the Designated Router election algorithm.  To minimize
  3824.             the number of Hello Packets sent, the number of eligible
  3825.             routers on a non-broadcast network should be kept small.
  3826.  
  3827.             If the router is not eligible to become Designated Router,
  3828.             it must periodically send Hello Packets to both the
  3829.             Designated Router and the Backup Designated Router (if they
  3830.             exist).  It must also send an Hello Packet in reply to an
  3831.             Hello Packet received from any eligible neighbor (other than
  3832.             the current Designated Router and Backup Designated Router).
  3833.             This is needed to establish an initial bidirectional
  3834.             relationship with any potential Designated Router.
  3835.  
  3836.             When sending Hello packets periodically to any neighbor, the
  3837.             interval between Hello Packets is determined by the
  3838.             neighbor's state.  If the neighbor is in state Down, Hello
  3839.             Packets are sent every PollInterval seconds.  Otherwise,
  3840.             Hello Packets are sent every HelloInterval seconds.
  3841.  
  3842.  
  3843. 10.  The Neighbor Data Structure
  3844.  
  3845.     An OSPF router converses with its neighboring routers.  Each
  3846.     separate conversation is described by a "neighbor data structure".
  3847.     Each conversation is bound to a particular OSPF router interface,
  3848.     and is identified either by the neighboring router's OSPF Router ID
  3849.     or by its Neighbor IP address (see below).  Thus if the OSPF router
  3850.     and another router have multiple attached networks in common,
  3851.     multiple conversations ensue, each described by a unique neighbor
  3852.     data structure.  Each separate conversation is loosely referred to
  3853.     in the text as being a separate "neighbor".
  3854.  
  3855.     The neighbor data structure contains all information pertinent to
  3856.     the forming or formed adjacency between the two neighbors.
  3857.     (However, remember that not all neighbors become adjacent.)  An
  3858.     adjacency can be viewed as a highly developed conversation between
  3859.     two routers.
  3860.  
  3861.  
  3862.  
  3863.  
  3864. Moy                                                            [Page 69]
  3865.  
  3866. RFC 1583                     OSPF Version 2                   March 1994
  3867.  
  3868.  
  3869.     State
  3870.         The functional level of the neighbor conversation.  This is
  3871.         described in more detail in Section 10.1.
  3872.  
  3873.     Inactivity Timer
  3874.         A single shot timer whose firing indicates that no Hello Packet
  3875.         has been seen from this neighbor recently.  The length of the
  3876.         timer is RouterDeadInterval seconds.
  3877.  
  3878.     Master/Slave
  3879.         When the two neighbors are exchanging databases, they form a
  3880.         master/slave relationship.  The master sends the first Database
  3881.         Description Packet, and is the only part that is allowed to
  3882.         retransmit.  The slave can only respond to the master's Database
  3883.         Description Packets.  The master/slave relationship is
  3884.         negotiated in state ExStart.
  3885.  
  3886.     DD Sequence Number
  3887.         A 32-bit number identifying individual Database Description
  3888.         packets.  When the neighbor state ExStart is entered, the DD
  3889.         sequence number should be set to a value not previously seen by
  3890.         the neighboring router.  One possible scheme is to use the
  3891.         machine's time of day counter.  The DD sequence number is then
  3892.         incremented by the master with each new Database Description
  3893.         packet sent.  The slave's DD sequence number indicates the last
  3894.         packet received from the master.  Only one packet is allowed
  3895.         outstanding at a time.
  3896.  
  3897.     Neighbor ID
  3898.         The OSPF Router ID of the neighboring router.  The Neighbor ID
  3899.         is learned when Hello packets are received from the neighbor, or
  3900.         is configured if this is a virtual adjacency (see Section C.4).
  3901.  
  3902.     Neighbor Priority
  3903.         The Router Priority of the neighboring router.  Contained in the
  3904.         neighbor's Hello packets, this item is used when selecting the
  3905.         Designated Router for the attached network.
  3906.  
  3907.     Neighbor IP address
  3908.         The IP address of the neighboring router's interface to the
  3909.         attached network.  Used as the Destination IP address when
  3910.         protocol packets are sent as unicasts along this adjacency.
  3911.         Also used in router links advertisements as the Link ID for the
  3912.         attached network if the neighboring router is selected to be
  3913.         Designated Router (see Section 12.4.1).  The Neighbor IP address
  3914.         is learned when Hello packets are received from the neighbor.
  3915.         For virtual links, the Neighbor IP address is learned during the
  3916.         routing table build process (see Section 15).
  3917.  
  3918.  
  3919.  
  3920. Moy                                                            [Page 70]
  3921.  
  3922. RFC 1583                     OSPF Version 2                   March 1994
  3923.  
  3924.  
  3925.     Neighbor Options
  3926.         The optional OSPF capabilities supported by the neighbor.
  3927.         Learned during the Database Exchange process (see Section 10.6).
  3928.         The neighbor's optional OSPF capabilities are also listed in its
  3929.         Hello packets.  This enables received Hello Packets to be
  3930.         rejected (i.e., neighbor relationships will not even start to
  3931.         form) if there is a mismatch in certain crucial OSPF
  3932.         capabilities (see Section 10.5).  The optional OSPF capabilities
  3933.         are documented in Section 4.5.
  3934.  
  3935.     Neighbor's Designated Router
  3936.         The neighbor's idea of the Designated Router.  If this is the
  3937.         neighbor itself, this is important in the local calculation of
  3938.         the Designated Router.  Defined only on multi-access networks.
  3939.  
  3940.     Neighbor's Backup Designated Router
  3941.         The neighbor's idea of the Backup Designated Router.  If this is
  3942.         the neighbor itself, this is important in the local calculation
  3943.         of the Backup Designated Router.  Defined only on multi-access
  3944.         networks.
  3945.  
  3946.  
  3947.     The next set of variables are lists of link state advertisements.
  3948.     These lists describe subsets of the area topological database.
  3949.     There can be five distinct types of link state advertisements in an
  3950.     area topological database: router links, network links, and Type 3
  3951.     and 4 summary links (all stored in the area data structure), and AS
  3952.     external links (stored in the global data structure).
  3953.  
  3954.  
  3955.     Link state retransmission list
  3956.         The list of link state advertisements that have been flooded but
  3957.         not acknowledged on this adjacency.  These will be retransmitted
  3958.         at intervals until they are acknowledged, or until the adjacency
  3959.         is destroyed.
  3960.  
  3961.     Database summary list
  3962.         The complete list of link state advertisements that make up the
  3963.         area topological database, at the moment the neighbor goes into
  3964.         Database Exchange state.  This list is sent to the neighbor in
  3965.         Database Description packets.
  3966.  
  3967.     Link state request list
  3968.         The list of link state advertisements that need to be received
  3969.         from this neighbor in order to synchronize the two neighbors'
  3970.         topological databases.  This list is created as Database
  3971.         Description packets are received, and is then sent to the
  3972.         neighbor in Link State Request packets.  The list is depleted as
  3973.  
  3974.  
  3975.  
  3976. Moy                                                            [Page 71]
  3977.  
  3978. RFC 1583                     OSPF Version 2                   March 1994
  3979.  
  3980.  
  3981.         appropriate Link State Update packets are received.
  3982.  
  3983.  
  3984.     10.1.  Neighbor states
  3985.  
  3986.         The state of a neighbor (really, the state of a conversation
  3987.         being held with a neighboring router) is documented in the
  3988.         following sections.  The states are listed in order of
  3989.         progressing functionality.  For example, the inoperative state
  3990.         is listed first, followed by a list of intermediate states
  3991.         before the final, fully functional state is achieved.  The
  3992.         specification makes use of this ordering by sometimes making
  3993.         references such as "those neighbors/adjacencies in state greater
  3994.         than X".  Figures 12 and 13 show the graph of neighbor state
  3995.         changes.  The arcs of the graphs are labelled with the event
  3996.         causing the state change.  The neighbor events are documented in
  3997.         Section 10.2.
  3998.  
  3999.         The graph in Figure 12 shows the state changes effected by the
  4000.         Hello Protocol.  The Hello Protocol is responsible for neighbor
  4001.  
  4002.                                    +----+
  4003.                                    |Down|
  4004.                                    +----+
  4005.                                      |                               | Start
  4006.                                      |        +-------+
  4007.                              Hello   |   +---->|Attempt|
  4008.                             Received |         +-------+
  4009.                                      |             |
  4010.                              +----+<-+             |HelloReceived
  4011.                              |Init|<---------------+
  4012.                              +----+<--------+
  4013.                                 |           |
  4014.                                 |2-Way      |1-Way
  4015.                                 |Received   |Received
  4016.                                 |           |
  4017.               +-------+         |        +-----+
  4018.               |ExStart|<--------+------->|2-Way|
  4019.               +-------+                  +-----+
  4020.  
  4021.               Figure 12: Neighbor state changes (Hello Protocol)
  4022.  
  4023.                   In addition to the state transitions pictured,
  4024.                   Event KillNbr always forces Down State,
  4025.                   Event InactivityTimer always forces Down State,
  4026.                   Event LLDown always forces Down State
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032. Moy                                                            [Page 72]
  4033.  
  4034. RFC 1583                     OSPF Version 2                   March 1994
  4035.  
  4036.  
  4037.         acquisition and maintenance, and for ensuring two way
  4038.         communication between neighbors.
  4039.  
  4040.         The graph in Figure 13 shows the forming of an adjacency.  Not
  4041.         every two neighboring routers become adjacent (see Section
  4042.         10.4).  The adjacency starts to form when the neighbor is in
  4043.         state ExStart.  After the two routers discover their
  4044.         master/slave status, the state transitions to Exchange.  At this
  4045.         point the neighbor starts to be used in the flooding procedure,
  4046.         and the two neighboring routers begin synchronizing their
  4047.         databases.  When this synchronization is finished, the neighbor
  4048.         is in state Full and we say that the two routers are fully
  4049.         adjacent.  At this point the adjacency is listed in link state
  4050.         advertisements.
  4051.  
  4052.         For a more detailed description of neighbor state changes,
  4053.         together with the additional actions involved in each change,
  4054.         see Section 10.3.
  4055.  
  4056.                                   +-------+
  4057.                                   |ExStart|
  4058.                                   +-------+
  4059.                                     |
  4060.                      NegotiationDone|
  4061.                                     +->+--------+
  4062.                                        |Exchange|
  4063.                                     +--+--------+
  4064.                                     |
  4065.                             Exchange|
  4066.                               Done  |
  4067.                     +----+          |      +-------+
  4068.                     |Full|<---------+----->|Loading|
  4069.                     +----+<-+              +-------+
  4070.                             |  LoadingDone     |
  4071.                             +------------------+
  4072.  
  4073.             Figure 13: Neighbor state changes (Database Exchange)
  4074.  
  4075.                 In addition to the state transitions pictured,
  4076.                 Event SeqNumberMismatch forces ExStart state,
  4077.                 Event BadLSReq forces ExStart state,
  4078.                 Event 1-Way forces Init state,
  4079.                 Event KillNbr always forces Down State,
  4080.                 Event InactivityTimer always forces Down State,
  4081.                 Event LLDown always forces Down State,
  4082.                 Event AdjOK? leads to adjacency forming/breaking
  4083.  
  4084.  
  4085.  
  4086.  
  4087.  
  4088. Moy                                                            [Page 73]
  4089.  
  4090. RFC 1583                     OSPF Version 2                   March 1994
  4091.  
  4092.  
  4093.         Down
  4094.             This is the initial state of a neighbor conversation.  It
  4095.             indicates that there has been no recent information received
  4096.             from the neighbor.  On non-broadcast networks, Hello packets
  4097.             may still be sent to "Down" neighbors, although at a reduced
  4098.             frequency (see Section 9.5.1).
  4099.  
  4100.         Attempt
  4101.             This state is only valid for neighbors attached to non-
  4102.             broadcast networks.  It indicates that no recent information
  4103.             has been received from the neighbor, but that a more
  4104.             concerted effort should be made to contact the neighbor.
  4105.             This is done by sending the neighbor Hello packets at
  4106.             intervals of HelloInterval (see Section 9.5.1).
  4107.  
  4108.         Init
  4109.             In this state, an Hello packet has recently been seen from
  4110.             the neighbor.  However, bidirectional communication has not
  4111.             yet been established with the neighbor (i.e., the router
  4112.             itself did not appear in the neighbor's Hello packet).  All
  4113.             neighbors in this state (or higher) are listed in the Hello
  4114.             packets sent from the associated interface.
  4115.  
  4116.         2-Way
  4117.             In this state, communication between the two routers is
  4118.             bidirectional.  This has been assured by the operation of
  4119.             the Hello Protocol.  This is the most advanced state short
  4120.             of beginning adjacency establishment.  The (Backup)
  4121.             Designated Router is selected from the set of neighbors in
  4122.             state 2-Way or greater.
  4123.  
  4124.         ExStart
  4125.             This is the first step in creating an adjacency between the
  4126.             two neighboring routers.  The goal of this step is to decide
  4127.             which router is the master, and to decide upon the initial
  4128.             DD sequence number.  Neighbor conversations in this state or
  4129.             greater are called adjacencies.
  4130.  
  4131.         Exchange
  4132.             In this state the router is describing its entire link state
  4133.             database by sending Database Description packets to the
  4134.             neighbor.  Each Database Description Packet has a DD
  4135.             sequence number, and is explicitly acknowledged.  Only one
  4136.             Database Description Packet is allowed outstanding at any
  4137.             one time.  In this state, Link State Request Packets may
  4138.             also be sent asking for the neighbor's more recent
  4139.             advertisements.  All adjacencies in Exchange state or
  4140.             greater are used by the flooding procedure.  In fact, these
  4141.  
  4142.  
  4143.  
  4144. Moy                                                            [Page 74]
  4145.  
  4146. RFC 1583                     OSPF Version 2                   March 1994
  4147.  
  4148.  
  4149.             adjacencies are fully capable of transmitting and receiving
  4150.             all types of OSPF routing protocol packets.
  4151.  
  4152.         Loading
  4153.             In this state, Link State Request packets are sent to the
  4154.             neighbor asking for the more recent advertisements that have
  4155.             been discovered (but not yet received) in the Exchange
  4156.             state.
  4157.  
  4158.         Full
  4159.             In this state, the neighboring routers are fully adjacent.
  4160.             These adjacencies will now appear in router links and
  4161.             network links advertisements.
  4162.  
  4163.  
  4164.     10.2.  Events causing neighbor state changes
  4165.  
  4166.         State changes can be effected by a number of events.  These
  4167.         events are shown in the labels of the arcs in Figures 12 and 13.
  4168.         The label definitions are as follows:
  4169.  
  4170.  
  4171.         HelloReceived
  4172.             A Hello packet has been received from a neighbor.
  4173.  
  4174.         Start
  4175.             This is an indication that Hello Packets should now be sent
  4176.             to the neighbor at intervals of HelloInterval seconds.  This
  4177.             event is generated only for neighbors associated with non-
  4178.             broadcast networks.
  4179.  
  4180.         2-WayReceived
  4181.             Bidirectional communication has been realized between the
  4182.             two neighboring routers.  This is indicated by this router
  4183.             seeing itself in the other's Hello packet.
  4184.  
  4185.         NegotiationDone
  4186.             The Master/Slave relationship has been negotiated, and DD
  4187.             sequence numbers have been exchanged.  This signals the
  4188.             start of the sending/receiving of Database Description
  4189.             packets.  For more information on the generation of this
  4190.             event, consult Section 10.8.
  4191.  
  4192.         ExchangeDone
  4193.             Both routers have successfully transmitted a full sequence
  4194.             of Database Description packets.  Each router now knows what
  4195.             parts of its link state database are out of date.  For more
  4196.             information on the generation of this event, consult Section
  4197.  
  4198.  
  4199.  
  4200. Moy                                                            [Page 75]
  4201.  
  4202. RFC 1583                     OSPF Version 2                   March 1994
  4203.  
  4204.  
  4205.             10.8.
  4206.  
  4207.         BadLSReq
  4208.             A Link State Request has been received for a link state
  4209.             advertisement not contained in the database.  This indicates
  4210.             an error in the Database Exchange process.
  4211.  
  4212.         Loading Done
  4213.             Link State Updates have been received for all out-of-date
  4214.             portions of the database.  This is indicated by the Link
  4215.             state request list becoming empty after the Database
  4216.             Exchange process has completed.
  4217.  
  4218.         AdjOK?
  4219.             A decision must be made (again) as to whether an adjacency
  4220.             should be established/maintained with the neighbor.  This
  4221.             event will start some adjacencies forming, and destroy
  4222.             others.
  4223.  
  4224.  
  4225.         The following events cause well developed neighbors to revert to
  4226.         lesser states.  Unlike the above events, these events may occur
  4227.         when the neighbor conversation is in any of a number of states.
  4228.  
  4229.  
  4230.         SeqNumberMismatch
  4231.             A Database Description packet has been received that either
  4232.             a) has an unexpected DD sequence number, b) unexpectedly has
  4233.             the Init bit set or c) has an Options field differing from
  4234.             the last Options field received in a Database Description
  4235.             packet.  Any of these conditions indicate that some error
  4236.             has occurred during adjacency establishment.
  4237.  
  4238.         1-Way
  4239.             An Hello packet has been received from the neighbor, in
  4240.             which this router is not mentioned.  This indicates that
  4241.             communication with the neighbor is not bidirectional.
  4242.  
  4243.         KillNbr
  4244.             This  is  an  indication that  all  communication  with  the
  4245.             neighbor  is now  impossible,  forcing  the  neighbor  to
  4246.             revert  to  Down  state.
  4247.  
  4248.         InactivityTimer
  4249.             The inactivity Timer has fired.  This means that no Hello
  4250.             packets have been seen recently from the neighbor.  The
  4251.             neighbor reverts to Down state.
  4252.  
  4253.  
  4254.  
  4255.  
  4256. Moy                                                            [Page 76]
  4257.  
  4258. RFC 1583                     OSPF Version 2                   March 1994
  4259.  
  4260.  
  4261.         LLDown
  4262.             This is an indication from the lower level protocols that
  4263.             the neighbor is now unreachable.  For example, on an X.25
  4264.             network this could be indicated by an X.25 clear indication
  4265.             with appropriate cause and diagnostic fields.  This event
  4266.             forces the neighbor into Down state.
  4267.  
  4268.  
  4269.     10.3.  The Neighbor state machine
  4270.  
  4271.         A detailed description of the neighbor state changes follows.
  4272.         Each state change is invoked by an event (Section 10.2).  This
  4273.         event may produce different effects, depending on the current
  4274.         state of the neighbor.  For this reason, the state machine below
  4275.         is organized by current neighbor state and received event.  Each
  4276.         entry in the state machine describes the resulting new neighbor
  4277.         state and the required set of additional actions.
  4278.  
  4279.         When a neighbor's state changes, it may be necessary to rerun
  4280.         the Designated Router election algorithm.  This is determined by
  4281.         whether the interface NeighborChange event is generated (see
  4282.         Section 9.2).  Also, if the Interface is in DR state (the router
  4283.         is itself Designated Router), changes in neighbor state may
  4284.         cause a new network links advertisement to be originated (see
  4285.         Section 12.4).
  4286.  
  4287.         When the neighbor state machine needs to invoke the interface
  4288.         state machine, it should be done as a scheduled task (see
  4289.         Section 4.4).  This simplifies things, by ensuring that neither
  4290.         state machine will be executed recursively.
  4291.  
  4292.  
  4293.          State(s):  Down
  4294.  
  4295.             Event:  Start
  4296.  
  4297.         New state:  Attempt
  4298.  
  4299.            Action:  Send an Hello Packet to the neighbor (this neighbor
  4300.                     is always associated with a non-broadcast network)
  4301.                     and start the Inactivity Timer for the neighbor.
  4302.                     The timer's later firing would indicate that
  4303.                     communication with the neighbor was not attained.
  4304.  
  4305.  
  4306.          State(s):  Attempt
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312. Moy                                                            [Page 77]
  4313.  
  4314. RFC 1583                     OSPF Version 2                   March 1994
  4315.  
  4316.  
  4317.             Event:  HelloReceived
  4318.  
  4319.         New state:  Init
  4320.  
  4321.            Action:  Restart the Inactivity Timer for the neighbor, since
  4322.                     the neighbor has now been heard from.
  4323.  
  4324.  
  4325.          State(s):  Down
  4326.  
  4327.             Event:  HelloReceived
  4328.  
  4329.         New state:  Init
  4330.  
  4331.            Action:  Start the Inactivity Timer for the neighbor.  The
  4332.                     timer's later firing would indicate that the
  4333.                     neighbor is dead.
  4334.  
  4335.  
  4336.          State(s):  Init or greater
  4337.  
  4338.             Event:  HelloReceived
  4339.  
  4340.         New state:  No state change.
  4341.  
  4342.            Action:  Restart the Inactivity Timer for the neighbor, since
  4343.                     the neighbor has again been heard from.
  4344.  
  4345.  
  4346.          State(s):  Init
  4347.  
  4348.             Event:  2-WayReceived
  4349.  
  4350.         New state:  Depends upon action routine.
  4351.  
  4352.            Action:  Determine whether an adjacency should be established
  4353.                     with the neighbor (see Section 10.4).  If not, the
  4354.                     new neighbor state is 2-Way.
  4355.  
  4356.                     Otherwise (an adjacency should be established) the
  4357.                     neighbor state transitions to ExStart.  Upon
  4358.                     entering this state, the router increments the DD
  4359.                     sequence number for this neighbor.  If this is the
  4360.                     first time that an adjacency has been attempted, the
  4361.                     DD sequence number should be assigned some unique
  4362.                     value (like the time of day clock).  It then
  4363.                     declares itself master (sets the master/slave bit to
  4364.                     master), and starts sending Database Description
  4365.  
  4366.  
  4367.  
  4368. Moy                                                            [Page 78]
  4369.  
  4370. RFC 1583                     OSPF Version 2                   March 1994
  4371.  
  4372.  
  4373.                     Packets, with the initialize (I), more (M) and
  4374.                     master (MS) bits set.  This Database Description
  4375.                     Packet should be otherwise empty.  This Database
  4376.                     Description Packet should be retransmitted at
  4377.                     intervals of RxmtInterval until the next state is
  4378.                     entered (see Section 10.8).
  4379.  
  4380.  
  4381.          State(s):  ExStart
  4382.  
  4383.             Event:  NegotiationDone
  4384.  
  4385.         New state:  Exchange
  4386.  
  4387.            Action:  The router must list the contents of its entire area
  4388.                     link state database in the neighbor Database summary
  4389.                     list.  The area link state database consists of the
  4390.                     router links, network links and summary links
  4391.                     contained in the area structure, along with the AS
  4392.                     external links contained in the global structure.
  4393.                     AS external link advertisements are omitted from a
  4394.                     virtual neighbor's Database summary list.  AS
  4395.                     external advertisements are omitted from the
  4396.                     Database summary list if the area has been
  4397.                     configured as a stub (see Section 3.6).
  4398.                     Advertisements whose age is equal to MaxAge are
  4399.                     instead added to the neighbor's Link state
  4400.                     retransmission list.  A summary of the Database
  4401.                     summary list will be sent to the neighbor in
  4402.                     Database Description packets.  Each Database
  4403.                     Description Packet has a DD sequence number, and is
  4404.                     explicitly acknowledged.  Only one Database
  4405.                     Description Packet is allowed outstanding at any one
  4406.                     time.  For more detail on the sending and receiving
  4407.                     of Database Description packets, see Sections 10.8
  4408.                     and 10.6.
  4409.  
  4410.  
  4411.          State(s):  Exchange
  4412.  
  4413.             Event:  ExchangeDone
  4414.  
  4415.         New state:  Depends upon action routine.
  4416.  
  4417.            Action:  If the neighbor Link state request list is empty,
  4418.                     the new neighbor state is Full.  No other action is
  4419.                     required.  This is an adjacency's final state.
  4420.  
  4421.  
  4422.  
  4423.  
  4424. Moy                                                            [Page 79]
  4425.  
  4426. RFC 1583                     OSPF Version 2                   March 1994
  4427.  
  4428.  
  4429.                     Otherwise, the new neighbor state is Loading.  Start
  4430.                     (or continue) sending Link State Request packets to
  4431.                     the neighbor (see Section 10.9).  These are requests
  4432.                     for the neighbor's more recent advertisements (which
  4433.                     were discovered but not yet received in the Exchange
  4434.                     state).  These advertisements are listed in the Link
  4435.                     state request list associated with the neighbor.
  4436.  
  4437.  
  4438.          State(s):  Loading
  4439.  
  4440.             Event:  Loading Done
  4441.  
  4442.         New state:  Full
  4443.  
  4444.            Action:  No action required.  This is an adjacency's final
  4445.                     state.
  4446.  
  4447.  
  4448.          State(s):  2-Way
  4449.  
  4450.             Event:  AdjOK?
  4451.  
  4452.         New state:  Depends upon action routine.
  4453.  
  4454.            Action:  Determine whether an adjacency should be formed with
  4455.                     the neighboring router (see Section 10.4).  If not,
  4456.                     the neighbor state remains at 2-Way.  Otherwise,
  4457.                     transition the neighbor state to ExStart and perform
  4458.                     the actions associated with the above state machine
  4459.                     entry for state Init and event 2-WayReceived.
  4460.  
  4461.  
  4462.          State(s):  ExStart or greater
  4463.  
  4464.             Event:  AdjOK?
  4465.  
  4466.         New state:  Depends upon action routine.
  4467.  
  4468.            Action:  Determine whether the neighboring router should
  4469.                     still be adjacent.  If yes, there is no state change
  4470.                     and no further action is necessary.
  4471.  
  4472.                     Otherwise, the (possibly partially formed) adjacency
  4473.                     must be destroyed.  The neighbor state transitions
  4474.                     to 2-Way.  The Link state retransmission list,
  4475.                     Database summary list and Link state request list
  4476.                     are cleared of link state advertisements.
  4477.  
  4478.  
  4479.  
  4480. Moy                                                            [Page 80]
  4481.  
  4482. RFC 1583                     OSPF Version 2                   March 1994
  4483.  
  4484.  
  4485.          State(s):  Exchange or greater
  4486.  
  4487.             Event:  SeqNumberMismatch
  4488.  
  4489.         New state:  ExStart
  4490.  
  4491.            Action:  The (possibly partially formed) adjacency is torn
  4492.                     down, and then an attempt is made at
  4493.                     reestablishment.  The neighbor state first
  4494.                     transitions to ExStart.  The Link state
  4495.                     retransmission list, Database summary list and Link
  4496.                     state request list are cleared of link state
  4497.                     advertisements.  Then the router increments the DD
  4498.                     sequence number for this neighbor, declares itself
  4499.                     master (sets the master/slave bit to master), and
  4500.                     starts sending Database Description Packets, with
  4501.                     the initialize (I), more (M) and master (MS) bits
  4502.                     set.  This Database Description Packet should be
  4503.                     otherwise empty (see Section 10.8).
  4504.  
  4505.  
  4506.          State(s):  Exchange or greater
  4507.  
  4508.             Event:  BadLSReq
  4509.  
  4510.         New state:  ExStart
  4511.  
  4512.            Action:  The action for event BadLSReq is exactly the same as
  4513.                     for the neighbor event SeqNumberMismatch.  The
  4514.                     (possibly partially formed) adjacency is torn down,
  4515.                     and then an attempt is made at reestablishment.  For
  4516.                     more information, see the neighbor state machine
  4517.                     entry that is invoked when event SeqNumberMismatch
  4518.                     is generated in state Exchange or greater.
  4519.  
  4520.  
  4521.          State(s):  Any state
  4522.  
  4523.             Event:  KillNbr
  4524.  
  4525.         New state:  Down
  4526.  
  4527.            Action:  The Link state retransmission list, Database summary
  4528.                     list and Link state request list are cleared of link
  4529.                     state advertisements.  Also, the Inactivity Timer is
  4530.                     disabled.
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536. Moy                                                            [Page 81]
  4537.  
  4538. RFC 1583                     OSPF Version 2                   March 1994
  4539.  
  4540.  
  4541.          State(s):  Any state
  4542.  
  4543.             Event:  LLDown
  4544.  
  4545.         New state:  Down
  4546.  
  4547.            Action:  The Link state retransmission list, Database summary
  4548.                     list and Link state request list are cleared of link
  4549.                     state advertisements.  Also, the Inactivity Timer is
  4550.                     disabled.
  4551.  
  4552.  
  4553.          State(s):  Any state
  4554.  
  4555.             Event:  InactivityTimer
  4556.  
  4557.         New state:  Down
  4558.  
  4559.            Action:  The Link state retransmission list, Database summary
  4560.                     list and Link state request list are cleared of link
  4561.                     state advertisements.
  4562.  
  4563.  
  4564.          State(s):  2-Way or greater
  4565.  
  4566.             Event:  1-WayReceived
  4567.  
  4568.         New state:  Init
  4569.  
  4570.            Action:  The Link state retransmission list, Database summary
  4571.                     list and Link state request list are cleared of link
  4572.                     state advertisements.
  4573.  
  4574.  
  4575.          State(s):  2-Way or greater
  4576.  
  4577.             Event:  2-WayReceived
  4578.  
  4579.         New state:  No state change.
  4580.  
  4581.            Action:  No action required.
  4582.  
  4583.  
  4584.          State(s):  Init
  4585.  
  4586.             Event:  1-WayReceived
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592. Moy                                                            [Page 82]
  4593.  
  4594. RFC 1583                     OSPF Version 2                   March 1994
  4595.  
  4596.  
  4597.         New state:  No state change.
  4598.  
  4599.            Action:  No action required.
  4600.  
  4601.  
  4602.     10.4.  Whether to become adjacent
  4603.  
  4604.         Adjacencies are established with some subset of the router's
  4605.         neighbors.  Routers connected by point-to-point networks and
  4606.         virtual links always become adjacent.  On multi-access networks,
  4607.         all routers become adjacent to both the Designated Router and
  4608.         the Backup Designated Router.
  4609.  
  4610.         The adjacency-forming decision occurs in two places in the
  4611.         neighbor state machine.  First, when bidirectional communication
  4612.         is initially established with the neighbor, and secondly, when
  4613.         the identity of the attached network's (Backup) Designated
  4614.         Router changes.  If the decision is made to not attempt an
  4615.         adjacency, the state of the neighbor communication stops at 2-
  4616.         Way.
  4617.  
  4618.         An adjacency should be established with a bidirectional neighbor
  4619.         when at least one of the following conditions holds:
  4620.  
  4621.  
  4622.         o   The underlying network type is point-to-point
  4623.  
  4624.         o   The underlying network type is virtual link
  4625.  
  4626.         o   The router itself is the Designated Router
  4627.  
  4628.         o   The router itself is the Backup Designated Router
  4629.  
  4630.         o   The neighboring router is the Designated Router
  4631.  
  4632.         o   The neighboring router is the Backup Designated Router
  4633.  
  4634.  
  4635.     10.5.  Receiving Hello Packets
  4636.  
  4637.         This section explains the detailed processing of a received
  4638.         Hello Packet.  (See Section A.3.2 for the format of Hello
  4639.         packets.)  The generic input processing of OSPF packets will
  4640.         have checked the validity of the IP header and the OSPF packet
  4641.         header.  Next, the values of the Network Mask, HelloInterval,
  4642.         and RouterDeadInterval fields in the received Hello packet must
  4643.         be checked against the values configured for the receiving
  4644.         interface.  Any mismatch causes processing to stop and the
  4645.  
  4646.  
  4647.  
  4648. Moy                                                            [Page 83]
  4649.  
  4650. RFC 1583                     OSPF Version 2                   March 1994
  4651.  
  4652.  
  4653.         packet to be dropped.  In other words, the above fields are
  4654.         really describing the attached network's configuration. However,
  4655.         there is one exception to the above rule: on point-to-point
  4656.         networks and on virtual links, the Network Mask in the received
  4657.         Hello Packet should be ignored.
  4658.  
  4659.         The receiving interface attaches to a single OSPF area (this
  4660.         could be the backbone).  The setting of the E-bit found in the
  4661.         Hello Packet's Options field must match this area's
  4662.         ExternalRoutingCapability.  If AS external advertisements are
  4663.         not flooded into/throughout the area (i.e, the area is a "stub")
  4664.         the E-bit must be clear in received Hello Packets, otherwise the
  4665.         E-bit must be set.  A mismatch causes processing to stop and the
  4666.         packet to be dropped.  The setting of the rest of the bits in
  4667.         the Hello Packet's Options field should be ignored.
  4668.  
  4669.         At this point, an attempt is made to match the source of the
  4670.         Hello Packet to one of the receiving interface's neighbors.  If
  4671.         the receiving interface is a multi-access network (either
  4672.         broadcast or non-broadcast) the source is identified by the IP
  4673.         source address found in the Hello's IP header.  If the receiving
  4674.         interface is a point-to-point link or a virtual link, the source
  4675.         is identified by the Router ID found in the Hello's OSPF packet
  4676.         header.  The interface's current list of neighbors is contained
  4677.         in the interface's data structure.  If a matching neighbor
  4678.         structure cannot be found, (i.e., this is the first time the
  4679.         neighbor has been detected), one is created.  The initial state
  4680.         of a newly created neighbor is set to Down.
  4681.  
  4682.         When receiving an Hello Packet from a neighbor on a multi-access
  4683.         network (broadcast or non-broadcast), set the neighbor
  4684.         structure's Neighbor ID equal to the Router ID found in the
  4685.         packet's OSPF header.  When receiving an Hello on a point-to-
  4686.         point network (but not on a virtual link) set the neighbor
  4687.         structure's Neighbor IP address to the packet's IP source
  4688.         address.
  4689.  
  4690.         Now the rest of the Hello Packet is examined, generating events
  4691.         to be given to the neighbor and interface state machines.  These
  4692.         state machines are specified either to be executed or scheduled
  4693.         (see Section 4.4).  For example, by specifying below that the
  4694.         neighbor state machine be executed in line, several neighbor
  4695.         state transitions may be effected by a single received Hello:
  4696.  
  4697.  
  4698.         o   Each Hello Packet causes the neighbor state machine to be
  4699.             executed with the event HelloReceived.
  4700.  
  4701.  
  4702.  
  4703.  
  4704. Moy                                                            [Page 84]
  4705.  
  4706. RFC 1583                     OSPF Version 2                   March 1994
  4707.  
  4708.  
  4709.         o   Then the list of neighbors contained in the Hello Packet is
  4710.             examined.  If the router itself appears in this list, the
  4711.             neighbor state machine should be executed with the event 2-
  4712.             WayReceived.  Otherwise, the neighbor state machine should
  4713.             be executed with the event 1-WayReceived, and the processing
  4714.             of the packet stops.
  4715.  
  4716.         o   Next, the Hello Packet's Router Priority field is examined.
  4717.             If this field is different than the one previously received
  4718.             from the neighbor, the receiving interface's state machine
  4719.             is scheduled with the event NeighborChange.  In any case,
  4720.             the Router Priority field in the neighbor data structure
  4721.             should be updated accordingly.
  4722.  
  4723.         o   Next the Designated Router field in the Hello Packet is
  4724.             examined.  If the neighbor is both declaring itself to be
  4725.             Designated Router (Designated Router field = Neighbor IP
  4726.             address) and the Backup Designated Router field in the
  4727.             packet is equal to 0.0.0.0 and the receiving interface is in
  4728.             state Waiting, the receiving interface's state machine is
  4729.             scheduled with the event BackupSeen.  Otherwise, if the
  4730.             neighbor is declaring itself to be Designated Router and it
  4731.             had not previously, or the neighbor is not declaring itself
  4732.             Designated Router where it had previously, the receiving
  4733.             interface's state machine is scheduled with the event
  4734.             NeighborChange.  In any case, the Neighbors' Designated
  4735.             Router item in the neighbor structure is updated
  4736.             accordingly.
  4737.  
  4738.         o   Finally, the Backup Designated Router field in the Hello
  4739.             Packet is examined.  If the neighbor is declaring itself to
  4740.             be Backup Designated Router (Backup Designated Router field
  4741.             = Neighbor IP address) and the receiving interface is in
  4742.             state Waiting, the receiving interface's state machine is
  4743.             scheduled with the event BackupSeen.  Otherwise, if the
  4744.             neighbor is declaring itself to be Backup Designated Router
  4745.             and it had not previously, or the neighbor is not declaring
  4746.             itself Backup Designated Router where it had previously, the
  4747.             receiving interface's state machine is scheduled with the
  4748.             event NeighborChange.  In any case, the Neighbor's Backup
  4749.             Designated Router item in the neighbor structure is updated
  4750.             accordingly.
  4751.  
  4752.         On non-broadcast multi-access networks, receipt of an Hello
  4753.         Packet may also cause an Hello Packet to be sent back to the
  4754.         neighbor in response. See Section 9.5.1 for more details.
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760. Moy                                                            [Page 85]
  4761.  
  4762. RFC 1583                     OSPF Version 2                   March 1994
  4763.  
  4764.  
  4765.     10.6.  Receiving Database Description Packets
  4766.  
  4767.         This section explains the detailed processing of a received
  4768.         Database Description Packet.  The incoming Database Description
  4769.         Packet has already been associated with a neighbor and receiving
  4770.         interface by the generic input packet processing (Section 8.2).
  4771.         The further processing of the Database Description Packet
  4772.         depends on the neighbor state.  If the neighbor's state is Down
  4773.         or Attempt the packet should be ignored.  Otherwise, if the
  4774.         state is:
  4775.  
  4776.  
  4777.         Init
  4778.             The neighbor state machine should be executed with the event
  4779.             2-WayReceived.  This causes an immediate state change to
  4780.             either state 2-Way or state ExStart. If the new state is
  4781.             ExStart, the processing of the current packet should then
  4782.             continue in this new state by falling through to case
  4783.             ExStart below.
  4784.  
  4785.         2-Way
  4786.             The packet should be ignored.  Database Description Packets
  4787.             are used only for the purpose of bringing up adjacencies.[7]
  4788.  
  4789.         ExStart
  4790.             If the received packet matches one of the following cases,
  4791.             then the neighbor state machine should be executed with the
  4792.             event NegotiationDone (causing the state to transition to
  4793.             Exchange), the packet's Options field should be recorded in
  4794.             the neighbor structure's Neighbor Options field and the
  4795.             packet should be accepted as next in sequence and processed
  4796.             further (see below).  Otherwise, the packet should be
  4797.             ignored.
  4798.  
  4799.             o   The initialize(I), more (M) and master(MS) bits are set,
  4800.                 the contents of the packet are empty, and the neighbor's
  4801.                 Router ID is larger than the router's own.  In this case
  4802.                 the router is now Slave.  Set the master/slave bit to
  4803.                 slave, and set the DD sequence number to that specified
  4804.                 by the master.
  4805.  
  4806.             o   The initialize(I) and master(MS) bits are off, the
  4807.                 packet's DD sequence number equals the router's own DD
  4808.                 sequence number (indicating acknowledgment) and the
  4809.                 neighbor's Router ID is smaller than the router's own.
  4810.                 In this case the router is Master.
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816. Moy                                                            [Page 86]
  4817.  
  4818. RFC 1583                     OSPF Version 2                   March 1994
  4819.  
  4820.  
  4821.         Exchange
  4822.             If the state of the MS-bit is inconsistent with the
  4823.             master/slave state of the connection, generate the neighbor
  4824.             event SeqNumberMismatch and stop processing the packet.
  4825.             Otherwise:
  4826.  
  4827.             o   If the initialize(I) bit is set, generate the neighbor
  4828.                 event SeqNumberMismatch and stop processing the packet.
  4829.  
  4830.             o   If the packet's Options field indicates a different set
  4831.                 of optional OSPF capabilities than were previously
  4832.                 received from the neighbor (recorded in the Neighbor
  4833.                 Options field of the neighbor structure), generate the
  4834.                 neighbor event SeqNumberMismatch and stop processing the
  4835.                 packet.
  4836.  
  4837.             o   If the router is master, and the packet's DD sequence
  4838.                 number equals the router's own DD sequence number (this
  4839.                 packet is the next in sequence) the packet should be
  4840.                 accepted and its contents processed (below).
  4841.  
  4842.             o   If the router is master, and the packet's DD sequence
  4843.                 number is one less than the router's DD sequence number,
  4844.                 the packet is a duplicate.  Duplicates should be
  4845.                 discarded by the master.
  4846.  
  4847.             o   If the router is slave, and the packet's DD sequence
  4848.                 number is one more than the router's own DD sequence
  4849.                 number (this packet is the next in sequence) the packet
  4850.                 should be accepted and its contents processed (below).
  4851.  
  4852.             o   If the router is slave, and the packet's DD sequence
  4853.                 number is equal to the router's DD sequence number, the
  4854.                 packet is a duplicate.  The slave must respond to
  4855.                 duplicates by repeating the last Database Description
  4856.                 packet that it had sent.
  4857.  
  4858.             o   Else, generate the neighbor event SeqNumberMismatch and
  4859.                 stop processing the packet.
  4860.  
  4861.         Loading or Full
  4862.             In this state, the router has sent and received an entire
  4863.             sequence of Database Description Packets.  The only packets
  4864.             received should be duplicates (see above).  In particular,
  4865.             the packet's Options field should match the set of optional
  4866.             OSPF capabilities previously indicated by the neighbor
  4867.             (stored in the neighbor structure's Neighbor Options field).
  4868.             Any other packets received, including the reception of a
  4869.  
  4870.  
  4871.  
  4872. Moy                                                            [Page 87]
  4873.  
  4874. RFC 1583                     OSPF Version 2                   March 1994
  4875.  
  4876.  
  4877.             packet with the Initialize(I) bit set, should generate the
  4878.             neighbor event SeqNumberMismatch.[8] Duplicates should be
  4879.             discarded by the master.  The slave must respond to
  4880.             duplicates by repeating the last Database Description packet
  4881.             that it had sent.
  4882.  
  4883.  
  4884.         When the router accepts a received Database Description Packet
  4885.         as the next in sequence the packet contents are processed as
  4886.         follows.  For each link state advertisement listed, the
  4887.         advertisement's LS type is checked for validity.  If the LS type
  4888.         is unknown (e.g., not one of the LS types 1-5 defined by this
  4889.         specification), or if this is a AS external advertisement (LS
  4890.         type = 5) and the neighbor is associated with a stub area,
  4891.         generate the neighbor event SeqNumberMismatch and stop
  4892.         processing the packet.  Otherwise, the router looks up the
  4893.         advertisement in its database to see whether it also has an
  4894.         instance of the link state advertisement.  If it does not, or if
  4895.         the database copy is less recent (see Section 13.1), the link
  4896.         state advertisement is put on the Link state request list so
  4897.         that it can be requested (immediately or at some later time) in
  4898.         Link State Request Packets.
  4899.  
  4900.         When the router accepts a received Database Description Packet
  4901.         as the next in sequence, it also performs the following actions,
  4902.         depending on whether it is master or slave:
  4903.  
  4904.  
  4905.         Master
  4906.             Increments the DD sequence number.  If the router has
  4907.             already sent its entire sequence of Database Description
  4908.             Packets, and the just accepted packet has the more bit (M)
  4909.             set to 0, the neighbor event ExchangeDone is generated.
  4910.             Otherwise, it should send a new Database Description to the
  4911.             slave.
  4912.  
  4913.         Slave
  4914.             Sets the DD sequence number to the DD sequence number
  4915.             appearing in the received packet.  The slave must send a
  4916.             Database Description Packet in reply.  If the received
  4917.             packet has the more bit (M) set to 0, and the packet to be
  4918.             sent by the slave will also have the M-bit set to 0, the
  4919.             neighbor event ExchangeDone is generated.  Note that the
  4920.             slave always generates this event before the master.
  4921.  
  4922.  
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928. Moy                                                            [Page 88]
  4929.  
  4930. RFC 1583                     OSPF Version 2                   March 1994
  4931.  
  4932.  
  4933.     10.7.  Receiving Link State Request Packets
  4934.  
  4935.         This section explains the detailed processing of received Link
  4936.         State Request packets.  Received Link State Request Packets
  4937.         specify a list of link state advertisements that the neighbor
  4938.         wishes to receive.  Link State Request Packets should be
  4939.         accepted when the neighbor is in states Exchange, Loading, or
  4940.         Full.  In all other states Link State Request Packets should be
  4941.         ignored.
  4942.  
  4943.         Each link state advertisement specified in the Link State
  4944.         Request packet should be located in the router's database, and
  4945.         copied into Link State Update packets for transmission to the
  4946.         neighbor.  These link state advertisements should NOT be placed
  4947.         on the Link state retransmission list for the neighbor.  If a
  4948.         link state advertisement cannot be found in the database,
  4949.         something has gone wrong with the Database Exchange process, and
  4950.         neighbor event BadLSReq should be generated.
  4951.  
  4952.  
  4953.     10.8.  Sending Database Description Packets
  4954.  
  4955.         This section describes how Database Description Packets are sent
  4956.         to a neighbor.  The router's optional OSPF capabilities (see
  4957.         Section 4.5) are transmitted to the neighbor in the Options
  4958.         field of the Database Description packet.  The router should
  4959.         maintain the same set of optional capabilities throughout the
  4960.         Database Exchange and flooding procedures.  If for some reason
  4961.         the router's optional capabilities change, the Database Exchange
  4962.         procedure should be restarted by reverting to neighbor state
  4963.         ExStart.  There are currently two optional capabilities defined.
  4964.         The T-bit should be set if and only if the router is capable of
  4965.         calculating separate routes for each IP TOS.  The E-bit should
  4966.         be set if and only if the attached network belongs to a non-stub
  4967.         area.  The rest of the Options field should be set to zero.
  4968.  
  4969.         The sending of Database Description packets depends on the
  4970.         neighbor's state.  In state ExStart the router sends empty
  4971.         Database Description packets, with the initialize (I), more (M)
  4972.         and master (MS) bits set.  These packets are retransmitted every
  4973.         RxmtInterval seconds.
  4974.  
  4975.         In state Exchange the Database Description Packets actually
  4976.         contain summaries of the link state information contained in the
  4977.         router's database.  Each link state advertisement in the area's
  4978.         topological database (at the time the neighbor transitions into
  4979.         Exchange state) is listed in the neighbor Database summary list.
  4980.         When a new Database Description Packet is to be sent, the
  4981.  
  4982.  
  4983.  
  4984. Moy                                                            [Page 89]
  4985.  
  4986. RFC 1583                     OSPF Version 2                   March 1994
  4987.  
  4988.  
  4989.         packet's DD sequence number is incremented, and the (new) top of
  4990.         the Database summary list is described by the packet.  Items are
  4991.         removed from the Database summary list when the previous packet
  4992.         is acknowledged.
  4993.  
  4994.         In state Exchange, the determination of when to send a Database
  4995.         Description packet depends on whether the router is master or
  4996.         slave:
  4997.  
  4998.  
  4999.         Master
  5000.             Database Description packets are sent when either a) the
  5001.             slave acknowledges the previous Database Description packet
  5002.             by echoing the DD sequence number or b) RxmtInterval seconds
  5003.             elapse without an acknowledgment, in which case the previous
  5004.             Database Description packet is retransmitted.
  5005.  
  5006.         Slave
  5007.             Database Description packets are sent only in response to
  5008.             Database Description packets received from the master.  If
  5009.             the Database Description packet received from the master is
  5010.             new, a new Database Description packet is sent, otherwise
  5011.             the previous Database Description packet is resent.
  5012.  
  5013.  
  5014.         In states Loading and Full the slave must resend its last
  5015.         Database Description packet in response to duplicate Database
  5016.         Description packets received from the master.  For this reason
  5017.         the slave must wait RouterDeadInterval seconds before freeing
  5018.         the last Database Description packet.  Reception of a Database
  5019.         Description packet from the master after this interval will
  5020.         generate a SeqNumberMismatch neighbor event.
  5021.  
  5022.  
  5023.     10.9.  Sending Link State Request Packets
  5024.  
  5025.         In neighbor states Exchange or Loading, the Link state request
  5026.         list contains a list of those link state advertisements that
  5027.         need to be obtained from the neighbor.  To request these
  5028.         advertisements, a router sends the neighbor the beginning of the
  5029.         Link state request list, packaged in a Link State Request
  5030.         packet.
  5031.  
  5032.         When the neighbor responds to these requests with the proper
  5033.         Link State Update packet(s), the Link state request list is
  5034.         truncated and a new Link State Request packet is sent.  This
  5035.         process continues until the Link state request list becomes
  5036.         empty.  Unsatisfied Link State Request packets are retransmitted
  5037.  
  5038.  
  5039.  
  5040. Moy                                                            [Page 90]
  5041.  
  5042. RFC 1583                     OSPF Version 2                   March 1994
  5043.  
  5044.  
  5045.         at intervals of RxmtInterval.  There should be at most one Link
  5046.         State Request packet outstanding at any one time.
  5047.  
  5048.         When the Link state request list becomes empty, and the neighbor
  5049.         state is Loading (i.e., a complete sequence of Database
  5050.         Description packets has been sent to and received from the
  5051.         neighbor), the Loading Done neighbor event is generated.
  5052.  
  5053.  
  5054.     10.10.  An Example
  5055.  
  5056.         Figure 14 shows an example of an adjacency forming.  Routers RT1
  5057.         and RT2 are both connected to a broadcast network.  It is
  5058.         assumed that RT2 is the Designated Router for the network, and
  5059.         that RT2 has a higher Router ID than Router RT1.
  5060.  
  5061.         The neighbor state changes realized by each router are listed on
  5062.         the sides of the figure.
  5063.  
  5064.         At the beginning of Figure 14, Router RT1's interface to the
  5065.         network becomes operational.  It begins sending Hello Packets,
  5066.         although it doesn't know the identity of the Designated Router
  5067.         or of any other neighboring routers.  Router RT2 hears this
  5068.         hello (moving the neighbor to Init state), and in its next Hello
  5069.         Packet indicates that it is itself the Designated Router and
  5070.         that it has heard Hello Packets from RT1.  This in turn causes
  5071.         RT1 to go to state ExStart, as it starts to bring up the
  5072.         adjacency.
  5073.  
  5074.         RT1 begins by asserting itself as the master.  When it sees that
  5075.         RT2 is indeed the master (because of RT2's higher Router ID),
  5076.         RT1 transitions to slave state and adopts its neighbor's DD
  5077.         sequence number.  Database Description packets are then
  5078.         exchanged, with polls coming from the master (RT2) and responses
  5079.         from the slave (RT1).  This sequence of Database Description
  5080.         Packets ends when both the poll and associated response has the
  5081.         M-bit off.
  5082.  
  5083.         In this example, it is assumed that RT2 has a completely up to
  5084.         date database.  In that case, RT2 goes immediately into Full
  5085.         state.  RT1 will go into Full state after updating the necessary
  5086.         parts of its database.  This is done by sending Link State
  5087.         Request Packets, and receiving Link State Update Packets in
  5088.         response.  Note that, while RT1 has waited until a complete set
  5089.         of Database Description Packets has been received (from RT2)
  5090.         before sending any Link State Request Packets, this need not be
  5091.         the case.  RT1 could have interleaved the sending of Link State
  5092.         Request Packets with the reception of Database Description
  5093.  
  5094.  
  5095.  
  5096. Moy                                                            [Page 91]
  5097.  
  5098. RFC 1583                     OSPF Version 2                   March 1994
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.             +---+                                         +---+
  5107.             |RT1|                                         |RT2|
  5108.             +---+                                         +---+
  5109.  
  5110.             Down                                          Down
  5111.                             Hello(DR=0,seen=0)
  5112.                        ------------------------------>
  5113.                          Hello (DR=RT2,seen=RT1,...)      Init
  5114.                        <------------------------------
  5115.             ExStart        D-D (Seq=x,I,M,Master)
  5116.                        ------------------------------>
  5117.                            D-D (Seq=y,I,M,Master)         ExStart
  5118.                        <------------------------------
  5119.             Exchange       D-D (Seq=y,M,Slave)
  5120.                        ------------------------------>
  5121.                            D-D (Seq=y+1,M,Master)         Exchange
  5122.                        <------------------------------
  5123.                            D-D (Seq=y+1,M,Slave)
  5124.                        ------------------------------>
  5125.                                      ...
  5126.                                      ...
  5127.                                      ...
  5128.                            D-D (Seq=y+n, Master)
  5129.                        <------------------------------
  5130.                            D-D (Seq=y+n, Slave)
  5131.              Loading   ------------------------------>
  5132.                                  LS Request                Full
  5133.                        ------------------------------>
  5134.                                  LS Update
  5135.                        <------------------------------
  5136.                                  LS Request
  5137.                        ------------------------------>
  5138.                                  LS Update
  5139.                        <------------------------------
  5140.              Full
  5141.  
  5142.  
  5143.                    Figure 14: An adjacency bring-up example
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152. Moy                                                            [Page 92]
  5153.  
  5154. RFC 1583                     OSPF Version 2                   March 1994
  5155.  
  5156.  
  5157.         Packets.
  5158.  
  5159.  
  5160. 11.  The Routing Table Structure
  5161.  
  5162.     The routing table data structure contains all the information
  5163.     necessary to forward an IP data packet toward its destination.  Each
  5164.     routing table entry describes the collection of best paths to a
  5165.     particular destination.  When forwarding an IP data packet, the
  5166.     routing table entry providing the best match for the packet's IP
  5167.     destination is located.  The matching routing table entry then
  5168.     provides the next hop towards the packet's destination.  OSPF also
  5169.     provides for the existence of a default route (Destination ID =
  5170.     DefaultDestination, Address Mask =  0x00000000).  When the default
  5171.     route exists, it matches all IP destinations (although any other
  5172.     matching entry is a better match).  Finding the routing table entry
  5173.     that best matches an IP destination is further described in Section
  5174.     11.1.
  5175.  
  5176.     There is a single routing table in each router.  Two sample routing
  5177.     tables are described in Sections 11.2 and 11.3.  The building of the
  5178.     routing table is discussed in Section 16.
  5179.  
  5180.     The rest of this section defines the fields found in a routing table
  5181.     entry.  The first set of fields describes the routing table entry's
  5182.     destination.
  5183.  
  5184.  
  5185.     Destination Type
  5186.         The destination can be one of three types.  Only the first type,
  5187.         Network, is actually used when forwarding IP data traffic.  The
  5188.         other destinations are used solely as intermediate steps in the
  5189.         routing table build process.
  5190.  
  5191.         Network
  5192.             A range of IP addresses, to which IP data traffic may be
  5193.             forwarded.  This includes IP networks (class A, B, or C), IP
  5194.             subnets, IP supernets and single IP hosts.  The default
  5195.             route also falls in this category.
  5196.  
  5197.         Area border router
  5198.             Routers that are connected to multiple OSPF areas.  Such
  5199.             routers originate summary link advertisements.  These
  5200.             routing table entries are used when calculating the inter-
  5201.             area routes (see Section 16.2).  These routing table entries
  5202.             may also be associated with configured virtual links.
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208. Moy                                                            [Page 93]
  5209.  
  5210. RFC 1583                     OSPF Version 2                   March 1994
  5211.  
  5212.  
  5213.         AS boundary router
  5214.             Routers that originate AS external link advertisements.
  5215.             These routing table entries are used when calculating the AS
  5216.             external routes (see Section 16.4).
  5217.  
  5218.     Destination ID
  5219.         The destination's identifier or name.  This depends on the
  5220.         Destination Type.  For networks, the identifier is their
  5221.         associated IP address.  For all other types, the identifier is
  5222.         the OSPF Router ID.[9]
  5223.  
  5224.     Address Mask
  5225.         Only defined for networks.  The network's IP address together
  5226.         with its address mask defines a range of IP addresses.  For IP
  5227.         subnets, the address mask is referred to as the subnet mask.
  5228.         For host routes, the mask is "all ones" (0xffffffff).
  5229.  
  5230.     Optional Capabilities
  5231.         When the destination is a router (either an area border router
  5232.         or an AS boundary router) this field indicates the optional OSPF
  5233.         capabilities supported by the destination router.  The two
  5234.         optional capabilities currently defined by this specification
  5235.         are the ability to route based on IP TOS and the ability to
  5236.         process AS external link advertisements.  For a further
  5237.         discussion of OSPF's optional capabilities, see Section 4.5.
  5238.  
  5239.  
  5240.     The set of paths to use for a destination may vary based on IP Type
  5241.     of Service and the OSPF area to which the paths belong.  This means
  5242.     that there may be multiple routing table entries for the same
  5243.     destination, depending on the values of the next two fields.
  5244.  
  5245.  
  5246.     Type of Service
  5247.         There can be a separate set of routes for each IP Type of
  5248.         Service.  The encoding of TOS in OSPF link state advertisements
  5249.         is described in Section 12.3.
  5250.  
  5251.     Area
  5252.         This field indicates the area whose link state information has
  5253.         led to the routing table entry's collection of paths.  This is
  5254.         called the entry's associated area.  For sets of AS external
  5255.         paths, this field is not defined.  For destinations of type
  5256.         "area border router", there may be separate sets of paths (and
  5257.         therefore separate routing table entries) associated with each
  5258.         of several areas.  This will happen when two area border routers
  5259.         share multiple areas in common.  For all other destination
  5260.         types, only the set of paths associated with the best area (the
  5261.  
  5262.  
  5263.  
  5264. Moy                                                            [Page 94]
  5265.  
  5266. RFC 1583                     OSPF Version 2                   March 1994
  5267.  
  5268.  
  5269.         one providing the shortest route) is kept.
  5270.  
  5271.  
  5272.     The rest of the routing table entry describes the set of paths to
  5273.     the destination.  The following fields pertain to the set of paths
  5274.     as a whole.  In other words, each one of the paths contained in a
  5275.     routing table entry is of the same path-type and cost (see below).
  5276.  
  5277.  
  5278.     Path-type
  5279.         There are four possible types of paths used to route traffic to
  5280.         the destination, listed here in order of preference: intra-area,
  5281.         inter-area, type 1 external or type 2 external.  Intra-area
  5282.         paths indicate destinations belonging to one of the router's
  5283.         attached areas.  Inter-area paths are paths to destinations in
  5284.         other OSPF areas.  These are discovered through the examination
  5285.         of received summary link advertisements.  AS external paths are
  5286.         paths to destinations external to the AS.  These are detected
  5287.         through the examination of received AS external link
  5288.         advertisements.
  5289.  
  5290.     Cost
  5291.         The link state cost of the path to the destination.  For all
  5292.         paths except type 2 external paths this describes the entire
  5293.         path's cost.  For Type 2 external paths, this field describes
  5294.         the cost of the portion of the path internal to the AS.  This
  5295.         cost is calculated as the sum of the costs of the path's
  5296.         constituent links.
  5297.  
  5298.     Type 2 cost
  5299.         Only valid for type 2 external paths.  For these paths, this
  5300.         field indicates the cost of the path's external portion.  This
  5301.         cost has been advertised by an AS boundary router, and is the
  5302.         most significant part of the total path cost.  For example, a
  5303.         type 2 external path with type 2 cost of 5 is always preferred
  5304.         over a path with type 2 cost of 10, regardless of the cost of
  5305.         the two paths' internal components.
  5306.  
  5307.     Link State Origin
  5308.         Valid only for intra-area paths, this field indicates the link
  5309.         state advertisement (router links or network links) that
  5310.         directly references the destination.  For example, if the
  5311.         destination is a transit network, this is the transit network's
  5312.         network links advertisement.  If the destination is a stub
  5313.         network, this is the router links advertisement for the attached
  5314.         router.  The advertisement is discovered during the shortest-
  5315.         path tree calculation (see Section 16.1).  Multiple
  5316.         advertisements may reference the destination, however a tie-
  5317.  
  5318.  
  5319.  
  5320. Moy                                                            [Page 95]
  5321.  
  5322. RFC 1583                     OSPF Version 2                   March 1994
  5323.  
  5324.  
  5325.         breaking scheme always reduces the choice to a single
  5326.         advertisement. The Link State Origin field is not used by the
  5327.         OSPF protocol, but it is used by the routing table calculation
  5328.         in OSPF's Multicast routing extensions (MOSPF).
  5329.  
  5330.     When multiple paths of equal path-type and cost exist to a
  5331.     destination (called elsewhere "equal-cost" paths), they are stored
  5332.     in a single routing table entry.  Each one of the "equal-cost" paths
  5333.     is distinguished by the following fields:
  5334.  
  5335.  
  5336.     Next hop
  5337.         The outgoing router interface to use when forwarding traffic to
  5338.         the destination.  On multi-access networks, the next hop also
  5339.         includes the IP address of the next router (if any) in the path
  5340.         towards the destination.  This next router will always be one of
  5341.         the adjacent neighbors.
  5342.  
  5343.     Advertising router
  5344.         Valid only for inter-area and AS external paths.  This field
  5345.         indicates the Router ID of the router advertising the summary
  5346.         link or AS external link that led to this path.
  5347.  
  5348.  
  5349.     11.1.  Routing table lookup
  5350.  
  5351.         When an IP data packet is received, an OSPF router finds the
  5352.         routing table entry that best matches the packet's destination.
  5353.         This routing table entry then provides the outgoing interface
  5354.         and next hop router to use in forwarding the packet. This
  5355.         section describes the process of finding the best matching
  5356.         routing table entry. The process consists of a number of steps,
  5357.         wherein the collection of routing table entries is progressively
  5358.         pruned. In the end, the single routing table entry remaining is
  5359.         the called best match.
  5360.  
  5361.         Note that the steps described below may fail to produce a best
  5362.         match routing table entry (i.e., all existing routing table
  5363.         entries are pruned for some reason or another). In this case,
  5364.         the packet's IP destination is considered unreachable. Instead
  5365.         of being forwarded, the packet should be dropped and an ICMP
  5366.         destination unreachable message should be returned to the
  5367.         packet's source.
  5368.  
  5369.  
  5370.         (1) Select the complete set of "matching" routing table entries
  5371.             from the routing table.  Each routing table entry describes
  5372.             a (set of) path(s) to a range of IP addresses. If the data
  5373.  
  5374.  
  5375.  
  5376. Moy                                                            [Page 96]
  5377.  
  5378. RFC 1583                     OSPF Version 2                   March 1994
  5379.  
  5380.  
  5381.             packet's IP destination falls into an entry's range of IP
  5382.             addresses, the routing table entry is called a match. (It is
  5383.             quite likely that multiple entries will match the data
  5384.             packet.  For example, a default route will match all
  5385.             packets.)
  5386.  
  5387.         (2) Suppose that the packet's IP destination falls into one of
  5388.             the router's configured area address ranges (see Section
  5389.             3.5), and that the particular area address range is active.
  5390.             This means that there are one or more reachable (by intra-
  5391.             area paths) networks contained in the area address range.
  5392.             The packet's IP destination is then required to belong to
  5393.             one of these constituent networks. For this reason, only
  5394.             matching routing table entries with path-type of intra-area
  5395.             are considered (all others are pruned). If no such matching
  5396.             entries exist, the destination is unreachable (see above).
  5397.             Otherwise, skip to step 4.
  5398.  
  5399.         (3) Reduce the set of matching entries to those having the most
  5400.             preferential path-type (see Section 11). OSPF has a four
  5401.             level hierarchy of paths. Intra-area paths are the most
  5402.             preferred, followed in order by inter-area, type 1 external
  5403.             and type 2 external paths.
  5404.  
  5405.         (4) Select the remaining routing table entry that provides the
  5406.             longest (most specific) match. Another way of saying this is
  5407.             to choose the remaining entry that specifies the narrowest
  5408.             range of IP addresses.[10] For example, the entry for the
  5409.             address/mask pair of (128.185.1.0, 0xffffff00) is more
  5410.             specific than an entry for the pair (128.185.0.0,
  5411.             0xffff0000). The default route is the least specific match,
  5412.             since it matches all destinations.
  5413.  
  5414.         (5) At this point, there may still be multiple routing table
  5415.             entries remaining. Each routing entry will specify the same
  5416.             range of IP addresses, but a different IP Type of Service.
  5417.             Select the routing table entry whose TOS value matches the
  5418.             TOS found in the packet header. If there is no routing table
  5419.             entry for this TOS, select the routing table entry for TOS
  5420.             0. In other words, packets requesting TOS X are routed along
  5421.             the TOS 0 path if a TOS X path does not exist.
  5422.  
  5423.  
  5424.     11.2.  Sample routing table, without areas
  5425.  
  5426.         Consider the Autonomous System pictured in Figure 2.  No OSPF
  5427.         areas have been configured.  A single metric is shown per
  5428.         outbound interface, indicating that routes will not vary based
  5429.  
  5430.  
  5431.  
  5432. Moy                                                            [Page 97]
  5433.  
  5434. RFC 1583                     OSPF Version 2                   March 1994
  5435.  
  5436.  
  5437.         on TOS.  The calculation of Router RT6's routing table proceeds
  5438.         as described in Section 2.1.  The resulting routing table is
  5439.         shown in Table 12.  Destination types are abbreviated: Network
  5440.         as "N", area border router as "BR" and AS boundary router as
  5441.         "ASBR".
  5442.  
  5443.         There are no instances of multiple equal-cost shortest paths in
  5444.         this example.  Also, since there are no areas, there are no
  5445.         inter-area paths.
  5446.  
  5447.         Routers RT5 and RT7 are AS boundary routers.  Intra-area routes
  5448.         have been calculated to Routers RT5 and RT7.  This allows
  5449.         external routes to be calculated to the destinations advertised
  5450.         by RT5 and RT7 (i.e., Networks N12, N13, N14 and N15).  It is
  5451.         assumed all AS external advertisements originated by RT5 and RT7
  5452.         are advertising type 1 external metrics.  This results in type 1
  5453.         external paths being calculated to destinations N12-N15.
  5454.  
  5455.  
  5456.  
  5457.     11.3.  Sample routing table, with areas
  5458.  
  5459.         Consider the previous example, this time split into OSPF areas.
  5460.         An OSPF area configuration is pictured in Figure 6.  Router
  5461.         RT4's routing table will be described for this area
  5462.         configuration.  Router RT4 has a connection to Area 1 and a
  5463.         backbone connection.  This causes Router RT4 to view the AS as
  5464.         the concatenation of the two graphs shown in Figures 7 and 8.
  5465.         The resulting routing table is displayed in Table 13.
  5466.  
  5467.         Again, Routers RT5 and RT7 are AS boundary routers.  Routers
  5468.         RT3, RT4, RT7, RT10 and RT11 are area border routers.  Note that
  5469.         there are two routing table entries (in this case having
  5470.         identical paths) for Router RT7, in its dual capacities as an
  5471.         area border router and an AS boundary router.  Note also that
  5472.         there are two routing entries for the area border router RT3,
  5473.         since it has two areas in common with RT4 (Area 1 and the
  5474.         backbone).
  5475.  
  5476.         Backbone paths have been calculated to all area border routers
  5477.         (BR).  These are used when determining the inter-area routes.
  5478.         Note that all of the inter-area routes are associated with the
  5479.         backbone; this is always the case when the calculating router is
  5480.         itself an area border router.  Routing information is condensed
  5481.         at area boundaries.  In this example, we assume that Area 3 has
  5482.         been defined so that networks N9-N11 and the host route to H1
  5483.         are all condensed to a single route when advertised into the
  5484.         backbone (by Router RT11).  Note that the cost of this route is
  5485.  
  5486.  
  5487.  
  5488. Moy                                                            [Page 98]
  5489.  
  5490. RFC 1583                     OSPF Version 2                   March 1994
  5491.  
  5492.  
  5493.  
  5494.  
  5495.       Type   Dest   Area   Path  Type    Cost   Next     Adv.
  5496.                                                 Hop(s)   Router(s)
  5497.       ____________________________________________________________
  5498.       N      N1     0      intra-area    10     RT3      *
  5499.       N      N2     0      intra-area    10     RT3      *
  5500.       N      N3     0      intra-area    7      RT3      *
  5501.       N      N4     0      intra-area    8      RT3      *
  5502.       N      Ib     0      intra-area    7      *        *
  5503.       N      Ia     0      intra-area    12     RT10     *
  5504.       N      N6     0      intra-area    8      RT10     *
  5505.       N      N7     0      intra-area    12     RT10     *
  5506.       N      N8     0      intra-area    10     RT10     *
  5507.       N      N9     0      intra-area    11     RT10     *
  5508.       N      N10    0      intra-area    13     RT10     *
  5509.       N      N11    0      intra-area    14     RT10     *
  5510.       N      H1     0      intra-area    21     RT10     *
  5511.       ASBR   RT5    0      intra-area    6      RT5      *
  5512.       ASBR   RT7    0      intra-area    8      RT10     *
  5513.       ____________________________________________________________
  5514.       N      N12    *      type 1 ext.   10     RT10     RT7
  5515.       N      N13    *      type 1 ext.   14     RT5      RT5
  5516.       N      N14    *      type 1 ext.   14     RT5      RT5
  5517.       N      N15    *      type 1 ext.   17     RT10     RT7
  5518.  
  5519.  
  5520.                Table 12: The routing table for Router RT6
  5521.                          (no configured areas).
  5522.  
  5523.         the minimum of the set of costs to its individual components.
  5524.  
  5525.         There is a virtual link configured between Routers RT10 and
  5526.         RT11.  Without this configured virtual link, RT11 would be
  5527.         unable to advertise a route for networks N9-N11 and Host H1 into
  5528.         the backbone, and there would not be an entry for these networks
  5529.         in Router RT4's routing table.
  5530.  
  5531.         In this example there are two equal-cost paths to Network N12.
  5532.         However, they both use the same next hop (Router RT5).
  5533.  
  5534.  
  5535.  
  5536.         Router RT4's routing table would improve (i.e., some of the
  5537.         paths in the routing table would become shorter) if an
  5538.         additional virtual link were configured between Router RT4 and
  5539.         Router RT3.  The new virtual link would itself be associated
  5540.         with the first entry for area border router RT3 in Table 13 (an
  5541.  
  5542.  
  5543.  
  5544. Moy                                                            [Page 99]
  5545.  
  5546. RFC 1583                     OSPF Version 2                   March 1994
  5547.  
  5548.  
  5549.  
  5550.  
  5551.    Type   Dest        Area   Path  Type    Cost   Next      Adv.
  5552.                                                   Hops(s)   Router(s)
  5553.    __________________________________________________________________
  5554.    N      N1          1      intra-area    4      RT1       *
  5555.    N      N2          1      intra-area    4      RT2       *
  5556.    N      N3          1      intra-area    1      *         *
  5557.    N      N4          1      intra-area    3      RT3       *
  5558.    BR     RT3         1      intra-area    1      *         *
  5559.    __________________________________________________________________
  5560.    N      Ib          0      intra-area    22     RT5       *
  5561.    N      Ia          0      intra-area    27     RT5       *
  5562.    BR     RT3         0      intra-area    21     RT5       *
  5563.    BR     RT7         0      intra-area    14     RT5       *
  5564.    BR     RT10        0      intra-area    22     RT5       *
  5565.    BR     RT11        0      intra-area    25     RT5       *
  5566.    ASBR   RT5         0      intra-area    8      *         *
  5567.    ASBR   RT7         0      intra-area    14     RT5       *
  5568.    __________________________________________________________________
  5569.    N      N6          0      inter-area    15     RT5       RT7
  5570.    N      N7          0      inter-area    19     RT5       RT7
  5571.    N      N8          0      inter-area    18     RT5       RT7
  5572.    N      N9-N11,H1   0      inter-area    26     RT5       RT11
  5573.    __________________________________________________________________
  5574.    N      N12         *      type 1 ext.   16     RT5       RT5,RT7
  5575.    N      N13         *      type 1 ext.   16     RT5       RT5
  5576.    N      N14         *      type 1 ext.   16     RT5       RT5
  5577.    N      N15         *      type 1 ext.   23     RT5       RT7
  5578.  
  5579.  
  5580.                   Table 13: Router RT4's routing table
  5581.                        in the presence of areas.
  5582.  
  5583.         intra-area path through Area 1).  This would yield a cost of 1
  5584.         for the virtual link.  The routing table entries changes that
  5585.         would be caused by the addition of this virtual link are shown
  5586.         in Table 14.
  5587.  
  5588.  
  5589.  
  5590. 12.  Link State Advertisements
  5591.  
  5592.     Each router in the Autonomous System originates one or more link
  5593.     state advertisements.  There are five distinct types of link state
  5594.     advertisements, which are described in Section 4.3.  The collection
  5595.     of link state advertisements forms the link state or topological
  5596.     database.  Each separate type of advertisement has a separate
  5597.  
  5598.  
  5599.  
  5600. Moy                                                           [Page 100]
  5601.  
  5602. RFC 1583                     OSPF Version 2                   March 1994
  5603.  
  5604.  
  5605.  
  5606.  
  5607.     Type   Dest        Area   Path  Type   Cost   Next     Adv.
  5608.                                                   Hop(s)   Router(s)
  5609.     ________________________________________________________________
  5610.     N      Ib          0      intra-area   16     RT3      *
  5611.     N      Ia          0      intra-area   21     RT3      *
  5612.     BR     RT3         0      intra-area   1      *        *
  5613.     BR     RT10        0      intra-area   16     RT3      *
  5614.     BR     RT11        0      intra-area   19     RT3      *
  5615.     ________________________________________________________________
  5616.     N      N9-N11,H1   0      inter-area   20     RT3      RT11
  5617.  
  5618.  
  5619.                   Table 14: Changes resulting from an
  5620.                         additional virtual link.
  5621.  
  5622.     function.  Router links and network links advertisements describe
  5623.     how an area's routers and networks are interconnected.  Summary link
  5624.     advertisements provide a way of condensing an area's routing
  5625.     information.  AS external advertisements provide a way of
  5626.     transparently advertising externally-derived routing information
  5627.     throughout the Autonomous System.
  5628.  
  5629.     Each link state advertisement begins with a standard 20-byte header.
  5630.     This link state advertisement header is discussed below.
  5631.  
  5632.  
  5633.     12.1.  The Link State Advertisement Header
  5634.  
  5635.         The link state advertisement header contains the LS type, Link
  5636.         State ID and Advertising Router fields.  The combination of
  5637.         these three fields uniquely identifies the link state
  5638.         advertisement.
  5639.  
  5640.         There may be several instances of an advertisement present in
  5641.         the Autonomous System, all at the same time.  It must then be
  5642.         determined which instance is more recent.  This determination is
  5643.         made by examining the LS sequence, LS checksum and LS age
  5644.         fields.  These fields are also contained in the 20-byte link
  5645.         state advertisement header.
  5646.  
  5647.         Several of the OSPF packet types list link state advertisements.
  5648.         When the instance is not important, an advertisement is referred
  5649.         to by its LS type, Link State ID and Advertising Router (see
  5650.         Link State Request Packets).  Otherwise, the LS sequence number,
  5651.         LS age and LS checksum fields must also be referenced.
  5652.  
  5653.  
  5654.  
  5655.  
  5656. Moy                                                           [Page 101]
  5657.  
  5658. RFC 1583                     OSPF Version 2                   March 1994
  5659.  
  5660.  
  5661.         A detailed explanation of the fields contained in the link state
  5662.         advertisement header follows.
  5663.  
  5664.  
  5665.         12.1.1.  LS age
  5666.  
  5667.             This field is the age of the link state advertisement in
  5668.             seconds.  It should be processed as an unsigned 16-bit
  5669.             integer.  It is set to 0 when the link state advertisement
  5670.             is originated.  It must be incremented by InfTransDelay on
  5671.             every hop of the flooding procedure.  Link state
  5672.             advertisements are also aged as they are held in each
  5673.             router's database.
  5674.  
  5675.             The age of a link state advertisement is never incremented
  5676.             past MaxAge.  Advertisements having age MaxAge are not used
  5677.             in the routing table calculation.  When an advertisement's
  5678.             age first reaches MaxAge, it is reflooded.  A link state
  5679.             advertisement of age MaxAge is finally flushed from the
  5680.             database when it is no longer needed to ensure database
  5681.             synchronization.  For more information on the aging of link
  5682.             state advertisements, consult Section 14.
  5683.  
  5684.             The LS age field is examined when a router receives two
  5685.             instances of a link state advertisement, both having
  5686.             identical LS sequence numbers and LS checksums.  An instance
  5687.             of age MaxAge is then always accepted as most recent; this
  5688.             allows old advertisements to be flushed quickly from the
  5689.             routing domain.  Otherwise, if the ages differ by more than
  5690.             MaxAgeDiff, the instance having the smaller age is accepted
  5691.             as most recent.[11] See Section 13.1 for more details.
  5692.  
  5693.  
  5694.         12.1.2.  Options
  5695.  
  5696.             The Options field in the link state advertisement header
  5697.             indicates which optional capabilities are associated with
  5698.             the advertisement.  OSPF's optional capabilities are
  5699.             described in Section 4.5.  There are currently two optional
  5700.             capabilities defined; they are represented by the T-bit and
  5701.             E-bit found in the Options field.  The rest of the Options
  5702.             field should be set to zero.
  5703.  
  5704.             The E-bit represents OSPF's ExternalRoutingCapability.  This
  5705.             bit should be set in all advertisements associated with the
  5706.             backbone, and all advertisements associated with non-stub
  5707.             areas (see Section 3.6).  It should also be set in all AS
  5708.             external link advertisements.  It should be reset in all
  5709.  
  5710.  
  5711.  
  5712. Moy                                                           [Page 102]
  5713.  
  5714. RFC 1583                     OSPF Version 2                   March 1994
  5715.  
  5716.  
  5717.             router links, network links and summary link advertisements
  5718.             associated with a stub area.  For all link state
  5719.             advertisements, the setting of the E-bit is for
  5720.             informational purposes only; it does not affect the routing
  5721.             table calculation.
  5722.  
  5723.             The T-bit represents OSPF's TOS routing capability.  This
  5724.             bit should be set in a router links advertisement if and
  5725.             only if the router is capable of calculating separate routes
  5726.             for each IP TOS (see Section 2.4).  The T-bit should always
  5727.             be set in network links advertisements.  It should be set in
  5728.             summary link and AS external link advertisements if and only
  5729.             if the advertisement describes paths for all TOS values,
  5730.             instead of just the TOS 0 path.  Note that, with the T-bit
  5731.             set, there may still be only a single metric in the
  5732.             advertisement (the TOS 0 metric).  This would mean that
  5733.             paths for non-zero TOS exist, but are equivalent to the TOS
  5734.             0 path.  A link state advertisement's T-bit is examined when
  5735.             calculating the routing table's non-zero TOS paths (see
  5736.             Section 16.9).
  5737.  
  5738.  
  5739.         12.1.3.  LS type
  5740.  
  5741.             The LS type field dictates the format and function of the
  5742.             link state advertisement.  Advertisements of different types
  5743.             have different names (e.g., router links or network links).
  5744.             All advertisement types, except the AS external link
  5745.             advertisements (LS type = 5), are flooded throughout a
  5746.             single area only.  AS external link advertisements are
  5747.             flooded throughout the entire Autonomous System, excepting
  5748.             stub areas (see Section 3.6).  Each separate advertisement
  5749.             type is briefly described below in Table 15.
  5750.  
  5751.         12.1.4.  Link State ID
  5752.  
  5753.             This field identifies the piece of the routing domain that
  5754.             is being described by the advertisement.  Depending on the
  5755.             advertisement's LS type, the Link State ID takes on the
  5756.             values listed in Table 16.
  5757.  
  5758.  
  5759.             Actually, for Type 3 summary link (LS type = 3)
  5760.             advertisements and AS external link (LS type = 5)
  5761.             advertisements, the Link State ID may additionally have one
  5762.             or more of the destination network's "host" bits set. For
  5763.             example, when originating an AS external link for the
  5764.             network 10.0.0.0 with mask of 255.0.0.0, the Link State ID
  5765.  
  5766.  
  5767.  
  5768. Moy                                                           [Page 103]
  5769.  
  5770. RFC 1583                     OSPF Version 2                   March 1994
  5771.  
  5772.  
  5773.  
  5774.  
  5775.            LS Type   Advertisement description
  5776.            __________________________________________________
  5777.            1         These are the router links
  5778.                      advertisements. They describe the
  5779.                      collected states of the router's
  5780.                      interfaces. For more information,
  5781.                      consult Section 12.4.1.
  5782.            __________________________________________________
  5783.            2         These are the network links
  5784.                      advertisements. They describe the set
  5785.                      of routers attached to the network. For
  5786.                      more information, consult
  5787.                      Section 12.4.2.
  5788.            __________________________________________________
  5789.            3 or 4    These are the summary link
  5790.                      advertisements. They describe
  5791.                      inter-area routes, and enable the
  5792.                      condensation of routing information at
  5793.                      area borders. Originated by area border
  5794.                      routers, the Type 3 advertisements
  5795.                      describe routes to networks while the
  5796.                      Type 4 advertisements describe routes to
  5797.                      AS boundary routers.
  5798.            __________________________________________________
  5799.            5         These are the AS external link
  5800.                      advertisements. Originated by AS
  5801.                      boundary routers, they describe routes
  5802.                      to destinations external to the
  5803.                      Autonomous System. A default route for
  5804.                      the Autonomous System can also be
  5805.                      described by an AS external link
  5806.                      advertisement.
  5807.  
  5808.  
  5809.                Table 15: OSPF link state advertisements.
  5810.  
  5811.  
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.  
  5824. Moy                                                           [Page 104]
  5825.  
  5826. RFC 1583                     OSPF Version 2                   March 1994
  5827.  
  5828.  
  5829.             LS Type   Link State ID
  5830.             _______________________________________________
  5831.             1         The originating router's Router ID.
  5832.             2         The IP interface address of the
  5833.                       network's Designated Router.
  5834.             3         The destination network's IP address.
  5835.             4         The Router ID of the described AS
  5836.                       boundary router.
  5837.             5         The destination network's IP address.
  5838.  
  5839.  
  5840.               Table 16: The advertisement's Link State ID.
  5841.  
  5842.             can be set to anything in the range 10.0.0.0 through
  5843.             10.255.255.255 inclusive (although 10.0.0.0 should be used
  5844.             whenever possible). The freedom to set certain host bits
  5845.             allows a router to originate separate advertisements for two
  5846.             networks having the same address but different masks. See
  5847.             Appendix F for details.
  5848.  
  5849.             When the link state advertisement is describing a network
  5850.             (LS type = 2, 3 or 5), the network's IP address is easily
  5851.             derived by masking the Link State ID with the network/subnet
  5852.             mask contained in the body of the link state advertisement.
  5853.             When the link state advertisement is describing a router (LS
  5854.             type = 1 or 4), the Link State ID is always the described
  5855.             router's OSPF Router ID.
  5856.  
  5857.             When an AS external advertisement (LS Type = 5) is
  5858.             describing a default route, its Link State ID is set to
  5859.             DefaultDestination (0.0.0.0).
  5860.  
  5861.  
  5862.         12.1.5.  Advertising Router
  5863.  
  5864.             This field specifies the OSPF Router ID of the
  5865.             advertisement's originator.  For router links
  5866.             advertisements, this field is identical to the Link State ID
  5867.             field.  Network link advertisements are originated by the
  5868.             network's Designated Router.  Summary link advertisements
  5869.             are originated by area border routers.  AS external link
  5870.             advertisements are originated by AS boundary routers.
  5871.  
  5872.  
  5873.         12.1.6.  LS sequence number
  5874.  
  5875.             The sequence number field is a signed 32-bit integer.  It is
  5876.             used to detect old and duplicate link state advertisements.
  5877.  
  5878.  
  5879.  
  5880. Moy                                                           [Page 105]
  5881.  
  5882. RFC 1583                     OSPF Version 2                   March 1994
  5883.  
  5884.  
  5885.             The space of sequence numbers is linearly ordered.  The
  5886.             larger the sequence number (when compared as signed 32-bit
  5887.             integers) the more recent the advertisement.  To describe to
  5888.             sequence number space more precisely, let N refer in the
  5889.             discussion below to the constant 2**31.
  5890.  
  5891.             The sequence number -N (0x80000000) is reserved (and
  5892.             unused).  This leaves -N + 1 (0x80000001) as the smallest
  5893.             (and therefore oldest) sequence number.  A router uses this
  5894.             sequence number the first time it originates any link state
  5895.             advertisement.  Afterwards, the advertisement's sequence
  5896.             number is incremented each time the router originates a new
  5897.             instance of the advertisement.  When an attempt is made to
  5898.             increment the sequence number past the maximum value of N -
  5899.             1 (0x7fffffff), the current instance of the advertisement
  5900.             must first be flushed from the routing domain.  This is done
  5901.             by prematurely aging the advertisement (see Section 14.1)
  5902.             and reflooding it.  As soon as this flood has been
  5903.             acknowledged by all adjacent neighbors, a new instance can
  5904.             be originated with sequence number of -N + 1 (0x80000001).
  5905.  
  5906.             The router may be forced to promote the sequence number of
  5907.             one of its advertisements when a more recent instance of the
  5908.             advertisement is unexpectedly received during the flooding
  5909.             process.  This should be a rare event.  This may indicate
  5910.             that an out-of-date advertisement, originated by the router
  5911.             itself before its last restart/reload, still exists in the
  5912.             Autonomous System.  For more information see Section 13.4.
  5913.  
  5914.  
  5915.         12.1.7.  LS checksum
  5916.  
  5917.             This field is the checksum of the complete contents of the
  5918.             advertisement, excepting the LS age field.  The LS age field
  5919.             is excepted so that an advertisement's age can be
  5920.             incremented without updating the checksum.  The checksum
  5921.             used is the same that is used for ISO connectionless
  5922.             datagrams; it is commonly referred to as the Fletcher
  5923.             checksum.  It is documented in Annex B of [RFC 905].  The
  5924.             link state advertisement header also contains the length of
  5925.             the advertisement in bytes; subtracting the size of the LS
  5926.             age field (two bytes) yields the amount of data to checksum.
  5927.  
  5928.             The checksum is used to detect data corruption of an
  5929.             advertisement.  This corruption can occur while an
  5930.             advertisement is being flooded, or while it is being held in
  5931.             a router's memory.  The LS checksum field cannot take on the
  5932.             value of zero; the occurrence of such a value should be
  5933.  
  5934.  
  5935.  
  5936. Moy                                                           [Page 106]
  5937.  
  5938. RFC 1583                     OSPF Version 2                   March 1994
  5939.  
  5940.  
  5941.             considered a checksum failure.  In other words, calculation
  5942.             of the checksum is not optional.
  5943.  
  5944.             The checksum of a link state advertisement is verified in
  5945.             two cases: a) when it is received in a Link State Update
  5946.             Packet and b) at times during the aging of the link state
  5947.             database.  The detection of a checksum failure leads to
  5948.             separate actions in each case.  See Sections 13 and 14 for
  5949.             more details.
  5950.  
  5951.             Whenever the LS sequence number field indicates that two
  5952.             instances of an advertisement are the same, the LS checksum
  5953.             field is examined.  If there is a difference, the instance
  5954.             with the larger LS checksum is considered to be most
  5955.             recent.[12] See Section 13.1 for more details.
  5956.  
  5957.  
  5958.     12.2.  The link state database
  5959.  
  5960.         A router has a separate link state database for every area to
  5961.         which it belongs.  The link state database has been referred to
  5962.         elsewhere in the text as the topological database.  All routers
  5963.         belonging to the same area have identical topological databases
  5964.         for the area.
  5965.  
  5966.         The databases for each individual area are always dealt with
  5967.         separately.  The shortest path calculation is performed
  5968.         separately for each area (see Section 16).  Components of the
  5969.         area topological database are flooded throughout the area only.
  5970.         Finally, when an adjacency (belonging to Area A) is being
  5971.         brought up, only the database for Area A is synchronized between
  5972.         the two routers.
  5973.  
  5974.         The area database is composed of router links advertisements,
  5975.         network links advertisements, and summary link advertisements
  5976.         (all listed in the area data structure).  In addition, external
  5977.         routes (AS external advertisements) are included in all non-stub
  5978.         area databases (see Section 3.6).
  5979.  
  5980.         An implementation of OSPF must be able to access individual
  5981.         pieces of an area database.  This lookup function is based on an
  5982.         advertisement's LS type, Link State ID and Advertising
  5983.         Router.[13] There will be a single instance (the most up-to-
  5984.         date) of each link state advertisement in the database.  The
  5985.         database lookup function is invoked during the link state
  5986.         flooding procedure (Section 13) and the routing table
  5987.         calculation (Section 16).  In addition, using this lookup
  5988.         function the router can determine whether it has itself ever
  5989.  
  5990.  
  5991.  
  5992. Moy                                                           [Page 107]
  5993.  
  5994. RFC 1583                     OSPF Version 2                   March 1994
  5995.  
  5996.  
  5997.         originated a particular link state advertisement, and if so,
  5998.         with what LS sequence number.
  5999.  
  6000.         A link state advertisement is added to a router's database when
  6001.         either a) it is received during the flooding process (Section
  6002.         13) or b) it is originated by the router itself (Section 12.4).
  6003.         A link state advertisement is deleted from a router's database
  6004.         when either a) it has been overwritten by a newer instance
  6005.         during the flooding process (Section 13) or b) the router
  6006.         originates a newer instance of one of its self-originated
  6007.         advertisements (Section 12.4) or c) the advertisement ages out
  6008.         and is flushed from the routing domain (Section 14).  Whenever a
  6009.         link state advertisement is deleted from the database it must
  6010.         also be removed from all neighbors' Link state retransmission
  6011.         lists (see Section 10).
  6012.  
  6013.  
  6014.     12.3.  Representation of TOS
  6015.  
  6016.         All OSPF link state advertisements (with the exception of
  6017.         network links advertisements) specify metrics.  In router links
  6018.         advertisements, the metrics indicate the costs of the described
  6019.         interfaces.  In summary link and AS external link
  6020.         advertisements, the metric indicates the cost of the described
  6021.         path.  In all of these advertisements, a separate metric can be
  6022.         specified for each IP TOS.  The encoding of TOS in OSPF link
  6023.         state advertisements is specified in Table 17. That table
  6024.         relates the OSPF encoding to the IP packet header's TOS field
  6025.         (defined in [RFC 1349]).  The OSPF encoding is expressed as a
  6026.         decimal integer, and the IP packet header's TOS field is
  6027.         expressed in the binary TOS values used in [RFC 1349].
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046.  
  6047.  
  6048. Moy                                                           [Page 108]
  6049.  
  6050. RFC 1583                     OSPF Version 2                   March 1994
  6051.  
  6052.  
  6053.  
  6054.                     OSPF encoding   RFC 1349 TOS values
  6055.                     ___________________________________________
  6056.                     0               0000 normal service
  6057.                     2               0001 minimize monetary cost
  6058.                     4               0010 maximize reliability
  6059.                     6               0011
  6060.                     8               0100 maximize throughput
  6061.                     10              0101
  6062.                     12              0110
  6063.                     14              0111
  6064.                     16              1000 minimize delay
  6065.                     18              1001
  6066.                     20              1010
  6067.                     22              1011
  6068.                     24              1100
  6069.                     26              1101
  6070.                     28              1110
  6071.                     30              1111
  6072.  
  6073.  
  6074.                         Table 17: Representing TOS in OSPF.
  6075.  
  6076.  
  6077.         Each OSPF link state advertisement must specify the TOS 0
  6078.         metric.  Other TOS metrics, if they appear, must appear in order
  6079.         of increasing TOS encoding.  For example, the TOS 8 (maximize
  6080.         throughput) metric must always appear before the TOS 16
  6081.         (minimize delay) metric when both are specified.  If a metric
  6082.         for some non-zero TOS is not specified, its cost defaults to the
  6083.         cost for TOS 0, unless the T-bit is reset in the advertisement's
  6084.         Options field (see Section 12.1.2 for more details).
  6085.  
  6086.  
  6087.     12.4.  Originating link state advertisements
  6088.  
  6089.         Into any given OSPF area, a router will originate several link
  6090.         state advertisements.  Each router originates a router links
  6091.         advertisement.  If the router is also the Designated Router for
  6092.         any of the area's networks, it will originate network links
  6093.         advertisements for those networks.
  6094.  
  6095.         Area border routers originate a single summary link
  6096.         advertisement for each known inter-area destination.  AS
  6097.         boundary routers originate a single AS external link
  6098.         advertisement for each known AS external destination.
  6099.         Destinations are advertised one at a time so that the change in
  6100.         any single route can be flooded without reflooding the entire
  6101.  
  6102.  
  6103.  
  6104. Moy                                                           [Page 109]
  6105.  
  6106. RFC 1583                     OSPF Version 2                   March 1994
  6107.  
  6108.  
  6109.         collection of routes.  During the flooding procedure, many link
  6110.         state advertisements can be carried by a single Link State
  6111.         Update packet.
  6112.  
  6113.         As an example, consider Router RT4 in Figure 6.  It is an area
  6114.         border router, having a connection to Area 1 and the backbone.
  6115.         Router RT4 originates 5 distinct link state advertisements into
  6116.         the backbone (one router links, and one summary link for each of
  6117.         the networks N1-N4).  Router RT4 will also originate 8 distinct
  6118.         link state advertisements into Area 1 (one router links and
  6119.         seven summary link advertisements as pictured in Figure 7).  If
  6120.         RT4 has been selected as Designated Router for Network N3, it
  6121.         will also originate a network links advertisement for N3 into
  6122.         Area 1.
  6123.  
  6124.         In this same figure, Router RT5 will be originating 3 distinct
  6125.         AS external link advertisements (one for each of the networks
  6126.         N12-N14).  These will be flooded throughout the entire AS,
  6127.         assuming that none of the areas have been configured as stubs.
  6128.         However, if area 3 has been configured as a stub area, the
  6129.         external advertisements for networks N12-N14 will not be flooded
  6130.         into area 3 (see Section 3.6).  Instead, Router RT11 would
  6131.         originate a default summary link advertisement that would be
  6132.         flooded throughout area 3 (see Section 12.4.3).  This instructs
  6133.         all of area 3's internal routers to send their AS external
  6134.         traffic to RT11.
  6135.  
  6136.         Whenever a new instance of a link state advertisement is
  6137.         originated, its LS sequence number is incremented, its LS age is
  6138.         set to 0, its LS checksum is calculated, and the advertisement
  6139.         is added to the link state database and flooded out the
  6140.         appropriate interfaces.  See Section 13.2 for details concerning
  6141.         the installation of the advertisement into the link state
  6142.         database.  See Section 13.3 for details concerning the flooding
  6143.         of newly originated advertisements.
  6144.  
  6145.  
  6146.         The ten events that can cause a new instance of a link state
  6147.         advertisement to be originated are:
  6148.  
  6149.  
  6150.         (1) The LS age field of one of the router's self-originated
  6151.             advertisements reaches the value LSRefreshTime. In this
  6152.             case, a new instance of the link state advertisement is
  6153.             originated, even though the contents of the advertisement
  6154.             (apart from the link state advertisement header) will be the
  6155.             same.  This guarantees periodic originations of all link
  6156.             state advertisements. This periodic updating of link state
  6157.  
  6158.  
  6159.  
  6160. Moy                                                           [Page 110]
  6161.  
  6162. RFC 1583                     OSPF Version 2                   March 1994
  6163.  
  6164.  
  6165.             advertisements adds robustness to the link state algorithm.
  6166.             Link state advertisements that solely describe unreachable
  6167.             destinations should not be refreshed, but should instead be
  6168.             flushed from the routing domain (see Section 14.1).
  6169.  
  6170.  
  6171.         When whatever is being described by a link state advertisement
  6172.         changes, a new advertisement is originated.  However, two
  6173.         instances of the same link state advertisement may not be
  6174.         originated within the time period MinLSInterval.  This may
  6175.         require that the generation of the next instance be delayed by
  6176.         up to MinLSInterval.  The following events may cause the
  6177.         contents of a link state advertisement to change.  These events
  6178.         should cause new originations if and only if the contents of the
  6179.         new advertisement would be different:
  6180.  
  6181.  
  6182.         (2) An interface's state changes (see Section 9.1).  This may
  6183.             mean that it is necessary to produce a new instance of the
  6184.             router links advertisement.
  6185.  
  6186.         (3) An attached network's Designated Router changes.  A new
  6187.             router links advertisement should be originated.  Also, if
  6188.             the router itself is now the Designated Router, a new
  6189.             network links advertisement should be produced.  If the
  6190.             router itself is no longer the Designated Router, any
  6191.             network links advertisement that it might have originated
  6192.             for the network should be flushed from the routing domain
  6193.             (see Section 14.1).
  6194.  
  6195.         (4) One of the neighboring routers changes to/from the FULL
  6196.             state.  This may mean that it is necessary to produce a new
  6197.             instance of the router links advertisement.  Also, if the
  6198.             router is itself the Designated Router for the attached
  6199.             network, a new network links advertisement should be
  6200.             produced.
  6201.  
  6202.  
  6203.         The next four events concern area border routers only:
  6204.  
  6205.  
  6206.         (5) An intra-area route has been added/deleted/modified in the
  6207.             routing table.  This may cause a new instance of a summary
  6208.             links advertisement (for this route) to be originated in
  6209.             each attached area (possibly including the backbone).
  6210.  
  6211.         (6) An inter-area route has been added/deleted/modified in the
  6212.             routing table.  This may cause a new instance of a summary
  6213.  
  6214.  
  6215.  
  6216. Moy                                                           [Page 111]
  6217.  
  6218. RFC 1583                     OSPF Version 2                   March 1994
  6219.  
  6220.  
  6221.             links advertisement (for this route) to be originated in
  6222.             each attached area (but NEVER for the backbone).
  6223.  
  6224.         (7) The router becomes newly attached to an area.  The router
  6225.             must then originate summary link advertisements into the
  6226.             newly attached area for all pertinent intra-area and inter-
  6227.             area routes in the router's routing table.  See Section
  6228.             12.4.3 for more details.
  6229.  
  6230.         (8) When the state of one of the router's configured virtual
  6231.             links changes, it may be necessary to originate a new router
  6232.             links advertisement into the virtual link's transit area
  6233.             (see the discussion of the router links advertisement's bit
  6234.             V in Section 12.4.1), as well as originating a new router
  6235.             links advertisement into the backbone.
  6236.  
  6237.  
  6238.         The last two events concern AS boundary routers (and former AS
  6239.         boundary routers) only:
  6240.  
  6241.  
  6242.         (9) An external route gained through direct experience with an
  6243.             external routing protocol (like EGP) changes.  This will
  6244.             cause an AS boundary router to originate a new instance of
  6245.             an AS external link advertisement.
  6246.  
  6247.         (10)
  6248.             A router ceases to be an AS boundary router, perhaps after
  6249.             restarting. In this situation the router should flush all AS
  6250.             external link advertisements that it had previously
  6251.             originated.  These advertisements can be flushed via the
  6252.             premature aging procedure specified in Section 14.1.
  6253.  
  6254.  
  6255.         The construction of each type of link state advertisement is
  6256.         explained in detail below.  In general, these sections describe
  6257.         the contents of the advertisement body (i.e., the part coming
  6258.         after the 20-byte advertisement header).  For information
  6259.         concerning the building of the link state advertisement header,
  6260.         see Section 12.1.
  6261.  
  6262.         12.4.1.  Router links
  6263.  
  6264.             A router originates a router links advertisement for each
  6265.             area that it belongs to.  Such an advertisement describes
  6266.             the collected states of the router's links to the area.  The
  6267.             advertisement is flooded throughout the particular area, and
  6268.             no further.
  6269.  
  6270.  
  6271.  
  6272. Moy                                                           [Page 112]
  6273.  
  6274. RFC 1583                     OSPF Version 2                   March 1994
  6275.  
  6276.  
  6277.  
  6278.                   ....................................
  6279.                   . 192.1.2                   Area 1 .
  6280.                   .     +                            .
  6281.                   .     |                            .
  6282.                   .     | 3+---+1                    .
  6283.                   .  N1 |--|RT1|-----+               .
  6284.                   .     |  +---+                    .
  6285.                   .     |                _______N3  .
  6286.                   .     +               /          .  1+---+
  6287.                   .                     * 192.1.1 *------|RT4|
  6288.                   .     +               /_______/   .   +---+
  6289.                   .     |              /     |       .
  6290.                   .     | 3+---+1     /      |       .
  6291.                   .  N2 |--|RT2|-----+      1|       .
  6292.                   .     |  +---+           +---+8    .         6+---+
  6293.                   .     |                  |RT3|----------------|RT6|
  6294.                   .     +                  +---+     .          +---+
  6295.                   . 192.1.3                  |2      .   18.10.0.6|7
  6296.                   .                          |       .            |
  6297.                   .                   +------------+ .
  6298.                   .                     192.1.4 (N4) .
  6299.                   ....................................
  6300.  
  6301.  
  6302.                     Figure 15: Area 1 with IP addresses shown
  6303.  
  6304.             The format of a router links advertisement is shown in
  6305.             Appendix A (Section A.4.2).  The first 20 bytes of the
  6306.             advertisement consist of the generic link state
  6307.             advertisement header that was discussed in Section 12.1.
  6308.             Router links advertisements have LS type = 1.  The router
  6309.             indicates whether it is willing to calculate separate routes
  6310.             for each IP TOS by setting (or resetting) the T-bit of the
  6311.             link state advertisement's Options field.
  6312.  
  6313.             A router also indicates whether it is an area border router,
  6314.             or an AS boundary router, by setting the appropriate bits
  6315.             (bit B and bit E, respectively) in its router links
  6316.             advertisements. This enables paths to those types of routers
  6317.             to be saved in the routing table, for later processing of
  6318.             summary link advertisements and AS external link
  6319.             advertisements.  Bit B should be set whenever the router is
  6320.             actively attached to two or more areas, even if the router
  6321.             is not currently attached to the OSPF backbone area.  Bit E
  6322.             should never be set in a router links advertisement for a
  6323.             stub area (stub areas cannot contain AS boundary routers).
  6324.             In addition, the router sets bit V in its router links
  6325.  
  6326.  
  6327.  
  6328. Moy                                                           [Page 113]
  6329.  
  6330. RFC 1583                     OSPF Version 2                   March 1994
  6331.  
  6332.  
  6333.             advertisement for Area A if and only if it is the endpoint
  6334.             of an active virtual link using Area A as its Transit area.
  6335.             This enables the other routers attached to Area A to
  6336.             discover whether the area supports any virtual links (i.e.,
  6337.             is a transit area).
  6338.  
  6339.             The router links advertisement then describes the router's
  6340.             working connections (i.e., interfaces or links) to the area.
  6341.             Each link is typed according to the kind of attached
  6342.             network.  Each link is also labelled with its Link ID.  This
  6343.             Link ID gives a name to the entity that is on the other end
  6344.             of the link.  Table 18 summarizes the values used for the
  6345.             Type and Link ID fields.
  6346.  
  6347.  
  6348.  
  6349.                    Link type   Description       Link ID
  6350.                    __________________________________________________
  6351.                    1           Point-to-point    Neighbor Router ID
  6352.                                link
  6353.                    2           Link to transit   Interface address of
  6354.                                network           Designated Router
  6355.                    3           Link to stub      IP network number
  6356.                                network
  6357.                    4           Virtual link      Neighbor Router ID
  6358.  
  6359.  
  6360.                            Table 18: Link descriptions in the
  6361.                               router links advertisement.
  6362.  
  6363.  
  6364.             In addition, the Link Data field is specified for each link.
  6365.             This field gives 32 bits of extra information for the link.
  6366.             For links to transit networks, numbered links to routers and
  6367.             virtual links, this field specifies the IP interface address
  6368.             of the associated router interface (this is needed by the
  6369.             routing table calculation, see Section 16.1.1).  For links
  6370.             to stub networks, this field specifies the network's IP
  6371.             address mask.  For unnumbered point-to-point networks, the
  6372.             Link Data field should be set to the unnumbered interface's
  6373.             MIB-II [RFC 1213] ifIndex value.
  6374.  
  6375.             Finally, the cost of using the link for output (possibly
  6376.             specifying a different cost for each Type of Service) is
  6377.             specified.  The output cost of a link is configurable.  It
  6378.             must always be non-zero.
  6379.  
  6380.             To further describe the process of building the list of link
  6381.  
  6382.  
  6383.  
  6384. Moy                                                           [Page 114]
  6385.  
  6386. RFC 1583                     OSPF Version 2                   March 1994
  6387.  
  6388.  
  6389.             descriptions, suppose a router wishes to build a router
  6390.             links advertisement for Area A.  The router examines its
  6391.             collection of interface data structures.  For each
  6392.             interface, the following steps are taken:
  6393.  
  6394.  
  6395.             o   If the attached network does not belong to Area A, no
  6396.                 links are added to the advertisement, and the next
  6397.                 interface should be examined.
  6398.  
  6399.             o   Else, if the state of the interface is Down, no links
  6400.                 are added.
  6401.  
  6402.             o   Else, if the state of the interface is Point-to-Point,
  6403.                 then add links according to the following:
  6404.  
  6405.                 -   If the neighboring router is fully adjacent, add a
  6406.                     Type 1 link (point-to-point) if this is an interface
  6407.                     to a point-to-point network, or add a Type 4 link
  6408.                     (virtual link) if this is a virtual link.  The Link
  6409.                     ID should be set to the Router ID of the neighboring
  6410.                     router. For virtual links and numbered point-to-
  6411.                     point networks, the Link Data should specify the IP
  6412.                     interface address. For unnumbered point-to-point
  6413.                     networks, the Link Data field should specify the
  6414.                     interface's MIB-II [RFC 1213] ifIndex value.
  6415.  
  6416.                 -   If this is a numbered point-to-point network (i.e,
  6417.                     not a virtual link and not an unnumbered point-to-
  6418.                     point network) and the neighboring router's IP
  6419.                     address is known, add a Type 3 link (stub network)
  6420.                     whose Link ID is the neighbor's IP address, whose
  6421.                     Link Data is the mask 0xffffffff indicating a host
  6422.                     route, and whose cost is the interface's configured
  6423.                     output cost.
  6424.  
  6425.             o   Else if the state of the interface is Loopback, add a
  6426.                 Type 3 link (stub network) as long as this is not an
  6427.                 interface to an unnumbered serial line.  The Link ID
  6428.                 should be set to the IP interface address, the Link Data
  6429.                 set to the mask 0xffffffff (indicating a host route),
  6430.                 and the cost set to 0.
  6431.  
  6432.             o   Else if the state of the interface is Waiting, add a
  6433.                 Type 3 link (stub network) whose Link ID is the IP
  6434.                 network number of the attached network and whose Link
  6435.                 Data is the attached network's address mask.
  6436.  
  6437.  
  6438.  
  6439.  
  6440. Moy                                                           [Page 115]
  6441.  
  6442. RFC 1583                     OSPF Version 2                   March 1994
  6443.  
  6444.  
  6445.             o   Else, there has been a Designated Router selected for
  6446.                 the attached network.  If the router is fully adjacent
  6447.                 to the Designated Router, or if the router itself is
  6448.                 Designated Router and is fully adjacent to at least one
  6449.                 other router, add a single Type 2 link (transit network)
  6450.                 whose Link ID is the IP interface address of the
  6451.                 attached network's Designated Router (which may be the
  6452.                 router itself) and whose Link Data is the router's own
  6453.                 IP interface address.  Otherwise, add a link as if the
  6454.                 interface state were Waiting (see above).
  6455.  
  6456.  
  6457.             Unless otherwise specified, the cost of each link generated
  6458.             by the above procedure is equal to the output cost of the
  6459.             associated interface.  Note that in the case of serial
  6460.             lines, multiple links may be generated by a single
  6461.             interface.
  6462.  
  6463.             After consideration of all the router interfaces, host links
  6464.             are added to the advertisement by examining the list of
  6465.             attached hosts.  A host route is represented as a Type 3
  6466.             link (stub network) whose Link ID is the host's IP address
  6467.             and whose Link Data is the mask of all ones (0xffffffff).
  6468.  
  6469.             As an example, consider the router links advertisements
  6470.             generated by Router RT3, as pictured in Figure 6.  The area
  6471.             containing Router RT3 (Area 1) has been redrawn, with actual
  6472.             network addresses, in Figure 15.  Assume that the last byte
  6473.             of all of RT3's interface addresses is 3, giving it the
  6474.             interface addresses 192.1.1.3 and 192.1.4.3, and that the
  6475.             other routers have similar addressing schemes.  In addition,
  6476.             assume that all links are functional, and that Router IDs
  6477.             are assigned as the smallest IP interface address.
  6478.  
  6479.             RT3 originates two router links advertisements, one for Area
  6480.             1 and one for the backbone.  Assume that Router RT4 has been
  6481.             selected as the Designated router for network 192.1.1.0.
  6482.             RT3's router links advertisement for Area 1 is then shown
  6483.             below.  It indicates that RT3 has two connections to Area 1,
  6484.             the first a link to the transit network 192.1.1.0 and the
  6485.             second a link to the stub network 192.1.4.0.  Note that the
  6486.             transit network is identified by the IP interface of its
  6487.             Designated Router (i.e., the Link ID = 192.1.1.4 which is
  6488.             the Designated Router RT4's IP interface to 192.1.1.0).
  6489.             Note also that RT3 has indicated that it is capable of
  6490.             calculating separate routes based on IP TOS, through setting
  6491.             the T-bit in the Options field.  It has also indicated that
  6492.             it is an area border router.
  6493.  
  6494.  
  6495.  
  6496. Moy                                                           [Page 116]
  6497.  
  6498. RFC 1583                     OSPF Version 2                   March 1994
  6499.  
  6500.  
  6501.               ; RT3's router links advertisement for Area 1
  6502.  
  6503.               LS age = 0                     ;always true on origination
  6504.               Options = (T-bit|E-bit)        ;TOS-capable
  6505.               LS type = 1                    ;indicates router links
  6506.               Link State ID = 192.1.1.3      ;RT3's Router ID
  6507.               Advertising Router = 192.1.1.3 ;RT3's Router ID
  6508.               bit E = 0                      ;not an AS boundary router
  6509.               bit B = 1                      ;area border router
  6510.               #links = 2
  6511.                      Link ID = 192.1.1.4     ;IP address of Desig. Rtr.
  6512.                      Link Data = 192.1.1.3   ;RT3's IP interface to net
  6513.                      Type = 2                ;connects to transit network
  6514.                      # other metrics = 0
  6515.                      TOS 0 metric = 1
  6516.  
  6517.                      Link ID = 192.1.4.0     ;IP Network number
  6518.                      Link Data = 0xffffff00  ;Network mask
  6519.                      Type = 3                ;connects to stub network
  6520.                      # other metrics = 0
  6521.                      TOS 0 metric = 2
  6522.  
  6523.             Next RT3's router links advertisement for the backbone is
  6524.             shown.  It indicates that RT3 has a single attachment to the
  6525.             backbone.  This attachment is via an unnumbered point-to-
  6526.             point link to Router RT6.  RT3 has again indicated that it
  6527.             is TOS-capable, and that it is an area border router.
  6528.  
  6529.               ; RT3's router links advertisement for the backbone
  6530.  
  6531.               LS age = 0                     ;always true on origination
  6532.               Options = (T-bit|E-bit)        ;TOS-capable
  6533.               LS type = 1                    ;indicates router links
  6534.               Link State ID = 192.1.1.3      ;RT3's router ID
  6535.               Advertising Router = 192.1.1.3 ;RT3's router ID
  6536.               bit E = 0                      ;not an AS boundary router
  6537.               bit B = 1                      ;area border router
  6538.               #links = 1
  6539.                      Link ID = 18.10.0.6     ;Neighbor's Router ID
  6540.                      Link Data = 0.0.0.3     ;MIB-II ifIndex of P-P link
  6541.                      Type = 1                ;connects to router
  6542.                      # other metrics = 0
  6543.                      TOS 0 metric = 8
  6544.  
  6545.             Even though Router RT3 has indicated that it is TOS-capable
  6546.             in the above examples, only a single metric (the TOS 0
  6547.             metric) has been specified for each interface.  Different
  6548.             metrics can be specified for each TOS.  The encoding of TOS
  6549.  
  6550.  
  6551.  
  6552. Moy                                                           [Page 117]
  6553.  
  6554. RFC 1583                     OSPF Version 2                   March 1994
  6555.  
  6556.  
  6557.             in OSPF link state advertisements is described in Section
  6558.             12.3.
  6559.  
  6560.             As an example, suppose the point-to-point link between
  6561.             Routers RT3 and RT6 in Figure 15 is a satellite link.  The
  6562.             AS administrator may want to encourage the use of the line
  6563.             for high bandwidth traffic.  This would be done by setting
  6564.             the metric artificially low for the appropriate TOS value.
  6565.             Router RT3 would then originate the following router links
  6566.             advertisement for the backbone (TOS 8 = maximize
  6567.             throughput):
  6568.  
  6569.               ; RT3's router links advertisement for the backbone
  6570.  
  6571.               LS age = 0                  ;always true on origination
  6572.               Options = (T-bit|E-bit)     ;TOS-capable
  6573.               LS type = 1                 ;indicates router links
  6574.               Link State ID = 192.1.1.3   ;RT3's Router ID
  6575.               Advertising Router = 192.1.1.3
  6576.               bit E = 0                   ;not an AS boundary router
  6577.               bit B = 1                   ;area border router
  6578.               #links = 1
  6579.                      Link ID = 18.10.0.6  ;Neighbor's Router ID
  6580.                      Link Data = 0.0.0.3  ;MIB-II ifIndex of P-P link
  6581.                      Type = 1             ;connects to router
  6582.                      # other metrics = 1
  6583.                      TOS 0 metric = 8
  6584.                              TOS = 8      ;maximize throughput
  6585.                              metric = 1   ;traffic preferred
  6586.  
  6587.  
  6588.         12.4.2.  Network links
  6589.  
  6590.             A network links advertisement is generated for every transit
  6591.             multi-access network.  (A transit network is a network
  6592.             having two or more attached routers).  The network links
  6593.             advertisement describes all the routers that are attached to
  6594.             the network.
  6595.  
  6596.             The Designated Router for the network originates the
  6597.             advertisement.  The Designated Router originates the
  6598.             advertisement only if it is fully adjacent to at least one
  6599.             other router on the network.  The network links
  6600.             advertisement is flooded throughout the area that contains
  6601.             the transit network, and no further.  The networks links
  6602.             advertisement lists those routers that are fully adjacent to
  6603.             the Designated Router; each fully adjacent router is
  6604.             identified by its OSPF Router ID.  The Designated Router
  6605.  
  6606.  
  6607.  
  6608. Moy                                                           [Page 118]
  6609.  
  6610. RFC 1583                     OSPF Version 2                   March 1994
  6611.  
  6612.  
  6613.             includes itself in this list.
  6614.  
  6615.             The Link State ID for a network links advertisement is the
  6616.             IP interface address of the Designated Router.  This value,
  6617.             masked by the network's address mask (which is also
  6618.             contained in the network links advertisement) yields the
  6619.             network's IP address.
  6620.  
  6621.             A router that has formerly been the Designated Router for a
  6622.             network, but is no longer, should flush the network links
  6623.             advertisement that it had previously originated.  This
  6624.             advertisement is no longer used in the routing table
  6625.             calculation.  It is flushed by prematurely incrementing the
  6626.             advertisement's age to MaxAge and reflooding (see Section
  6627.             14.1). In addition, in those rare cases where a router's
  6628.             Router ID has changed, any network links advertisements that
  6629.             were originated with the router's previous Router ID must be
  6630.             flushed. Since the router may have no idea what it's
  6631.             previous Router ID might have been, these network links
  6632.             advertisements are indicated by having their Link State ID
  6633.             equal to one of the router's IP interface addresses and
  6634.             their Advertising Router not equal to the router's current
  6635.             Router ID (see Section 13.4 for more details).
  6636.  
  6637.             As an example of a network links advertisement, again
  6638.             consider the area configuration in Figure 6.  Network links
  6639.             advertisements are originated for Network N3 in Area 1,
  6640.             Networks N6 and N8 in Area 2, and Network N9 in Area 3.
  6641.             Assuming that Router RT4 has been selected as the Designated
  6642.             Router for Network N3, the following network links
  6643.             advertisement is generated by RT4 on behalf of Network N3
  6644.             (see Figure 15 for the address assignments):
  6645.  
  6646.               ; network links advertisement for Network N3
  6647.  
  6648.               LS age = 0                     ;always true on origination
  6649.               Options = (T-bit|E-bit)        ;TOS-capable
  6650.               LS type = 2                    ;indicates network links
  6651.               Link State ID = 192.1.1.4      ;IP address of Desig. Rtr.
  6652.               Advertising Router = 192.1.1.4 ;RT4's Router ID
  6653.               Network Mask = 0xffffff00
  6654.                      Attached Router = 192.1.1.4    ;Router ID
  6655.                      Attached Router = 192.1.1.1    ;Router ID
  6656.                      Attached Router = 192.1.1.2    ;Router ID
  6657.                      Attached Router = 192.1.1.3    ;Router ID
  6658.  
  6659.  
  6660.  
  6661.  
  6662.  
  6663.  
  6664. Moy                                                           [Page 119]
  6665.  
  6666. RFC 1583                     OSPF Version 2                   March 1994
  6667.  
  6668.  
  6669.         12.4.3.  Summary links
  6670.  
  6671.             Each summary link advertisement describes a route to a
  6672.             single destination.  Summary link advertisements are flooded
  6673.             throughout a single area only.  The destination described is
  6674.             one that is external to the area, yet still belonging to the
  6675.             Autonomous System.
  6676.  
  6677.             Summary link advertisements are originated by area border
  6678.             routers.  The precise summary routes to advertise into an
  6679.             area are determined by examining the routing table structure
  6680.             (see Section 11) in accordance with the algorithm described
  6681.             below. Note that only intra-area routes are advertised into
  6682.             the backbone, while both intra-area and inter-area routes
  6683.             are advertised into the other areas.
  6684.  
  6685.             To determine which routes to advertise into an attached Area
  6686.             A, each routing table entry is processed as follows.
  6687.             Remember that each routing table entry describes a set of
  6688.             equal-cost best paths to a particular destination:
  6689.  
  6690.  
  6691.             o   Only Destination Types of network and AS boundary router
  6692.                 are advertised in summary link advertisements.  If the
  6693.                 routing table entry's Destination Type is area border
  6694.                 router, examine the next routing table entry.
  6695.  
  6696.             o   AS external routes are never advertised in summary link
  6697.                 advertisements.  If the routing table entry has Path-
  6698.                 type of type 1 external or type 2 external, examine the
  6699.                 next routing table entry.
  6700.  
  6701.             o   Else, if the area associated with this set of paths is
  6702.                 the Area A itself, do not generate a summary link
  6703.                 advertisement for the route.[14]
  6704.  
  6705.             o   Else, if the next hops associated with this set of paths
  6706.                 belong to Area A itself, do not generate a summary link
  6707.                 advertisement for the route.[15] This is the logical
  6708.                 equivalent of a Distance Vector protocol's split horizon
  6709.                 logic.
  6710.  
  6711.             o   Else, if the routing table cost equals or exceeds the
  6712.                 value LSInfinity, a summary link advertisement cannot be
  6713.                 generated for this route.
  6714.  
  6715.             o   Else, if the destination of this route is an AS boundary
  6716.                 router, generate a Type 4 link state advertisement for
  6717.  
  6718.  
  6719.  
  6720. Moy                                                           [Page 120]
  6721.  
  6722. RFC 1583                     OSPF Version 2                   March 1994
  6723.  
  6724.  
  6725.                 the destination, with Link State ID equal to the AS
  6726.                 boundary router's Router ID and metric equal to the
  6727.                 routing table entry's cost.  These advertisements should
  6728.                 not be generated if Area A has been configured as a stub
  6729.                 area.
  6730.  
  6731.             o   Else, the Destination type is network. If this is an
  6732.                 inter-area route, generate a Type 3 advertisement for
  6733.                 the destination, with Link State ID equal to the
  6734.                 network's address (if necessary, the Link State ID can
  6735.                 also have one or more of the network's host bits set;
  6736.                 see Appendix F for details) and metric equal to the
  6737.                 routing table cost.
  6738.  
  6739.             o   The one remaining case is an intra-area route to a
  6740.                 network.  This means that the network is contained in
  6741.                 one of the router's directly attached areas.  In
  6742.                 general, this information must be condensed before
  6743.                 appearing in summary link advertisements.  Remember that
  6744.                 an area has been defined as a list of address ranges,
  6745.                 each range consisting of an [address,mask] pair and a
  6746.                 status indication of either Advertise or DoNotAdvertise.
  6747.                 At most a single Type 3 advertisement is made for each
  6748.                 range. When the range's status indicates Advertise, a
  6749.                 Type 3 advertisement is generated with Link State ID
  6750.                 equal to the range's address (if necessary, the Link
  6751.                 State ID can also have one or more of the range's "host"
  6752.                 bits set; see Appendix F for details) and cost equal to
  6753.                 the smallest cost of any of the component networks. When
  6754.                 the range's status indicates DoNotAdvertise, the Type 3
  6755.                 advertisement is suppressed and the component networks
  6756.                 remain hidden from other areas.
  6757.  
  6758.                 By default, if a network is not contained in any
  6759.                 explicitly configured address range, a Type 3
  6760.                 advertisement is generated with Link State ID equal to
  6761.                 the network's address (if necessary, the Link State ID
  6762.                 can also have one or more of the network's "host" bits
  6763.                 set; see Appendix F for details) and metric equal to the
  6764.                 network's routing table cost.
  6765.  
  6766.                 If virtual links are being used to provide/increase
  6767.                 connectivity of the backbone, routing information
  6768.                 concerning the backbone networks should not be condensed
  6769.                 before being summarized into the virtual links' Transit
  6770.                 areas. Nor should the advertisement of backbone networks
  6771.                 into Transit areas be suppressed.  In other words, the
  6772.                 backbone's configured ranges should be ignored when
  6773.  
  6774.  
  6775.  
  6776. Moy                                                           [Page 121]
  6777.  
  6778. RFC 1583                     OSPF Version 2                   March 1994
  6779.  
  6780.  
  6781.                 originating summary links into Transit areas.  The
  6782.                 existence of virtual links is determined during the
  6783.                 shortest path calculation for the Transit areas (see
  6784.                 Section 16.1).
  6785.  
  6786.             If a router advertises a summary advertisement for a
  6787.             destination which then becomes unreachable, the router must
  6788.             then flush the advertisement from the routing domain by
  6789.             setting its age to MaxAge and reflooding (see Section 14.1).
  6790.             Also, if the destination is still reachable, yet can no
  6791.             longer be advertised according to the above procedure (e.g.,
  6792.             it is now an inter-area route, when it used to be an intra-
  6793.             area route associated with some non-backbone area; it would
  6794.             thus no longer be advertisable to the backbone), the
  6795.             advertisement should also be flushed from the routing
  6796.             domain.
  6797.  
  6798.             For an example of summary link advertisements, consider
  6799.             again the area configuration in Figure 6.  Routers RT3, RT4,
  6800.             RT7, RT10 and RT11 are all area border routers, and
  6801.             therefore are originating summary link advertisements.
  6802.             Consider in particular Router RT4.  Its routing table was
  6803.             calculated as the example in Section 11.3.  RT4 originates
  6804.             summary link advertisements into both the backbone and Area
  6805.             1.  Into the backbone, Router RT4 originates separate
  6806.             advertisements for each of the networks N1-N4.  Into Area 1,
  6807.             Router RT4 originates separate advertisements for networks
  6808.             N6-N8 and the AS boundary routers RT5,RT7.  It also
  6809.             condenses host routes Ia and Ib into a single summary link
  6810.             advertisement.  Finally, the routes to networks N9,N10,N11
  6811.             and Host H1 are advertised by a single summary link
  6812.             advertisement.  This condensation was originally performed
  6813.             by the router RT11.
  6814.  
  6815.             These advertisements are illustrated graphically in Figures
  6816.             7 and 8.  Two of the summary link advertisements originated
  6817.             by Router RT4 follow.  The actual IP addresses for the
  6818.             networks and routers in question have been assigned in
  6819.             Figure 15.
  6820.  
  6821.               ; summary link advertisement for Network N1,
  6822.               ; originated by Router RT4 into the backbone
  6823.  
  6824.               LS age = 0                  ;always true on origination
  6825.               Options = (T-bit|E-bit)     ;TOS-capable
  6826.               LS type = 3                 ;summary link to IP net
  6827.               Link State ID = 192.1.2.0   ;N1's IP network number
  6828.               Advertising Router = 192.1.1.4       ;RT4's ID
  6829.  
  6830.  
  6831.  
  6832. Moy                                                           [Page 122]
  6833.  
  6834. RFC 1583                     OSPF Version 2                   March 1994
  6835.  
  6836.  
  6837.                      TOS = 0
  6838.                      metric = 4
  6839.  
  6840.               ; summary link advertisement for AS boundary router RT7
  6841.               ; originated by Router RT4 into Area 1
  6842.  
  6843.               LS age = 0                  ;always true on origination
  6844.               Options = (T-bit|E-bit)     ;TOS-capable
  6845.               LS type = 4                 ;summary link to ASBR
  6846.               Link State ID = Router RT7's ID
  6847.               Advertising Router = 192.1.1.4       ;RT4's ID
  6848.                      TOS = 0
  6849.                      metric = 14
  6850.  
  6851.             Summary link advertisements pertain to a single destination
  6852.             (IP network or AS boundary router).  However, for a single
  6853.             destination there may be separate sets of paths, and
  6854.             therefore separate routing table entries, for each Type of
  6855.             Service.  All these entries must be considered when building
  6856.             the summary link advertisement for the destination; a single
  6857.             advertisement must specify the separate costs (if they
  6858.             exist) for each TOS.  The encoding of TOS in OSPF link state
  6859.             advertisements is described in Section 12.3.
  6860.  
  6861.             Clearing the T-bit in the Options field of a summary link
  6862.             advertisement indicates that there is a TOS 0 path to the
  6863.             destination, but no paths for non-zero TOS.  This can happen
  6864.             when non-TOS-capable routers exist in the routing domain
  6865.             (see Section 2.4).
  6866.  
  6867.         12.4.4.  Originating summary links into stub areas
  6868.  
  6869.             The algorithm in Section 12.4.3 is optional when Area A is
  6870.             an OSPF stub area. Area border routers connecting to a stub
  6871.             area can originate summary link advertisements into the area
  6872.             according to the above Section's algorithm, or can choose to
  6873.             originate only a subset of the advertisements, possibly
  6874.             under configuration control.  The fewer advertisements
  6875.             originated, the smaller the stub area's link state database,
  6876.             further reducing the demands on its routers' resources.
  6877.             However, omitting advertisements may also lead to sub-
  6878.             optimal inter-area routing, although routing will continue
  6879.             to function.
  6880.  
  6881.             As specified in Section 12.4.3, Type 4 link state
  6882.             advertisements (ASBR summary links) are never originated
  6883.             into stub areas.
  6884.  
  6885.  
  6886.  
  6887.  
  6888. Moy                                                           [Page 123]
  6889.  
  6890. RFC 1583                     OSPF Version 2                   March 1994
  6891.  
  6892.  
  6893.             In a stub area, instead of importing external routes each
  6894.             area border router originates a "default summary link" into
  6895.             the area. The Link State ID for the default summary link is
  6896.             set to DefaultDestination, and the metric set to the (per-
  6897.             area) configurable parameter StubDefaultCost.  Note that
  6898.             StubDefaultCost need not be configured identically in all of
  6899.             the stub area's area border routers.
  6900.  
  6901.         12.4.5.  AS external links
  6902.  
  6903.             AS external link advertisements describe routes to
  6904.             destinations external to the Autonomous System.  Most AS
  6905.             external link advertisements describe routes to specific
  6906.             external destinations; in these cases the advertisement's
  6907.             Link State ID is set to the destination network's IP address
  6908.             (if necessary, the Link State ID can also have one or more
  6909.             of the network's "host" bits set; see Appendix F for
  6910.             details).  However, a default route for the Autonomous
  6911.             System can be described in an AS external link advertisement
  6912.             by setting the advertisement's Link State ID to
  6913.             DefaultDestination (0.0.0.0).  AS external link
  6914.             advertisements are originated by AS boundary routers.  An AS
  6915.             boundary router originates a single AS external link
  6916.             advertisement for each external route that it has learned,
  6917.             either through another routing protocol (such as EGP), or
  6918.             through configuration information.
  6919.  
  6920.             In general, AS external link advertisements are the only
  6921.             type of link state advertisements that are flooded
  6922.             throughout the entire Autonomous System; all other types of
  6923.             link state advertisements are specific to a single area.
  6924.             However, AS external link advertisements are not flooded
  6925.             into/throughout stub areas (see Section 3.6).  This enables
  6926.             a reduction in link state database size for routers internal
  6927.             to stub areas.
  6928.  
  6929.             The metric that is advertised for an external route can be
  6930.             one of two types.  Type 1 metrics are comparable to the link
  6931.             state metric.  Type 2 metrics are assumed to be larger than
  6932.             the cost of any intra-AS path.  As with summary link
  6933.             advertisements, if separate paths exist based on TOS,
  6934.             separate TOS costs can be included in the AS external link
  6935.             advertisement.  The encoding of TOS in OSPF link state
  6936.             advertisements is described in Section 12.3.  If the T-bit
  6937.             of the advertisement's Options field is clear, no non-zero
  6938.             TOS paths to the destination exist.
  6939.  
  6940.             If a router advertises an AS external link advertisement for
  6941.  
  6942.  
  6943.  
  6944. Moy                                                           [Page 124]
  6945.  
  6946. RFC 1583                     OSPF Version 2                   March 1994
  6947.  
  6948.  
  6949.             a destination which then becomes unreachable, the router
  6950.             must then flush the advertisement from the routing domain by
  6951.             setting its age to MaxAge and reflooding (see Section 14.1).
  6952.  
  6953.             For an example of AS external link advertisements, consider
  6954.             once again the AS pictured in Figure 6.  There are two AS
  6955.             boundary routers: RT5 and RT7.  Router RT5 originates three
  6956.             external link advertisements, for networks N12-N14.  Router
  6957.             RT7 originates two external link advertisements, for
  6958.             networks N12 and N15.  Assume that RT7 has learned its route
  6959.             to N12 via EGP, and that it wishes to advertise a Type 2
  6960.             metric to the AS.  RT7 would then originate the following
  6961.             advertisement for N12:
  6962.  
  6963.               ; AS external link advertisement for Network N12,
  6964.               ; originated by Router RT7
  6965.  
  6966.               LS age = 0                  ;always true on origination
  6967.               Options = (T-bit|E-bit)     ;TOS-capable
  6968.               LS type = 5                 ;indicates AS external link
  6969.               Link State ID = N12's IP network number
  6970.               Advertising Router = Router RT7's ID
  6971.                      bit E = 1            ;Type 2 metric
  6972.                      TOS = 0
  6973.                      metric = 2
  6974.                      Forwarding address = 0.0.0.0
  6975.  
  6976.             In the above example, the forwarding address field has been
  6977.             set to 0.0.0.0, indicating that packets for the external
  6978.             destination should be forwarded to the advertising OSPF
  6979.             router (RT7).  This is not always desirable.  Consider the
  6980.             example pictured in Figure 16.  There are three OSPF routers
  6981.             (RTA, RTB and RTC) connected to a common network.  Only one
  6982.             of these routers, RTA, is exchanging EGP information with
  6983.             the non-OSPF router RTX.  RTA must then originate AS
  6984.             external link advertisements for those destinations it has
  6985.             learned from RTX.  By using the AS external link
  6986.             advertisement's forwarding address field, RTA can specify
  6987.             that packets for these destinations be forwarded directly to
  6988.             RTX.  Without this feature, Routers RTB and RTC would take
  6989.             an extra hop to get to these destinations.
  6990.  
  6991.             Note that when the forwarding address field is non-zero, it
  6992.             should point to a router belonging to another Autonomous
  6993.             System.
  6994.  
  6995.             A forwarding address can also be specified for the default
  6996.             route.  For example, in figure 16 RTA may want to specify
  6997.  
  6998.  
  6999.  
  7000. Moy                                                           [Page 125]
  7001.  
  7002. RFC 1583                     OSPF Version 2                   March 1994
  7003.  
  7004.  
  7005.             that all externally-destined packets should by default be
  7006.             forwarded to its EGP peer RTX.  The resulting AS external
  7007.             link advertisement is pictured below.  Note that the Link
  7008.             State ID is set to DefaultDestination.
  7009.  
  7010.               ; Default route, originated by Router RTA
  7011.               ; Packets forwarded through RTX
  7012.  
  7013.               LS age = 0                  ;always true on origination
  7014.               Options = (T-bit|E-bit)          ;TOS-capable
  7015.               LS type = 5                 ;indicates AS external link
  7016.               Link State ID = DefaultDestination  ; default route
  7017.               Advertising Router = Router RTA's ID
  7018.                      bit E = 1            ;Type 2 metric
  7019.                      TOS = 0
  7020.                      metric = 1
  7021.                      Forwarding address = RTX's IP address
  7022.  
  7023.             In figure 16, suppose instead that both RTA and RTB exchange
  7024.             EGP information with RTX.  In this case, RTA and RTB would
  7025.             originate the same set of AS external link advertisements.
  7026.             These advertisements, if they specify the same metric, would
  7027.             be functionally equivalent since they would specify the same
  7028.             destination and forwarding address (RTX).  This leads to a
  7029.             clear duplication of effort.  If only one of RTA or RTB
  7030.             originated the set of external advertisements, the routing
  7031.             would remain the same, and the size of the link state
  7032.             database would decrease.  However, it must be unambiguously
  7033.             defined as to which router originates the advertisements
  7034.             (otherwise neither may, or the identity of the originator
  7035.             may oscillate).  The following rule is thereby established:
  7036.             if two routers, both reachable from one another, originate
  7037.             functionally equivalent AS external advertisements (i.e.,
  7038.             same destination, cost and non-zero forwarding address),
  7039.             then the advertisement originated by the router having the
  7040.             highest OSPF Router ID is used.  The router having the lower
  7041.             OSPF Router ID can then flush its advertisement.  Flushing a
  7042.             link state advertisement is discussed in Section 14.1.
  7043.  
  7044. 13.  The Flooding Procedure
  7045.  
  7046.     Link State Update packets provide the mechanism for flooding link
  7047.     state advertisements.  A Link State Update packet may contain
  7048.     several distinct advertisements, and floods each advertisement one
  7049.     hop further from its point of origination.  To make the flooding
  7050.     procedure reliable, each advertisement must be acknowledged
  7051.     separately.  Acknowledgments are transmitted in Link State
  7052.     Acknowledgment packets.  Many separate acknowledgments can also be
  7053.  
  7054.  
  7055.  
  7056. Moy                                                           [Page 126]
  7057.  
  7058. RFC 1583                     OSPF Version 2                   March 1994
  7059.  
  7060.  
  7061.  
  7062.                                 +
  7063.                                 |
  7064.                       +---+.....|.EGP
  7065.                       |RTA|-----|.....+---+
  7066.                       +---+     |-----|RTX|
  7067.                                 |     +---+
  7068.                       +---+     |
  7069.                       |RTB|-----|
  7070.                       +---+     |
  7071.                                 |
  7072.                       +---+     |
  7073.                       |RTC|-----|
  7074.                       +---+     |
  7075.                                 |
  7076.                                 +
  7077.  
  7078.  
  7079.                Figure 16: Forwarding address example
  7080.  
  7081.     grouped together into a single packet.
  7082.  
  7083.     The flooding procedure starts when a Link State Update packet has
  7084.     been received.  Many consistency checks have been made on the
  7085.     received packet before being handed to the flooding procedure (see
  7086.     Section 8.2).  In particular, the Link State Update packet has been
  7087.     associated with a particular neighbor, and a particular area.  If
  7088.     the neighbor is in a lesser state than Exchange, the packet should
  7089.     be dropped without further processing.
  7090.  
  7091.     All types of link state advertisements, other than AS external link
  7092.     advertisements, are associated with a specific area.  However, link
  7093.     state advertisements do not contain an area field.  A link state
  7094.     advertisement's area must be deduced from the Link State Update
  7095.     packet header.
  7096.  
  7097.     For each link state advertisement contained in the packet, the
  7098.     following steps are taken:
  7099.  
  7100.  
  7101.     (1) Validate the advertisement's LS checksum.  If the checksum turns
  7102.         out to be invalid, discard the advertisement and get the next
  7103.         one from the Link State Update packet.
  7104.  
  7105.     (2) Examine the link state advertisement's LS type.  If the LS type
  7106.         is unknown, discard the advertisement and get the next one from
  7107.         the Link State Update Packet.  This specification defines LS
  7108.         types 1-5 (see Section 4.3).
  7109.  
  7110.  
  7111.  
  7112. Moy                                                           [Page 127]
  7113.  
  7114. RFC 1583                     OSPF Version 2                   March 1994
  7115.  
  7116.  
  7117.     (3) Else if this is a AS external link advertisement (LS type = 5),
  7118.         and the area has been configured as a stub area, discard the
  7119.         advertisement and get the next one from the Link State Update
  7120.         Packet.  AS external link advertisements are not flooded
  7121.         into/throughout stub areas (see Section 3.6).
  7122.  
  7123.     (4) Else if the advertisement's LS age is equal to MaxAge, and there
  7124.         is currently no instance of the advertisement in the router's
  7125.         link state database, then take the following actions:
  7126.  
  7127.         (a) Acknowledge the receipt of the advertisement by sending a
  7128.             Link State Acknowledgment packet back to the sending
  7129.             neighbor (see Section 13.5).
  7130.  
  7131.         (b) Purge all outstanding requests for equal or previous
  7132.             instances of the advertisement from the sending neighbor's
  7133.             Link State Request list (see Section 10).
  7134.  
  7135.         (c) If the sending neighbor is in state Exchange or in state
  7136.             Loading, then install the MaxAge advertisement in the link
  7137.             state database.  Otherwise, simply discard the
  7138.             advertisement.  In either case, examine the next
  7139.             advertisement (if any) listed in the Link State Update
  7140.             packet.
  7141.  
  7142.     (5) Otherwise, find the instance of this advertisement that is
  7143.         currently contained in the router's link state database.  If
  7144.         there is no database copy, or the received advertisement is more
  7145.         recent than the database copy (see Section 13.1 below for the
  7146.         determination of which advertisement is more recent) the
  7147.         following steps must be performed:
  7148.  
  7149.         (a) If there is already a database copy, and if the database
  7150.             copy was installed less than MinLSInterval seconds ago,
  7151.             discard the new advertisement (without acknowledging it) and
  7152.             examine the next advertisement (if any) listed in the Link
  7153.             State Update packet.
  7154.  
  7155.         (b) Otherwise immediately flood the new advertisement out some
  7156.             subset of the router's interfaces (see Section 13.3).  In
  7157.             some cases (e.g., the state of the receiving interface is DR
  7158.             and the advertisement was received from a router other than
  7159.             the Backup DR) the advertisement will be flooded back out
  7160.             the receiving interface.  This occurrence should be noted
  7161.             for later use by the acknowledgment process (Section 13.5).
  7162.  
  7163.         (c) Remove the current database copy from all neighbors' Link
  7164.             state retransmission lists.
  7165.  
  7166.  
  7167.  
  7168. Moy                                                           [Page 128]
  7169.  
  7170. RFC 1583                     OSPF Version 2                   March 1994
  7171.  
  7172.  
  7173.         (d) Install the new advertisement in the link state database
  7174.             (replacing the current database copy).  This may cause the
  7175.             routing table calculation to be scheduled.  In addition,
  7176.             timestamp the new advertisement with the current time (i.e.,
  7177.             the time it was received).  The flooding procedure cannot
  7178.             overwrite the newly installed advertisement until
  7179.             MinLSInterval seconds have elapsed.  The advertisement
  7180.             installation process is discussed further in Section 13.2.
  7181.  
  7182.         (e) Possibly acknowledge the receipt of the advertisement by
  7183.             sending a Link State Acknowledgment packet back out the
  7184.             receiving interface.  This is explained below in Section
  7185.             13.5.
  7186.  
  7187.         (f) If this new link state advertisement indicates that it was
  7188.             originated by the receiving router itself (i.e., is
  7189.             considered a self-originated advertisement), the router must
  7190.             take special action, either updating the advertisement or in
  7191.             some cases flushing it from the routing domain. For a
  7192.             description of how self-originated advertisements are
  7193.             detected and subsequently handled, see Section 13.4.
  7194.  
  7195.     (6) Else, if there is an instance of the advertisement on the
  7196.         sending neighbor's Link state request list, an error has
  7197.         occurred in the Database Exchange process.  In this case,
  7198.         restart the Database Exchange process by generating the neighbor
  7199.         event BadLSReq for the sending neighbor and stop processing the
  7200.         Link State Update packet.
  7201.  
  7202.     (7) Else, if the received advertisement is the same instance as the
  7203.         database copy (i.e., neither one is more recent) the following
  7204.         two steps should be performed:
  7205.  
  7206.         (a) If the advertisement is listed in the Link state
  7207.             retransmission list for the receiving adjacency, the router
  7208.             itself is expecting an acknowledgment for this
  7209.             advertisement.  The router should treat the received
  7210.             advertisement as an acknowledgment, by removing the
  7211.             advertisement from the Link state retransmission list.  This
  7212.             is termed an "implied acknowledgment".  Its occurrence
  7213.             should be noted for later use by the acknowledgment process
  7214.             (Section 13.5).
  7215.  
  7216.         (b) Possibly acknowledge the receipt of the advertisement by
  7217.             sending a Link State Acknowledgment packet back out the
  7218.             receiving interface.  This is explained below in Section
  7219.             13.5.
  7220.  
  7221.  
  7222.  
  7223.  
  7224. Moy                                                           [Page 129]
  7225.  
  7226. RFC 1583                     OSPF Version 2                   March 1994
  7227.  
  7228.  
  7229.     (8) Else, the database copy is more recent.  Note an unusual event
  7230.         to network management, discard the advertisement and process the
  7231.         next link state advertisement contained in the Link State Update
  7232.         packet.
  7233.  
  7234.  
  7235.     13.1.  Determining which link state is newer
  7236.  
  7237.         When a router encounters two instances of a link state
  7238.         advertisement, it must determine which is more recent.  This
  7239.         occurred above when comparing a received advertisement to its
  7240.         database copy.  This comparison must also be done during the
  7241.         Database Exchange procedure which occurs during adjacency
  7242.         bring-up.
  7243.  
  7244.         A link state advertisement is identified by its LS type, Link
  7245.         State ID and Advertising Router.  For two instances of the same
  7246.         advertisement, the LS sequence number, LS age, and LS checksum
  7247.         fields are used to determine which instance is more recent:
  7248.  
  7249.  
  7250.         o   The advertisement having the newer LS sequence number is
  7251.             more recent.  See Section 12.1.6 for an explanation of the
  7252.             LS sequence number space.  If both instances have the same
  7253.             LS sequence number, then:
  7254.  
  7255.         o   If the two instances have different LS checksums, then the
  7256.             instance having the larger LS checksum (when considered as a
  7257.             16-bit unsigned integer) is considered more recent.
  7258.  
  7259.         o   Else, if only one of the instances has its LS age field set
  7260.             to MaxAge, the instance of age MaxAge is considered to be
  7261.             more recent.
  7262.  
  7263.         o   Else, if the LS age fields of the two instances differ by
  7264.             more than MaxAgeDiff, the instance having the smaller
  7265.             (younger) LS age is considered to be more recent.
  7266.  
  7267.         o   Else, the two instances are considered to be identical.
  7268.  
  7269.  
  7270.     13.2.  Installing link state advertisements in the database
  7271.  
  7272.         Installing a new link state advertisement in the database,
  7273.         either as the result of flooding or a newly self-originated
  7274.         advertisement, may cause the OSPF routing table structure to be
  7275.         recalculated.  The contents of the new advertisement should be
  7276.         compared to the old instance, if present.  If there is no
  7277.  
  7278.  
  7279.  
  7280. Moy                                                           [Page 130]
  7281.  
  7282. RFC 1583                     OSPF Version 2                   March 1994
  7283.  
  7284.  
  7285.         difference, there is no need to recalculate the routing table.
  7286.         (Note that even if the contents are the same, the LS checksum
  7287.         will probably be different, since the checksum covers the LS
  7288.         sequence number.)
  7289.  
  7290.         If the contents are different, the following pieces of the
  7291.         routing table must be recalculated, depending on the new
  7292.         advertisement's LS type field:
  7293.  
  7294.  
  7295.         Router links and network links advertisements
  7296.             The entire routing table must be recalculated, starting with
  7297.             the shortest path calculations for each area (not just the
  7298.             area whose topological database has changed).  The reason
  7299.             that the shortest path calculation cannot be restricted to
  7300.             the single changed area has to do with the fact that AS
  7301.             boundary routers may belong to multiple areas.  A change in
  7302.             the area currently providing the best route may force the
  7303.             router to use an intra-area route provided by a different
  7304.             area.[16]
  7305.  
  7306.         Summary link advertisements
  7307.             The best route to the destination described by the summary
  7308.             link advertisement must be recalculated (see Section 16.5).
  7309.             If this destination is an AS boundary router, it may also be
  7310.             necessary to re-examine all the AS external link
  7311.             advertisements.
  7312.  
  7313.         AS external link advertisements
  7314.             The best route to the destination described by the AS
  7315.             external link advertisement must be recalculated (see
  7316.             Section 16.6).
  7317.  
  7318.  
  7319.         Also, any old instance of the advertisement must be removed from
  7320.         the database when the new advertisement is installed.  This old
  7321.         instance must also be removed from all neighbors' Link state
  7322.         retransmission lists (see Section 10).
  7323.  
  7324.  
  7325.     13.3.  Next step in the flooding procedure
  7326.  
  7327.         When a new (and more recent) advertisement has been received, it
  7328.         must be flooded out some set of the router's interfaces.  This
  7329.         section describes the second part of flooding procedure (the
  7330.         first part being the processing that occurred in Section 13),
  7331.         namely, selecting the outgoing interfaces and adding the
  7332.         advertisement to the appropriate neighbors' Link state
  7333.  
  7334.  
  7335.  
  7336. Moy                                                           [Page 131]
  7337.  
  7338. RFC 1583                     OSPF Version 2                   March 1994
  7339.  
  7340.  
  7341.         retransmission lists.  Also included in this part of the
  7342.         flooding procedure is the maintenance of the neighbors' Link
  7343.         state request lists.
  7344.  
  7345.         This section is equally applicable to the flooding of an
  7346.         advertisement that the router itself has just originated (see
  7347.         Section 12.4).  For these advertisements, this section provides
  7348.         the entirety of the flooding procedure (i.e., the processing of
  7349.         Section 13 is not performed, since, for example, the
  7350.         advertisement has not been received from a neighbor and
  7351.         therefore does not need to be acknowledged).
  7352.  
  7353.         Depending upon the advertisement's LS type, the advertisement
  7354.         can be flooded out only certain interfaces.  These interfaces,
  7355.         defined by the following, are called the eligible interfaces:
  7356.  
  7357.  
  7358.         AS external link advertisements (LS Type = 5)
  7359.             AS external link advertisements are flooded throughout the
  7360.             entire AS, with the exception of stub areas (see Section
  7361.             3.6).  The eligible interfaces are all the router's
  7362.             interfaces, excluding virtual links and those interfaces
  7363.             attaching to stub areas.
  7364.  
  7365.         All other LS types
  7366.             All other types are specific to a single area (Area A).  The
  7367.             eligible interfaces are all those interfaces attaching to
  7368.             the Area A.  If Area A is the backbone, this includes all
  7369.             the virtual links.
  7370.  
  7371.  
  7372.         Link state databases must remain synchronized over all
  7373.         adjacencies associated with the above eligible interfaces.  This
  7374.         is accomplished by executing the following steps on each
  7375.         eligible interface.  It should be noted that this procedure may
  7376.         decide not to flood a link state advertisement out a particular
  7377.         interface, if there is a high probability that the attached
  7378.         neighbors have already received the advertisement.  However, in
  7379.         these cases the flooding procedure must be absolutely sure that
  7380.         the neighbors eventually do receive the advertisement, so the
  7381.         advertisement is still added to each adjacency's Link state
  7382.         retransmission list.  For each eligible interface:
  7383.  
  7384.  
  7385.         (1) Each of the neighbors attached to this interface are
  7386.             examined, to determine whether they must receive the new
  7387.             advertisement.  The following steps are executed for each
  7388.             neighbor:
  7389.  
  7390.  
  7391.  
  7392. Moy                                                           [Page 132]
  7393.  
  7394. RFC 1583                     OSPF Version 2                   March 1994
  7395.  
  7396.  
  7397.             (a) If the neighbor is in a lesser state than Exchange, it
  7398.                 does not participate in flooding, and the next neighbor
  7399.                 should be examined.
  7400.  
  7401.             (b) Else, if the adjacency is not yet full (neighbor state
  7402.                 is Exchange or Loading), examine the Link state request
  7403.                 list associated with this adjacency.  If there is an
  7404.                 instance of the new advertisement on the list, it
  7405.                 indicates that the neighboring router has an instance of
  7406.                 the advertisement already.  Compare the new
  7407.                 advertisement to the neighbor's copy:
  7408.  
  7409.                 o   If the new advertisement is less recent, then
  7410.                     examine the next neighbor.
  7411.  
  7412.                 o   If the two copies are the same instance, then delete
  7413.                     the advertisement from the Link state request list,
  7414.                     and examine the next neighbor.[17]
  7415.  
  7416.                 o   Else, the new advertisement is more recent.  Delete
  7417.                     the advertisement from the Link state request list.
  7418.  
  7419.             (c) If the new advertisement was received from this
  7420.                 neighbor, examine the next neighbor.
  7421.  
  7422.             (d) At this point we are not positive that the neighbor has
  7423.                 an up-to-date instance of this new advertisement.  Add
  7424.                 the new advertisement to the Link state retransmission
  7425.                 list for the adjacency.  This ensures that the flooding
  7426.                 procedure is reliable; the advertisement will be
  7427.                 retransmitted at intervals until an acknowledgment is
  7428.                 seen from the neighbor.
  7429.  
  7430.         (2) The router must now decide whether to flood the new link
  7431.             state advertisement out this interface.  If in the previous
  7432.             step, the link state advertisement was NOT added to any of
  7433.             the Link state retransmission lists, there is no need to
  7434.             flood the advertisement out the interface and the next
  7435.             interface should be examined.
  7436.  
  7437.         (3) If the new advertisement was received on this interface, and
  7438.             it was received from either the Designated Router or the
  7439.             Backup Designated Router, chances are that all the neighbors
  7440.             have received the advertisement already.  Therefore, examine
  7441.             the next interface.
  7442.  
  7443.         (4) If the new advertisement was received on this interface, and
  7444.             the interface state is Backup (i.e., the router itself is
  7445.  
  7446.  
  7447.  
  7448. Moy                                                           [Page 133]
  7449.  
  7450. RFC 1583                     OSPF Version 2                   March 1994
  7451.  
  7452.  
  7453.             the Backup Designated Router), examine the next interface.
  7454.             The Designated Router will do the flooding on this
  7455.             interface.  If the Designated Router fails, this router will
  7456.             end up retransmitting the updates.
  7457.  
  7458.         (5) If this step is reached, the advertisement must be flooded
  7459.             out the interface.  Send a Link State Update packet (with
  7460.             the new advertisement as contents) out the interface.  The
  7461.             advertisement's LS age must be incremented by InfTransDelay
  7462.             (which must be > 0) when copied into the outgoing Link State
  7463.             Update packet (until the LS age field reaches its maximum
  7464.             value of MaxAge).
  7465.  
  7466.             On broadcast networks, the Link State Update packets are
  7467.             multicast.  The destination IP address specified for the
  7468.             Link State Update Packet depends on the state of the
  7469.             interface.  If the interface state is DR or Backup, the
  7470.             address AllSPFRouters should be used.  Otherwise, the
  7471.             address AllDRouters should be used.
  7472.  
  7473.             On non-broadcast, multi-access networks, separate Link State
  7474.             Update packets must be sent, as unicasts, to each adjacent
  7475.             neighbor (i.e., those in state Exchange or greater).  The
  7476.             destination IP addresses for these packets are the
  7477.             neighbors' IP addresses.
  7478.  
  7479.  
  7480.     13.4.  Receiving self-originated link state
  7481.  
  7482.         It is a common occurrence for a router to receive self-
  7483.         originated link state advertisements via the flooding procedure.
  7484.         A self-originated advertisement is detected when either 1) the
  7485.         advertisement's Advertising Router is equal to the router's own
  7486.         Router ID or 2) the advertisement is a network links
  7487.         advertisement and its Link State ID is equal to one of the
  7488.         router's own IP interface addresses.
  7489.  
  7490.         However, if the received self-originated advertisement is newer
  7491.         than the last instance that the router actually originated, the
  7492.         router must take special action.  The reception of such an
  7493.         advertisement indicates that there are link state advertisements
  7494.         in the routing domain that were originated before the last time
  7495.         the router was restarted. In most cases, the router must then
  7496.         advance the advertisement's LS sequence number one past the
  7497.         received LS sequence number, and originate a new instance of the
  7498.         advertisement.
  7499.  
  7500.         It may be the case the router no longer wishes to originate the
  7501.  
  7502.  
  7503.  
  7504. Moy                                                           [Page 134]
  7505.  
  7506. RFC 1583                     OSPF Version 2                   March 1994
  7507.  
  7508.  
  7509.         received advertisement. Possible examples include: 1) the
  7510.         advertisement is a summary link or AS external link and the
  7511.         router no longer has an (advertisable) route to the destination,
  7512.         2) the advertisement is a network links advertisement but the
  7513.         router is no longer Designated Router for the network or 3) the
  7514.         advertisement is a network links advertisement whose Link State
  7515.         ID is one of the router's own IP interface addresses but whose
  7516.         Advertising Router is not equal to the router's own Router ID
  7517.         (this latter case should be rare, and it indicates that the
  7518.         router's Router ID has changed since originating the
  7519.         advertisement).  In all these cases, instead of updating the
  7520.         advertisement, the advertisement should be flushed from the
  7521.         routing domain by incrementing the received advertisement's LS
  7522.         age to MaxAge and reflooding (see Section 14.1).
  7523.  
  7524.  
  7525.     13.5.  Sending Link State Acknowledgment packets
  7526.  
  7527.         Each newly received link state advertisement must be
  7528.         acknowledged.  This is usually done by sending Link State
  7529.         Acknowledgment packets.  However, acknowledgments can also be
  7530.         accomplished implicitly by sending Link State Update packets
  7531.         (see step 7a of Section 13).
  7532.  
  7533.         Many acknowledgments may be grouped together into a single Link
  7534.         State Acknowledgment packet.  Such a packet is sent back out the
  7535.         interface that has received the advertisements.  The packet can
  7536.         be sent in one of two ways: delayed and sent on an interval
  7537.         timer, or sent directly (as a unicast) to a particular neighbor.
  7538.         The particular acknowledgment strategy used depends on the
  7539.         circumstances surrounding the receipt of the advertisement.
  7540.  
  7541.         Sending delayed acknowledgments accomplishes several things: it
  7542.         facilitates the packaging of multiple acknowledgments in a
  7543.         single Link State Acknowledgment packet; it enables a single
  7544.         Link State Acknowledgment packet to indicate acknowledgments to
  7545.         several neighbors at once (through multicasting); and it
  7546.         randomizes the Link State Acknowledgment packets sent by the
  7547.         various routers attached to a multi-access network.  The fixed
  7548.         interval between a router's delayed transmissions must be short
  7549.         (less than RxmtInterval) or needless retransmissions will ensue.
  7550.  
  7551.         Direct acknowledgments are sent to a particular neighbor in
  7552.         response to the receipt of duplicate link state advertisements.
  7553.         These acknowledgments are sent as unicasts, and are sent
  7554.         immediately when the duplicate is received.
  7555.  
  7556.         The precise procedure for sending Link State Acknowledgment
  7557.  
  7558.  
  7559.  
  7560. Moy                                                           [Page 135]
  7561.  
  7562. RFC 1583                     OSPF Version 2                   March 1994
  7563.  
  7564.  
  7565.         packets is described in Table 19.  The circumstances surrounding
  7566.         the receipt of the advertisement are listed in the left column.
  7567.         The acknowledgment action then taken is listed in one of the two
  7568.         right columns.  This action depends on the state of the
  7569.         concerned interface; interfaces in state Backup behave
  7570.         differently from interfaces in all other states.  Delayed
  7571.         acknowledgments must be delivered to all adjacent routers
  7572.         associated with the interface.  On broadcast networks, this is
  7573.         accomplished by sending the delayed Link State Acknowledgment
  7574.         packets as multicasts.  The Destination IP address used depends
  7575.         on the state of the interface.  If the state is DR or Backup,
  7576.         the destination AllSPFRouters is used.  In other states, the
  7577.         destination AllDRouters is used.  On non-broadcast networks,
  7578.         delayed Link State Acknowledgment packets must be unicast
  7579.         separately over each adjacency (i.e., neighbor whose state is >=
  7580.         Exchange).
  7581.  
  7582.         The reasoning behind sending the above packets as multicasts is
  7583.         best explained by an example.  Consider the network
  7584.         configuration depicted in Figure 15.  Suppose RT4 has been
  7585.         elected as Designated Router, and RT3 as Backup Designated
  7586.         Router for the network N3.  When Router RT4 floods a new
  7587.         advertisement to Network N3, it is received by routers RT1, RT2,
  7588.         and RT3.  These routers will not flood the advertisement back
  7589.         onto net N3, but they still must ensure that their topological
  7590.         databases remain synchronized with their adjacent neighbors.  So
  7591.         RT1, RT2, and RT4 are waiting to see an acknowledgment from RT3.
  7592.         Likewise, RT4 and RT3 are both waiting to see acknowledgments
  7593.         from RT1 and RT2.  This is best achieved by sending the
  7594.         acknowledgments as multicasts.
  7595.  
  7596.         The reason that the acknowledgment logic for Backup DRs is
  7597.         slightly different is because they perform differently during
  7598.         the flooding of link state advertisements (see Section 13.3,
  7599.         step 4).
  7600.  
  7601.  
  7602.  
  7603.     13.6.  Retransmitting link state advertisements
  7604.  
  7605.         Advertisements flooded out an adjacency are placed on the
  7606.         adjacency's Link state retransmission list.  In order to ensure
  7607.         that flooding is reliable, these advertisements are
  7608.         retransmitted until they are acknowledged.  The length of time
  7609.         between retransmissions is a configurable per-interface value,
  7610.         RxmtInterval.  If this is set too low for an interface, needless
  7611.         retransmissions will ensue.  If the value is set too high, the
  7612.         speed of the flooding, in the face of lost packets, may be
  7613.  
  7614.  
  7615.  
  7616. Moy                                                           [Page 136]
  7617.  
  7618. RFC 1583                     OSPF Version 2                   March 1994
  7619.  
  7620.  
  7621.  
  7622.  
  7623.  
  7624.  
  7625.                                     Action taken in state
  7626.     Circumstances          Backup                All other states
  7627.     _______________________________________________________________
  7628.     Advertisement  has     No  acknowledgment    No  acknowledgment
  7629.     been  flooded back     sent.                 sent.
  7630.     out receiving  in-
  7631.     terface  (see Sec-
  7632.     tion 13, step 5b).
  7633.     _______________________________________________________________
  7634.     Advertisement   is     Delayed acknowledg-   Delayed       ack-
  7635.     more  recent  than     ment sent if adver-   nowledgment sent.
  7636.     database copy, but     tisement   received
  7637.     was   not  flooded     from    Designated
  7638.     back out receiving     Router,  otherwise
  7639.     interface              do nothing
  7640.     _______________________________________________________________
  7641.     Advertisement is a     Delayed acknowledg-   No  acknowledgment
  7642.     duplicate, and was     ment sent if adver-   sent.
  7643.     treated as an  im-     tisement   received
  7644.     plied  acknowledg-     from    Designated
  7645.     ment (see  Section     Router,  otherwise
  7646.     13, step 7a).          do nothing
  7647.     _______________________________________________________________
  7648.     Advertisement is a     Direct acknowledg-    Direct acknowledg-
  7649.     duplicate, and was     ment sent.            ment sent.
  7650.     not treated as  an
  7651.     implied       ack-
  7652.     nowledgment.
  7653.     _______________________________________________________________
  7654.     Advertisement's LS     Direct acknowledg-    Direct acknowledg-
  7655.     age is equal to        ment sent.            ment sent.
  7656.     MaxAge, and there is
  7657.     no current instance
  7658.     of the advertisement
  7659.     in the link state
  7660.     database (see
  7661.     Section 13, step 4).
  7662.  
  7663.  
  7664.              Table 19: Sending link state acknowledgements.
  7665.  
  7666.  
  7667.  
  7668.  
  7669.  
  7670.  
  7671.  
  7672. Moy                                                           [Page 137]
  7673.  
  7674. RFC 1583                     OSPF Version 2                   March 1994
  7675.  
  7676.  
  7677.         affected.
  7678.  
  7679.         Several retransmitted advertisements may fit into a single Link
  7680.         State Update packet.  When advertisements are to be
  7681.         retransmitted, only the number fitting in a single Link State
  7682.         Update packet should be transmitted.  Another packet of
  7683.         retransmissions can be sent when some of the advertisements are
  7684.         acknowledged, or on the next firing of the retransmission timer.
  7685.  
  7686.         Link State Update Packets carrying retransmissions are always
  7687.         sent as unicasts (directly to the physical address of the
  7688.         neighbor).  They are never sent as multicasts.  Each
  7689.         advertisement's LS age must be incremented by InfTransDelay
  7690.         (which must be > 0) when copied into the outgoing Link State
  7691.         Update packet (until the LS age field reaches its maximum value
  7692.         of MaxAge).
  7693.  
  7694.         If the adjacent router goes down, retransmissions may occur
  7695.         until the adjacency is destroyed by OSPF's Hello Protocol.  When
  7696.         the adjacency is destroyed, the Link state retransmission list
  7697.         is cleared.
  7698.  
  7699.  
  7700.     13.7.  Receiving link state acknowledgments
  7701.  
  7702.         Many consistency checks have been made on a received Link State
  7703.         Acknowledgment packet before it is handed to the flooding
  7704.         procedure.  In particular, it has been associated with a
  7705.         particular neighbor.  If this neighbor is in a lesser state than
  7706.         Exchange, the Link State Acknowledgment packet is discarded.
  7707.  
  7708.         Otherwise, for each acknowledgment in the Link State
  7709.         Acknowledgment packet, the following steps are performed:
  7710.  
  7711.  
  7712.         o   Does the advertisement acknowledged have an instance on the
  7713.             Link state retransmission list for the neighbor?  If not,
  7714.             examine the next acknowledgment.  Otherwise:
  7715.  
  7716.         o   If the acknowledgment is for the same instance that is
  7717.             contained on the list, remove the item from the list and
  7718.             examine the next acknowledgment.  Otherwise:
  7719.  
  7720.         o   Log the questionable acknowledgment, and examine the next
  7721.             one.
  7722.  
  7723.  
  7724.  
  7725.  
  7726.  
  7727.  
  7728. Moy                                                           [Page 138]
  7729.  
  7730. RFC 1583                     OSPF Version 2                   March 1994
  7731.  
  7732.  
  7733. 14.  Aging The Link State Database
  7734.  
  7735.     Each link state advertisement has an LS age field.  The LS age is
  7736.     expressed in seconds.  An advertisement's LS age field is
  7737.     incremented while it is contained in a router's database.  Also,
  7738.     when copied into a Link State Update Packet for flooding out a
  7739.     particular interface, the advertisement's LS age is incremented by
  7740.     InfTransDelay.
  7741.  
  7742.     An advertisement's LS age is never incremented past the value
  7743.     MaxAge.  Advertisements having age MaxAge are not used in the
  7744.     routing table calculation.  As a router ages its link state
  7745.     database, an advertisement's LS age may reach MaxAge.[18] At this
  7746.     time, the router must attempt to flush the advertisement from the
  7747.     routing domain.  This is done simply by reflooding the MaxAge
  7748.     advertisement just as if it was a newly originated advertisement
  7749.     (see Section 13.3).
  7750.  
  7751.     When creating a Database summary list for a newly forming adjacency,
  7752.     any MaxAge advertisements present in the link state database are
  7753.     added to the neighbor's Link state retransmission list instead of
  7754.     the neighbor's Database summary list.  See Section 10.3 for more
  7755.     details.
  7756.  
  7757.     A MaxAge advertisement must be removed immediately from the router's
  7758.     link state database as soon as both a) it is no longer contained on
  7759.     any neighbor Link state retransmission lists and b) none of the
  7760.     router's neighbors are in states Exchange or Loading.
  7761.  
  7762.     When, in the process of aging the link state database, an
  7763.     advertisement's LS age hits a multiple of CheckAge, its LS checksum
  7764.     should be verified.  If the LS checksum is incorrect, a program or
  7765.     memory error has been detected, and at the very least the router
  7766.     itself should be restarted.
  7767.  
  7768.  
  7769.     14.1.  Premature aging of advertisements
  7770.  
  7771.         A link state advertisement can be flushed from the routing
  7772.         domain by setting its LS age to MaxAge and reflooding the
  7773.         advertisement.  This procedure follows the same course as
  7774.         flushing an advertisement whose LS age has naturally reached the
  7775.         value MaxAge (see Section 14).  In particular, the MaxAge
  7776.         advertisement is removed from the router's link state database
  7777.         as soon as a) it is no longer contained on any neighbor Link
  7778.         state retransmission lists and b) none of the router's neighbors
  7779.         are in states Exchange or Loading.  We call the setting of an
  7780.         advertisement's LS age to MaxAge premature aging.
  7781.  
  7782.  
  7783.  
  7784. Moy                                                           [Page 139]
  7785.  
  7786. RFC 1583                     OSPF Version 2                   March 1994
  7787.  
  7788.  
  7789.         Premature aging is used when it is time for a self-originated
  7790.         advertisement's sequence number field to wrap.  At this point,
  7791.         the current advertisement instance (having LS sequence number of
  7792.         0x7fffffff) must be prematurely aged and flushed from the
  7793.         routing domain before a new instance with sequence number
  7794.         0x80000001 can be originated.  See Section 12.1.6 for more
  7795.         information.
  7796.  
  7797.         Premature aging can also be used when, for example, one of the
  7798.         router's previously advertised external routes is no longer
  7799.         reachable.  In this circumstance, the router can flush its
  7800.         external advertisement from the routing domain via premature
  7801.         aging. This procedure is preferable to the alternative, which is
  7802.         to originate a new advertisement for the destination specifying
  7803.         a metric of LSInfinity.  Premature aging is also be used when
  7804.         unexpectedly receiving self-originated advertisements during the
  7805.         flooding procedure (see Section 13.4).
  7806.  
  7807.         A router may only prematurely age its own self-originated link
  7808.         state advertisements. The router may not prematurely age
  7809.         advertisements that have been originated by other routers. An
  7810.         advertisement is considered self-originated when either 1) the
  7811.         advertisement's Advertising Router is equal to the router's own
  7812.         Router ID or 2) the advertisement is a network links
  7813.         advertisement and its Link State ID is equal to one of the
  7814.         router's own IP interface addresses.
  7815.  
  7816.  
  7817. 15.  Virtual Links
  7818.  
  7819.     The single backbone area (Area ID = 0.0.0.0) cannot be disconnected,
  7820.     or some areas of the Autonomous System will become unreachable.  To
  7821.     establish/maintain connectivity of the backbone, virtual links can
  7822.     be configured through non-backbone areas.  Virtual links serve to
  7823.     connect physically separate components of the backbone.  The two
  7824.     endpoints of a virtual link are area border routers.  The virtual
  7825.     link must be configured in both routers.  The configuration
  7826.     information in each router consists of the other virtual endpoint
  7827.     (the other area border router), and the non-backbone area the two
  7828.     routers have in common (called the transit area).  Virtual links
  7829.     cannot be configured through stub areas (see Section 3.6).
  7830.  
  7831.     The virtual link is treated as if it were an unnumbered point-to-
  7832.     point network (belonging to the backbone) joining the two area
  7833.     border routers.  An attempt is made to establish an adjacency over
  7834.     the virtual link.  When this adjacency is established, the virtual
  7835.     link will be included in backbone router links advertisements, and
  7836.     OSPF packets pertaining to the backbone area will flow over the
  7837.  
  7838.  
  7839.  
  7840. Moy                                                           [Page 140]
  7841.  
  7842. RFC 1583                     OSPF Version 2                   March 1994
  7843.  
  7844.  
  7845.     adjacency.  Such an adjacency has been referred to in this document
  7846.     as a "virtual adjacency".
  7847.  
  7848.     In each endpoint router, the cost and viability of the virtual link
  7849.     is discovered by examining the routing table entry for the other
  7850.     endpoint router.  (The entry's associated area must be the
  7851.     configured transit area).  Actually, there may be a separate routing
  7852.     table entry for each Type of Service.  These are called the virtual
  7853.     link's corresponding routing table entries.  The InterfaceUp event
  7854.     occurs for a virtual link when its corresponding TOS 0 routing table
  7855.     entry becomes reachable.  Conversely, the InterfaceDown event occurs
  7856.     when its TOS 0 routing table entry becomes unreachable.[19] In other
  7857.     words, the virtual link's viability is determined by the existence
  7858.     of an intra-area path, through the transit area, between the two
  7859.     endpoints.  Note that a virtual link whose underlying path has cost
  7860.     greater than hexadecimal 0xffff (the maximum size of an interface
  7861.     cost in a router links advertisement) should be considered
  7862.     inoperational (i.e., treated the same as if the path did not exist).
  7863.  
  7864.     The other details concerning virtual links are as follows:
  7865.  
  7866.     o   AS external links are NEVER flooded over virtual adjacencies.
  7867.         This would be duplication of effort, since the same AS external
  7868.         links are already flooded throughout the virtual link's transit
  7869.         area.  For this same reason, AS external link advertisements are
  7870.         not summarized over virtual adjacencies during the Database
  7871.         Exchange process.
  7872.  
  7873.     o   The cost of a virtual link is NOT configured.  It is defined to
  7874.         be the cost of the intra-area path between the two defining area
  7875.         border routers.  This cost appears in the virtual link's
  7876.         corresponding routing table entry.  When the cost of a virtual
  7877.         link changes, a new router links advertisement should be
  7878.         originated for the backbone area.
  7879.  
  7880.     o   Just as the virtual link's cost and viability are determined by
  7881.         the routing table build process (through construction of the
  7882.         routing table entry for the other endpoint), so are the IP
  7883.         interface address for the virtual interface and the virtual
  7884.         neighbor's IP address.  These are used when sending OSPF
  7885.         protocol packets over the virtual link. Note that when one (or
  7886.         both) of the virtual link endpoints connect to the transit area
  7887.         via an unnumbered point-to-point link, it may be impossible to
  7888.         calculate either the virtual interface's IP address and/or the
  7889.         virtual neighbor's IP address, thereby causing the virtual link
  7890.         to fail.
  7891.  
  7892.  
  7893.  
  7894.  
  7895.  
  7896. Moy                                                           [Page 141]
  7897.  
  7898. RFC 1583                     OSPF Version 2                   March 1994
  7899.  
  7900.  
  7901.     o   In each endpoint's router links advertisement for the backbone,
  7902.         the virtual link is represented as a Type 4 link whose Link ID
  7903.         is set to the virtual neighbor's OSPF Router ID and whose Link
  7904.         Data is set to the virtual interface's IP address.  See Section
  7905.         12.4.1 for more information. Note that it may be the case that
  7906.         there is a TOS 0 path, but no non-zero TOS paths, between the
  7907.         two endpoint routers.  In this case, both routers must revert to
  7908.         being non-TOS-capable, clearing the T-bit in the Options field
  7909.         of their backbone router links advertisements.
  7910.  
  7911.     o   When virtual links are configured for the backbone, information
  7912.         concerning backbone networks should not be condensed before
  7913.         being summarized for the transit areas.  In other words, each
  7914.         backbone network should be advertised into the transit areas in
  7915.         a separate summary link advertisement, regardless of the
  7916.         backbone's configured area address ranges.  See Section 12.4.3
  7917.         for more information.
  7918.  
  7919.     o   The time between link state retransmissions, RxmtInterval, is
  7920.         configured for a virtual link.  This should be well over the
  7921.         expected round-trip delay between the two routers.  This may be
  7922.         hard to estimate for a virtual link; it is better to err on the
  7923.         side of making it too large.
  7924.  
  7925.  
  7926. 16.  Calculation Of The Routing Table
  7927.  
  7928.     This section details the OSPF routing table calculation.  Using its
  7929.     attached areas' link state databases as input, a router runs the
  7930.     following algorithm, building its routing table step by step.  At
  7931.     each step, the router must access individual pieces of the link
  7932.     state databases (e.g., a router links advertisement originated by a
  7933.     certain router).  This access is performed by the lookup function
  7934.     discussed in Section 12.2.  The lookup process may return a link
  7935.     state advertisement whose LS age is equal to MaxAge.  Such an
  7936.     advertisement should not be used in the routing table calculation,
  7937.     and is treated just as if the lookup process had failed.
  7938.  
  7939.     The OSPF routing table's organization is explained in Section 11.
  7940.     Two examples of the routing table build process are presented in
  7941.     Sections 11.2 and 11.3.  This process can be broken into the
  7942.     following steps:
  7943.  
  7944.  
  7945.     (1) The present routing table is invalidated.  The routing table is
  7946.         built again from scratch.  The old routing table is saved so
  7947.         that changes in routing table entries can be identified.
  7948.  
  7949.  
  7950.  
  7951.  
  7952. Moy                                                           [Page 142]
  7953.  
  7954. RFC 1583                     OSPF Version 2                   March 1994
  7955.  
  7956.  
  7957.     (2) The intra-area routes are calculated by building the shortest-
  7958.         path tree for each attached area.  In particular, all routing
  7959.         table entries whose Destination Type is "area border router" are
  7960.         calculated in this step.  This step is described in two parts.
  7961.         At first the tree is constructed by only considering those links
  7962.         between routers and transit networks.  Then the stub networks
  7963.         are incorporated into the tree. During the area's shortest-path
  7964.         tree calculation, the area's TransitCapability is also
  7965.         calculated for later use in Step 4.
  7966.  
  7967.     (3) The inter-area routes are calculated, through examination of
  7968.         summary link advertisements.  If the router is attached to
  7969.         multiple areas (i.e., it is an area border router), only
  7970.         backbone summary link advertisements are examined.
  7971.  
  7972.     (4) In area border routers connecting to one or more transit areas
  7973.         (i.e, non-backbone areas whose TransitCapability is found to be
  7974.         TRUE), the transit areas' summary link advertisements are
  7975.         examined to see whether better paths exist using the transit
  7976.         areas than were found in Steps 2-3 above.
  7977.  
  7978.     (5) Routes to external destinations are calculated, through
  7979.         examination of AS external link advertisements.  The locations
  7980.         of the AS boundary routers (which originate the AS external link
  7981.         advertisements) have been determined in steps 2-4.
  7982.  
  7983.  
  7984.     Steps 2-5 are explained in further detail below.  The explanations
  7985.     describe the calculations for TOS 0 only.  It may also be necessary
  7986.     to perform each step (separately) for each of the non-zero TOS
  7987.     values.[20] For more information concerning the building of non-zero
  7988.     TOS routes see Section 16.9.
  7989.  
  7990.     Changes made to routing table entries as a result of these
  7991.     calculations can cause the OSPF protocol to take further actions.
  7992.     For example, a change to an intra-area route will cause an area
  7993.     border router to originate new summary link advertisements (see
  7994.     Section 12.4).  See Section 16.7 for a complete list of the OSPF
  7995.     protocol actions resulting from routing table changes.
  7996.  
  7997.  
  7998.     16.1.  Calculating the shortest-path tree for an area
  7999.  
  8000.         This calculation yields the set of intra-area routes associated
  8001.         with an area (called hereafter Area A).  A router calculates the
  8002.         shortest-path tree using itself as the root.[21] The formation
  8003.         of the shortest path tree is done here in two stages.  In the
  8004.         first stage, only links between routers and transit networks are
  8005.  
  8006.  
  8007.  
  8008. Moy                                                           [Page 143]
  8009.  
  8010. RFC 1583                     OSPF Version 2                   March 1994
  8011.  
  8012.  
  8013.         considered.  Using the Dijkstra algorithm, a tree is formed from
  8014.         this subset of the link state database.  In the second stage,
  8015.         leaves are added to the tree by considering the links to stub
  8016.         networks.
  8017.  
  8018.         The procedure will be explained using the graph terminology that
  8019.         was introduced in Section 2.  The area's link state database is
  8020.         represented as a directed graph.  The graph's vertices are
  8021.         routers, transit networks and stub networks.  The first stage of
  8022.         the procedure concerns only the transit vertices (routers and
  8023.         transit networks) and their connecting links.  Throughout the
  8024.         shortest path calculation, the following data is also associated
  8025.         with each transit vertex:
  8026.  
  8027.  
  8028.         Vertex (node) ID
  8029.             A 32-bit number uniquely identifying the vertex.  For router
  8030.             vertices this is the router's OSPF Router ID.  For network
  8031.             vertices, this is the IP address of the network's Designated
  8032.             Router.
  8033.  
  8034.         A link state advertisement
  8035.             Each transit vertex has an associated link state
  8036.             advertisement.  For router vertices, this is a router links
  8037.             advertisement.  For transit networks, this is a network
  8038.             links advertisement (which is actually originated by the
  8039.             network's Designated Router).  In any case, the
  8040.             advertisement's Link State ID is always equal to the above
  8041.             Vertex ID.
  8042.  
  8043.         List of next hops
  8044.             The list of next hops for the current set of shortest paths
  8045.             from the root to this vertex.  There can be multiple
  8046.             shortest paths due to the equal-cost multipath capability.
  8047.             Each next hop indicates the outgoing router interface to use
  8048.             when forwarding traffic to the destination.  On multi-access
  8049.             networks, the next hop also includes the IP address of the
  8050.             next router (if any) in the path towards the destination.
  8051.  
  8052.         Distance from root
  8053.             The link state cost of the current set of shortest paths
  8054.             from the root to the vertex.  The link state cost of a path
  8055.             is calculated as the sum of the costs of the path's
  8056.             constituent links (as advertised in router links and network
  8057.             links advertisements).  One path is said to be "shorter"
  8058.             than another if it has a smaller link state cost.
  8059.  
  8060.  
  8061.  
  8062.  
  8063.  
  8064. Moy                                                           [Page 144]
  8065.  
  8066. RFC 1583                     OSPF Version 2                   March 1994
  8067.  
  8068.  
  8069.         The first stage of the procedure (i.e., the Dijkstra algorithm)
  8070.         can now be summarized as follows. At each iteration of the
  8071.         algorithm, there is a list of candidate vertices.  Paths from
  8072.         the root to these vertices have been found, but not necessarily
  8073.         the shortest ones.  However, the paths to the candidate vertex
  8074.         that is closest to the root are guaranteed to be shortest; this
  8075.         vertex is added to the shortest-path tree, removed from the
  8076.         candidate list, and its adjacent vertices are examined for
  8077.         possible addition to/modification of the candidate list.  The
  8078.         algorithm then iterates again.  It terminates when the candidate
  8079.         list becomes empty.
  8080.  
  8081.         The following steps describe the algorithm in detail.  Remember
  8082.         that we are computing the shortest path tree for Area A.  All
  8083.         references to link state database lookup below are from Area A's
  8084.         database.
  8085.  
  8086.  
  8087.         (1) Initialize the algorithm's data structures.  Clear the list
  8088.             of candidate vertices.  Initialize the shortest-path tree to
  8089.             only the root (which is the router doing the calculation).
  8090.             Set Area A's TransitCapability to FALSE.
  8091.  
  8092.         (2) Call the vertex just added to the tree vertex V.  Examine
  8093.             the link state advertisement associated with vertex V.  This
  8094.             is a lookup in the Area A's link state database based on the
  8095.             Vertex ID.  If this is a router links advertisement, and bit
  8096.             V of the router links advertisement (see Section A.4.2) is
  8097.             set, set Area A's TransitCapability to TRUE.  In any case,
  8098.             each link described by the advertisement gives the cost to
  8099.             an adjacent vertex.  For each described link, (say it joins
  8100.             vertex V to vertex W):
  8101.  
  8102.             (a) If this is a link to a stub network, examine the next
  8103.                 link in V's advertisement.  Links to stub networks will
  8104.                 be considered in the second stage of the shortest path
  8105.                 calculation.
  8106.  
  8107.             (b) Otherwise, W is a transit vertex (router or transit
  8108.                 network).  Look up the vertex W's link state
  8109.                 advertisement (router links or network links) in Area
  8110.                 A's link state database.  If the advertisement does not
  8111.                 exist, or its LS age is equal to MaxAge, or it does not
  8112.                 have a link back to vertex V, examine the next link in
  8113.                 V's advertisement.[22]
  8114.  
  8115.             (c) If vertex W is already on the shortest-path tree,
  8116.                 examine the next link in the advertisement.
  8117.  
  8118.  
  8119.  
  8120. Moy                                                           [Page 145]
  8121.  
  8122. RFC 1583                     OSPF Version 2                   March 1994
  8123.  
  8124.  
  8125.             (d) Calculate the link state cost D of the resulting path
  8126.                 from the root to vertex W.  D is equal to the sum of the
  8127.                 link state cost of the (already calculated) shortest
  8128.                 path to vertex V and the advertised cost of the link
  8129.                 between vertices V and W.  If D is:
  8130.  
  8131.                 o   Greater than the value that already appears for
  8132.                     vertex W on the candidate list, then examine the
  8133.                     next link.
  8134.  
  8135.                 o   Equal to the value that appears for vertex W on the
  8136.                     candidate list, calculate the set of next hops that
  8137.                     result from using the advertised link.  Input to
  8138.                     this calculation is the destination (W), and its
  8139.                     parent (V).  This calculation is shown in Section
  8140.                     16.1.1.  This set of hops should be added to the
  8141.                     next hop values that appear for W on the candidate
  8142.                     list.
  8143.  
  8144.                 o   Less than the value that appears for vertex W on the
  8145.                     candidate list, or if W does not yet appear on the
  8146.                     candidate list, then set the entry for W on the
  8147.                     candidate list to indicate a distance of D from the
  8148.                     root.  Also calculate the list of next hops that
  8149.                     result from using the advertised link, setting the
  8150.                     next hop values for W accordingly.  The next hop
  8151.                     calculation is described in Section 16.1.1; it takes
  8152.                     as input the destination (W) and its parent (V).
  8153.  
  8154.         (3) If at this step the candidate list is empty, the shortest-
  8155.             path tree (of transit vertices) has been completely built
  8156.             and this stage of the procedure terminates.  Otherwise,
  8157.             choose the vertex belonging to the candidate list that is
  8158.             closest to the root, and add it to the shortest-path tree
  8159.             (removing it from the candidate list in the process). Note
  8160.             that when there is a choice of vertices closest to the root,
  8161.             network vertices must be chosen before router vertices in
  8162.             order to necessarily find all equal-cost paths. This is
  8163.             consistent with the tie-breakers that were introduced in the
  8164.             modified Dijkstra algorithm used by OSPF's Multicast routing
  8165.             extensions (MOSPF).
  8166.  
  8167.         (4) Possibly modify the routing table.  For those routing table
  8168.             entries modified, the associated area will be set to Area A,
  8169.             the path type will be set to intra-area, and the cost will
  8170.             be set to the newly discovered shortest path's calculated
  8171.             distance.
  8172.  
  8173.  
  8174.  
  8175.  
  8176. Moy                                                           [Page 146]
  8177.  
  8178. RFC 1583                     OSPF Version 2                   March 1994
  8179.  
  8180.  
  8181.             If the newly added vertex is an area border router (call it
  8182.             ABR), a routing table entry is added whose destination type
  8183.             is "area border router". The Options field found in the
  8184.             associated router links advertisement is copied into the
  8185.             routing table entry's Optional capabilities field. If in
  8186.             addition ABR is the endpoint of one of the calculating
  8187.             router's configured virtual links that uses Area A as its
  8188.             Transit area: the virtual link is declared up, the IP
  8189.             address of the virtual interface is set to the IP address of
  8190.             the outgoing interface calculated above for ABR, and the
  8191.             virtual neighbor's IP address is set to the ABR interface
  8192.             address (contained in ABR's router links advertisement) that
  8193.             points back to the root of the shortest-path tree;
  8194.             equivalently, this is the interface that points back to
  8195.             ABR's parent vertex on the shortest-path tree (similar to
  8196.             the calculation in Section 16.1.1).
  8197.  
  8198.             If the newly added vertex is an AS boundary router, the
  8199.             routing table entry of type "AS boundary router" for the
  8200.             destination is located.  Since routers can belong to more
  8201.             than one area, it is possible that several sets of intra-
  8202.             area paths exist to the AS boundary router, each set using a
  8203.             different area.  However, the AS boundary router's routing
  8204.             table entry must indicate a set of paths which utilize a
  8205.             single area.  The area leading to the routing table entry is
  8206.             selected as follows: The area providing the shortest path is
  8207.             always chosen; if more than one area provides paths with the
  8208.             same minimum cost, the area with the largest OSPF Area ID
  8209.             (when considered as an unsigned 32-bit integer) is chosen.
  8210.             Note that whenever an AS boundary router's routing table
  8211.             entry is added/modified, the Options found in the associated
  8212.             router links advertisement is copied into the routing table
  8213.             entry's Optional capabilities field.
  8214.  
  8215.             If the newly added vertex is a transit network, the routing
  8216.             table entry for the network is located.  The entry's
  8217.             Destination ID is the IP network number, which can be
  8218.             obtained by masking the Vertex ID (Link State ID) with its
  8219.             associated subnet mask (found in the body of the associated
  8220.             network links advertisement).  If the routing table entry
  8221.             already exists (i.e., there is already an intra-area route
  8222.             to the destination installed in the routing table), multiple
  8223.             vertices have mapped to the same IP network.  For example,
  8224.             this can occur when a new Designated Router is being
  8225.             established.  In this case, the current routing table entry
  8226.             should be overwritten if and only if the newly found path is
  8227.             just as short and the current routing table entry's Link
  8228.             State Origin has a smaller Link State ID than the newly
  8229.  
  8230.  
  8231.  
  8232. Moy                                                           [Page 147]
  8233.  
  8234. RFC 1583                     OSPF Version 2                   March 1994
  8235.  
  8236.  
  8237.             added vertex' link state advertisement.
  8238.  
  8239.             If there is no routing table entry for the network (the
  8240.             usual case), a routing table entry for the IP network should
  8241.             be added.  The routing table entry's Link State Origin
  8242.             should be set to the newly added vertex' link state
  8243.             advertisement.
  8244.  
  8245.         (5) Iterate the algorithm by returning to Step 2.
  8246.  
  8247.  
  8248.         The stub networks are added to the tree in the procedure's
  8249.         second stage.  In this stage, all router vertices are again
  8250.         examined.  Those that have been determined to be unreachable in
  8251.         the above first phase are discarded.  For each reachable router
  8252.         vertex (call it V), the associated router links advertisement is
  8253.         found in the link state database.  Each stub network link
  8254.         appearing in the advertisement is then examined, and the
  8255.         following steps are executed:
  8256.  
  8257.  
  8258.         (1) Calculate the distance D of stub network from the root.  D
  8259.             is equal to the distance from the root to the router vertex
  8260.             (calculated in stage 1), plus the stub network link's
  8261.             advertised cost.  Compare this distance to the current best
  8262.             cost to the stub network.  This is done by looking up the
  8263.             stub network's current routing table entry.  If the
  8264.             calculated distance D is larger, go on to examine the next
  8265.             stub network link in the advertisement.
  8266.  
  8267.         (2) If this step is reached, the stub network's routing table
  8268.             entry must be updated.  Calculate the set of next hops that
  8269.             would result from using the stub network link.  This
  8270.             calculation is shown in Section 16.1.1; input to this
  8271.             calculation is the destination (the stub network) and the
  8272.             parent vertex (the router vertex).  If the distance D is the
  8273.             same as the current routing table cost, simply add this set
  8274.             of next hops to the routing table entry's list of next hops.
  8275.             In this case, the routing table already has a Link State
  8276.             Origin.  If this Link State Origin is a router links
  8277.             advertisement whose Link State ID is smaller than V's Router
  8278.             ID, reset the Link State Origin to V's router links
  8279.             advertisement.
  8280.  
  8281.             Otherwise D is smaller than the routing table cost.
  8282.             Overwrite the current routing table entry by setting the
  8283.             routing table entry's cost to D, and by setting the entry's
  8284.             list of next hops to the newly calculated set.  Set the
  8285.  
  8286.  
  8287.  
  8288. Moy                                                           [Page 148]
  8289.  
  8290. RFC 1583                     OSPF Version 2                   March 1994
  8291.  
  8292.  
  8293.             routing table entry's Link State Origin to V's router links
  8294.             advertisement.  Then go on to examine the next stub network
  8295.             link.
  8296.  
  8297.  
  8298.         For all routing table entries added/modified in the second
  8299.         stage, the associated area will be set to Area A and the path
  8300.         type will be set to intra-area.  When the list of reachable
  8301.         router links is exhausted, the second stage is completed.  At
  8302.         this time, all intra-area routes associated with Area A have
  8303.         been determined.
  8304.  
  8305.         The specification does not require that the above two stage
  8306.         method be used to calculate the shortest path tree.  However, if
  8307.         another algorithm is used, an identical tree must be produced.
  8308.         For this reason, it is important to note that links between
  8309.         transit vertices must be bidirectional in ordered to be included
  8310.         in the above tree.  It should also be mentioned that more
  8311.         efficient algorithms exist for calculating the tree; for
  8312.         example, the incremental SPF algorithm described in [BBN].
  8313.  
  8314.  
  8315.         16.1.1.  The next hop calculation
  8316.  
  8317.             This section explains how to calculate the current set of
  8318.             next hops to use for a destination.  Each next hop consists
  8319.             of the outgoing interface to use in forwarding packets to
  8320.             the destination together with the next hop router (if any).
  8321.             The next hop calculation is invoked each time a shorter path
  8322.             to the destination is discovered.  This can happen in either
  8323.             stage of the shortest-path tree calculation (see Section
  8324.             16.1).  In stage 1 of the shortest-path tree calculation a
  8325.             shorter path is found as the destination is added to the
  8326.             candidate list, or when the destination's entry on the
  8327.             candidate list is modified (Step 2d of Stage 1).  In stage 2
  8328.             a shorter path is discovered each time the destination's
  8329.             routing table entry is modified (Step 2 of Stage 2).
  8330.  
  8331.             The set of next hops to use for the destination may be
  8332.             recalculated several times during the shortest-path tree
  8333.             calculation, as shorter and shorter paths are discovered.
  8334.             In the end, the destination's routing table entry will
  8335.             always reflect the next hops resulting from the absolute
  8336.             shortest path(s).
  8337.  
  8338.             Input to the next hop calculation is a) the destination and
  8339.             b) its parent in the current shortest path between the root
  8340.             (the calculating router) and the destination.  The parent is
  8341.  
  8342.  
  8343.  
  8344. Moy                                                           [Page 149]
  8345.  
  8346. RFC 1583                     OSPF Version 2                   March 1994
  8347.  
  8348.  
  8349.             always a transit vertex (i.e., always a router or a transit
  8350.             network).
  8351.  
  8352.             If there is at least one intervening router in the current
  8353.             shortest path between the destination and the root, the
  8354.             destination simply inherits the set of next hops from the
  8355.             parent.  Otherwise, there are two cases.  In the first case,
  8356.             the parent vertex is the root (the calculating router
  8357.             itself).  This means that the destination is either a
  8358.             directly connected network or directly connected router.
  8359.             The next hop in this case is simply the OSPF interface
  8360.             connecting to the network/router; no next hop router is
  8361.             required. If the connecting OSPF interface in this case is a
  8362.             virtual link, the setting of the next hop should be deferred
  8363.             until the calculation in Section 16.3.
  8364.  
  8365.             In the second case, the parent vertex is a network that
  8366.             directly connects the calculating router to the destination
  8367.             router.  The list of next hops is then determined by
  8368.             examining the destination's router links advertisement.  For
  8369.             each link in the advertisement that points back to the
  8370.             parent network, the link's Link Data field provides the IP
  8371.             address of a next hop router.  The outgoing interface to use
  8372.             can then be derived from the next hop IP address (or it can
  8373.             be inherited from the parent network).
  8374.  
  8375.  
  8376.     16.2.  Calculating the inter-area routes
  8377.  
  8378.         The inter-area routes are calculated by examining summary link
  8379.         advertisements.  If the router has active attachments to
  8380.         multiple areas, only backbone summary link advertisements are
  8381.         examined.  Routers attached to a single area examine that area's
  8382.         summary links.  In either case, the summary links examined below
  8383.         are all part of a single area's link state database (call it
  8384.         Area A).
  8385.  
  8386.         Summary link advertisements are originated by the area border
  8387.         routers.  Each summary link advertisement in Area A is
  8388.         considered in turn.  Remember that the destination described by
  8389.         a summary link advertisement is either a network (Type 3 summary
  8390.         link advertisements) or an AS boundary router (Type 4 summary
  8391.         link advertisements).  For each summary link advertisement:
  8392.  
  8393.  
  8394.         (1) If the cost specified by the advertisement is LSInfinity, or
  8395.             if the advertisement's LS age is equal to MaxAge, then
  8396.             examine the the next advertisement.
  8397.  
  8398.  
  8399.  
  8400. Moy                                                           [Page 150]
  8401.  
  8402. RFC 1583                     OSPF Version 2                   March 1994
  8403.  
  8404.  
  8405.         (2) If the advertisement was originated by the calculating
  8406.             router itself, examine the next advertisement.
  8407.  
  8408.         (3) If the collection of destinations described by the summary
  8409.             link advertisement falls into one of the router's configured
  8410.             area address ranges (see Section 3.5) and the particular
  8411.             area address range is active, the summary link advertisement
  8412.             should be ignored.  Active means that there are one or more
  8413.             reachable (by intra-area paths) networks contained in the
  8414.             area range.  In this case, all addresses in the area range
  8415.             are assumed to be either reachable via intra-area paths, or
  8416.             else to be unreachable by any other means.
  8417.  
  8418.         (4) Else, call the destination described by the advertisement N
  8419.             (for Type 3 summary links, N's address is obtained by
  8420.             masking the advertisement's Link State ID with the
  8421.             network/subnet mask contained in the body of the
  8422.             advertisement), and the area border originating the
  8423.             advertisement BR.  Look up the routing table entry for BR
  8424.             having Area A as its associated area.  If no such entry
  8425.             exists for router BR (i.e., BR is unreachable in Area A), do
  8426.             nothing with this advertisement and consider the next in the
  8427.             list.  Else, this advertisement describes an inter-area path
  8428.             to destination N, whose cost is the distance to BR plus the
  8429.             cost specified in the advertisement. Call the cost of this
  8430.             inter-area path IAC.
  8431.  
  8432.         (5) Next, look up the routing table entry for the destination N.
  8433.             (The entry's Destination Type is either Network or AS
  8434.             boundary router.)  If no entry exists for N or if the
  8435.             entry's path type is "type 1 external" or "type 2 external",
  8436.             then install the inter-area path to N, with associated area
  8437.             Area A, cost IAC, next hop equal to the list of next hops to
  8438.             router BR, and Advertising router equal to BR.
  8439.  
  8440.         (6) Else, if the paths present in the table are intra-area
  8441.             paths, do nothing with the advertisement (intra-area paths
  8442.             are always preferred).
  8443.  
  8444.         (7) Else, the paths present in the routing table are also
  8445.             inter-area paths.  Install the new path through BR if it is
  8446.             cheaper, overriding the paths in the routing table.
  8447.             Otherwise, if the new path is the same cost, add it to the
  8448.             list of paths that appear in the routing table entry.
  8449.  
  8450.  
  8451.  
  8452.  
  8453.  
  8454.  
  8455.  
  8456. Moy                                                           [Page 151]
  8457.  
  8458. RFC 1583                     OSPF Version 2                   March 1994
  8459.  
  8460.  
  8461.     16.3.  Examining transit areas' summary links
  8462.  
  8463.         This step is only performed by area border routers attached to
  8464.         one or more transit areas. Transit areas are those areas
  8465.         supporting one or more virtual links; their TransitCapability
  8466.         parameter has been set to TRUE in Step 2 of the Dijkstra
  8467.         algorithm (see Section 16.1). They are the only non-backbone
  8468.         areas that can carry data traffic that neither originates nor
  8469.         terminates in the area itself.
  8470.  
  8471.         The purpose of the calculation below is to examine the transit
  8472.         areas to see whether they provide any better (shorter) paths
  8473.         than the paths previously calculated in Sections 16.1 and 16.2.
  8474.         Any paths found that are better than or equal to previously
  8475.         discovered paths are installed in the routing table.
  8476.  
  8477.         The calculation proceeds as follows. All the transit areas'
  8478.         summary link advertisements are examined in turn.  Each such
  8479.         summary link advertisement describes a route through a transit
  8480.         area Area A to a Network N (N's address is obtained by masking
  8481.         the advertisement's Link State ID with the network/subnet mask
  8482.         contained in the body of the advertisement) or in the case of a
  8483.         Type 4 summary link advertisement, to an AS boundary router N.
  8484.         Suppose also that the summary link advertisement was originated
  8485.         by an area border router BR.
  8486.  
  8487.         (1) If the cost advertised by the summary link advertisement is
  8488.             LSInfinity, or if the advertisement's LS age is equal to
  8489.             MaxAge, then examine the next advertisement.
  8490.  
  8491.         (2) If the summary link advertisement was originated by the
  8492.             calculating router itself, examine the next advertisement.
  8493.  
  8494.         (3) Look up the routing table entry for N. If it does not exist,
  8495.             or if the route type is other than intra-area or inter-area,
  8496.             or if the area associated with the routing table entry is
  8497.             not the backbone area, then examine the next advertisement.
  8498.             In other words, this calculation only updates backbone
  8499.             intra-area routes found in Section 16.1 and inter-area
  8500.             routes found in Section 16.2.
  8501.  
  8502.         (4) Look up the routing table entry for the advertising router
  8503.             BR associated with the Area A. If it is unreachable, examine
  8504.             the next advertisement. Otherwise, the cost to destination N
  8505.             is the sum of the cost in BR's Area A routing table entry
  8506.             and the cost advertised in the advertisement. Call this cost
  8507.             IAC.
  8508.  
  8509.  
  8510.  
  8511.  
  8512. Moy                                                           [Page 152]
  8513.  
  8514. RFC 1583                     OSPF Version 2                   March 1994
  8515.  
  8516.  
  8517.         (5) If this cost is less than the cost occurring in N's routing
  8518.             table entry, overwrite N's list of next hops with those used
  8519.             for BR, and set N's routing table cost to IAC. Else, if IAC
  8520.             is the same as N's current cost, add BR's list of next hops
  8521.             to N's list of next hops. In any case, the area associated
  8522.             with N's routing table entry must remain the backbone area,
  8523.             and the path type (either intra-area or inter-area) must
  8524.             also remain the same.
  8525.  
  8526.         It is important to note that the above calculation never makes
  8527.         unreachable destinations reachable, but instead just potentially
  8528.         finds better paths to already reachable destinations. Also,
  8529.         unlike Section 16.3 of [RFC 1247], the above calculation
  8530.         installs any better cost found into the routing table entry,
  8531.         from which it may be readvertised in summary link advertisements
  8532.         to other areas.
  8533.  
  8534.         As an example of the calculation, consider the Autonomous System
  8535.         pictured in Figure 17.  There is a single non-backbone area
  8536.         (Area 1) that physically divides the backbone into two separate
  8537.         pieces. To maintain connectivity of the backbone, a virtual link
  8538.         has been configured between routers RT1 and RT4. On the right
  8539.         side of the figure, Network N1 belongs to the backbone. The
  8540.         dotted lines indicate that there is a much shorter intra-area
  8541.  
  8542.                       ........................
  8543.                       . Area 1 (transit)     .            +
  8544.                       .                      .            |
  8545.                       .      +---+1        1+---+100      |
  8546.                       .      |RT2|----------|RT4|=========|
  8547.                       .    1/+---+********* +---+         |
  8548.                       .    /*******          .            |
  8549.                       .  1/*Virtual          .            |
  8550.                    1+---+/*  Link            .         Net|work
  8551.              =======|RT1|*                   .            | N1
  8552.                     +---+\                   .            |
  8553.                       .   \                  .            |
  8554.                       .    \                 .            |
  8555.                       .    1\+---+1        1+---+20       |
  8556.                       .      |RT3|----------|RT5|=========|
  8557.                       .      +---+          +---+         |
  8558.                       .                      .            |
  8559.                       ........................            +
  8560.  
  8561.  
  8562.                     Figure 17: Routing through transit areas
  8563.  
  8564.  
  8565.  
  8566.  
  8567.  
  8568. Moy                                                           [Page 153]
  8569.  
  8570. RFC 1583                     OSPF Version 2                   March 1994
  8571.  
  8572.  
  8573.         backbone path between router RT5 and Network N1 (cost 20) than
  8574.         there is between Router RT4 and Network N1 (cost 100). Both
  8575.         Router RT4 and Router RT5 will inject summary link
  8576.         advertisements for Network N1 into Area 1.
  8577.  
  8578.         After the shortest-path tree has been calculated for the
  8579.         backbone in Section 16.1, Router RT1 (left end of the virtual
  8580.         link) will have calculated a path through Router RT4 for all
  8581.         data traffic destined for Network N1. However, since Router RT5
  8582.         is so much closer to Network N1, all routers internal to Area 1
  8583.         (e.g., Routers RT2 and RT3) will forward their Network N1
  8584.         traffic towards Router RT5, instead of RT4. And indeed, after
  8585.         examining Area 1's summary link advertisements by the above
  8586.         calculation, Router RT1 will also forward Network N1 traffic
  8587.         towards RT5. Note that in this example the virtual link enables
  8588.         Network N1 traffic to be forwarded through the transit area Area
  8589.         1, but the actual path the data traffic takes does not follow
  8590.         the virtual link.  In other words, virtual links allow transit
  8591.         traffic to be forwarded through an area, but do not dictate the
  8592.         precise path that the traffic will take.
  8593.  
  8594.     16.4.  Calculating AS external routes
  8595.  
  8596.         AS external routes are calculated by examining AS external link
  8597.         advertisements.  Each of the AS external link advertisements is
  8598.         considered in turn.  Most AS external link advertisements
  8599.         describe routes to specific IP destinations.  An AS external
  8600.         link advertisement can also describe a default route for the
  8601.         Autonomous System (Destination ID = DefaultDestination,
  8602.         network/subnet mask = 0x00000000).  For each AS external link
  8603.         advertisement:
  8604.  
  8605.  
  8606.         (1) If the cost specified by the advertisement is LSInfinity, or
  8607.             if the advertisement's LS age is equal to MaxAge, then
  8608.             examine the next advertisement.
  8609.  
  8610.         (2) If the advertisement was originated by the calculating
  8611.             router itself, examine the next advertisement.
  8612.  
  8613.         (3) Call the destination described by the advertisement N.  N's
  8614.             address is obtained by masking the advertisement's Link
  8615.             State ID with the network/subnet mask contained in the body
  8616.             of the advertisement.  Look up the routing table entry for
  8617.             the AS boundary router (ASBR) that originated the
  8618.             advertisement. If no entry exists for router ASBR (i.e.,
  8619.             ASBR is unreachable), do nothing with this advertisement and
  8620.             consider the next in the list.
  8621.  
  8622.  
  8623.  
  8624. Moy                                                           [Page 154]
  8625.  
  8626. RFC 1583                     OSPF Version 2                   March 1994
  8627.  
  8628.  
  8629.             Else, this advertisement describes an AS external path to
  8630.             destination N.  Examine the forwarding address specified in
  8631.             the AS external link advertisement.  This indicates the IP
  8632.             address to which packets for the destination should be
  8633.             forwarded.  If the forwarding address is set to 0.0.0.0,
  8634.             packets should be sent to the ASBR itself.  Otherwise, look
  8635.             up the forwarding address in the routing table.[23] An
  8636.             intra-area or inter-area path must exist to the forwarding
  8637.             address.  If no such path exists, do nothing with the
  8638.             advertisement and consider the next in the list.
  8639.  
  8640.             Call the routing table distance to the forwarding address X
  8641.             (when the forwarding address is set to 0.0.0.0, this is the
  8642.             distance to the ASBR itself), and the cost specified in the
  8643.             advertisement Y.  X is in terms of the link state metric,
  8644.             and Y is a type 1 or 2 external metric.
  8645.  
  8646.         (4) Next, look up the routing table entry for the destination N.
  8647.             If no entry exists for N, install the AS external path to N,
  8648.             with next hop equal to the list of next hops to the
  8649.             forwarding address, and advertising router equal to ASBR.
  8650.             If the external metric type is 1, then the path-type is set
  8651.             to type 1 external and the cost is equal to X+Y.  If the
  8652.             external metric type is 2, the path-type is set to type 2
  8653.             external, the link state component of the route's cost is X,
  8654.             and the type 2 cost is Y.
  8655.  
  8656.         (5) Else, if the paths present in the table are not type 1 or
  8657.             type 2 external paths, do nothing (AS external paths have
  8658.             the lowest priority).
  8659.  
  8660.         (6) Otherwise, compare the cost of this new AS external path to
  8661.             the ones present in the table.  Type 1 external paths are
  8662.             always shorter than type 2 external paths.  Type 1 external
  8663.             paths are compared by looking at the sum of the distance to
  8664.             the forwarding address and the advertised type 1 metric
  8665.             (X+Y).  Type 2 external paths are compared by looking at the
  8666.             advertised type 2 metrics, and then if necessary, the
  8667.             distance to the forwarding addresses.
  8668.  
  8669.             If the new path is shorter, it replaces the present paths in
  8670.             the routing table entry.  If the new path is the same cost,
  8671.             it is added to the routing table entry's list of paths.
  8672.  
  8673.  
  8674.  
  8675.  
  8676.  
  8677.  
  8678.  
  8679.  
  8680. Moy                                                           [Page 155]
  8681.  
  8682. RFC 1583                     OSPF Version 2                   March 1994
  8683.  
  8684.  
  8685.     16.5.  Incremental updates -- summary link advertisements
  8686.  
  8687.         When a new summary link advertisement is received, it is not
  8688.         necessary to recalculate the entire routing table.  Call the
  8689.         destination described by the summary link advertisement N (N's
  8690.         address is obtained by masking the advertisement's Link State ID
  8691.         with the network/subnet mask contained in the body of the
  8692.         advertisement), and let Area A be the area to which the
  8693.         advertisement belongs. There are then two separate cases:
  8694.  
  8695.         Case 1: Area A is the backbone and/or the router is not an area
  8696.             border router.
  8697.             In this case, the following calculations must be performed.
  8698.             First, if there is presently an inter-area route to the
  8699.             destination N, N's routing table entry is invalidated,
  8700.             saving the entry's values for later comparisons. Then the
  8701.             calculation in Section 16.2 is run again for the single
  8702.             destination N. In this calculation, all of Area A's summary
  8703.             link advertisements that describe a route to N are examined.
  8704.             In addition, if the router is an area border router attached
  8705.             to one or more transit areas, the calculation in Section
  8706.             16.3 must be run again for the single destination.  If the
  8707.             results of these calculations have changed the cost/path to
  8708.             an AS boundary router (as would be the case for a Type 4
  8709.             summary link advertisement) or to any forwarding addresses,
  8710.             all AS external link advertisements will have to be
  8711.             reexamined by rerunning the calculation in Section 16.4.
  8712.             Otherwise, if N is now newly unreachable, the calculation in
  8713.             Section 16.4 must be rerun for the single destination N, in
  8714.             case an alternate external route to N exists.
  8715.  
  8716.         Case 2: Area A is a transit area and the router is an area
  8717.             border router.
  8718.             In this case, the following calculations must be performed.
  8719.             First, if N's routing table entry presently contains one or
  8720.             more inter-area paths that utilize the transit area Area A,
  8721.             these paths should be removed. If this removes all paths
  8722.             from the routing table entry, the entry should be
  8723.             invalidated.  The entry's old values should be saved for
  8724.             later comparisons. Next the calculation in Section 16.3 must
  8725.             be run again for the single destination N. If the results of
  8726.             this calculation have caused the cost to N to increase, the
  8727.             complete routing table calculation must be rerun starting
  8728.             with the Dijkstra algorithm specified in Section 16.1.
  8729.             Otherwise, if the cost/path to an AS boundary router (as
  8730.             would be the case for a Type 4 summary link advertisement)
  8731.             or to any forwarding addresses has changed, all AS external
  8732.             link advertisements will have to be reexamined by rerunning
  8733.  
  8734.  
  8735.  
  8736. Moy                                                           [Page 156]
  8737.  
  8738. RFC 1583                     OSPF Version 2                   March 1994
  8739.  
  8740.  
  8741.             the calculation in Section 16.4.  Otherwise, if N is now
  8742.             newly unreachable, the calculation in Section 16.4 must be
  8743.             rerun for the single destination N, in case an alternate
  8744.             external route to N exists.
  8745.  
  8746.     16.6.  Incremental updates -- AS external link advertisements
  8747.  
  8748.         When a new AS external link advertisement is received, it is not
  8749.         necessary to recalculate the entire routing table.  Call the
  8750.         destination described by the AS external link advertisement N.
  8751.         N's address is obtained by masking the advertisement's Link
  8752.         State ID with the network/subnet mask contained in the body of
  8753.         the advertisement. If there is already an intra-area or inter-
  8754.         area route to the destination, no recalculation is necessary
  8755.         (internal routes take precedence).
  8756.  
  8757.         Otherwise, the procedure in Section 16.4 will have to be
  8758.         performed, but only for those AS external link advertisements
  8759.         whose destination is N.  Before this procedure is performed, the
  8760.         present routing table entry for N should be invalidated.
  8761.  
  8762.  
  8763.     16.7.  Events generated as a result of routing table changes
  8764.  
  8765.         Changes to routing table entries sometimes cause the OSPF area
  8766.         border routers to take additional actions.  These routers need
  8767.         to act on the following routing table changes:
  8768.  
  8769.  
  8770.         o   The cost or path type of a routing table entry has changed.
  8771.             If the destination described by this entry is a Network or
  8772.             AS boundary router, and this is not simply a change of AS
  8773.             external routes, new summary link advertisements may have to
  8774.             be generated (potentially one for each attached area,
  8775.             including the backbone).  See Section 12.4.3 for more
  8776.             information.  If a previously advertised entry has been
  8777.             deleted, or is no longer advertisable to a particular area,
  8778.             the advertisement must be flushed from the routing domain by
  8779.             setting its LS age to MaxAge and reflooding (see Section
  8780.             14.1).
  8781.  
  8782.         o   A routing table entry associated with a configured virtual
  8783.             link has changed.  The destination of such a routing table
  8784.             entry is an area border router.  The change indicates a
  8785.             modification to the virtual link's cost or viability.
  8786.  
  8787.             If the entry indicates that the area border router is newly
  8788.             reachable (via TOS 0), the corresponding virtual link is now
  8789.  
  8790.  
  8791.  
  8792. Moy                                                           [Page 157]
  8793.  
  8794. RFC 1583                     OSPF Version 2                   March 1994
  8795.  
  8796.  
  8797.             operational.  An InterfaceUp event should be generated for
  8798.             the virtual link, which will cause a virtual adjacency to
  8799.             begin to form (see Section 10.3).  At this time the virtual
  8800.             link's IP interface address and the virtual neighbor's
  8801.             Neighbor IP address are also calculated.
  8802.  
  8803.             If the entry indicates that the area border router is no
  8804.             longer reachable (via TOS 0), the virtual link and its
  8805.             associated adjacency should be destroyed.  This means an
  8806.             InterfaceDown event should be generated for the associated
  8807.             virtual link.
  8808.  
  8809.             If the cost of the entry has changed, and there is a fully
  8810.             established virtual adjacency, a new router links
  8811.             advertisement for the backbone must be originated.  This in
  8812.             turn may cause further routing table changes.
  8813.  
  8814.  
  8815.     16.8.  Equal-cost multipath
  8816.  
  8817.         The OSPF protocol maintains multiple equal-cost routes to all
  8818.         destinations.  This can be seen in the steps used above to
  8819.         calculate the routing table, and in the definition of the
  8820.         routing table structure.
  8821.  
  8822.         Each one of the multiple routes will be of the same type
  8823.         (intra-area, inter-area, type 1 external or type 2 external),
  8824.         cost, and will have the same associated area.  However, each
  8825.         route specifies a separate next hop and Advertising router.
  8826.  
  8827.         There is no requirement that a router running OSPF keep track of
  8828.         all possible equal-cost routes to a destination.  An
  8829.         implementation may choose to keep only a fixed number of routes
  8830.         to any given destination.  This does not affect any of the
  8831.         algorithms presented in this specification.
  8832.  
  8833.  
  8834.     16.9.  Building the non-zero-TOS portion of the routing table
  8835.  
  8836.         The OSPF protocol can calculate a different set of routes for
  8837.         each IP TOS (see Section 2.4).  Support for TOS-based routing is
  8838.         optional.  TOS-capable and non-TOS-capable routers can be mixed
  8839.         in an OSPF routing domain.  Routers not supporting TOS calculate
  8840.         only the TOS 0 route to each destination.  These routes are then
  8841.         used to forward all data traffic, regardless of the TOS
  8842.         indications in the data packet's IP header.  A router that does
  8843.         not support TOS indicates this fact to the other OSPF routers by
  8844.         clearing the T-bit in the Options field of its router links
  8845.  
  8846.  
  8847.  
  8848. Moy                                                           [Page 158]
  8849.  
  8850. RFC 1583                     OSPF Version 2                   March 1994
  8851.  
  8852.  
  8853.         advertisement.
  8854.  
  8855.         The above sections detailing the routing table calculations
  8856.         handle the TOS 0 case only.  In general, for routers supporting
  8857.         TOS-based routing, each piece of the routing table calculation
  8858.         must be rerun separately for the non-zero TOS values.  When
  8859.         calculating routes for TOS X, only TOS X metrics can be used.
  8860.         Any link state advertisement may specify a separate cost for
  8861.         each TOS (a cost for TOS 0 must always be specified).  The
  8862.         encoding of TOS in OSPF link state advertisements is described
  8863.         in Section 12.3.
  8864.  
  8865.         An advertisement can specify that it is restricted to TOS 0
  8866.         (i.e., non-zero TOS is not handled) by clearing the T-bit in the
  8867.         link state advertisement's Option field.  Such advertisements
  8868.         are not used when calculating routes for non-zero TOS.  For this
  8869.         reason, it is possible that a destination is unreachable for
  8870.         some non-zero TOS.  In this case, the TOS 0 path is used when
  8871.         forwarding packets (see Section 11.1).
  8872.  
  8873.         The following lists the modifications needed when running the
  8874.         routing table calculation for a non-zero TOS value (called TOS
  8875.         X).  In general, routers and advertisements that do not support
  8876.         TOS are omitted from the calculation.
  8877.  
  8878.  
  8879.         Calculating the shortest-path tree (Section  16.1).
  8880.             Routers that do not support TOS-based routing should be
  8881.             omitted from the shortest-path tree calculation.  These
  8882.             routers are identified as those having the T-bit reset in
  8883.             the Options field of their router links advertisements.
  8884.             Such routers should never be added to the Dijktra
  8885.             algorithm's candidate list, nor should their router links
  8886.             advertisements be examined when adding the stub networks to
  8887.             the tree.  In particular, if the T-bit is reset in the
  8888.             calculating router's own router links advertisement, it does
  8889.             not run the shortest-path tree calculation for non-zero TOS
  8890.             values.
  8891.  
  8892.         Calculating the inter-area routes (Section  16.2).
  8893.             Inter-area paths are the concatenation of a path to an area
  8894.             border router with a summary link.  When calculating TOS X
  8895.             routes, both path components must also specify TOS X.  In
  8896.             other words, only TOS X paths to the area border router are
  8897.             examined, and the area border router must be advertising a
  8898.             TOS X route to the destination.  Note that this means that
  8899.             summary link advertisements having the T-bit reset in their
  8900.             Options field are not considered.
  8901.  
  8902.  
  8903.  
  8904. Moy                                                           [Page 159]
  8905.  
  8906. RFC 1583                     OSPF Version 2                   March 1994
  8907.  
  8908.  
  8909.         Examining transit areas' summary links (Section 16.3).
  8910.             This calculation again considers the concatenation of a path
  8911.             to an area border router with a summary link.  As with
  8912.             inter-area routes, only TOS X paths to the area border
  8913.             router are examined, and the area border router must be
  8914.             advertising a TOS X route to the destination.
  8915.  
  8916.         Calculating AS external routes (Section 16.4).
  8917.             This calculation considers the concatenation of a path to a
  8918.             forwarding address with an AS external link.  Only TOS X
  8919.             paths to the forwarding address are examined, and the AS
  8920.             boundary router must be advertising a TOS X route to the
  8921.             destination.  Note that this means that AS external link
  8922.             advertisements having the T-bit reset in their Options field
  8923.             are not considered.
  8924.  
  8925.             In addition, the advertising AS boundary router must also be
  8926.             reachable for its advertisements to be considered (see
  8927.             Section 16.4).  However, if the advertising router and the
  8928.             forwarding address are not one in the same, the advertising
  8929.             router need only be reachable via TOS 0.
  8930.  
  8931.  
  8932.  
  8933.  
  8934.  
  8935.  
  8936.  
  8937.  
  8938.  
  8939.  
  8940.  
  8941.  
  8942.  
  8943.  
  8944.  
  8945.  
  8946.  
  8947.  
  8948.  
  8949.  
  8950.  
  8951.  
  8952.  
  8953.  
  8954.  
  8955.  
  8956.  
  8957.  
  8958.  
  8959.  
  8960. Moy                                                           [Page 160]
  8961.  
  8962. RFC 1583                     OSPF Version 2                   March 1994
  8963.  
  8964.  
  8965. Footnotes
  8966.  
  8967.  
  8968.     [1]The graph's vertices represent either routers, transit networks,
  8969.     or stub networks.  Since routers may belong to multiple areas, it is
  8970.     not possible to color the graph's vertices.
  8971.  
  8972.     [2]It is possible for all of a router's interfaces to be unnumbered
  8973.     point-to-point links.  In this case, an IP address must be assigned
  8974.     to the router.  This address will then be advertised in the router's
  8975.     router links advertisement as a host route.
  8976.  
  8977.     [3]Note that in these cases both interfaces, the non-virtual and the
  8978.     virtual, would have the same IP address.
  8979.  
  8980.     [4]Note that no host route is generated for, and no IP packets can
  8981.     be addressed to, interfaces to unnumbered point-to-point networks.
  8982.     This is regardless of such an interface's state.
  8983.  
  8984.     [5]It is instructive to see what happens when the Designated Router
  8985.     for the network crashes.  Call the Designated Router for the network
  8986.     RT1, and the Backup Designated Router RT2.  If Router RT1 crashes
  8987.     (or maybe its interface to the network dies), the other routers on
  8988.     the network will detect RT1's absence within RouterDeadInterval
  8989.     seconds.  All routers may not detect this at precisely the same
  8990.     time; the routers that detect RT1's absence before RT2 does will,
  8991.     for a time, select RT2 to be both Designated Router and Backup
  8992.     Designated Router.  When RT2 detects that RT1 is gone it will move
  8993.     itself to Designated Router.  At this time, the remaining router
  8994.     having highest Router Priority will be selected as Backup Designated
  8995.     Router.
  8996.  
  8997.     [6]On point-to-point networks, the lower level protocols indicate
  8998.     whether the neighbor is up and running.  Likewise, existence of the
  8999.     neighbor on virtual links is indicated by the routing table
  9000.     calculation.  However, in both these cases, the Hello Protocol is
  9001.     still used.  This ensures that communication between the neighbors
  9002.     is bidirectional, and that each of the neighbors has a functioning
  9003.     routing protocol layer.
  9004.  
  9005.     [7]When the identity of the Designated Router is changing, it may be
  9006.     quite common for a neighbor in this state to send the router a
  9007.     Database Description packet; this means that there is some momentary
  9008.     disagreement on the Designated Router's identity.
  9009.  
  9010.     [8]Note that it is possible for a router to resynchronize any of its
  9011.     fully established adjacencies by setting the adjacency's state back
  9012.     to ExStart.  This will cause the other end of the adjacency to
  9013.  
  9014.  
  9015.  
  9016. Moy                                                           [Page 161]
  9017.  
  9018. RFC 1583                     OSPF Version 2                   March 1994
  9019.  
  9020.  
  9021.     process a SeqNumberMismatch event, and therefore to also go back to
  9022.     ExStart state.
  9023.  
  9024.     [9]The address space of IP networks and the address space of OSPF
  9025.     Router IDs may overlap.  That is, a network may have an IP address
  9026.     which is identical (when considered as a 32-bit number) to some
  9027.     router's Router ID.
  9028.  
  9029.     [10]It is assumed that, for two different address ranges matching
  9030.     the destination, one range is more specific than the other. Non-
  9031.     contiguous subnet masks can be configured to violate this
  9032.     assumption. Such subnet mask configurations cannot be handled by the
  9033.     OSPF protocol.
  9034.  
  9035.     [11]MaxAgeDiff is an architectural constant.  It indicates the
  9036.     maximum dispersion of ages, in seconds, that can occur for a single
  9037.     link state instance as it is flooded throughout the routing domain.
  9038.     If two advertisements differ by more than this, they are assumed to
  9039.     be different instances of the same advertisement.  This can occur
  9040.     when a router restarts and loses track of the advertisement's
  9041.     previous LS sequence number.  See Section 13.4 for more details.
  9042.  
  9043.     [12]When two advertisements have different LS checksums, they are
  9044.     assumed to be separate instances.  This can occur when a router
  9045.     restarts, and loses track of the advertisement's previous LS
  9046.     sequence number.  In the case where the two advertisements have the
  9047.     same LS sequence number, it is not possible to determine which link
  9048.     state is actually newer.  If the wrong advertisement is accepted as
  9049.     newer, the originating router will originate another instance.  See
  9050.     Section 13.4 for further details.
  9051.  
  9052.     [13]There is one instance where a lookup must be done based on
  9053.     partial information.  This is during the routing table calculation,
  9054.     when a network links advertisement must be found based solely on its
  9055.     Link State ID.  The lookup in this case is still well defined, since
  9056.     no two network links advertisements can have the same Link State ID.
  9057.  
  9058.     [14]This clause covers the case: Inter-area routes are not
  9059.     summarized to the backbone.  This is because inter-area routes are
  9060.     always associated with the backbone area.
  9061.  
  9062.     [15]This clause is only invoked when Area A is a Transit area
  9063.     supporting one or more virtual links. For example, in the area
  9064.     configuration of Figure 6, Router RT11 need only originate a single
  9065.     summary link having the (collapsed) destination N9-N11,H1 into its
  9066.     connected Transit area Area 2, since all of its other eligible
  9067.     routes have next hops belonging to Area 2 (and as such only need be
  9068.     advertised by other area border routers; in this case, Routers RT10
  9069.  
  9070.  
  9071.  
  9072. Moy                                                           [Page 162]
  9073.  
  9074. RFC 1583                     OSPF Version 2                   March 1994
  9075.  
  9076.  
  9077.     and RT7).
  9078.  
  9079.     [16]By keeping more information in the routing table, it is possible
  9080.     for an implementation to recalculate the shortest path tree only for
  9081.     a single area.  In fact, there are incremental algorithms that allow
  9082.     an implementation to recalculate only a portion of a single area's
  9083.     shortest path tree [BBN].  However, these algorithms are beyond the
  9084.     scope of this specification.
  9085.  
  9086.     [17]This is how the Link state request list is emptied, which
  9087.     eventually causes the neighbor state to transition to Full.  See
  9088.     Section 10.9 for more details.
  9089.  
  9090.     [18]It should be a relatively rare occurrence for an advertisement's
  9091.     LS age to reach MaxAge in this fashion.  Usually, the advertisement
  9092.     will be replaced by a more recent instance before it ages out.
  9093.  
  9094.     [19]Only the TOS 0 routes are important here because all OSPF
  9095.     protocol packets are sent with TOS = 0.  See Appendix A.
  9096.  
  9097.     [20]It may be the case that paths to certain destinations do not
  9098.     vary based on TOS.  For these destinations, the routing calculation
  9099.     need not be repeated for each TOS value.  In addition, there need
  9100.     only be a single routing table entry for these destinations (instead
  9101.     of a separate entry for each TOS value).
  9102.  
  9103.     [21]Strictly speaking, because of equal-cost multipath, the
  9104.     algorithm does not create a tree.  We continue to use the "tree"
  9105.     terminology because that is what occurs most often in the existing
  9106.     literature.
  9107.  
  9108.     [22]Note that the presence of any link back to V is sufficient; it
  9109.     need not be the matching half of the link under consideration from V
  9110.     to W. This is enough to ensure that, before data traffic flows
  9111.     between a pair of neighboring routers, their link state databases
  9112.     will be synchronized.
  9113.  
  9114.     [23]When the forwarding address is non-zero, it should point to a
  9115.     router belonging to another Autonomous System.  See Section 12.4.5
  9116.     for more details.
  9117.  
  9118.  
  9119.  
  9120.  
  9121.  
  9122.  
  9123.  
  9124.  
  9125.  
  9126.  
  9127.  
  9128. Moy                                                           [Page 163]
  9129.  
  9130. RFC 1583                     OSPF Version 2                   March 1994
  9131.  
  9132.  
  9133. References
  9134.  
  9135.     [BBN]           McQuillan, J., I. Richer and E. Rosen, "ARPANET
  9136.                     Routing Algorithm Improvements", BBN Technical
  9137.                     Report 3803, April 1978.
  9138.  
  9139.     [DEC]           Digital Equipment Corporation, "Information
  9140.                     processing systems -- Data communications --
  9141.                     Intermediate System to Intermediate System Intra-
  9142.                     Domain Routing Protocol", October 1987.
  9143.  
  9144.     [McQuillan]     McQuillan, J. et.al., "The New Routing Algorithm for
  9145.                     the Arpanet", IEEE Transactions on Communications,
  9146.                     May 1980.
  9147.  
  9148.     [Perlman]       Perlman, R., "Fault-Tolerant Broadcast of Routing
  9149.                     Information", Computer Networks, December 1983.
  9150.  
  9151.     [RFC 791]       Postel, J., "Internet Protocol", STD 5, RFC 791,
  9152.                     USC/Information Sciences Institute, September 1981.
  9153.  
  9154.     [RFC 905]       McKenzie, A., "ISO Transport Protocol specification
  9155.                     ISO DP 8073", RFC 905, ISO, April 1984.
  9156.  
  9157.     [RFC 1112]      Deering, S., "Host extensions for IP multicasting",
  9158.                     STD 5, RFC 1112, Stanford University, May 1988.
  9159.  
  9160.     [RFC 1213]      McCloghrie, K., and M. Rose, "Management Information
  9161.                     Base for network management of TCP/IP-based
  9162.                     internets: MIB-II", STD 17, RFC 1213, Hughes LAN
  9163.                     Systems, Performance Systems International, March
  9164.                     1991.
  9165.  
  9166.     [RFC 1247]      Moy, J., "OSPF Version 2", RFC 1247, Proteon, Inc.,
  9167.                     July 1991.
  9168.  
  9169.     [RFC 1519]      Fuller, V., T. Li, J. Yu, and K. Varadhan,
  9170.                     "Classless Inter-Domain Routing (CIDR): an Address
  9171.                     Assignment and Aggregation Strategy", RFC1519,
  9172.                     BARRNet, cisco, MERIT, OARnet, September 1993.
  9173.  
  9174.     [RFC 1340]      Reynolds, J., and J. Postel, "Assigned Numbers", STD
  9175.                     2, RFC 1340, USC/Information Sciences Institute,
  9176.                     July 1992.
  9177.  
  9178.     [RFC 1349]      Almquist, P., "Type of Service in the Internet
  9179.                     Protocol Suite", RFC 1349, July 1992.
  9180.  
  9181.  
  9182.  
  9183.  
  9184. Moy                                                           [Page 164]
  9185.  
  9186. RFC 1583                     OSPF Version 2                   March 1994
  9187.  
  9188.  
  9189.     [RS-85-153]     Leiner, B., et.al., "The DARPA Internet Protocol
  9190.                     Suite", DDN Protocol Handbook, April 1985.
  9191.  
  9192.  
  9193.  
  9194.  
  9195.  
  9196.  
  9197.  
  9198.  
  9199.  
  9200.  
  9201.  
  9202.  
  9203.  
  9204.  
  9205.  
  9206.  
  9207.  
  9208.  
  9209.  
  9210.  
  9211.  
  9212.  
  9213.  
  9214.  
  9215.  
  9216.  
  9217.  
  9218.  
  9219.  
  9220.  
  9221.  
  9222.  
  9223.  
  9224.  
  9225.  
  9226.  
  9227.  
  9228.  
  9229.  
  9230.  
  9231.  
  9232.  
  9233.  
  9234.  
  9235.  
  9236.  
  9237.  
  9238.  
  9239.  
  9240. Moy                                                           [Page 165]
  9241.  
  9242. RFC 1583                     OSPF Version 2                   March 1994
  9243.  
  9244.  
  9245. A. OSPF data formats
  9246.  
  9247.     This appendix describes the format of OSPF protocol packets and OSPF
  9248.     link state advertisements.  The OSPF protocol runs directly over the
  9249.     IP network layer.  Before any data formats are described, the
  9250.     details of the OSPF encapsulation are explained.
  9251.  
  9252.     Next the OSPF Options field is described.  This field describes
  9253.     various capabilities that may or may not be supported by pieces of
  9254.     the OSPF routing domain. The OSPF Options field is contained in OSPF
  9255.     Hello packets, Database Description packets and in OSPF link state
  9256.     advertisements.
  9257.  
  9258.     OSPF packet formats are detailed in Section A.3.  A description of
  9259.     OSPF link state advertisements appears in Section A.4.
  9260.  
  9261. A.1 Encapsulation of OSPF packets
  9262.  
  9263.     OSPF runs directly over the Internet Protocol's network layer.  OSPF
  9264.     packets are therefore encapsulated solely by IP and local data-link
  9265.     headers.
  9266.  
  9267.     OSPF does not define a way to fragment its protocol packets, and
  9268.     depends on IP fragmentation when transmitting packets larger than
  9269.     the network MTU.  The OSPF packet types that are likely to be large
  9270.     (Database Description Packets, Link State Request, Link State
  9271.     Update, and Link State Acknowledgment packets) can usually be split
  9272.     into several separate protocol packets, without loss of
  9273.     functionality.  This is recommended; IP fragmentation should be
  9274.     avoided whenever possible.  Using this reasoning, an attempt should
  9275.     be made to limit the sizes of packets sent over virtual links to 576
  9276.     bytes.  However, if necessary, the length of OSPF packets can be up
  9277.     to 65,535 bytes (including the IP header).
  9278.  
  9279.     The other important features of OSPF's IP encapsulation are:
  9280.  
  9281.     o   Use of IP multicast.  Some OSPF messages are multicast, when
  9282.         sent over multi-access networks.  Two distinct IP multicast
  9283.         addresses are used.  Packets sent to these multicast addresses
  9284.         should never be forwarded; they are meant to travel a single hop
  9285.         only.  To ensure that these packets will not travel multiple
  9286.         hops, their IP TTL must be set to 1.
  9287.  
  9288.         AllSPFRouters
  9289.             This multicast address has been assigned the value
  9290.             224.0.0.5.  All routers running OSPF should be prepared to
  9291.             receive packets sent to this address.  Hello packets are
  9292.             always sent to this destination.  Also, certain OSPF
  9293.  
  9294.  
  9295.  
  9296. Moy                                                           [Page 166]
  9297.  
  9298. RFC 1583                     OSPF Version 2                   March 1994
  9299.  
  9300.  
  9301.             protocol packets are sent to this address during the
  9302.             flooding procedure.
  9303.  
  9304.         AllDRouters
  9305.             This multicast address has been assigned the value
  9306.             224.0.0.6.  Both the Designated Router and Backup Designated
  9307.             Router must be prepared to receive packets destined to this
  9308.             address.  Certain OSPF protocol packets are sent to this
  9309.             address during the flooding procedure.
  9310.  
  9311.     o   OSPF is IP protocol number 89.  This number has been registered
  9312.         with the Network Information Center.  IP protocol number
  9313.         assignments are documented in [RFC 1340].
  9314.  
  9315.     o   Routing protocol packets are sent with IP TOS of 0.  The OSPF
  9316.         protocol supports TOS-based routing.  Routes to any particular
  9317.         destination may vary based on TOS.  However, all OSPF routing
  9318.         protocol packets are sent using the normal service TOS value of
  9319.         binary 0000 defined in [RFC 1349].
  9320.  
  9321.     o   Routing protocol packets are sent with IP precedence set to
  9322.         Internetwork Control.  OSPF protocol packets should be given
  9323.         precedence over regular IP data traffic, in both sending and
  9324.         receiving.  Setting the IP precedence field in the IP header to
  9325.         Internetwork Control [RFC 791] may help implement this
  9326.         objective.
  9327.  
  9328.  
  9329.  
  9330.  
  9331.  
  9332.  
  9333.  
  9334.  
  9335.  
  9336.  
  9337.  
  9338.  
  9339.  
  9340.  
  9341.  
  9342.  
  9343.  
  9344.  
  9345.  
  9346.  
  9347.  
  9348.  
  9349.  
  9350.  
  9351.  
  9352. Moy                                                           [Page 167]
  9353.  
  9354. RFC 1583                     OSPF Version 2                   March 1994
  9355.  
  9356.  
  9357. A.2 The Options field
  9358.  
  9359.     The OSPF Options field is present in OSPF Hello packets, Database
  9360.     Description packets and all link state advertisements.  The Options
  9361.     field enables OSPF routers to support (or not support) optional
  9362.     capabilities, and to communicate their capability level to other
  9363.     OSPF routers.  Through this mechanism routers of differing
  9364.     capabilities can be mixed within an OSPF routing domain.
  9365.  
  9366.     When used in Hello packets, the Options field allows a router to
  9367.     reject a neighbor because of a capability mismatch.  Alternatively,
  9368.     when capabilities are exchanged in Database Description packets a
  9369.     router can choose not to forward certain link state advertisements
  9370.     to a neighbor because of its reduced functionality.  Lastly, listing
  9371.     capabilities in link state advertisements allows routers to route
  9372.     traffic around reduced functionality routers, by excluding them from
  9373.     parts of the routing table calculation.
  9374.  
  9375.     Two capabilities are currently defined.  For each capability, the
  9376.     effect of the capability's appearance (or lack of appearance) in
  9377.     Hello packets, Database Description packets and link state
  9378.     advertisements is specified below.  For example, the
  9379.     ExternalRoutingCapability (below called the E-bit) has meaning only
  9380.     in OSPF Hello Packets.  Routers should reset (i.e.  clear) the
  9381.     unassigned part of the capability field when sending Hello packets
  9382.     or Database Description packets and when originating link state
  9383.     advertisements.
  9384.  
  9385.     Additional capabilities may be assigned in the future.  Routers
  9386.     encountering unrecognized capabilities in received Hello Packets,
  9387.     Database Description packets or link state advertisements should
  9388.     ignore the capability and process the packet/advertisement normally.
  9389.  
  9390.                                +-+-+-+-+-+-+-+-+
  9391.                                | | | | | | |E|T|
  9392.                                +-+-+-+-+-+-+-+-+
  9393.  
  9394.                              The Options field
  9395.  
  9396.  
  9397.     T-bit
  9398.         This describes the router's TOS capability.  If the T-bit is
  9399.         reset, then the router supports only a single TOS (TOS 0).  Such
  9400.         a router is also said to be incapable of TOS-routing, and
  9401.         elsewhere in this document referred to as a TOS-0-only router.
  9402.         The absence of the T-bit in a router links advertisement causes
  9403.         the router to be skipped when building a non-zero TOS shortest-
  9404.         path tree (see Section 16.9).  In other words, routers incapable
  9405.  
  9406.  
  9407.  
  9408. Moy                                                           [Page 168]
  9409.  
  9410. RFC 1583                     OSPF Version 2                   March 1994
  9411.  
  9412.  
  9413.         of TOS routing will be avoided as much as possible when
  9414.         forwarding data traffic requesting a non-zero TOS.  The absence
  9415.         of the T-bit in a summary link advertisement or an AS external
  9416.         link advertisement indicates that the advertisement is
  9417.         describing a TOS 0 route only (and not routes for non-zero TOS).
  9418.  
  9419.     E-bit
  9420.         This bit reflects the associated area's
  9421.         ExternalRoutingCapability.  AS external link advertisements are
  9422.         not flooded into/through OSPF stub areas (see Section 3.6).  The
  9423.         E-bit ensures that all members of a stub area agree on that
  9424.         area's configuration.  The E-bit is meaningful only in OSPF
  9425.         Hello packets.  When the E-bit is reset in the Hello packet sent
  9426.         out a particular interface, it means that the router will
  9427.         neither send nor receive AS external link state advertisements
  9428.         on that interface (in other words, the interface connects to a
  9429.         stub area).  Two routers will not become neighbors unless they
  9430.         agree on the state of the E-bit.
  9431.  
  9432.  
  9433.  
  9434.  
  9435.  
  9436.  
  9437.  
  9438.  
  9439.  
  9440.  
  9441.  
  9442.  
  9443.  
  9444.  
  9445.  
  9446.  
  9447.  
  9448.  
  9449.  
  9450.  
  9451.  
  9452.  
  9453.  
  9454.  
  9455.  
  9456.  
  9457.  
  9458.  
  9459.  
  9460.  
  9461.  
  9462.  
  9463.  
  9464. Moy                                                           [Page 169]
  9465.  
  9466. RFC 1583                     OSPF Version 2                   March 1994
  9467.  
  9468.  
  9469. A.3 OSPF Packet Formats
  9470.  
  9471.     There are five distinct OSPF packet types.  All OSPF packet types
  9472.     begin with a standard 24 byte header.  This header is described
  9473.     first.  Each packet type is then described in a succeeding section.
  9474.     In these sections each packet's division into fields is displayed,
  9475.     and then the field definitions are enumerated.
  9476.  
  9477.     All OSPF packet types (other than the OSPF Hello packets) deal with
  9478.     lists of link state advertisements.  For example, Link State Update
  9479.     packets implement the flooding of advertisements throughout the OSPF
  9480.     routing domain.  Because of this, OSPF protocol packets cannot be
  9481.     parsed unless the format of link state advertisements is also
  9482.     understood.  The format of Link state advertisements is described in
  9483.     Section A.4.
  9484.  
  9485.     The receive processing of OSPF packets is detailed in Section 8.2.
  9486.     The sending of OSPF packets is explained in Section 8.1.
  9487.  
  9488.  
  9489.  
  9490.  
  9491.  
  9492.  
  9493.  
  9494.  
  9495.  
  9496.  
  9497.  
  9498.  
  9499.  
  9500.  
  9501.  
  9502.  
  9503.  
  9504.  
  9505.  
  9506.  
  9507.  
  9508.  
  9509.  
  9510.  
  9511.  
  9512.  
  9513.  
  9514.  
  9515.  
  9516.  
  9517.  
  9518.  
  9519.  
  9520. Moy                                                           [Page 170]
  9521.  
  9522. RFC 1583                     OSPF Version 2                   March 1994
  9523.  
  9524.  
  9525. A.3.1 The OSPF packet header
  9526.  
  9527.     Every OSPF packet starts with a common 24 byte header.  This header
  9528.     contains all the necessary information to determine whether the
  9529.     packet should be accepted for further processing.  This
  9530.     determination is described in Section 8.2 of the specification.
  9531.  
  9532.  
  9533.         0                   1                   2                   3
  9534.         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
  9535.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9536.        |   Version #   |     Type      |         Packet length         |
  9537.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9538.        |                          Router ID                            |
  9539.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9540.        |                           Area ID                             |
  9541.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9542.        |           Checksum            |             AuType            |
  9543.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9544.        |                       Authentication                          |
  9545.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9546.        |                       Authentication                          |
  9547.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9548.  
  9549.  
  9550.  
  9551.     Version #
  9552.         The OSPF version number.  This specification documents version 2
  9553.         of the protocol.
  9554.  
  9555.     Type
  9556.         The OSPF packet types are as follows.  The format of each of
  9557.         these packet types is described in a succeeding section.
  9558.  
  9559.  
  9560.  
  9561.                           Type   Description
  9562.                           ________________________________
  9563.                           1      Hello
  9564.                           2      Database Description
  9565.                           3      Link State Request
  9566.                           4      Link State Update
  9567.                           5      Link State Acknowledgment
  9568.  
  9569.  
  9570.  
  9571.  
  9572.  
  9573.  
  9574.  
  9575.  
  9576. Moy                                                           [Page 171]
  9577.  
  9578. RFC 1583                     OSPF Version 2                   March 1994
  9579.  
  9580.  
  9581.     Packet length
  9582.         The length of the protocol packet in bytes.  This length
  9583.         includes the standard OSPF header.
  9584.  
  9585.     Router ID
  9586.         The Router ID of the packet's source.  In OSPF, the source and
  9587.         destination of a routing protocol packet are the two ends of an
  9588.         (potential) adjacency.
  9589.  
  9590.     Area ID
  9591.         A 32 bit number identifying the area that this packet belongs
  9592.         to.  All OSPF packets are associated with a single area.  Most
  9593.         travel a single hop only.  Packets travelling over a virtual
  9594.         link are labelled with the backbone Area ID of 0.0.0.0.
  9595.  
  9596.     Checksum
  9597.         The standard IP checksum of the entire contents of the packet,
  9598.         starting with the OSPF packet header but excluding the 64-bit
  9599.         authentication field.  This checksum is calculated as the 16-bit
  9600.         one's complement of the one's complement sum of all the 16-bit
  9601.         words in the packet, excepting the authentication field.  If the
  9602.         packet's length is not an integral number of 16-bit words, the
  9603.         packet is padded with a byte of zero before checksumming.
  9604.  
  9605.     AuType
  9606.         Identifies the authentication scheme to be used for the packet.
  9607.         Authentication is discussed in Appendix D of the specification.
  9608.         Consult Appendix D for a list of the currently defined
  9609.         authentication types.
  9610.  
  9611.     Authentication
  9612.         A 64-bit field for use by the authentication scheme.
  9613.  
  9614.  
  9615.  
  9616.  
  9617.  
  9618.  
  9619.  
  9620.  
  9621.  
  9622.  
  9623.  
  9624.  
  9625.  
  9626.  
  9627.  
  9628.  
  9629.  
  9630.  
  9631.  
  9632. Moy                                                           [Page 172]
  9633.  
  9634. RFC 1583                     OSPF Version 2                   March 1994
  9635.  
  9636.  
  9637. A.3.2 The Hello packet
  9638.  
  9639.     Hello packets are OSPF packet type 1.  These packets are sent
  9640.     periodically on all interfaces (including virtual links) in order to
  9641.     establish and maintain neighbor relationships.  In addition, Hello
  9642.     Packets are multicast on those physical networks having a multicast
  9643.     or broadcast capability, enabling dynamic discovery of neighboring
  9644.     routers.
  9645.  
  9646.     All routers connected to a common network must agree on certain
  9647.     parameters (Network mask, HelloInterval and RouterDeadInterval).
  9648.     These parameters are included in Hello packets, so that differences
  9649.     can inhibit the forming of neighbor relationships.  A detailed
  9650.     explanation of the receive processing for Hello packets is presented
  9651.     in Section 10.5.  The sending of Hello packets is covered in Section
  9652.     9.5.
  9653.  
  9654.  
  9655.         0                   1                   2                   3
  9656.         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
  9657.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9658.        |   Version #   |       1       |         Packet length         |
  9659.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9660.        |                          Router ID                            |
  9661.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9662.        |                           Area ID                             |
  9663.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9664.        |           Checksum            |             AuType            |
  9665.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9666.        |                       Authentication                          |
  9667.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9668.        |                       Authentication                          |
  9669.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9670.        |                        Network Mask                           |
  9671.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9672.        |         HelloInterval         |    Options    |    Rtr Pri    |
  9673.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9674.        |                     RouterDeadInterval                        |
  9675.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9676.        |                      Designated Router                        |
  9677.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9678.        |                   Backup Designated Router                    |
  9679.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9680.        |                          Neighbor                             |
  9681.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9682.        |                              ...                              |
  9683.  
  9684.  
  9685.  
  9686.  
  9687.  
  9688. Moy                                                           [Page 173]
  9689.  
  9690. RFC 1583                     OSPF Version 2                   March 1994
  9691.  
  9692.  
  9693.     Network mask
  9694.         The network mask associated with this interface.  For example,
  9695.         if the interface is to a class B network whose third byte is
  9696.         used for subnetting, the network mask is 0xffffff00.
  9697.  
  9698.     Options
  9699.         The optional capabilities supported by the router, as documented
  9700.         in Section A.2.
  9701.  
  9702.     HelloInterval
  9703.         The number of seconds between this router's Hello packets.
  9704.  
  9705.     Rtr Pri
  9706.         This router's Router Priority.  Used in (Backup) Designated
  9707.         Router election.  If set to 0, the router will be ineligible to
  9708.         become (Backup) Designated Router.
  9709.  
  9710.     RouterDeadInterval
  9711.         The number of seconds before declaring a silent router down.
  9712.  
  9713.     Designated Router
  9714.         The identity of the Designated Router for this network, in the
  9715.         view of the advertising router.  The Designated Router is
  9716.         identified here by its IP interface address on the network.  Set
  9717.         to 0.0.0.0 if there is no Designated Router.
  9718.  
  9719.     Backup Designated Router
  9720.         The identity of the Backup Designated Router for this network,
  9721.         in the view of the advertising router.  The Backup Designated
  9722.         Router is identified here by its IP interface address on the
  9723.         network.  Set to 0.0.0.0 if there is no Backup Designated
  9724.         Router.
  9725.  
  9726.     Neighbor
  9727.         The Router IDs of each router from whom valid Hello packets have
  9728.         been seen recently on the network.  Recently means in the last
  9729.         RouterDeadInterval seconds.
  9730.  
  9731.  
  9732.  
  9733.  
  9734.  
  9735.  
  9736.  
  9737.  
  9738.  
  9739.  
  9740.  
  9741.  
  9742.  
  9743.  
  9744. Moy                                                           [Page 174]
  9745.  
  9746. RFC 1583                     OSPF Version 2                   March 1994
  9747.  
  9748.  
  9749. A.3.3 The Database Description packet
  9750.  
  9751.     Database Description packets are OSPF packet type 2.  These packets
  9752.     are exchanged when an adjacency is being initialized.  They describe
  9753.     the contents of the topological database.  Multiple packets may be
  9754.     used to describe the database.  For this purpose a poll-response
  9755.     procedure is used.  One of the routers is designated to be master,
  9756.     the other a slave.  The master sends Database Description packets
  9757.     (polls) which are acknowledged by Database Description packets sent
  9758.     by the slave (responses).  The responses are linked to the polls via
  9759.     the packets' DD sequence numbers.
  9760.  
  9761.  
  9762.         0                   1                   2                   3
  9763.         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
  9764.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9765.        |   Version #   |       2       |         Packet length         |
  9766.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9767.        |                          Router ID                            |
  9768.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9769.        |                           Area ID                             |
  9770.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9771.        |           Checksum            |             AuType            |
  9772.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9773.        |                       Authentication                          |
  9774.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9775.        |                       Authentication                          |
  9776.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9777.        |       0       |       0       |    Options    |0|0|0|0|0|I|M|MS
  9778.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9779.        |                     DD sequence number                        |
  9780.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9781.        |                                                               |
  9782.        +-                                                             -+
  9783.        |                             A                                 |
  9784.        +-                 Link State Advertisement                    -+
  9785.        |                           Header                              |
  9786.        +-                                                             -+
  9787.        |                                                               |
  9788.        +-                                                             -+
  9789.        |                                                               |
  9790.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9791.        |                              ...                              |
  9792.  
  9793.  
  9794.     The format of the Database Description packet is very similar to
  9795.     both the Link State Request and Link State Acknowledgment packets.
  9796.     The main part of all three is a list of items, each item describing
  9797.  
  9798.  
  9799.  
  9800. Moy                                                           [Page 175]
  9801.  
  9802. RFC 1583                     OSPF Version 2                   March 1994
  9803.  
  9804.  
  9805.     a piece of the topological database.  The sending of Database
  9806.     Description Packets is documented in Section 10.8.  The reception of
  9807.     Database Description packets is documented in Section 10.6.
  9808.  
  9809.     0   These fields are reserved.  They must be 0.
  9810.  
  9811.     Options
  9812.         The optional capabilities supported by the router, as documented
  9813.         in Section A.2.
  9814.  
  9815.     I-bit
  9816.         The Init bit.  When set to 1, this packet is the first in the
  9817.         sequence of Database Description Packets.
  9818.  
  9819.     M-bit
  9820.         The More bit.  When set to 1, it indicates that more Database
  9821.         Description Packets are to follow.
  9822.  
  9823.     MS-bit
  9824.         The Master/Slave bit.  When set to 1, it indicates that the
  9825.         router is the master during the Database Exchange process.
  9826.         Otherwise, the router is the slave.
  9827.  
  9828.     DD sequence number
  9829.         Used to sequence the collection of Database Description Packets.
  9830.         The initial value (indicated by the Init bit being set) should
  9831.         be unique.  The DD sequence number then increments until the
  9832.         complete database description has been sent.
  9833.  
  9834.  
  9835.     The rest of the packet consists of a (possibly partial) list of the
  9836.     topological database's pieces.  Each link state advertisement in the
  9837.     database is described by its link state advertisement header.  The
  9838.     link state advertisement header is documented in Section A.4.1.  It
  9839.     contains all the information required to uniquely identify both the
  9840.     advertisement and the advertisement's current instance.
  9841.  
  9842.  
  9843.  
  9844.  
  9845.  
  9846.  
  9847.  
  9848.  
  9849.  
  9850.  
  9851.  
  9852.  
  9853.  
  9854.  
  9855.  
  9856. Moy                                                           [Page 176]
  9857.  
  9858. RFC 1583                     OSPF Version 2                   March 1994
  9859.  
  9860.  
  9861. A.3.4 The Link State Request packet
  9862.  
  9863.     Link State Request packets are OSPF packet type 3.  After exchanging
  9864.     Database Description packets with a neighboring router, a router may
  9865.     find that parts of its topological database are out of date.  The
  9866.     Link State Request packet is used to request the pieces of the
  9867.     neighbor's database that are more up to date.  Multiple Link State
  9868.     Request packets may need to be used.  The sending of Link State
  9869.     Request packets is the last step in bringing up an adjacency.
  9870.  
  9871.     A router that sends a Link State Request packet has in mind the
  9872.     precise instance of the database pieces it is requesting, defined by
  9873.     LS sequence number, LS checksum, and LS age, although these fields
  9874.     are not specified in the Link State Request Packet itself.  The
  9875.     router may receive even more recent instances in response.
  9876.  
  9877.     The sending of Link State Request packets is documented in Section
  9878.     10.9.  The reception of Link State Request packets is documented in
  9879.     Section 10.7.
  9880.  
  9881.  
  9882.         0                   1                   2                   3
  9883.         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
  9884.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9885.        |   Version #   |       3       |         Packet length         |
  9886.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9887.        |                          Router ID                            |
  9888.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9889.        |                           Area ID                             |
  9890.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9891.        |           Checksum            |             AuType            |
  9892.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9893.        |                       Authentication                          |
  9894.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9895.        |                       Authentication                          |
  9896.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9897.        |                          LS type                              |
  9898.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9899.        |                       Link State ID                           |
  9900.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9901.        |                     Advertising Router                        |
  9902.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9903.        |                              ...                              |
  9904.  
  9905.  
  9906.     Each advertisement requested is specified by its LS type, Link State
  9907.     ID, and Advertising Router.  This uniquely identifies the
  9908.     advertisement, but not its instance.  Link State Request packets are
  9909.  
  9910.  
  9911.  
  9912. Moy                                                           [Page 177]
  9913.  
  9914. RFC 1583                     OSPF Version 2                   March 1994
  9915.  
  9916.  
  9917.     understood to be requests for the most recent instance (whatever
  9918.     that might be).
  9919.  
  9920.  
  9921.  
  9922.  
  9923.  
  9924.  
  9925.  
  9926.  
  9927.  
  9928.  
  9929.  
  9930.  
  9931.  
  9932.  
  9933.  
  9934.  
  9935.  
  9936.  
  9937.  
  9938.  
  9939.  
  9940.  
  9941.  
  9942.  
  9943.  
  9944.  
  9945.  
  9946.  
  9947.  
  9948.  
  9949.  
  9950.  
  9951.  
  9952.  
  9953.  
  9954.  
  9955.  
  9956.  
  9957.  
  9958.  
  9959.  
  9960.  
  9961.  
  9962.  
  9963.  
  9964.  
  9965.  
  9966.  
  9967.  
  9968. Moy                                                           [Page 178]
  9969.  
  9970. RFC 1583                     OSPF Version 2                   March 1994
  9971.  
  9972.  
  9973. A.3.5 The Link State Update packet
  9974.  
  9975.     Link State Update packets are OSPF packet type 4.  These packets
  9976.     implement the flooding of link state advertisements.  Each Link
  9977.     State Update packet carries a collection of link state
  9978.     advertisements one hop further from its origin.  Several link state
  9979.     advertisements may be included in a single packet.
  9980.  
  9981.     Link State Update packets are multicast on those physical networks
  9982.     that support multicast/broadcast.  In order to make the flooding
  9983.     procedure reliable, flooded advertisements are acknowledged in Link
  9984.     State Acknowledgment packets.  If retransmission of certain
  9985.     advertisements is necessary, the retransmitted advertisements are
  9986.     always carried by unicast Link State Update packets.  For more
  9987.     information on the reliable flooding of link state advertisements,
  9988.     consult Section 13.
  9989.  
  9990.  
  9991.         0                   1                   2                   3
  9992.         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
  9993.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9994.        |   Version #   |       4       |         Packet length         |
  9995.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9996.        |                          Router ID                            |
  9997.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  9998.        |                           Area ID                             |
  9999.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10000.        |           Checksum            |             AuType            |
  10001.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10002.        |                       Authentication                          |
  10003.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10004.        |                       Authentication                          |
  10005.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10006.        |                      # advertisements                         |
  10007.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10008.        |                                                               |
  10009.        +-                                                            +-+
  10010.        |                  Link state advertisements                    |
  10011.        +-                                                            +-+
  10012.        |                              ...                              |
  10013.  
  10014.  
  10015.  
  10016.     # advertisements
  10017.         The number of link state advertisements included in this update.
  10018.  
  10019.  
  10020.  
  10021.  
  10022.  
  10023.  
  10024. Moy                                                           [Page 179]
  10025.  
  10026. RFC 1583                     OSPF Version 2                   March 1994
  10027.  
  10028.  
  10029.     The body of the Link State Update packet consists of a list of link
  10030.     state advertisements.  Each advertisement begins with a common 20
  10031.     byte header, the link state advertisement header.  This header is
  10032.     described in Section A.4.1.  Otherwise, the format of each of the
  10033.     five types of link state advertisements is different.  Their formats
  10034.     are described in Section A.4.
  10035.  
  10036.  
  10037.  
  10038.  
  10039.  
  10040.  
  10041.  
  10042.  
  10043.  
  10044.  
  10045.  
  10046.  
  10047.  
  10048.  
  10049.  
  10050.  
  10051.  
  10052.  
  10053.  
  10054.  
  10055.  
  10056.  
  10057.  
  10058.  
  10059.  
  10060.  
  10061.  
  10062.  
  10063.  
  10064.  
  10065.  
  10066.  
  10067.  
  10068.  
  10069.  
  10070.  
  10071.  
  10072.  
  10073.  
  10074.  
  10075.  
  10076.  
  10077.  
  10078.  
  10079.  
  10080. Moy                                                           [Page 180]
  10081.  
  10082. RFC 1583                     OSPF Version 2                   March 1994
  10083.  
  10084.  
  10085. A.3.6 The Link State Acknowledgment packet
  10086.  
  10087.     Link State Acknowledgment Packets are OSPF packet type 5.  To make
  10088.     the flooding of link state advertisements reliable, flooded
  10089.     advertisements are explicitly acknowledged.  This acknowledgment is
  10090.     accomplished through the sending and receiving of Link State
  10091.     Acknowledgment packets.  Multiple link state advertisements can be
  10092.     acknowledged in a single Link State Acknowledgment packet.
  10093.  
  10094.     Depending on the state of the sending interface and the source of
  10095.     the advertisements being acknowledged, a Link State Acknowledgment
  10096.     packet is sent either to the multicast address AllSPFRouters, to the
  10097.     multicast address AllDRouters, or as a unicast.  The sending of Link
  10098.     State Acknowledgement packets is documented in Section 13.5.  The
  10099.     reception of Link State Acknowledgement packets is documented in
  10100.     Section 13.7.
  10101.  
  10102.     The format of this packet is similar to that of the Data Description
  10103.     packet.  The body of both packets is simply a list of link state
  10104.     advertisement headers.
  10105.  
  10106.  
  10107.         0                   1                   2                   3
  10108.         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
  10109.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10110.        |   Version #   |       5       |         Packet length         |
  10111.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10112.        |                          Router ID                            |
  10113.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10114.        |                           Area ID                             |
  10115.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10116.        |           Checksum            |             AuType            |
  10117.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10118.        |                       Authentication                          |
  10119.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10120.        |                       Authentication                          |
  10121.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10122.        |                                                               |
  10123.        +-                                                             -+
  10124.        |                             A                                 |
  10125.        +-                 Link State Advertisement                    -+
  10126.        |                           Header                              |
  10127.        +-                                                             -+
  10128.        |                                                               |
  10129.        +-                                                             -+
  10130.        |                                                               |
  10131.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10132.        |                              ...                              |
  10133.  
  10134.  
  10135.  
  10136. Moy                                                           [Page 181]
  10137.  
  10138. RFC 1583                     OSPF Version 2                   March 1994
  10139.  
  10140.  
  10141.     Each acknowledged link state advertisement is described by its link
  10142.     state advertisement header.  The link state advertisement header is
  10143.     documented in Section A.4.1.  It contains all the information
  10144.     required to uniquely identify both the advertisement and the
  10145.     advertisement's current instance.
  10146.  
  10147.  
  10148.  
  10149.  
  10150.  
  10151.  
  10152.  
  10153.  
  10154.  
  10155.  
  10156.  
  10157.  
  10158.  
  10159.  
  10160.  
  10161.  
  10162.  
  10163.  
  10164.  
  10165.  
  10166.  
  10167.  
  10168.  
  10169.  
  10170.  
  10171.  
  10172.  
  10173.  
  10174.  
  10175.  
  10176.  
  10177.  
  10178.  
  10179.  
  10180.  
  10181.  
  10182.  
  10183.  
  10184.  
  10185.  
  10186.  
  10187.  
  10188.  
  10189.  
  10190.  
  10191.  
  10192. Moy                                                           [Page 182]
  10193.  
  10194. RFC 1583                     OSPF Version 2                   March 1994
  10195.  
  10196.  
  10197. A.4 Link state advertisement formats
  10198.  
  10199.     There are five distinct types of link state advertisements.  Each
  10200.     link state advertisement begins with a standard 20-byte link state
  10201.     advertisement header.  This header is explained in Section A.4.1.
  10202.     Succeeding sections then diagram the separate link state
  10203.     advertisement types.
  10204.  
  10205.     Each link state advertisement describes a piece of the OSPF routing
  10206.     domain.  Every router originates a router links advertisement.  In
  10207.     addition, whenever the router is elected Designated Router, it
  10208.     originates a network links advertisement.  Other types of link state
  10209.     advertisements may also be originated (see Section 12.4).  All link
  10210.     state advertisements are then flooded throughout the OSPF routing
  10211.     domain.  The flooding algorithm is reliable, ensuring that all
  10212.     routers have the same collection of link state advertisements.  (See
  10213.     Section 13 for more information concerning the flooding algorithm).
  10214.     This collection of advertisements is called the link state (or
  10215.     topological) database.
  10216.  
  10217.     From the link state database, each router constructs a shortest path
  10218.     tree with itself as root.  This yields a routing table (see Section
  10219.     11).  For the details of the routing table build process, see
  10220.     Section 16.
  10221.  
  10222.  
  10223.  
  10224.  
  10225.  
  10226.  
  10227.  
  10228.  
  10229.  
  10230.  
  10231.  
  10232.  
  10233.  
  10234.  
  10235.  
  10236.  
  10237.  
  10238.  
  10239.  
  10240.  
  10241.  
  10242.  
  10243.  
  10244.  
  10245.  
  10246.  
  10247.  
  10248. Moy                                                           [Page 183]
  10249.  
  10250. RFC 1583                     OSPF Version 2                   March 1994
  10251.  
  10252.  
  10253. A.4.1 The Link State Advertisement header
  10254.  
  10255.     All link state advertisements begin with a common 20 byte header.
  10256.     This header contains enough information to uniquely identify the
  10257.     advertisement (LS type, Link State ID, and Advertising Router).
  10258.     Multiple instances of the link state advertisement may exist in the
  10259.     routing domain at the same time.  It is then necessary to determine
  10260.     which instance is more recent.  This is accomplished by examining
  10261.     the LS age, LS sequence number and LS checksum fields that are also
  10262.     contained in the link state advertisement header.
  10263.  
  10264.  
  10265.         0                   1                   2                   3
  10266.         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
  10267.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10268.        |            LS age             |    Options    |    LS type    |
  10269.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10270.        |                        Link State ID                          |
  10271.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10272.        |                     Advertising Router                        |
  10273.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10274.        |                     LS sequence number                        |
  10275.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10276.        |         LS checksum           |             length            |
  10277.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10278.  
  10279.  
  10280.  
  10281.     LS age
  10282.         The time in seconds since the link state advertisement was
  10283.         originated.
  10284.  
  10285.     Options
  10286.         The optional capabilities supported by the described portion of
  10287.         the routing domain.  OSPF's optional capabilities are documented
  10288.         in Section A.2.
  10289.  
  10290.     LS type
  10291.         The type of the link state advertisement.  Each link state type
  10292.         has a separate advertisement format.  The link state types are
  10293.         as follows (see Section 12.1.3 for further explanation):
  10294.  
  10295.  
  10296.  
  10297.  
  10298.  
  10299.  
  10300.  
  10301.  
  10302.  
  10303.  
  10304. Moy                                                           [Page 184]
  10305.  
  10306. RFC 1583                     OSPF Version 2                   March 1994
  10307.  
  10308.  
  10309.  
  10310.                         LS Type   Description
  10311.                         ___________________________________
  10312.                         1         Router links
  10313.                         2         Network links
  10314.                         3         Summary link (IP network)
  10315.                         4         Summary link (ASBR)
  10316.                         5         AS external link
  10317.  
  10318.  
  10319.  
  10320.  
  10321.     Link State ID
  10322.         This field identifies the portion of the internet environment
  10323.         that is being described by the advertisement.  The contents of
  10324.         this field depend on the advertisement's LS type.  For example,
  10325.         in network links advertisements the Link State ID is set to the
  10326.         IP interface address of the network's Designated Router (from
  10327.         which the network's IP address can be derived).  The Link State
  10328.         ID is further discussed in Section 12.1.4.
  10329.  
  10330.     Advertising Router
  10331.         The Router ID of the router that originated the link state
  10332.         advertisement.  For example, in network links advertisements
  10333.         this field is set to the Router ID of the network's Designated
  10334.         Router.
  10335.  
  10336.     LS sequence number
  10337.         Detects old or duplicate link state advertisements.  Successive
  10338.         instances of a link state advertisement are given successive LS
  10339.         sequence numbers.  See Section 12.1.6 for more details.
  10340.  
  10341.     LS checksum
  10342.         The Fletcher checksum of the complete contents of the link state
  10343.         advertisement, including the link state advertisement header but
  10344.         excepting the LS age field. See Section 12.1.7 for more details.
  10345.  
  10346.     length
  10347.         The length in bytes of the link state advertisement.  This
  10348.         includes the 20 byte link state advertisement header.
  10349.  
  10350.  
  10351.  
  10352.  
  10353.  
  10354.  
  10355.  
  10356.  
  10357.  
  10358.  
  10359.  
  10360. Moy                                                           [Page 185]
  10361.  
  10362. RFC 1583                     OSPF Version 2                   March 1994
  10363.  
  10364.  
  10365. A.4.2 Router links advertisements
  10366.  
  10367.     Router links advertisements are the Type 1 link state
  10368.     advertisements.  Each router in an area originates a router links
  10369.     advertisement.  The advertisement describes the state and cost of
  10370.     the router's links (i.e., interfaces) to the area.  All of the
  10371.     router's links to the area must be described in a single router
  10372.     links advertisement.  For details concerning the construction of
  10373.     router links advertisements, see Section 12.4.1.
  10374.  
  10375.  
  10376.         0                   1                   2                   3
  10377.         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
  10378.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10379.        |            LS age             |     Options   |       1       |
  10380.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10381.        |                        Link State ID                          |
  10382.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10383.        |                     Advertising Router                        |
  10384.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10385.        |                     LS sequence number                        |
  10386.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10387.        |         LS checksum           |             length            |
  10388.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10389.        |    0    |V|E|B|        0      |            # links            |
  10390.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10391.        |                          Link ID                              |
  10392.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10393.        |                         Link Data                             |
  10394.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10395.        |     Type      |     # TOS     |        TOS 0 metric           |
  10396.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10397.        |      TOS      |        0      |            metric             |
  10398.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10399.        |                              ...                              |
  10400.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10401.        |      TOS      |        0      |            metric             |
  10402.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10403.        |                          Link ID                              |
  10404.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10405.        |                         Link Data                             |
  10406.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10407.        |                              ...                              |
  10408.  
  10409.  
  10410.     In router links advertisements, the Link State ID field is set to
  10411.     the router's OSPF Router ID.  The T-bit is set in the
  10412.     advertisement's Option field if and only if the router is able to
  10413.  
  10414.  
  10415.  
  10416. Moy                                                           [Page 186]
  10417.  
  10418. RFC 1583                     OSPF Version 2                   March 1994
  10419.  
  10420.  
  10421.     calculate a separate set of routes for each IP TOS.  Router links
  10422.     advertisements are flooded throughout a single area only.
  10423.  
  10424.     bit V
  10425.         When set, the router is an endpoint of an active virtual link
  10426.         that is using the described area as a Transit area (V is for
  10427.         virtual link endpoint).
  10428.  
  10429.     bit E
  10430.         When set, the router is an AS boundary router (E is for
  10431.         external)
  10432.  
  10433.     bit B
  10434.         When set, the router is an area border router (B is for border)
  10435.  
  10436.     # links
  10437.         The number of router links described by this advertisement.
  10438.         This must be the total collection of router links (i.e.,
  10439.         interfaces) to the area.
  10440.  
  10441.  
  10442.     The following fields are used to describe each router link (i.e.,
  10443.     interface). Each router link is typed (see the below Type field).
  10444.     The Type field indicates the kind of link being described.  It may
  10445.     be a link to a transit network, to another router or to a stub
  10446.     network.  The values of all the other fields describing a router
  10447.     link depend on the link's Type.  For example, each link has an
  10448.     associated 32-bit data field.  For links to stub networks this field
  10449.     specifies the network's IP address mask.  For other link types the
  10450.     Link Data specifies the router's associated IP interface address.
  10451.  
  10452.  
  10453.     Type
  10454.         A quick description of the router link.  One of the following.
  10455.         Note that host routes are classified as links to stub networks
  10456.         whose network mask is 0xffffffff.
  10457.  
  10458.  
  10459.  
  10460.                  Type   Description
  10461.                  __________________________________________________
  10462.                  1      Point-to-point connection to another router
  10463.                  2      Connection to a transit network
  10464.                  3      Connection to a stub network
  10465.                  4      Virtual link
  10466.  
  10467.  
  10468.  
  10469.  
  10470.  
  10471.  
  10472. Moy                                                           [Page 187]
  10473.  
  10474. RFC 1583                     OSPF Version 2                   March 1994
  10475.  
  10476.  
  10477.     Link ID
  10478.         Identifies the object that this router link connects to.  Value
  10479.         depends on the link's Type.  When connecting to an object that
  10480.         also originates a link state advertisement (i.e., another router
  10481.         or a transit network) the Link ID is equal to the neighboring
  10482.         advertisement's Link State ID.  This provides the key for
  10483.         looking up said advertisement in the link state database.  See
  10484.         Section 12.2 for more details.
  10485.  
  10486.  
  10487.  
  10488.                        Type   Link ID
  10489.                        ______________________________________
  10490.                        1      Neighboring router's Router ID
  10491.                        2      IP address of Designated Router
  10492.                        3      IP network/subnet number
  10493.                        4      Neighboring router's Router ID
  10494.  
  10495.  
  10496.  
  10497.  
  10498.     Link Data
  10499.         Contents again depend on the link's Type field. For connections
  10500.         to stub networks, it specifies the network's IP address mask.
  10501.         For unnumbered point-to-point connections, it specifies the
  10502.         interface's MIB-II [RFC 1213] ifIndex value. For the other link
  10503.         types it specifies the router's associated IP interface address.
  10504.         This latter piece of information is needed during the routing
  10505.         table build process, when calculating the IP address of the next
  10506.         hop. See Section 16.1.1 for more details.
  10507.  
  10508.     # TOS
  10509.         The number of different TOS metrics given for this link, not
  10510.         counting the required metric for TOS 0.  For example, if no
  10511.         additional TOS metrics are given, this field should be set to 0.
  10512.  
  10513.     TOS 0 metric
  10514.         The cost of using this router link for TOS 0.
  10515.  
  10516.  
  10517.     For each link, separate metrics may be specified for each Type of
  10518.     Service (TOS).  The metric for TOS 0 must always be included, and
  10519.     was discussed above.  Metrics for non-zero TOS are described below.
  10520.     The encoding of TOS in OSPF link state advertisements is described
  10521.     in Section 12.3.  Note that the cost for non-zero TOS values that
  10522.     are not specified defaults to the TOS 0 cost.  Metrics must be
  10523.     listed in order of increasing TOS encoding.  For example, the metric
  10524.     for TOS 16 must always follow the metric for TOS 8 when both are
  10525.  
  10526.  
  10527.  
  10528. Moy                                                           [Page 188]
  10529.  
  10530. RFC 1583                     OSPF Version 2                   March 1994
  10531.  
  10532.  
  10533.     specified.
  10534.  
  10535.  
  10536.     TOS IP Type of Service that this metric refers to.  The encoding of
  10537.         TOS in OSPF link state advertisements is described in Section
  10538.         12.3.
  10539.  
  10540.     metric
  10541.         The cost of using this outbound router link, for traffic of the
  10542.         specified TOS.
  10543.  
  10544.  
  10545.  
  10546.  
  10547.  
  10548.  
  10549.  
  10550.  
  10551.  
  10552.  
  10553.  
  10554.  
  10555.  
  10556.  
  10557.  
  10558.  
  10559.  
  10560.  
  10561.  
  10562.  
  10563.  
  10564.  
  10565.  
  10566.  
  10567.  
  10568.  
  10569.  
  10570.  
  10571.  
  10572.  
  10573.  
  10574.  
  10575.  
  10576.  
  10577.  
  10578.  
  10579.  
  10580.  
  10581.  
  10582.  
  10583.  
  10584. Moy                                                           [Page 189]
  10585.  
  10586. RFC 1583                     OSPF Version 2                   March 1994
  10587.  
  10588.  
  10589. A.4.3 Network links advertisements
  10590.  
  10591.     Network links advertisements are the Type 2 link state
  10592.     advertisements.  A network links advertisement is originated for
  10593.     each transit network in the area.  A transit network is a multi-
  10594.     access network that has more than one attached router.  The network
  10595.     links advertisement is originated by the network's Designated
  10596.     Router.  The advertisement describes all routers attached to the
  10597.     network, including the Designated Router itself.  The
  10598.     advertisement's Link State ID field lists the IP interface address
  10599.     of the Designated Router.
  10600.  
  10601.     The distance from the network to all attached routers is zero, for
  10602.     all Types of Service.  This is why the TOS and metric fields need
  10603.     not be specified in the network links advertisement.  For details
  10604.     concerning the construction of network links advertisements, see
  10605.     Section 12.4.2.
  10606.  
  10607.  
  10608.         0                   1                   2                   3
  10609.         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
  10610.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10611.        |            LS age             |      Options  |      2        |
  10612.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10613.        |                        Link State ID                          |
  10614.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10615.        |                     Advertising Router                        |
  10616.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10617.        |                     LS sequence number                        |
  10618.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10619.        |         LS checksum           |             length            |
  10620.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10621.        |                         Network Mask                          |
  10622.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10623.        |                        Attached Router                        |
  10624.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10625.        |                              ...                              |
  10626.  
  10627.  
  10628.  
  10629.     Network Mask
  10630.         The IP address mask for the network.  For example, a class A
  10631.         network would have the mask 0xff000000.
  10632.  
  10633.     Attached Router
  10634.         The Router IDs of each of the routers attached to the network.
  10635.         Actually, only those routers that are fully adjacent to the
  10636.         Designated Router are listed.  The Designated Router includes
  10637.  
  10638.  
  10639.  
  10640. Moy                                                           [Page 190]
  10641.  
  10642. RFC 1583                     OSPF Version 2                   March 1994
  10643.  
  10644.  
  10645.         itself in this list.  The number of routers included can be
  10646.         deduced from the link state advertisement header's length field.
  10647.  
  10648.  
  10649.  
  10650.  
  10651.  
  10652.  
  10653.  
  10654.  
  10655.  
  10656.  
  10657.  
  10658.  
  10659.  
  10660.  
  10661.  
  10662.  
  10663.  
  10664.  
  10665.  
  10666.  
  10667.  
  10668.  
  10669.  
  10670.  
  10671.  
  10672.  
  10673.  
  10674.  
  10675.  
  10676.  
  10677.  
  10678.  
  10679.  
  10680.  
  10681.  
  10682.  
  10683.  
  10684.  
  10685.  
  10686.  
  10687.  
  10688.  
  10689.  
  10690.  
  10691.  
  10692.  
  10693.  
  10694.  
  10695.  
  10696. Moy                                                           [Page 191]
  10697.  
  10698. RFC 1583                     OSPF Version 2                   March 1994
  10699.  
  10700.  
  10701. A.4.4 Summary link advertisements
  10702.  
  10703.     Summary link advertisements are the Type 3 and 4 link state
  10704.     advertisements.  These advertisements are originated by area border
  10705.     routers.  A separate summary link advertisement is made for each
  10706.     destination (known to the router) which belongs to the AS, yet is
  10707.     outside the area.  For details concerning the construction of
  10708.     summary link advertisements, see Section 12.4.3.
  10709.  
  10710.     Type 3 link state advertisements are used when the destination is an
  10711.     IP network.  In this case the advertisement's Link State ID field is
  10712.     an IP network number (if necessary, the Link State ID can also have
  10713.     one or more of the network's "host" bits set; see Appendix F for
  10714.     details). When the destination is an AS boundary router, a Type 4
  10715.     advertisement is used, and the Link State ID field is the AS
  10716.     boundary router's OSPF Router ID.  (To see why it is necessary to
  10717.     advertise the location of each ASBR, consult Section 16.4.)  Other
  10718.     than the difference in the Link State ID field, the format of Type 3
  10719.     and 4 link state advertisements is identical.
  10720.  
  10721.  
  10722.         0                   1                   2                   3
  10723.         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
  10724.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10725.        |            LS age             |     Options   |    3 or 4     |
  10726.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10727.        |                        Link State ID                          |
  10728.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10729.        |                     Advertising Router                        |
  10730.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10731.        |                     LS sequence number                        |
  10732.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10733.        |         LS checksum           |             length            |
  10734.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10735.        |                         Network Mask                          |
  10736.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10737.        |     TOS       |                  metric                       |
  10738.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10739.        |                              ...                              |
  10740.  
  10741.  
  10742.     For stub areas, Type 3 summary link advertisements can also be used
  10743.     to describe a (per-area) default route.  Default summary routes are
  10744.     used in stub areas instead of flooding a complete set of external
  10745.     routes.  When describing a default summary route, the
  10746.     advertisement's Link State ID is always set to DefaultDestination
  10747.     (0.0.0.0) and the Network Mask is set to 0.0.0.0.
  10748.  
  10749.  
  10750.  
  10751.  
  10752. Moy                                                           [Page 192]
  10753.  
  10754. RFC 1583                     OSPF Version 2                   March 1994
  10755.  
  10756.  
  10757.     Separate costs may be advertised for each IP Type of Service.  The
  10758.     encoding of TOS in OSPF link state advertisements is described in
  10759.     Section 12.3.  Note that the cost for TOS 0 must be included, and is
  10760.     always listed first.  If the T-bit is reset in the advertisement's
  10761.     Option field, only a route for TOS 0 is described by the
  10762.     advertisement.  Otherwise, routes for the other TOS values are also
  10763.     described; if a cost for a certain TOS is not included, its cost
  10764.     defaults to that specified for TOS 0.
  10765.  
  10766.     Network Mask
  10767.         For Type 3 link state advertisements, this indicates the
  10768.         destination network's IP address mask.  For example, when
  10769.         advertising the location of a class A network the value
  10770.         0xff000000 would be used.  This field is not meaningful and must
  10771.         be zero for Type 4 link state advertisements.
  10772.  
  10773.  
  10774.     For each specified Type of Service, the following fields are
  10775.     defined.  The number of TOS routes included can be calculated from
  10776.     the link state advertisement header's length field.  Values for TOS
  10777.     0 must be specified; they are listed first.  Other values must be
  10778.     listed in order of increasing TOS encoding.  For example, the cost
  10779.     for TOS 16 must always follow the cost for TOS 8 when both are
  10780.     specified.
  10781.  
  10782.  
  10783.     TOS The Type of Service that the following cost concerns.  The
  10784.         encoding of TOS in OSPF link state advertisements is described
  10785.         in Section 12.3.
  10786.  
  10787.     metric
  10788.         The cost of this route.  Expressed in the same units as the
  10789.         interface costs in the router links advertisements.
  10790.  
  10791.  
  10792.  
  10793.  
  10794.  
  10795.  
  10796.  
  10797.  
  10798.  
  10799.  
  10800.  
  10801.  
  10802.  
  10803.  
  10804.  
  10805.  
  10806.  
  10807.  
  10808. Moy                                                           [Page 193]
  10809.  
  10810. RFC 1583                     OSPF Version 2                   March 1994
  10811.  
  10812.  
  10813. A.4.5 AS external link advertisements
  10814.  
  10815.     AS external link advertisements are the Type 5 link state
  10816.     advertisements.  These advertisements are originated by AS boundary
  10817.     routers.  A separate advertisement is made for each destination
  10818.     (known to the router) which is external to the AS.  For details
  10819.     concerning the construction of AS external link advertisements, see
  10820.     Section 12.4.3.
  10821.  
  10822.     AS external link advertisements usually describe a particular
  10823.     external destination.  For these advertisements the Link State ID
  10824.     field specifies an IP network number (if necessary, the Link State
  10825.     ID can also have one or more of the network's "host" bits set; see
  10826.     Appendix F for details).  AS external link advertisements are also
  10827.     used to describe a default route.  Default routes are used when no
  10828.     specific route exists to the destination.  When describing a default
  10829.     route, the Link State ID is always set to DefaultDestination
  10830.     (0.0.0.0) and the Network Mask is set to 0.0.0.0.
  10831.  
  10832.  
  10833.         0                   1                   2                   3
  10834.         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
  10835.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10836.        |            LS age             |     Options   |      5        |
  10837.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10838.        |                        Link State ID                          |
  10839.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10840.        |                     Advertising Router                        |
  10841.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10842.        |                     LS sequence number                        |
  10843.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10844.        |         LS checksum           |             length            |
  10845.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10846.        |                         Network Mask                          |
  10847.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10848.        |E|    TOS      |                  metric                       |
  10849.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10850.        |                      Forwarding address                       |
  10851.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10852.        |                      External Route Tag                       |
  10853.        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  10854.        |                              ...                              |
  10855.  
  10856.  
  10857.  
  10858.     Separate costs may be advertised for each IP Type of Service.  The
  10859.     encoding of TOS in OSPF link state advertisements is described in
  10860.     Section 12.3.  Note that the cost for TOS 0 must be included, and is
  10861.  
  10862.  
  10863.  
  10864. Moy                                                           [Page 194]
  10865.  
  10866. RFC 1583                     OSPF Version 2                   March 1994
  10867.  
  10868.  
  10869.     always listed first.  If the T-bit is reset in the advertisement's
  10870.     Option field, only a route for TOS 0 is described by the
  10871.     advertisement.  Otherwise, routes for the other TOS values are also
  10872.     described; if a cost for a certain TOS is not included, its cost
  10873.     defaults to that specified for TOS 0.
  10874.  
  10875.     Network Mask
  10876.         The IP address mask for the advertised destination.  For
  10877.         example, when advertising a class A network the mask 0xff000000
  10878.         would be used.
  10879.  
  10880.  
  10881.     For each specified Type of Service, the following fields are
  10882.     defined.  The number of TOS routes included can be calculated from
  10883.     the link state advertisement header's length field.  Values for TOS
  10884.     0 must be specified; they are listed first.  Other values must be
  10885.     listed in order of increasing TOS encoding.  For example, the cost
  10886.     for TOS 16 must always follow the cost for TOS 8 when both are
  10887.     specified.
  10888.  
  10889.  
  10890.     bit E
  10891.         The type of external metric.  If bit E is set, the metric
  10892.         specified is a Type 2 external metric.  This means the metric is
  10893.         considered larger than any link state path.  If bit E is zero,
  10894.         the specified metric is a Type 1 external metric.  This means
  10895.         that is is comparable directly (without translation) to the link
  10896.         state metric.
  10897.  
  10898.     Forwarding address
  10899.         Data traffic for the advertised destination will be forwarded to
  10900.         this address.  If the Forwarding address is set to 0.0.0.0, data
  10901.         traffic will be forwarded instead to the advertisement's
  10902.         originator (i.e., the responsible AS boundary router).
  10903.  
  10904.     TOS The Type of Service that the following cost concerns.  The
  10905.         encoding of TOS in OSPF link state advertisements is described
  10906.         in Section 12.3.
  10907.  
  10908.     metric
  10909.         The cost of this route.  Interpretation depends on the external
  10910.         type indication (bit E above).
  10911.  
  10912.     External Route Tag
  10913.         A 32-bit field attached to each external route.  This is not
  10914.         used by the OSPF protocol itself.  It may be used to communicate
  10915.         information between AS boundary routers; the precise nature of
  10916.         such information is outside the scope of this specification.
  10917.  
  10918.  
  10919.  
  10920. Moy                                                           [Page 195]
  10921.  
  10922. RFC 1583                     OSPF Version 2                   March 1994
  10923.  
  10924.  
  10925. B. Architectural Constants
  10926.  
  10927.     Several OSPF protocol parameters have fixed architectural values.
  10928.     These parameters have been referred to in the text by names such as
  10929.     LSRefreshTime.  The same naming convention is used for the
  10930.     configurable protocol parameters.  They are defined in Appendix C.
  10931.  
  10932.     The name of each architectural constant follows, together with its
  10933.     value and a short description of its function.
  10934.  
  10935.  
  10936.     LSRefreshTime
  10937.         The maximum time between distinct originations of any particular
  10938.         link state advertisement.  When the LS age field of one of the
  10939.         router's self-originated advertisements reaches the value
  10940.         LSRefreshTime, a new instance of the link state advertisement is
  10941.         originated, even though the contents of the advertisement (apart
  10942.         from the link state header) will be the same.  The value of
  10943.         LSRefreshTime is set to 30 minutes.
  10944.  
  10945.     MinLSInterval
  10946.         The minimum time between distinct originations of any particular
  10947.         link state advertisement.  The value of MinLSInterval is set to
  10948.         5 seconds.
  10949.  
  10950.     MaxAge
  10951.         The maximum age that a link state advertisement can attain. When
  10952.         an advertisement's LS age field reaches MaxAge, it is reflooded
  10953.         in an attempt to flush the advertisement from the routing domain
  10954.         (See Section 14). Advertisements of age MaxAge are not used in
  10955.         the routing table calculation.  The value of MaxAge must be
  10956.         greater than LSRefreshTime.  The value of MaxAge is set to 1
  10957.         hour.
  10958.  
  10959.     CheckAge
  10960.         When the age of a link state advertisement (that is contained in
  10961.         the link state database) hits a multiple of CheckAge, the
  10962.         advertisement's checksum is verified.  An incorrect checksum at
  10963.         this time indicates a serious error.  The value of CheckAge is
  10964.         set to 5 minutes.
  10965.  
  10966.     MaxAgeDiff
  10967.         The maximum time dispersion that can occur, as a link state
  10968.         advertisement is flooded throughout the AS.  Most of this time
  10969.         is accounted for by the link state advertisements sitting on
  10970.         router output queues (and therefore not aging) during the
  10971.         flooding process.  The value of MaxAgeDiff is set to 15 minutes.
  10972.  
  10973.  
  10974.  
  10975.  
  10976. Moy                                                           [Page 196]
  10977.  
  10978. RFC 1583                     OSPF Version 2                   March 1994
  10979.  
  10980.  
  10981.     LSInfinity
  10982.         The metric value indicating that the destination described by a
  10983.         link state advertisement is unreachable. Used in summary link
  10984.         advertisements and AS external link advertisements as an
  10985.         alternative to premature aging (see Section 14.1). It is defined
  10986.         to be the 24-bit binary value of all ones: 0xffffff.
  10987.  
  10988.     DefaultDestination
  10989.         The Destination ID that indicates the default route.  This route
  10990.         is used when no other matching routing table entry can be found.
  10991.         The default destination can only be advertised in AS external
  10992.         link advertisements and in stub areas' type 3 summary link
  10993.         advertisements.  Its value is the IP address 0.0.0.0.
  10994.  
  10995.  
  10996.  
  10997.  
  10998.  
  10999.  
  11000.  
  11001.  
  11002.  
  11003.  
  11004.  
  11005.  
  11006.  
  11007.  
  11008.  
  11009.  
  11010.  
  11011.  
  11012.  
  11013.  
  11014.  
  11015.  
  11016.  
  11017.  
  11018.  
  11019.  
  11020.  
  11021.  
  11022.  
  11023.  
  11024.  
  11025.  
  11026.  
  11027.  
  11028.  
  11029.  
  11030.  
  11031.  
  11032. Moy                                                           [Page 197]
  11033.  
  11034. RFC 1583                     OSPF Version 2                   March 1994
  11035.  
  11036.  
  11037. C. Configurable Constants
  11038.  
  11039.     The OSPF protocol has quite a few configurable parameters.  These
  11040.     parameters are listed below.  They are grouped into general
  11041.     functional categories (area parameters, interface parameters, etc.).
  11042.     Sample values are given for some of the parameters.
  11043.  
  11044.     Some parameter settings need to be consistent among groups of
  11045.     routers.  For example, all routers in an area must agree on that
  11046.     area's parameters, and all routers attached to a network must agree
  11047.     on that network's IP network number and mask.
  11048.  
  11049.     Some parameters may be determined by router algorithms outside of
  11050.     this specification (e.g., the address of a host connected to the
  11051.     router via a SLIP line).  From OSPF's point of view, these items are
  11052.     still configurable.
  11053.  
  11054.     C.1 Global parameters
  11055.  
  11056.         In general, a separate copy of the OSPF protocol is run for each
  11057.         area.  Because of this, most configuration parameters are
  11058.         defined on a per-area basis.  The few global configuration
  11059.         parameters are listed below.
  11060.  
  11061.  
  11062.         Router ID
  11063.             This is a 32-bit number that uniquely identifies the router
  11064.             in the Autonomous System.  One algorithm for Router ID
  11065.             assignment is to choose the largest or smallest IP address
  11066.             assigned to the router.  If a router's OSPF Router ID is
  11067.             changed, the router's OSPF software should be restarted
  11068.             before the new Router ID takes effect. Before restarting in
  11069.             order to change its Router ID, the router should flush its
  11070.             self-originated link state advertisements from the routing
  11071.             domain (see Section 14.1), or they will persist for up to
  11072.             MaxAge minutes.
  11073.  
  11074.         TOS capability
  11075.             This item indicates whether the router will calculate
  11076.             separate routes based on TOS.  For more information, see
  11077.             Sections 4.5 and 16.9.
  11078.  
  11079.     C.2 Area parameters
  11080.  
  11081.         All routers belonging to an area must agree on that area's
  11082.         configuration.  Disagreements between two routers will lead to
  11083.         an inability for adjacencies to form between them, with a
  11084.         resulting hindrance to the flow of routing protocol and data
  11085.  
  11086.  
  11087.  
  11088. Moy                                                           [Page 198]
  11089.  
  11090. RFC 1583                     OSPF Version 2                   March 1994
  11091.  
  11092.  
  11093.         traffic.  The following items must be configured for an area:
  11094.  
  11095.  
  11096.         Area ID
  11097.             This is a 32-bit number that identifies the area.  The Area
  11098.             ID of 0.0.0.0 is reserved for the backbone.  If the area
  11099.             represents a subnetted network, the IP network number of the
  11100.             subnetted network may be used for the Area ID.
  11101.  
  11102.         List of address ranges
  11103.             An OSPF area is defined as a list of address ranges. Each
  11104.             address range consists of the following items:
  11105.  
  11106.             [IP address, mask]
  11107.                     Describes the collection of IP addresses contained
  11108.                     in the address range. Networks and hosts are
  11109.                     assigned to an area depending on whether their
  11110.                     addresses fall into one of the area's defining
  11111.                     address ranges.  Routers are viewed as belonging to
  11112.                     multiple areas, depending on their attached
  11113.                     networks' area membership.
  11114.  
  11115.             Status  Set to either Advertise or DoNotAdvertise.  Routing
  11116.                     information is condensed at area boundaries.
  11117.                     External to the area, at most a single route is
  11118.                     advertised (via a summary link advertisement) for
  11119.                     each address range. The route is advertised if and
  11120.                     only if the address range's Status is set to
  11121.                     Advertise.  Unadvertised ranges allow the existence
  11122.                     of certain networks to be intentionally hidden from
  11123.                     other areas. Status is set to Advertise by default.
  11124.  
  11125.             As an example, suppose an IP subnetted network is to be its
  11126.             own OSPF area.  The area would be configured as a single
  11127.             address range, whose IP address is the address of the
  11128.             subnetted network, and whose mask is the natural class A, B,
  11129.             or C address mask.  A single route would be advertised
  11130.             external to the area, describing the entire subnetted
  11131.             network.
  11132.  
  11133.         AuType
  11134.             Each area can be configured for a separate type of
  11135.             authentication.  See Appendix D for a discussion of the
  11136.             defined authentication types.
  11137.  
  11138.         ExternalRoutingCapability
  11139.             Whether AS external advertisements will be flooded
  11140.             into/throughout the area.  If AS external advertisements are
  11141.  
  11142.  
  11143.  
  11144. Moy                                                           [Page 199]
  11145.  
  11146. RFC 1583                     OSPF Version 2                   March 1994
  11147.  
  11148.  
  11149.             excluded from the area, the area is called a "stub".
  11150.             Internal to stub areas, routing to external destinations
  11151.             will be based solely on a default summary route.  The
  11152.             backbone cannot be configured as a stub area.  Also, virtual
  11153.             links cannot be configured through stub areas.  For more
  11154.             information, see Section 3.6.
  11155.  
  11156.         StubDefaultCost
  11157.             If the area has been configured as a stub area, and the
  11158.             router itself is an area border router, then the
  11159.             StubDefaultCost indicates the cost of the default summary
  11160.             link that the router should advertise into the area.  There
  11161.             can be a separate cost configured for each IP TOS.  See
  11162.             Section 12.4.3 for more information.
  11163.  
  11164.     C.3 Router interface parameters
  11165.  
  11166.         Some of the configurable router interface parameters (such as IP
  11167.         interface address and subnet mask) actually imply properties of
  11168.         the attached networks, and therefore must be consistent across
  11169.         all the routers attached to that network.  The parameters that
  11170.         must be configured for a router interface are:
  11171.  
  11172.  
  11173.         IP interface address
  11174.             The IP protocol address for this interface.  This uniquely
  11175.             identifies the router over the entire internet.  An IP
  11176.             address is not required on serial lines.  Such a serial line
  11177.             is called "unnumbered".
  11178.  
  11179.         IP interface mask
  11180.             Also referred to as the subnet mask, this indicates the
  11181.             portion of the IP interface address that identifies the
  11182.             attached network.  Masking the IP interface address with the
  11183.             IP interface mask yields the IP network number of the
  11184.             attached network.  On point-to-point networks and virtual
  11185.             links, the IP interface mask is not defined. On these
  11186.             networks, the link itself is not assigned an IP network
  11187.             number, and so the addresses of each side of the link are
  11188.             assigned independently, if they are assigned at all.
  11189.  
  11190.         Interface output cost(s)
  11191.             The cost of sending a packet on the interface, expressed in
  11192.             the link state metric.  This is advertised as the link cost
  11193.             for this interface in the router's router links
  11194.             advertisement.  There may be a separate cost for each IP
  11195.             Type of Service.  The interface output cost(s) must always
  11196.             be greater than 0.
  11197.  
  11198.  
  11199.  
  11200. Moy                                                           [Page 200]
  11201.  
  11202. RFC 1583                     OSPF Version 2                   March 1994
  11203.  
  11204.  
  11205.         RxmtInterval
  11206.             The number of seconds between link state advertisement
  11207.             retransmissions, for adjacencies belonging to this
  11208.             interface.  Also used when retransmitting Database
  11209.             Description and Link State Request Packets.  This should be
  11210.             well over the expected round-trip delay between any two
  11211.             routers on the attached network.  The setting of this value
  11212.             should be conservative or needless retransmissions will
  11213.             result.  It will need to be larger on low speed serial lines
  11214.             and virtual links.  Sample value for a local area network: 5
  11215.             seconds.
  11216.  
  11217.         InfTransDelay
  11218.             The estimated number of seconds it takes to transmit a Link
  11219.             State Update Packet over this interface.  Link state
  11220.             advertisements contained in the update packet must have
  11221.             their age incremented by this amount before transmission.
  11222.             This value should take into account the transmission and
  11223.             propagation delays of the interface.  It must be greater
  11224.             than 0.  Sample value for a local area network: 1 second.
  11225.  
  11226.         Router Priority
  11227.             An 8-bit unsigned integer.  When two routers attached to a
  11228.             network both attempt to become Designated Router, the one
  11229.             with the highest Router Priority takes precedence.  If there
  11230.             is still a tie, the router with the highest Router ID takes
  11231.             precedence.  A router whose Router Priority is set to 0 is
  11232.             ineligible to become Designated Router on the attached
  11233.             network.  Router Priority is only configured for interfaces
  11234.             to multi-access networks.
  11235.  
  11236.         HelloInterval
  11237.             The length of time, in seconds, between the Hello Packets
  11238.             that the router sends on the interface.  This value is
  11239.             advertised in the router's Hello Packets.  It must be the
  11240.             same for all routers attached to a common network.  The
  11241.             smaller the HelloInterval, the faster topological changes
  11242.             will be detected, but more OSPF routing protocol traffic
  11243.             will ensue.  Sample value for a X.25 PDN network: 30
  11244.             seconds.  Sample value for a local area network: 10 seconds.
  11245.  
  11246.         RouterDeadInterval
  11247.             After ceasing to hear a router's Hello Packets, the number
  11248.             of seconds before its neighbors declare the router down.
  11249.             This is also advertised in the router's Hello Packets in
  11250.             their RouterDeadInterval field.  This should be some
  11251.             multiple of the HelloInterval (say 4).  This value again
  11252.             must be the same for all routers attached to a common
  11253.  
  11254.  
  11255.  
  11256. Moy                                                           [Page 201]
  11257.  
  11258. RFC 1583                     OSPF Version 2                   March 1994
  11259.  
  11260.  
  11261.             network.
  11262.  
  11263.         Authentication key
  11264.             This configured data allows the authentication procedure to
  11265.             generate and/or verify the authentication field in the OSPF
  11266.             header.  This value again must be the same for all routers
  11267.             attached to a common network.  For example, if the AuType
  11268.             indicates simple password, the Authentication key would be a
  11269.             64-bit password. This key would be inserted directly into
  11270.             the OSPF header when originating routing protocol packets.
  11271.             There could be a separate password for each network.
  11272.  
  11273.     C.4 Virtual link parameters
  11274.  
  11275.         Virtual links are used to restore/increase connectivity of the
  11276.         backbone.  Virtual links may be configured between any pair of
  11277.         area border routers having interfaces to a common (non-backbone)
  11278.         area.  The virtual link appears as an unnumbered point-to-point
  11279.         link in the graph for the backbone.  The virtual link must be
  11280.         configured in both of the area border routers.
  11281.  
  11282.         A virtual link appears in router links advertisements (for the
  11283.         backbone) as if it were a separate router interface to the
  11284.         backbone.  As such, it has all of the parameters associated with
  11285.         a router interface (see Section C.3).  Although a virtual link
  11286.         acts like an unnumbered point-to-point link, it does have an
  11287.         associated IP interface address.  This address is used as the IP
  11288.         source in OSPF protocol packets it sends along the virtual link,
  11289.         and is set dynamically during the routing table build process.
  11290.         Interface output cost is also set dynamically on virtual links
  11291.         to be the cost of the intra-area path between the two routers.
  11292.         The parameter RxmtInterval must be configured, and should be
  11293.         well over the expected round-trip delay between the two routers.
  11294.         This may be hard to estimate for a virtual link; it is better to
  11295.         err on the side of making it too large.  Router Priority is not
  11296.         used on virtual links.
  11297.  
  11298.         A virtual link is defined by the following two configurable
  11299.         parameters: the Router ID of the virtual link's other endpoint,
  11300.         and the (non-backbone) area through which the virtual link runs
  11301.         (referred to as the virtual link's Transit area).  Virtual links
  11302.         cannot be configured through stub areas.
  11303.  
  11304.     C.5 Non-broadcast, multi-access network parameters
  11305.  
  11306.         OSPF treats a non-broadcast, multi-access network much like it
  11307.         treats a broadcast network.  Since there may be many routers
  11308.         attached to the network, a Designated Router is selected for the
  11309.  
  11310.  
  11311.  
  11312. Moy                                                           [Page 202]
  11313.  
  11314. RFC 1583                     OSPF Version 2                   March 1994
  11315.  
  11316.  
  11317.         network.  This Designated Router then originates a networks
  11318.         links advertisement, which lists all routers attached to the
  11319.         non-broadcast network.
  11320.  
  11321.         However, due to the lack of broadcast capabilities, it is
  11322.         necessary to use configuration parameters in the Designated
  11323.         Router selection.  These parameters need only be configured in
  11324.         those routers that are themselves eligible to become Designated
  11325.         Router (i.e., those router's whose Router Priority for the
  11326.         network is non-zero):
  11327.  
  11328.  
  11329.         List of all other attached routers
  11330.             The list of all other routers attached to the non-broadcast
  11331.             network.  Each router is listed by its IP interface address
  11332.             on the network.  Also, for each router listed, that router's
  11333.             eligibility to become Designated Router must be defined.
  11334.             When an interface to a non-broadcast network comes up, the
  11335.             router sends Hello Packets only to those neighbors eligible
  11336.             to become Designated Router, until the identity of the
  11337.             Designated Router is discovered.
  11338.  
  11339.         PollInterval
  11340.             If a neighboring router has become inactive (Hello Packets
  11341.             have not been seen for RouterDeadInterval seconds), it may
  11342.             still be necessary to send Hello Packets to the dead
  11343.             neighbor.  These Hello Packets will be sent at the reduced
  11344.             rate PollInterval, which should be much larger than
  11345.             HelloInterval.  Sample value for a PDN X.25 network: 2
  11346.             minutes.
  11347.  
  11348.     C.6 Host route parameters
  11349.  
  11350.         Host routes are advertised in router links advertisements as
  11351.         stub networks with mask 0xffffffff.  They indicate either router
  11352.         interfaces to point-to-point networks, looped router interfaces,
  11353.         or IP hosts that are directly connected to the router (e.g., via
  11354.         a SLIP line).  For each host directly connected to the router,
  11355.         the following items must be configured:
  11356.  
  11357.  
  11358.         Host IP address
  11359.             The IP address of the host.
  11360.  
  11361.         Cost of link to host
  11362.             The cost of sending a packet to the host, in terms of the
  11363.             link state metric.  There may be multiple costs configured,
  11364.             one for each IP TOS.  However, since the host probably has
  11365.  
  11366.  
  11367.  
  11368. Moy                                                           [Page 203]
  11369.  
  11370. RFC 1583                     OSPF Version 2                   March 1994
  11371.  
  11372.  
  11373.             only a single connection to the internet, the actual
  11374.             configured cost(s) in many cases is unimportant (i.e., will
  11375.             have no effect on routing).
  11376.  
  11377.  
  11378.  
  11379.  
  11380.  
  11381.  
  11382.  
  11383.  
  11384.  
  11385.  
  11386.  
  11387.  
  11388.  
  11389.  
  11390.  
  11391.  
  11392.  
  11393.  
  11394.  
  11395.  
  11396.  
  11397.  
  11398.  
  11399.  
  11400.  
  11401.  
  11402.  
  11403.  
  11404.  
  11405.  
  11406.  
  11407.  
  11408.  
  11409.  
  11410.  
  11411.  
  11412.  
  11413.  
  11414.  
  11415.  
  11416.  
  11417.  
  11418.  
  11419.  
  11420.  
  11421.  
  11422.  
  11423.  
  11424. Moy                                                           [Page 204]
  11425.  
  11426. RFC 1583                     OSPF Version 2                   March 1994
  11427.  
  11428.  
  11429. D. Authentication
  11430.  
  11431.     All OSPF protocol exchanges are authenticated.  The OSPF packet
  11432.     header (see Section A.3.1) includes an authentication type field,
  11433.     and 64-bits of data for use by the appropriate authentication scheme
  11434.     (determined by the type field).
  11435.  
  11436.     The authentication type is configurable on a per-area basis.
  11437.     Additional authentication data is configurable on a per-interface
  11438.     basis.  For example, if an area uses a simple password scheme for
  11439.     authentication, a separate password may be configured for each
  11440.     network contained in the area.
  11441.  
  11442.     Authentication types 0 and 1 are defined by this specification.  All
  11443.     other authentication types are reserved for definition by the IANA
  11444.     (iana@ISI.EDU).  The current list of authentication types is
  11445.     described below in Table 20.
  11446.  
  11447.  
  11448.  
  11449.                   AuType       Description
  11450.                   ___________________________________________
  11451.                   0            No authentication
  11452.                   1            Simple password
  11453.                   All others   Reserved for assignment by the
  11454.                                IANA (iana@ISI.EDU)
  11455.  
  11456.  
  11457.                       Table 20: OSPF authentication types.
  11458.  
  11459.  
  11460.  
  11461.     D.1 AuType 0 -- No authentication
  11462.  
  11463.         Use of this authentication type means that routing exchanges in
  11464.         the area are not authenticated.  The 64-bit field in the OSPF
  11465.         header can contain anything; it is not examined on packet
  11466.         reception.
  11467.  
  11468.     D.2 AuType 1 -- Simple password
  11469.  
  11470.         Using this authentication type, a 64-bit field is configured on
  11471.         a per-network basis.  All packets sent on a particular network
  11472.         must have this configured value in their OSPF header 64-bit
  11473.         authentication field.  This essentially serves as a "clear" 64-
  11474.         bit password.
  11475.  
  11476.  
  11477.  
  11478.  
  11479.  
  11480. Moy                                                           [Page 205]
  11481.  
  11482. RFC 1583                     OSPF Version 2                   March 1994
  11483.  
  11484.  
  11485.         This guards against routers inadvertently joining the area.
  11486.         They must first be configured with their attached networks'
  11487.         passwords before they can participate in the routing domain.
  11488.  
  11489.  
  11490.  
  11491.  
  11492.  
  11493.  
  11494.  
  11495.  
  11496.  
  11497.  
  11498.  
  11499.  
  11500.  
  11501.  
  11502.  
  11503.  
  11504.  
  11505.  
  11506.  
  11507.  
  11508.  
  11509.  
  11510.  
  11511.  
  11512.  
  11513.  
  11514.  
  11515.  
  11516.  
  11517.  
  11518.  
  11519.  
  11520.  
  11521.  
  11522.  
  11523.  
  11524.  
  11525.  
  11526.  
  11527.  
  11528.  
  11529.  
  11530.  
  11531.  
  11532.  
  11533.  
  11534.  
  11535.  
  11536. Moy                                                           [Page 206]
  11537.  
  11538. RFC 1583                     OSPF Version 2                   March 1994
  11539.  
  11540.  
  11541. E. Differences from RFC 1247
  11542.  
  11543.     This section documents the differences between this memo and RFC
  11544.     1247.  These differences include a fix for a problem involving OSPF
  11545.     virtual links, together with minor enhancements and clarifications
  11546.     to the protocol. All differences are backward-compatible.
  11547.     Implementations of this memo and of RFC 1247 will interoperate.
  11548.  
  11549.     E.1 A fix for a problem with OSPF Virtual links
  11550.  
  11551.         In RFC 1247, certain configurations of OSPF virtual links can
  11552.         cause routing loops. The root of the problem is that while there
  11553.         is an information mismatch at the boundary of any virtual link's
  11554.         Transit area, a backbone path can still cross the boundary. RFC
  11555.         1247 attempted to compensate for this information mismatch by
  11556.         adjusting any backbone path as it enters the transit area (see
  11557.         Section 16.3 in RFC 1247). However, this proved not to be
  11558.         enough. This memo fixes the problem by having all area border
  11559.         routers determine, by looking at summary links, whether better
  11560.         backbone paths can be found through the transit areas.
  11561.  
  11562.         This fix simplifies the OSPF virtual link logic, and consists of
  11563.         the following components:
  11564.  
  11565.         o   A new bit has been defined in the router links
  11566.             advertisement, called bit V. Bit V is set in a router's
  11567.             router links advertisement for Area A if and only if the
  11568.             router is an endpoint of an active virtual link that uses
  11569.             Area A as its Transit area (see Sections 12.4.1 and A.4.2).
  11570.             This enables the other routers attached to Area A to
  11571.             discover whether the area supports any virtual links (i.e.,
  11572.             is a transit area). This discovery is done during the
  11573.             calculation of Area A's shortest-path tree (see Section
  11574.             16.1).
  11575.  
  11576.         o   To aid in the description of the algorithm, a new parameter
  11577.             has been added to the OSPF area structure:
  11578.             TransitCapability. This parameter indicates whether the area
  11579.             supports any active virtual links. Equivalently, it
  11580.             indicates whether the area can carry traffic that neither
  11581.             originates nor terminates in the area itself.
  11582.  
  11583.         o   The calculation in Section 16.3 of RFC 1247 has been
  11584.             replaced. The new calculation, performed by area border
  11585.             routers only, examines the summary links belonging to all
  11586.             attached transit areas to see whether the transit areas can
  11587.             provide better paths than those already found in Sections
  11588.             16.1 and 16.2.
  11589.  
  11590.  
  11591.  
  11592. Moy                                                           [Page 207]
  11593.  
  11594. RFC 1583                     OSPF Version 2                   March 1994
  11595.  
  11596.  
  11597.         o   The incremental calculations in Section 16.5 have been
  11598.             updated as a result of the new calculations in Section 16.3.
  11599.  
  11600.     E.2 Supporting supernetting and subnet 0
  11601.  
  11602.         In RFC 1247, an OSPF router cannot originate separate AS
  11603.         external link advertisements (or separate summary link
  11604.         advertisements) for two networks that have the same address but
  11605.         different masks. This situation can arise when subnet 0 of a
  11606.         network has been assigned (a practice that is generally
  11607.         discouraged), or when using supernetting as described in [RFC
  11608.         1519] (a practice that is generally encouraged to reduce the
  11609.         size of routing tables), or even when in transition from one
  11610.         mask to another on a subnet.  Using supernetting as an example,
  11611.         you might want to aggregate the four class C networks
  11612.         192.9.4.0-192.9.7.0, advertising one route for the aggregation
  11613.         and another for the single class C network 192.9.4.0.
  11614.  
  11615.         The reason behind this limitation is that in RFC 1247, the Link
  11616.         State ID of AS external link advertisements and summary link
  11617.         advertisements is set equal to the described network's IP
  11618.         address. In the above example, RFC 1247 would assign both
  11619.         advertisements the Link State ID of 192.9.4.0, making them in
  11620.         essence the same advertisement. This memo fixes the problem by
  11621.         relaxing the setting of the Link State ID so that any of the
  11622.         "host" bits of the network address can also be set. This allows
  11623.         you to disambiguate advertisements for networks having the same
  11624.         address but different masks. Given an AS external link
  11625.         advertisement (or a summary link advertisement), the described
  11626.         network's address can now be obtained by masking the Link State
  11627.         ID with the network mask carried in the body of the
  11628.         advertisement.  Again using the above example, the aggregate can
  11629.         now be advertised using a Link State ID of 192.9.4.0 and the
  11630.         single class C network advertised simultaneously using the Link
  11631.         State ID of 192.9.4.255.
  11632.  
  11633.         Appendix F gives one possible algorithm for setting one or more
  11634.         "host" bits in the Link State ID in order to disambiguate
  11635.         advertisements. It should be noted that this is a local
  11636.         decision. Each router in an OSPF system is free to use its own
  11637.         algorithm, since only those advertisements originated by the
  11638.         router itself are affected.
  11639.  
  11640.         It is believed that this change will be more or less compatible
  11641.         with implementations of RFC 1247. Implementations of RFC 1247
  11642.         will probably either a) install routing table entries that won't
  11643.         be used or b) do the correct processing as outlined in this memo
  11644.         or c) mark the advertisement as unusable when presented with a
  11645.  
  11646.  
  11647.  
  11648. Moy                                                           [Page 208]
  11649.  
  11650. RFC 1583                     OSPF Version 2                   March 1994
  11651.  
  11652.  
  11653.         Link State ID that has one or more of the host bits set.
  11654.         However, in the interest of interoperability, implementations of
  11655.         this memo should only set the host bits in Link State IDs when
  11656.         absolutely necessary.
  11657.  
  11658.         The change affects Sections 12.1.4, 12.4.3, 12.4.5, 16.2, 16.3,
  11659.         16.4, 16.5, 16.6, A.4.4 and A.4.5.
  11660.  
  11661.     E.3 Obsoleting LSInfinity in router links advertisements
  11662.  
  11663.         The metric of LSInfinity can no longer be used in router links
  11664.         advertisements to indicate unusable links. This is being done
  11665.         for several reasons:
  11666.  
  11667.         o   It removes any possible confusion in an OSPF area as to just
  11668.             which routers/networks are reachable in the area. For
  11669.             example, the above virtual link fix relies on detecting the
  11670.             existence of virtual links when running the Dijkstra.
  11671.             However, when one-directional links (i.e., cost of
  11672.             LSInfinity in one direction, but not the other) are
  11673.             possible, some routers may detect the existence of virtual
  11674.             links while others may not. This may defeat the fix for the
  11675.             virtual link problem.
  11676.  
  11677.         o   It also helps OSPF's Multicast routing extensions (MOSPF),
  11678.             because one-way reachability can lead to places that are
  11679.             reachable via unicast but not multicast, or vice versa.
  11680.  
  11681.         The two prior justifications for using LSInfinity in router
  11682.         links advertisements were 1) it was a way to not support TOS
  11683.         before TOS was optional and 2) it went along with strong TOS
  11684.         interpretations. These justifications are no longer valid.
  11685.         However, LSInfinity will continue to mean "unreachable" in
  11686.         summary link advertisements and AS external link advertisements,
  11687.         as some implementations use this as an alternative to the
  11688.         premature aging procedure specified in Section 14.1.
  11689.  
  11690.         This change has one other side effect. When two routers are
  11691.         connected via a virtual link whose underlying path is non-TOS-
  11692.         capable, they must now revert to being non-TOS-capable routers
  11693.         themselves, instead of the previous behavior of advertising the
  11694.         non-zero TOS costs of the virtual link as LSInfinity. See
  11695.         Section 15 for details.
  11696.  
  11697.     E.4 TOS encoding updated
  11698.  
  11699.         The encoding of TOS in OSPF link state advertisements has been
  11700.         updated to reflect the new TOS value (minimize monetary cost)
  11701.  
  11702.  
  11703.  
  11704. Moy                                                           [Page 209]
  11705.  
  11706. RFC 1583                     OSPF Version 2                   March 1994
  11707.  
  11708.  
  11709.         defined by [RFC 1349]. The OSPF encoding is defined in Section
  11710.         12.3, which is identical in content to Section A.5 of [RFC
  11711.         1349].
  11712.  
  11713.     E.5 Summarizing routes into transit areas
  11714.  
  11715.         RFC 1247 mandated that routes associated with Area A are never
  11716.         summarized back into Area A. However, this memo further reduces
  11717.         the number of summary links originated by refusing to summarize
  11718.         into Area A those routes having next hops belonging to Area A.
  11719.         This is an optimization over RFC 1247 behavior when virtual
  11720.         links are present.  For example, in the area configuration of
  11721.         Figure 6, Router RT11 need only originate a single summary link
  11722.         having the (collapsed) destination N9-N11,H1 into its connected
  11723.         transit area Area 2, since all of its other eligible routes have
  11724.         next hops belonging to Area 2 (and as such only need be
  11725.         advertised by other area border routers; in this case, Routers
  11726.         RT10 and RT7). This is the logical equivalent of a Distance
  11727.         Vector protocol's split horizon logic.
  11728.  
  11729.         This change appears in Section 12.4.3.
  11730.  
  11731.     E.6 Summarizing routes into stub areas
  11732.  
  11733.         RFC 1247 mandated that area border routers attached to stub
  11734.         areas must summarize all inter-area routes into the stub areas.
  11735.         However, while area border routers connected to OSPF stub areas
  11736.         must originate default summary links into the stub area, they
  11737.         need not summarize other routes into the stub area. The amount
  11738.         of summarization done into stub areas can instead be put under
  11739.         configuration control. The network administrator can then make
  11740.         the trade-off between optimal routing and database size.
  11741.  
  11742.         This change appears in Sections 12.4.3 and 12.4.4.
  11743.  
  11744.     E.7 Flushing anomalous network links advertisements
  11745.  
  11746.         Text was added indicating that a network links advertisement
  11747.         whose Link State ID is equal to one of the router's own IP
  11748.         interface addresses should be considered to be self-originated,
  11749.         regardless of the setting of the advertisement's Advertising
  11750.         Router. If the Advertising Router of such an advertisement is
  11751.         not equal to the router's own Router ID, the advertisement
  11752.         should be flushed from the routing domain using the premature
  11753.         aging procedure specified in Section 14.1. This case should be
  11754.         rare, and it indicates that the router's Router ID has changed
  11755.         since originating the advertisement.
  11756.  
  11757.  
  11758.  
  11759.  
  11760. Moy                                                           [Page 210]
  11761.  
  11762. RFC 1583                     OSPF Version 2                   March 1994
  11763.  
  11764.  
  11765.         Failure to flush these anomalous advertisements could lead to
  11766.         multiple network links advertisements having the same Link State
  11767.         ID. This in turn could cause the Dijkstra calculation in Section
  11768.         16.1 to fail, since it would be impossible to tell which network
  11769.         links advertisement is valid (i.e., more recent).
  11770.  
  11771.         This change appears in Sections 13.4 and 14.1.
  11772.  
  11773.     E.8 Required Statistics appendix deleted
  11774.  
  11775.         Appendix D of RFC 1247, which specified a list of required
  11776.         statistics for an OSPF implementation, has been deleted. That
  11777.         appendix has been superseded by the two documents: the OSPF
  11778.         Version 2 Management Information Base and the OSPF Version 2
  11779.         Traps.
  11780.  
  11781.     E.9 Other changes
  11782.  
  11783.         The following small changes were also made to RFC 1247:
  11784.  
  11785.         o   When representing unnumbered point-to-point networks in
  11786.             router links advertisements, the corresponding Link Data
  11787.             field should be set to the unnumbered interface's MIB-II
  11788.             [RFC 1213] ifIndex value.
  11789.  
  11790.         o   A comment was added to Step 3 of the Dijkstra algorithm in
  11791.             Section 16.1. When removing vertices from the candidate
  11792.             list, and when there is a choice of vertices closest to the
  11793.             root, network vertices must be chosen before router vertices
  11794.             in order to necessarily find all equal-cost paths.
  11795.  
  11796.         o   A comment was added to Section 12.4.3 noting that a summary
  11797.             link advertisement cannot express a reachable destination
  11798.             whose path cost equals or exceeds LSInfinity.
  11799.  
  11800.         o   A comment was added to Section 15 noting that a virtual link
  11801.             whose underlying path has cost greater than hexadecimal
  11802.             0xffff (the maximum size of an interface cost in a router
  11803.             links advertisement) should be considered inoperational.
  11804.  
  11805.         o   An option was added to the definition of area address
  11806.             ranges, allowing the network administrator to specify that a
  11807.             particular range should not be advertised to other OSPF
  11808.             areas. This enables the existence of certain networks to be
  11809.             hidden from other areas. This change appears in Sections
  11810.             12.4.3 and C.2.
  11811.  
  11812.  
  11813.  
  11814.  
  11815.  
  11816. Moy                                                           [Page 211]
  11817.  
  11818. RFC 1583                     OSPF Version 2                   March 1994
  11819.  
  11820.  
  11821.         o   A note was added reminding implementors that bit E (the AS
  11822.             boundary router indication) should never be set in a router
  11823.             links advertisement for a stub area, since stub areas cannot
  11824.             contain AS boundary routers.  This change appears in Section
  11825.             12.4.1.
  11826.  
  11827.  
  11828.  
  11829.  
  11830.  
  11831.  
  11832.  
  11833.  
  11834.  
  11835.  
  11836.  
  11837.  
  11838.  
  11839.  
  11840.  
  11841.  
  11842.  
  11843.  
  11844.  
  11845.  
  11846.  
  11847.  
  11848.  
  11849.  
  11850.  
  11851.  
  11852.  
  11853.  
  11854.  
  11855.  
  11856.  
  11857.  
  11858.  
  11859.  
  11860.  
  11861.  
  11862.  
  11863.  
  11864.  
  11865.  
  11866.  
  11867.  
  11868.  
  11869.  
  11870.  
  11871.  
  11872. Moy                                                           [Page 212]
  11873.  
  11874. RFC 1583                     OSPF Version 2                   March 1994
  11875.  
  11876.  
  11877. F. An algorithm for assigning Link State IDs
  11878.  
  11879.     In RFC 1247, the Link State ID in AS external link advertisements
  11880.     and summary link advertisements is set to the described network's IP
  11881.     address. This memo relaxes that requirement, allowing one or more of
  11882.     the network's host bits to be set in the Link State ID. This allows
  11883.     the router to originate separate advertisements for networks having
  11884.     the same addresses, yet different masks. Such networks can occur in
  11885.     the presence of supernetting and subnet 0s (see Section E.2 for more
  11886.     information).
  11887.  
  11888.     This appendix gives one possible algorithm for setting the host bits
  11889.     in Link State IDs.  The choice of such an algorithm is a local
  11890.     decision. Separate routers are free to use different algorithms,
  11891.     since the only advertisements affected are the ones that the router
  11892.     itself originates. The only requirement on the algorithms used is
  11893.     that the network's IP address should be used as the Link State ID
  11894.     (the RFC 1247 behavior) whenever possible.
  11895.  
  11896.     The algorithm below is stated for AS external link advertisements.
  11897.     This is only for clarity; the exact same algorithm can be used for
  11898.     summary link advertisements. Suppose that the router wishes to
  11899.     originate an AS external link advertisement for a network having
  11900.     address NA and mask NM1. The following steps are then used to
  11901.     determine the advertisement's Link State ID:
  11902.  
  11903.     (1) Determine whether the router is already originating an AS
  11904.         external link advertisement with Link State ID equal to NA (in
  11905.         such an advertisement the router itself will be listed as the
  11906.         advertisement's Advertising Router).  If not, set the Link State
  11907.         ID equal to NA (the RFC 1247 behavior) and the algorithm
  11908.         terminates. Otherwise,
  11909.  
  11910.     (2) Obtain the network mask from the body of the already existing AS
  11911.         external link advertisement. Call this mask NM2. There are then
  11912.         two cases:
  11913.  
  11914.         o   NM1 is longer (i.e., more specific) than NM2. In this case,
  11915.             set the Link State ID in the new advertisement to be the
  11916.             network [NA,NM1] with all the host bits set (i.e., equal to
  11917.             NA or'ed together with all the bits that are not set in NM1,
  11918.             which is network [NA,NM1]'s broadcast address).
  11919.  
  11920.         o   NM2 is longer than NM1. In this case, change the existing
  11921.             advertisement (having Link State ID of NA) to reference the
  11922.             new network [NA,NM1] by incrementing the sequence number,
  11923.             changing the mask in the body to NM1 and using the cost for
  11924.             the new network. Then originate a new advertisement for the
  11925.  
  11926.  
  11927.  
  11928. Moy                                                           [Page 213]
  11929.  
  11930. RFC 1583                     OSPF Version 2                   March 1994
  11931.  
  11932.  
  11933.             old network [NA,NM2], with Link State ID equal to NA or'ed
  11934.             together with the bits that are not set in NM2 (i.e.,
  11935.             network [NA,NM2]'s broadcast address).
  11936.  
  11937.     The above algorithm assumes that all masks are contiguous; this
  11938.     ensures that when two networks have the same address, one mask is
  11939.     more specific than the other. The algorithm also assumes that no
  11940.     network exists having an address equal to another network's
  11941.     broadcast address. Given these two assumptions, the above algorithm
  11942.     always produces unique Link State IDs. The above algorithm can also
  11943.     be reworded as follows: When originating an AS external link state
  11944.     advertisement, try to use the network number as the Link State ID.
  11945.     If that produces a conflict, examine the two networks in conflict.
  11946.     One will be a subset of the other. For the less specific network,
  11947.     use the network number as the Link State ID and for the more
  11948.     specific use the network's broadcast address instead (i.e., flip all
  11949.     the "host" bits to 1).  If the most specific network was originated
  11950.     first, this will cause you to originate two link state
  11951.     advertisements at once.
  11952.  
  11953.     As an example of the algorithm, consider its operation when the
  11954.     following sequence of events occurs in a single router (Router A).
  11955.  
  11956.  
  11957.     (1) Router A wants to originate an AS external link advertisement
  11958.         for [10.0.0.0,255.255.255.0]:
  11959.  
  11960.         (a) A Link State ID of 10.0.0.0 is used.
  11961.  
  11962.     (2) Router A then wants to originate an AS external link
  11963.         advertisement for [10.0.0.0,255.255.0.0]:
  11964.  
  11965.         (a) The advertisement for [10.0.0,0,255.255.255.0] is
  11966.             reoriginated using a new Link State ID of 10.0.0.255.
  11967.  
  11968.         (b) A Link State ID of 10.0.0.0 is used for
  11969.             [10.0.0.0,255.255.0.0].
  11970.  
  11971.     (3) Router A then wants to originate an AS external link
  11972.         advertisement for [10.0.0.0,255.0.0.0]:
  11973.  
  11974.         (a) The advertisement for [10.0.0.0,255.255.0.0] is reoriginated
  11975.             using a new Link State ID of 10.0.255.255.
  11976.  
  11977.         (b) A Link State ID of 10.0.0.0 is used for
  11978.             [10.0.0.0,255.0.0.0].
  11979.  
  11980.  
  11981.  
  11982.  
  11983.  
  11984. Moy                                                           [Page 214]
  11985.  
  11986. RFC 1583                     OSPF Version 2                   March 1994
  11987.  
  11988.  
  11989.         (c) The network [10.0.0.0,255.255.255.0] keeps its Link State ID
  11990.             of 10.0.0.255.
  11991.  
  11992.  
  11993.  
  11994.  
  11995.  
  11996.  
  11997.  
  11998.  
  11999.  
  12000.  
  12001.  
  12002.  
  12003.  
  12004.  
  12005.  
  12006.  
  12007.  
  12008.  
  12009.  
  12010.  
  12011.  
  12012.  
  12013.  
  12014.  
  12015.  
  12016.  
  12017.  
  12018.  
  12019.  
  12020.  
  12021.  
  12022.  
  12023.  
  12024.  
  12025.  
  12026.  
  12027.  
  12028.  
  12029.  
  12030.  
  12031.  
  12032.  
  12033.  
  12034.  
  12035.  
  12036.  
  12037.  
  12038.  
  12039.  
  12040. Moy                                                           [Page 215]
  12041.  
  12042. RFC 1583                     OSPF Version 2                   March 1994
  12043.  
  12044.  
  12045. Security Considerations
  12046.  
  12047.     All OSPF protocol exchanges are authenticated. This is accomplished
  12048.     through authentication fields contained in the OSPF packet header.
  12049.     For more information, see Sections 8.1, 8.2, and Appendix D.
  12050.  
  12051. Author's Address
  12052.  
  12053.     John Moy
  12054.     Proteon, Inc.
  12055.     9 Technology Drive
  12056.     Westborough, MA 01581
  12057.  
  12058.     Phone: 508-898-2800
  12059.     Fax:   508-898-3176
  12060.     Email: jmoy@proteon.com
  12061.  
  12062.  
  12063.  
  12064.  
  12065.  
  12066.  
  12067.  
  12068.  
  12069.  
  12070.  
  12071.  
  12072.  
  12073.  
  12074.  
  12075.  
  12076.  
  12077.  
  12078.  
  12079.  
  12080.  
  12081.  
  12082.  
  12083.  
  12084.  
  12085.  
  12086.  
  12087.  
  12088.  
  12089.  
  12090.  
  12091.  
  12092.  
  12093.  
  12094.  
  12095.  
  12096. Moy                                                           [Page 216]
  12097.  
  12098.