Network Working Group J. Moy Internet DraftProteon, Inc.Cascade Expiration Date:November 1994May 1995 November 1994 File name:draft-ietf-ospf-demand-00.txtdraft-ietf-ospf-demand-01.txt Extending OSPF to support demand circuits Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of sixmonths. Internet-Draftsmonths and may be updated, replaced, or obsoleted by other documents at any time. It isnot appropriateinappropriate to useInternet-DraftsInternet- Drafts as reference material or to cite them other than asa "working draft" or"work in progress". To learn the current status of any Internet-Draft, please check the1id-abstracts.txt"1id-abstracts.txt" listing contained in theInternet-DraftsInternet- Drafts Shadow Directories onds.internic.net, nic.nordu.net, ftp.isi.edu,ds.internic.net (US East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), ormunnari.oz.au.munnari.oz.au (Pacific Rim). Abstract This memo defines enhancements to the OSPF protocol that allow efficient operation over "demand circuits". Demand circuits arethosenetwork segments whose costs vary with usage; charges can be based both on connect time and on bytes/packets transmitted. Examples ofsuchdemand circuits include ISDN circuits, X.25 SVCs, and dial-up lines. The periodic nature of OSPF routing traffic(as defined in [1]) requires such circuitshas until now required a demand circuit's underlying data-link connection to beopen constantly,constantly open, resulting in unwanted usage charges. With the modifications described herein, OSPF Hellos and the refresh of OSPF routing information aresuppressed, allowingsuppressed on demandcircuitscircuits, allowing the underlying data-link connections to be closed when not carrying application traffic. Demand circuits and regular network segments (e.g., leased lines) are allowed to be combined in any manner. In other words, there are no topological restrictions on the demand circuit support. However, while any OSPF network segment can be defined as a demand circuit, only point-to-point networks receive the full benefit. When broadcast and NBMA networks are declared demand circuits, routing update traffic is reduced but the periodic sending of Hellos is not, which in effect still requires that the data-linkcircuitsconnections be constantly open. While mainly intended for use with cost-conscious network links such as ISDN, X.25 and dial-up, the modifications in this memo may also prove useful over bandwidth-limited network links such as slow-speed leased lines and packet radio. The enhancements defined in this memo are backward-compatible with the OSPF specification defined in [1], and with the OSPF extensions defined in [3] (OSPF NSSA areas), [4] (MOSPF) and [8] (OSPF Point- to-MultiPoint Interface). This memo provides functionality comparable to that specified for RIP in [2]. However, because OSPFis aemploys link-state routingprotocol rather than atechnology as opposed to RIP's Distance Vectorprotocol,base, the mechanisms used to achievethatthe functionality are quite different. Please send comments to ospf@gated.cornell.edu. Acknowledgments The author would like to acknowledge the helpful comments of Fred Baker, Rob Coltun, Dawn Li, Gerry Meyer,andTomPusateri.Pusateri and Zhaohui Zhang. This memo is a product of the OSPF Working Group. Table of Contents 1 Model for demand circuits .............................. 4 2 Modifications to all OSPF routers ......................45 2.1 The OSPF Options field ................................. 5 2.2 The LS age field ....................................... 52.22.3 Removingold, non-agingstale DoNotAge LSAs ........................... 62.32.4 A change to the flooding algorithm ..................... 7 2.5 Interoperability with unmodified OSPF routers ..........68 2.5.1 Indicating across area boundaries ...................... 9 2.5.1.1 Limiting indication-LSA origination ................... 10 3 Modifications to demand circuit endpoints.............. 7............. 11 3.1Configuring demand circuits ............................ 7Interface State machine modifications ................. 11 3.2 Sending and Receiving OSPF Hellos...................... 8 3.3 Interface State..................... 11 3.2.1 Negotiating Hello suppression ......................... 12 3.2.2 Neighbor state machine modifications ..................8 3.412 3.3 Flooding over demand circuits.......................... 9......................... 13 3.4 Virtual link support .................................. 14 3.5 Point-to-MultiPoint Interface support ................. 15 4 Examples ..............................................1016 4.1 Example 1: Sole connectivity through demand circuits ..1016 4.2 Example 2: Demand and non-demand circuits in parallel .1420 4.3 Example 3: Operation whensuffering SVC shortage ...... 18oversubscribed .............. 24 5 Topology recommendations ..............................2025 6 Lost functionality ....................................2026 7 Future work: Oversubscription ......................... 26 ATheFormat of the OSPF Options field..................................... 22...................... 29 B Configurable Parameters ...............................2330 C Architectural Constants ...............................2330 References ............................................2431 Security Considerations ...............................2431 Author's Address ......................................2431 1. Model for demand circuits In this memo, demand circuits refer to those network segments whose cost depends on either connect timeor onand/or usage (expressed in terms of bytes or packets). Examples include ISDN circuits and X.25 SVCs. On these circuits, it is desirable for a routing protocol to send as little routing traffic as possible. In fact, when there is no change in network topology it is desirable for a routing protocol to send no routing traffic at all; this allows the underlying data-link connection to be closed when not needed for application data traffic. The model used within this memo for the maintenance of demand circuits is as follows. If there is no data to send (either routing protocol traffic or application data), the data-link connection remains closed. As soon as there is data to be sent, an attempt to open the data-link connection is made (e.g., an ISDN or X.25 call is placed).IfWhen/if the data-link connection issuccessful,established, the data is sent, and thecircuitconnection stays open until some period of time elapses without more data to send. At this point the data-link connection is again closed, in order to conserve cost and resources (see Section 1 of [2]). The "Presumption of Reachability" described in [2] is also used. Even though a circuit's data-link connection may be closed at any particular time, it is assumed by the routing layer (i.e., OSPF) thatitthe circuit is available unless other information, such as a discouraging diagnostic code resulting from an attempted data-link connection, is present. It may be possible that a data-link connection cannot beopenedestablished due to resource shortages. For example, a router with a single basic rate ISDN interface cannot open more than two simultaneous ISDN data-link connections (one for each B channel), and limitations in interface firmware and/or switch capacity may limit the number of X.25 SVCs simultaneously supported. When a router cannot simultaneously open all of its circuits' underlying data-link connections due to resource limitations, we say that the router is oversubscribed. In these cases, datagrams to be forwarded outthesethe (temporarily unopenable) data-link connections are discarded, instead of being queued. Note also that this temporary inability to open data-link connections due to oversubscription is NOT reported by the OSPF routing system as unreachability; see Section 4.3 for more information. This memo assumes that either end of a demand circuit can open the underlying data-link connection. Note that this assumption is not true for certain dial-up modems. Also, for some dial network technologies, call collisions can result when both ends of a circuit simultaneously attempt to establish the data-link connection. This memo does not address how such collisions are handled, assuming instead that they are resolved at the data-link level. 2. Modifications to all OSPF routers While most of the modifications to support demand circuits are isolated to the demand circuitendpoints,endpoints (see Section 3), there are changes required of all OSPF routers. These changes are described in the subsections below.Routers2.1. The OSPF Options field A new bit is added to the OSPF Options field to support the demand circuit extensions. This bit is called the "DC-bit". The resulting format of the Options field is described in Appendix A. A router implementingthese changes setthe functionality described in Section 2 of this memo sets the DC-bit in theoptionsOptions field oftheir router-LSA (see Section 2.3all LSAs that it originates. This is regardless of the LSAs' LS type, andAppendix A), even if they do not implementalso regardless of whether the router implements the more substantial modifications required of demand circuit endpoints (see Section 3). Setting the DC-bit in self-originated LSAs tells the rest of the routing domain that the router can correctly process DoNotAge LSAs (see Sections 2.2, 2.3 and 2.5). There is a single exception to the above rule. A router implementing Section 2 of this memo may sometimes originate an "indication-LSA"; these LSAs always have the DC-bit clear. Indication-LSAs aredescribed inused to convey across area boundaries the existence of routers incapable of DoNotAge processing; see Section3. 2.1.2.5.1 for details. 2.2. The LS age field The semantics of the LSA's LS age field are changed, allowing the high bit(DoNotAge; see Appendix C)to be set.Previously the LS age field could not exceed the value of MaxAge.This bit is called "DoNotAge"; see Appendix C for its formal definition. LSAs whose LS age field have the DoNotAge bit set are not aged while they are held in the link state database, which means that they do not have to be refreshed every LSRefreshInterval as is done with all other OSPF LSAs. By convention, in the rest of this memo we will express LS age fields having the DoNotAge set as "DoNotAge+x", while an LS age expressed as just "x" is assumednotto not have the DoNotAge bit set. LSAs having DoNotAge set are also sometimes referred to as "DoNotAge LSAs". When comparing two LSA instances to see which one is most recent, the two LSAs' LS age fields are compared whenever the LS sequence numbers and LS checksums are found identical (see Section 13.1 of [1]). Before comparing, the LS age fieldsshouldmust have their DoNotAge bits masked off. For example, in determining which LSA is more recent, LS ages of 1 and DoNotAge+1should beare considered equivalent; an LSA flooded with LS age of 1 may be acknowledged with a Link State Acknowledgement listing an LS age of DoNotAge+1, or vice versa.As a special case,In particular, DoNotAge+MaxAge is equivalent toMaxAge, and eitherMaxAge; however for backward- compatibility the MaxAge formcanshould always be usedto flushwhen flushing LSAs from the routing domain (see Section 14.1 of [1]). Thus, the set of allowable values for the LS age field fall into the two ranges: 0 through MaxAge and DoNotAge through DoNotAge+MaxAge. (Previously the LS age field could not exceed the value of MaxAge.) Any LS age field not falling into these two ranges should be considered to be equal to MaxAge. When an LSA is flooded outa non-demandan interface, the constant InfTransDelay is added to the LSA's LS age field. This happens even if the DoNotAge bit is set; in this case the LS age field is not allowed to exceedDoNotAge+MaxAge, at which timeDoNotAge+MaxAge. If the LS age field reaches DoNotAge+MaxAge during flooding, the LSA is flushed from the routing domain. This preserves the protection in [1] afforded against flooding loops.Flooding out demand interfaces is covered in Section 3.4. Thus, the set of allowable values for the LS age field fall into the two ranges: 0 through MaxAge and DoNotAge through DoNotAge+MaxAge. Any LS age field not falling into these two ranges should be considered to be equal to MaxAge.The LS age field is not checksum protected. Errors in a router's memory may mistakenly set an LSA's DoNotAge bit, stopping the aging of the LSA. However, a router should note that its own self-originated LSAs should never have the DoNotAge bit set in its own database. This means that in any case the router's self-originated LSAs will be refreshed every LSRefreshInterval. As this refresh is flooded throughout the OSPF routing domain, it will replace any LSA copies in other routers' databases whose DoNotAge bits were mistakenly set.2.2.2.3. Removingold, non-agingstale DoNotAge LSAs Because LSAs with the DoNotAge bit set are never aged, they can stay in the link state database even when the originator of the LSA no longer exists. To ensure that these LSAs are eventually flushed from the routing domain, and that the size of the link state database doesn't grow without bound, routers are required to flushana DoNotAge LSA if both of the following conditions are met: (1) The LSA has been in the router's database for at least MaxAge seconds. (2) The originator of the LSA has been unreachable (according to the routing calculations specified by Section 16 of [1]) forthe time MaxAge.at least MaxAge seconds. For an example, see Time T8 in the example of Section 4.1.ThisNote that the above functionality is an exception to the general OSPF rule that a router can only flush (i.e., prematurely age; see Section 14.1 of [1]) its own self-originated LSAs. The above functionality pertains only to DoNotAge LSAs. An LSA having DoNotAge clear still can be prematurely aged only by its originator; otherwise, the LSA must age naturally to MaxAge before being removed from the routing domain. An interval as long as MaxAge has been chosen to avoid any possibility of thrashing (i.e., flushing anadvertisementLSA only to have it reoriginated soon afterwards).2.3.Note that by the above rules, a DoNotAge LSA will be removed from the routing domain no faster than if it were being aged naturally (i.e., if DoNotAge were not set). 2.4. A change to the flooding algorithm The following change is made to the OSPF flooding algorithm. When a Link State Update Packet is received that contains an LSA instance which is actually less recent than the the router's current database copy, the router must now respond by sending its database copy (encapsulated in a Link State Update Packet) back to the sending neighbor. When doing so, the LSA is NOT added to the neighbor's link state retransmission list. The previous behavior was to ignore the flood of the less recent LSA instance; see Step 8 of Section 13 in [1]. This change is necessary to support flooding over demand circuits. For example, see Time T4 in the example of Section 4.2. However, this change is beneficial when flooding over non-demand interfaces as well. For this reason, the flooding change pertains to all interfaces, not just interfaces to demand circuits. The main example involves MaxAge LSAs. There are times when MaxAge LSAs stay in a router's database for extended intervals: 1) when they are stuck in a retransmission queue on a slow link or 2) when a router is not properly flushing them from its database, due to software bugs. The prolonged existence of these MaxAge LSAs can inhibit the flooding of new instances of the LSA. New instances typically start with the initial LS sequence number, and are treated as less recent (and hence discarded) by routers still holding MaxAge instances. However, with the above change to flooding, a router with a MaxAge instance will respond back with the MaxAge instance. This will get back to the LSA's originator, which will then pick the next highest LS sequence number and reflood, overwriting the MaxAge instance. This change will be included in future revisions of the base OSPF specification [1]. 2.5. Interoperability with unmodified OSPF routers Unmodified OSPF routers will probably treatLSAs with theDoNotAgebit setLSAs as if they had LS age of MaxAge. At the very worst, this will cause continual retransmissions ofLSAs withthe DoNotAgebit set.LSAs. (An example scenario follows. Suppose Routers A and B are connected by a point-to-point link. Router A implements the demand circuit extensions, Router B does not. Neither one treats their connecting link as a demand circuit. At some point in time, Router A receives from another neighbor via flooding a DoNotAge LSA. The DoNotAge LSA is then flooded by Router A to Router B. Router B, not understanding DoNotAge LSAs, treats it as a MaxAge LSA and acknowledges it as such to Router A. Router A receives the acknowledgment, but notices that the acknowledgment is for a different instance, and so starts retransmitting the LSA.) However, to avoid this confusion,advertisements withDoNotAgesetLSAs will be allowed in an OSPF area if and only if, in the area's link state database, allrouter-LSAs and type-4-summary-LSAs (location of ASBRs)LSAs havetheirthe DC-bit set(indicatingin theirability to process DoNotAge).Options field (see Section 2.1). Note that it is not required that the LSAs' Advertising Routerisbe reachable; if any LSA is found not having its DC-bit set (regardless of reachability), then the router should flush (i.e., prematurely age; see Section 14.1 of [1]) from the area alladvertisements havingDoNotAgeset;LSAs. These LSAs will then be reoriginated at their sources, this time with DoNotAge clear. Like the change in Section 2.3, this change is an exception to the general OSPF rule that a router can only flush its own self-originated LSAs.When flushing, the LSAs'Both changes pertain only to DoNotAge LSAs, and in both cases a flushed LSA's LS age field should be set to MaxAge and not DoNotAge+MaxAge.(As an implementation suggestion, a new variable "DCBitLessLSAs" could be added to the OSPF2.5.1. Indicating across areadata structure in Section 6 of [1]. This variable would count the number ofboundaries AS-external-LSAs are flooded throughout thearea's router- LSAsentire OSPF routing domain, excepting only OSPF stub areas andtype-4-summary-LSAsNSSAs. For thatdoreason, if an OSPF router that is incapable of DoNotAge processing exists in any "regular" area (i.e., an area that is not a stub nor an NSSA), no AS-external-LSA can havethe DC-bitDoNotAge set. Thisvariable would potentially increment/decrement any time a new LSA was received or an old LSA was replaced or flushed.) In particular, AS-external-LSAs withmemo simplifies that requirement by broadening it to the following rule: LSAs in regular OSPF areas are allowed to have DoNotAgebitsetcannot existif and only if every router in theroutingOSPF domainunless all routers(excepting those inall "regular OSPF areas" (all areas that are neitherstub areasnorand NSSAs)areis capable of DoNotAge processing. The rest of this section describes how the rule is implemented. As described above in Sections 2.1 and 2.5, a router indicates that it is capable of DoNotAge processingDoNotAge. In orderby setting the DC-bit in the LSAs that it originates. However, there is a problem. It is possible that, in all areas toconvey thiswhich Router X directly attaches, all the routers are capable of DoNotAge processing, yet there is some router in a remote "regular" area that cannot process DoNotAge LSAs. This information must then be conveyed to Router X, so that it does not mistakenly flood/create DoNotAge LSAs. The solution is as follows. Area border routers transmit the existence of DoNotAge-incapable routers across area boundaries, using "indication-LSAs". Indication-LSAs are type-4-summary LSAs (also called ASBR-summary-LSAs), listing the area borderrouters mustrouter itself as the described ASBR, with the LSA's cost set to LSInfinity and the DC-bitin a type-4-summary-LSAclear. Note that indication-LSAs convey no additional information; in particular, theyoriginateare used even if the area border router is not really an AS boundary router (ASBR). Taking indication-LSAs into account, the rule as to whether DoNotAge LSAs are allowed in any particular area is EXACTLY the same as given previously in Section 2.5, namely: DoNotAge LSAs will be allowed in an OSPF area if and onlyifif, in thedescribed ASBR hasarea's link state database, all LSAs have the DC-bit set inits original router-LSA. Additionally, sometimes in maytheir Options field. Through origination of indication-LSAs, the existence of DoNotAge-incapable routers can benecessaryviewed as going from non- backbone regular areas, toconvey across areasthe backbone area and from there to all other regular areas. The following two cases summarize the requirements for an area border router to originate indication-LSAs: (1) Suppose an area border router (Router X) is connected to a regular non-backbone OSPF area (Area A). Furthermore, assume that Area A has LSAs with theexistenceDC-bit clear, other than indication-LSAs. Then Router X should originate indication-LSAs into all other directly-connected "regular" areas, including the backbone area, keeping the guidelines of Section 2.5.1.1 in mind. (2) Suppose an area border router (Router X) is connected to the backbone OSPF area (Area 0.0.0.0). Furthermore, assume that the backbone has LSAs with the DC-bit clear that are either a) not indication-LSAs or b) indication-LSAs that have been originated by routers other than Router X itself. Then Router X should originate indication-LSAs into all other directly- connected "regular" non-backbone areas, keeping the guidelines of Section 2.5.1.1 in mind. 2.5.1.1. Limiting indication-LSA origination To limit the number of indication-LSAs originated, the following guidelines should be observed by an area border router (Router X) when originating indication- LSAs. First, indication-LSAs are not originated into an Area A when A already has LSAs with DC-bit clear other than indication-LSAs. Second, if another area border router has originated anon-ASBRindication-LSA into Area A, and thatcannot process DoNotAge.area border router has a higher OSPF Router ID than Router X (same tie-breaker as for forwarding address origination; see Section 12.4.5 of [1]), then Router X should not originate an indication-LSA into Area A. As an example, suppose that three regular OSPF areas (Areas A, B and C) are connected by routers X, Y and Z (respectively) to the backbone area. Furthermore, suppose that all routers are capable of DoNotAge processing, except for routers in Areas A and B. Finally, suppose that Router Z has a higher Router ID than Y, which in turn has a higher Router ID than X. In this case,a type-4-summary-LSA shouldtwo indication-LSAs will beoriginated with costgenerated (if the rules ofLSInfinitySection 2.5.1 andDC-bit clear.the guidelines of the preceding paragraph are followed): Router Y will originate an indication-LSA into the backbone, and Router Z will originate an indication-LSA into Area C. 3. Modifications to demand circuit endpoints The following subsections detail the modifications required of the routers at the endpoints of demand circuits.This consistsThese consist of modifications to two main pieces of OSPF: 1) sending and receivinghellosHello Packets over demand circuits and 2) flooding LSAs over demand circuits.3.1. Configuring demand circuitsAn additional OSPF interface configuration parameter, DemandInterface, is defined to indicate whether an OSPF interface connects to a demand circuit (see Appendix B).On point-to-pointTwo routers connecting to a common network segment need not agree on that segment's demandcircuits,circuit status. However, to get full benefit of theneighboring routerdemand circuit extensions, the two ends of a point-to-point link must both agreethatto treat thepoint-to-pointlink as a demand circuit (see Section 3.2). 3.1. Interface State machine modifications An OSPF point-to-point interface connecting to a demand circuit is considered to be in state "Point-to-point" if and only if its associated neighbor is in state "1-Way" or greater; otherwise the interface is considered to be in state "Down". Hellos are sent out such an interface when it is in "Down" state, at the reduced interval of PollInterval. If the negotiation in Section 3.2.1 succeeds, Hellos will cease to be sent out the interface whenever the associated neighbor reaches state "Full". Note that as a result, an "LLDown" event for the point-to-point demandcircuit.circuit's neighbor forces both the neighbor and the interface into state "Down" (see Section 3.2.2). For OSPF broadcast and NBMA networks that have been configured as demand circuits, there are no changes to the Interface State Machine. 3.2. Sending and Receiving OSPF Hellos The following sections describe the required modifications to OSPF Hello Packet processing on point-to-point demand circuits. For OSPF broadcast and NBMA networks that have been configured as demand circuits, there is no change to the sending and receiving of Hellos, nor are there any changes to the Neighbor State Machine. This is because the proper operation of the Designated Router election algorithm requires periodic exchange of Hello Packets. 3.2.1. Negotiating Hello suppression On point-to-point demand circuits, both endpoints must agree to suppress the sending of Hello Packets. To ensure this agreement,thea router sets the DC-bit in OSPF Hellos(andand Database DescriptionPackets)Packets sent out the demand interface. Receiving an Hello or a Database Description Packet with the DC-bit set indicates agreement. Receiving an Hello with the DC-bit clear and also listing the router's Router ID in the body of the Hello message, or a Database Description Packet with the DC-bit clear (either one indicating bidirectional connectivity) indicates that the other end refuses totreat the link as a demand circuit.suppress Hellos. In these latter cases, the router reverts totreatingthelink as a leased line. The above procedure indicates that anormal periodic sending of Hello Packets out the interface (see Section 9.5 of [1]). A demand point-to-point circuit need be configured in only one of the two endpoints (see Section 4.1). Ifthe negotiation fails,a router implementing Sections 2 and 3 of this memo receives an Hello Packet with therouter is forced toDC-bit set, it should treat thelinepoint-to- point link as aleased line,demand circuit, making the appropriate changes to its Hello Processing (see Section 3.2.2) and flooding (see Section 3.3). Even if the above negotiation fails, the routercan always renegotiateshould continue setting thelink's demand statusDC-bit in its Hellos and Database Descriptions (the neighbor will just ignore the bit). The router will then automatically attempt to renegotiate Hello suppression whenever the link goesdown.down and comes back up. For example, if the neighboring router is rebooted with software that is capable of operating over demandcircuits,circuits (i.e., implements Sections 2 and 3 of this memo), a future negotiation will succeed.For more information on sending OSPFAlso, even if the negotiation to suppress Hellosover demand circuits, seefails, the flooding modifications described in Section3.2. 3.2. Sending and Receiving OSPF Hellos Over point-to-point demand circuits OSPF3.3 are still performed over the link. 3.2.2. Neighbor state machine modifications When the above negotiation succeeds, HellopacketsPackets are sent over point-to-point demand circuits only until initial link-state database synchronization is achieved with the neighbor (i.e., the state of the neighbor connection reaches "Full", as defined in Section 10.1 of [1]). After this, Hellos are suppressed and the data-link connection to the neighbor is assumed available until evidence is received to the contrary. When the router finds that the neighbor is no longer available, presumably from something like a diagnostic code contained in a response to a failed call request, the neighbor connection transitions back to "Down" and Hellos are sent periodically (at Intervals of PollInterval) in an attempt to restart synchronization with the neighbor. This requires changes to the OSPF Neighbor State Machine (see Section 10.3 of [1]). The receipt of Hellos from demand circuit neighbors in state "Loading" orhigher cannot"Full" can no longer be required. In other words, the InactivityTimer event defined in Section 10.2 of [1] has no effect on demand circuit neighbors in state "Loading" orhigher."Full". An additional clarification is needed in the Neighbor State Machine's LLDown event.ThisFor demand circuits, this event should be mapped into the "discouraging diagnostic code" discussedabovepreviously in Section 1, and should not be generated when the data-link connection has been closed simply to save resources.For OSPF broadcast and NBMA networks that have been configured as demand circuits, there is no change to the sending and receiving of Hellos, nor are there any changes to the Neighbor State Machine. This is because the proper operation of the Designated Router election algorithm requires periodic exchange of Hello Packets. 3.3. Interface State machine modifications OSPF interfaces to point-to-point demand circuits are considered toNor should LLDown bein "Point-to-point" state if and onlygenerated ifthey haveaneighbor in state "1-Way" or greater, otherwise they are considereddata-link connection fails due tobe in state "Down". However, as discussed above in Section 3.2, Hellos are sent out interfaces in "Down" state, at the reduced intervaltemporary lack ofPollInterval. Hellos cease to be sent out the interface whenever the associated neighbor reaches state "Full". Note that as a result, an "LLDown" event for the point-to-point demand circuit's neighbor forces both the neighbor and the interface into state "Down". For OSPF broadcast and NBMA networks that have been configured as demand circuits, there are no changes to the Interface State Machine. 3.4.resources. 3.3. Flooding over demand circuits Flooding over demand circuits (point-to-point or otherwise) is modified if and only if all routers have indicated that they can process LSAs having DoNotAge set. This is determined by examining the link state database of the OSPF area containing the demand circuit. All LSAs in therouter-LSAs and type-4-summary-LSAsdatabase must have theDC-bitDC- bit set. If one or more LSAs have the DC-bit clear, flooding over demand circuits is unchanged from [1].(In particular, router-LSAs or type-4-summary-LSAs that do not have the DC-bit set are flooded unchanged from [1], because their reception inhibits the flooding behavior defined below).Otherwise, flooding is changed as follows.First, only(1) Only truly changed LSAs are flooded over demand circuits. When a router receives a new LSA instance, it checks first to see whether the contents have changed. If not, the new LSA is simply a periodic refresh and it is not flooded out attached demand circuits (it is still flooded out other interfaces however). This check should be performed in Step 5b of Section 13 in [1]. When comparing an LSA to its previous instance, the following are all considered to be changes in contents: o The LSA's Options field has changed. o One or both of the LSA instances has LS age set to MaxAge (or DoNotAge+MaxAge). o The length field in the LSA header has changed. o The contents of the LSA, excluding the 20-byte link state header, have changed. Note that this excludes changes in LS Sequence Number and LS Checksum.Second, when(2) When it has been decided to flood an LSA over a demand circuit, DoNotAge should be set in the copy of the LSA that is flooded out the demand interface. (There is one exception: DoNotAge should not be set if the LSA's LS agefield before flooding. Thisis equal to MaxAge.) Setting DoNotAge will cause the routers on the other side of the demand circuit to hold the LSA in theirdatabasedatabases indefinitely, removing the need for periodic refresh. Note that it is perfectly possible that DoNotAge will already be set. This simply indicates that the LSA has already been flooded over demand circuits. In any case, the flooded copy's LS age field must also be incremented by InfTransDelaybefore flooding(see Step 5 of Section 13.3 in[1]),[1], and Section 2.2 of this memo), as protection against flooding loops. Theaboveprevious paragraph also pertains to LSAs flooded over demand circuits in response to Link State Requests.Third, when receiving a Link State Update from aIt also pertains to LSAs that are retransmitted over demand circuits. 3.4. Virtual link support OSPF virtual links are essentially unnumbered point-to-point links (see Section 15 of [1]). Accordingly, demand circuitneighbor that contains an LSA instancesupport for virtual links resembles that described for point- to-point links in the previous sections. The main difference isactually older thanthat a router implementing Sections 2 and 3 of this memo, and supporting virtual links, always treats virtual links as if they were demand circuits. Otherwise, when a virtual link's underlying physical path contains one or more demand circuits, periodic OSPF protocol exchanges over the virtual link would unnecessarily keep therouter's current copy,underlying demand circuits open. Demand circuit support on virtual links can be summarized as follows: o Instead of modifying therouter must respond by flooding its current LSA copy directly toInterface state machine for virtual links as was done for point-to-point links in Section 3.1, theneighbor (without puttingInterface state machine for virtual links remains unchanged. A virtual link is considered to be in state "Point-to-point" if an intra-area path (through theLSA onvirtual link's transit area) exists to theneighbor's Link State retransmission list). Thisother endpoint. Otherwise it isinsteadconsidered to be in state "Down". See Section 15 of [1] for more details. o Virtual links are always treated as demand circuits. In particular, over virtual links a router always negotiates to suppress the sending of Hellos. See Sections 3.2.1 and 3.2.2 for details. o In thebehavior specifieddemand circuit support over virtual links, there is no "discouraging diagnostic code" as described inStep 8 ofSection131. Instead, the connection is considered to exist if and only if an intra-area path (through the virtual link's transit area) exists to the other endpoint. See Section 15 of [1] for more details. o Since virtual links are always treated as demand circuits, flooding over virtual links always proceeds as in[1],Section 3.3. 3.5. Point-to-MultiPoint Interface support The OSPF Point-to-MultiPoint interface has recently been developed for use with non-mesh-connected network segments. A common example is a Frame Relay subnet where PVCs are provisioned between some pairs of routers, but not all pairs. In this case the Point-to-Multipoint interface represents the single physical interface to the Frame relay network, over whichwould effectively ignoremultiple point-to-point OSPF conversations (one on each PVC) are taking place. For more information on thefloodPoint-to-MultiPoint interface, see [8]. Since an OSPF Point-to-MultiPoint interface essentially consists of multiple point-to-point connections, demand circuit support on theolder advertisement. To seePoint-to-Multipoint interface strongly resembles demand circuit support for point-to-point links. However, since thenecessityPoint-to-MultiPoint interface requires commonality ofrespondingits component point-to-point links' configurations, there are some differences. Demand circuit support on Point-to-Multipoint interfaces can be summarized as follows: o Instead of modifying the Interface state machine for Point- to-Multipoint interfaces as was done for point-to-point links in Section 3.1, the Interface state machine for Point-to-Multipoint interfaces remains unchanged. o When a Point-to-MultiPoint interface is configured as a DemandInterface, it tries toold LSAs, see Time T4negotiate Hello suppression separately on each of its component point-to-point links. This negotiation proceeds as in Section4.2.3.2.1. Negotiation may fail on some component point-to-point links, and succeed on others. This is acceptable. On those component links where the negotiation fails, Hellos will always be sent; otherwise, Hellos will cease to be sent when the Database Description process completes on the component link (see Section 3.2.2). o Section 3.3 defines the demand circuit flooding behavior for all OSPF interface types. This includes Point-to-Multipoint interfaces. 4. Examples This section gives three examples of the operation over demand circuits. The first example is probably the most common and certainly the most basic. It shows a single point-to-point demand circuit connecting two routers. The second illustrates what happens when demand circuits and leased lines are used in parallel. The third explains what happens when a router has multiple demand circuits and cannot keep them all open (for resource reasons) at the same time. 4.1. Example 1: Sole connectivity through demand circuits Figure 1 shows a sample internetwork with a single demand circuit providing connectivity to the LAN containing Host H2. Assume that all three routers (RTA, RTB and RTC) have implemented the functionality in Section 2 of this memo, and thus will be setting the DC-bit in theirrouter-LSAs.LSAs. Furthermore assume that Router RTB has been configured to treat the link to Router RTC as a demand circuit, but Router RTC has not been so configured. Finally assume that the LAN interface connecting Router RTA to Host H1 is initially down. The following sequence of events may then transpire, starting with Router RTB booting and bringing up its link to Router RTC:+ + + | +---+ | | +--+ |---|RTA|---| | +--+ |H1|---| +---+ | |---|H2| +--+ | | +---+ ODL +---+ | +--+ |LAN Y |---|RTB|-------------|RTC|---| + | +---+ +---+ | + + Figure 1: A single demand circuit (labeled ODL) bisecting an internetwork.Time T0: RTB negotiatesdemand circuit statusHello suppression Router RTB will start sending Hellos over the demand circuit with the DC-bit set in the Hello's Options field. Because RTC is not configured to treat the link as a demand circuit, the first Hello received from RTCmaywill not have the DC-bit set. However, subsequent Hellos and Database Description + + + | +---+ | | +--+ |---|RTA|---| | +--+ |H1|---| +---+ | |---|H2| +--+ | | +---+ ODL +---+ | +--+ |LAN Y |---|RTB|-------------|RTC|---| + | +---+ +---+ | + + Figure 1: In the example of Section 4.1, a single demand circuit (labeled ODL) bisects an internetwork. Packets received from RTC will have the DC-bit set, indicating that the two routers have agreed that the link will be treated as a demand circuit. The entire negotiation is pictured in Figure 2. Note that if RTC were unable or unwilling totreatsuppress Hellos on thelink as a demand circuit,link, the initial Database Description sent from Router RTC to RTB would have the DC-bit clear, forcingtreatment ofRouter RTB to revert to thelink as a leased line. +---+ +---+ |RTB| |RTC| +---+ +---+ Hello (DC-bit set) -------------------------------------> Hello (DC-bit clear) <------------------------------------- Hello (DC-bit set, RTC seen) -------------------------------------> Database Description (DC-bit set) <------------------------------------- Figure 2: Successful negotiationperiodic sending ofa link's demand circuit status.Hellos specified in Section 9.5 of [1]. Time T1: Database exchange over demand circuit The initial synchronization of link state databases (the Database Exchange Process) over the demand circuit then occurs as over any point-to-point link, with one exception. +---+ +---+ |RTB| |RTC| +---+ +---+ Hello (DC-bit set) -------------------------------------> Hello (DC-bit clear) <------------------------------------- Hello (DC-bit set, RTC seen) -------------------------------------> Database Description (DC-bit set) <------------------------------------- Figure 2: Successful negotiation of Hello suppression. LSAs included in Linkstate updatesState Updates Packets sent over the demand circuit (in response to Link State Request Packets), will have the DoNotAge bit set in their LS age field. So, after the Database Exchange Process is finished, all routers will have 3 LSAs in their link state databases (router-LSAs for Routers RTA, RTB and RTC), but the LS age fields belonging to the LSAs will vary depending on which side of the demand circuit they were originated from (see Table 1). For example, all routers other than Router RTC have the DoNotAge bit set in Router RTC's router-LSA; this removes the need for Router RTC to refresh its router-LSA over the demand circuit. Time T2: Hello traffic ceases After the Database Exchange Process has completed, no Hellos are sent over the demand circuit. If there is no application data to be sent over the demand circuit, the circuit will be idle. Time T3: Underlying data-link connection torn down After some period of inactivity, the underlying data-link connection will be torn down (e.g., an ISDN callwillwould be cleared) in order to save connect charges. This will be transparent to the OSPF routing; no LSAs or routing table entries will change as a result. LS age LSA in RTB in RTC ______________________________________________ RTA's Router-LSA 1000 DoNotAge+1001 RTB's Router-LSA 10 DoNotAge+11 RTC's Router-LSA DoNotAge+11 10 Table 1: After Time T1 in Section 4.1, possible LS age fields on either side of the demand circuit Time T4: Router RTA's LSA is refreshed At some point Router RTA will refresh its own router-LSA (i.e., when the LSA's LS age hits LSRefreshInterval). This refresh will be flooded to Router RTB, who will look at it and decide NOT to flood it over the demand circuit to Router RTC, because the LSA's contents have not really changed (only the LS Sequence Number). At this point, the LS sequence numbers that the routers have for RTA's router-LSA differ depending on which side of the demand circuit the routers lie. Because there is still no application traffic, the underlying data-link connection remains disconnected. Time T5: Router RTA's LAN interface comes up When Router RTA's LAN interface (connecting to Host H1) comes up, RTA will originate a new router-LSA. This router- LSA WILL be flooded over the demand circuit because its contents have now changed. The underlying data-link connection will have to be brought up to flood the LSA. After flooding, routers on both sides of the demand circuit will again agree on the LS Sequence Number for RTA's router-LSA. Time T6: Underlying data-link connection is torn down again Assuming that there is still no application traffic transiting the demand circuit, the underlying data-link connection will again be torn down after some period of inactivity. Time T7: File transfer started between Hosts H1 and H2 As soon as application data needs to be sent across the demand circuit the underlying data-link connection is brought back up. Time T8: Physical link becomes inoperative If an indication is received from the data-link or physical layers indicating that the demand circuit can no longer be established, Routers RTB and RTC declare their point-to- point interfaces down, and originate new router-LSAs. Both routers will attempt to bring the connection back up by sending Hellos at the reduced rate of PollInterval. Note that while the connection is inoperative, Routers RTA and RTB will continue to have an old router-LSA for RTC in their link state database, and this LSA will not age out because it has the DoNotAge bit set. However, according to Section2.22.3 they will flush Router RTC's router-LSA if the demand circuit remains inoperative for longer than MaxAge. 4.2. Example 2: Demand and non-demand circuits in parallel This example demonstrates the demand circuit functionality when both demand circuits and non-demand circuits (e.g., leased lines) are used to interconnect regions of an internetwork. Such an internetwork is shown in Figure 3. Host H1 can communicate with Host H2 either over the demand link between Routers RTB and RTC, or over the leased line between Routers RTB and RTD. Because the basic properties of the demand circuit functionality were presented in the previous example, this example will only address the unique issues involved when using both demand and non-demand circuits in parallel. Assume that Routers RTB and RTY are powered off, but that all other routers and their attached links are both operational and implement the demand circuit modifications to OSPF. Throughout the example, a TCP connection between Hosts H1 and H2 is transmitting data. Furthermore, assume that the cost of the demand circuit from RTB to RTC has been set considerably higher than the cost of the leased line between RTB and RTD; for this reason traffic between Hosts H1 and H2 will always be sent over the leased line when it is operational. The following events may then transpire: Time T0: Router RTB comes up. Assume RTB supports the demand circuit OSPF modifications. When Router RTB comes up and establishes links to Routers RTC and RTD, it will flood the same information over both. However, LSAs sent over the demand circuit (to Router RTC) will have the DoNotAge bit set, while those sent over the leased line to Router RTD will not. Because the DoNotAge bit is not taken into account when comparing LSA instances, the routers on the right side of RTB (RTC, RTE and RTD) may or may not have the DoNotAge bit set inthetheir database copies ofthe RTARTA's andRTB router-LSAs contained in their database.RTB's router-LSAs. This depends on whether the LSAs sent over the demand link reach the routers before those sent over the leased line. One possibility is pictured in Table 2. + +---+ | |RTC|--| + +---+ | +---+ | + / |--|RTE|--| +--+ +--+ | /ODL | +---+ |--|H2| |H1|----| +---+ +---+/ | + +--+ +--+ |--|RTA|-------|RTB| | | +---+ +---+\ | + + \ | +---+ | \ |--|RTY|--| +---+ | +---+ | |RTD|--| + +---+ | + Figure 3:A sampleExample 2's internetwork. Vertical lines are LAN segments. Six routers are pictured, Routers RTA-RTE and RTY. RTB has three serial line interfaces, two of which are leased lines and the third (connecting to RTC) a demand circuit. Two hosts, H1 and H2, are pictured to illustrate the effect of application traffic. LS age LSA in RTC in RTD in RTE ________________________________________________ RTA's Router-LSA DoNotAge+20 21 21 RTB's Router-LSA DoNotAge+5 6 6 Table 2: After TimeT0,T0 in Example 2, LS age fields on the right side of Router RTB. LS age LSA in RTC in RTD in RTE _______________________________________________ RTA's Router-LSA 5 6 6 RTB's Router-LSA DoNotAge+5 1785 1785 Table 3: After TimeT2,T2 in Example 2, LS age fields on the right side of Router RTB. LS age LSA in RTC in RTD in RTE _______________________________________________________ RTA's Router-LSA 325 326 326 RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6 Table 4: After TimeT3,T3 in Example 2, LS age fields on the right side of Router RTB. LS age LSA in RTC in RTD in RTE _______________________________________________________ RTA's Router-LSA DoNotAge+7 DoNotAge+8 DoNotAge+8 RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6 Table 5: After TimeT4,T4 in Example 2, LS age fields on the right side of Router RTB. Time T1: Underlying data-link connection is torn down. All application traffic is flowing over the leased line connecting Routers RTB and RTD instead of the demand circuit, due to the leased line's lesser OSPF cost. After some period of inactivity, the data-link connection underlying the demand circuit will be torn down. This does not affect the OSPF database or the routers' routing tables. Time T2: Router RTA refreshes its router-LSA. When Router RTA refreshes its router-LSA (as all routers do every LSRefreshInterval), Router RTB floods the refreshed LSA over the leased line but not over the demand circuit, because the contents of the LSA have not changed. This new LSA will not have the DoNotAge bit set, and will replace the old instances (whether or not they have the DoNotAge bit set) by virtue of its higher LS Sequence number. This is pictured in Table 3. Time T3: Leased line becomes inoperational. When the leased line becomesoperational,inoperational, the data-link connection underlying the demand circuit will be reopened, in order to flood a new (and changed) router-LSA for RTB and also to carry the application traffic between Hosts H1 and H2.At this point,After flooding the new LSA, all routers on the right side of the demand circuit will have DoNotAge set in their copy of RTB's router-LSA and DoNotAge clear in their copy of RTA's router-LSA (see Table 4). Time T4: In Router RTE, Router RTA's router-LSA times out. Refreshes of Router RTA's router-LSA are not being flooded over the demand circuit. However, RTA's router-LSA is aging in all of the routers to the right of the demand circuit. For this reason, the router-LSA will eventually beflushedaged out and reflooded (by router RTE in our example). Because thisflushedaged out LSA constitutes a real change (see Section3.4),3.3), it is flooded over the demand circuit from Router RTC to RTB. There are then two possible scenarios. First, the LS Sequencenumbersnumber for RTA's router-LSA mayhave divergedbe larger oneitherRTB's side of the demand link. In this case, when router RTB receives the flushed LSA it will respond by flooding back the more recent instance (see Section3.4).2.4). If instead the LS sequence numbers are the same, the flushed LSA will be flooded all the way back to Router RTA, which will then be forced to reoriginate theadvertisement.LSA. In any case, after a small period all the routers on the right side of the demand link will have the DoNotAge bit set in their copy of RTA's router-LSA (see Table 5). In the small interval between the flushing and waiting for a new instance of the LSA, there will be a temporary loss of connectivity between Hosts H1 and H2. Time T5: A non-supporting router joins. Suppose Router RTY now becomes operational, and does not support the demand circuit OSPF extensions. Router RTY's router-LSA thendoeswill not have the DC-bit set in its Options field, and as the router-LSA is flooded throughout the internetwork it flushes all LSAs having the DoNotAge bit set and causes the flooding behavior over the demand circuit to revert back to the normal flooding behavior defined in [1]. However, although all LSAs will now be flooded over the demand circuit, regardless of whether their contents have really changed, Hellos will still continue to be suppressed on the demand circuit (see Section3.2).3.2.2). 4.3. Example 3: Operation whensuffering SVC shortageoversubscribed Figure 4 shows a single Router (RT1) connected via demand circuits to three other routers (RT2-RT4). Assume that RT1 can only have two out of three underlying data-link connections open at once. This may be due to one of the followingreasons.reasons: Router RT1 may be using a singlePrimary rateBasic Rate ISDN interface (2 B channels) to support all three demandcircuits. Or,circuits, or, RT1 may be connected a data-link switch (e.g., X.25 or Frame relay) that is only capable of so many simultaneous data-link connections. The following events may transpire, starting with Router RT1 coming up. Time T0: Router RT1 comes up. Router RT1 attempts to establish neighbor connections and synchronize OSPF databases with routers RT2-RT4. But, because it cannot have data-link connections open to all three at once, it will synchronize with RT2 and RT3, while Hellos sent to RT4 will be discarded (see Section 1). Time T1: Data-link connection to RT2 closed due to inactivity. Assuming that no application traffic is being sent to/from Host H3, the underlying data-link connection to RT2 will eventually close due to inactivity. Then, the next Hello + +--+ +---+ |--|H3| +---------|RT2|--| +--+ / +---+ | / ODL + +--+ + / |H1|--| / + +--+ | +---+ ODL +---+ ||--|RT1|------------|RT3|--|+--+ |--|RT1|------------|RT3|--|--|H4| | +---+ +---+ | +--+ | \ + + \ODL \ + +--+ \ +---+ |--|H2| +--------|RT4|--| +--+ +---+ | + Figure 4:Behavior when not all of the demand circuits' data- link connections can be opened at once.Example 3's internetwork. that RT1 attempts to send to RT4 will cause that data-link connection to open and synchronization with RT4 will ensue. Note that, until this time, H2 will be considered unreachable by OSPF routing. However, data traffic would not have been deliverable to H2 until now in any case. Time T2: RT2's LAN interface becomes inoperational This causes RT2 to reissue its router-LSA. However, it may be unable to flood it to RT1 if RT1 already has data-link connectionsopenedopen to RT3 and RT4. While the data-link connection from RT2 to RT1 cannot be opened due to resource shortages, the new router-LSA will be continually retransmitted (and dropped by RT2's ISDN interface; seethe last paragraph ofSection 1). This means that theroutingrouters RT1, RT3 and RT4 will not detect the unreachability ofH4Host H3 until adata-linkdata- link connection on RT1 becomes available.Increasing the OSPF cost of demand circuits that are currently discarding application packets, due to underlying data-link shortage, may help the routing find paths that can actually deliver the packets. This however would create more routing traffic, and is an issue for future study.5. Topology recommendations Because LSAs indicating topology changes are still flooded over demand circuits, it is still advantageous to design networks so that the demand circuits are isolated from as many topology changes as possible. In OSPF, this is done by encasing the demand circuits within OSPF stub areas or within NSSAs (see [3]). In both cases, this isolates the demand circuits from AS external routing changes, which in many networks are the most frequent (see [6]). Stub areas can even isolate the demand circuits from changes in other OSPF areas. Also, considering the interoperation of OSPF routers supporting demand circuits and those that do not (see Section2.3),2.5), isolated stub areas or NSSAs can be converted independently to support demand circuits. In contrast, regular OSPF areas must all be converted before the functionality can take effect in any particular regular OSPF area. 6. Lost functionality The enhancements defined in this memo to support demand circuits come at some cost. Although we gain an efficient use of demand circuits, holding them open only when there is actual application data to send, we lose the following: Robustness In regular OSPF [1], all LSAs are refreshed every LSRefreshInterval. This provides protection against routers losing LSAs from (or LSAs getting corrupted in) their link state databases due to software errors, etc. Over demand circuits this periodic refresh is removed, and we depend on routers correctly holding LSAs marked with DoNotAge in their databases indefinitely. Database Checksum OSPF supplies network management variables, namely ospfExternLSACksumSum and ospfAreaLSACksumSum in [7], allowing a network management station to verify OSPF database synchronization among routers. However, these variables are sums of the individual LSAs' LS checksum fields, which are no longer guaranteed to be identical across demand circuits (because the LS checksum covers the LS Sequence Number, which will in general differ across demand circuits). This means that these variables can no longer be used to verify database synchronization in OSPF networks containing demand circuits. 7. Future work: Oversubscription An internetwork is oversubscribed when not all of its demand circuits' underlying connections can be open at once, due to resource limitations. These internetworks were addressed in Section 4.3. However, when all possible sources in the internetwork are +--+ + + +--+ |H1|--| +---+ ODL +---+ |--|H2| +--+ |--|RT1|-------|RT2|--| +--+ | +---+ +---+ | + | \ / | + | \ / | | \ / | |ODL / |ODL | / \ODL | | / \ | + | /ODL \ | + +--+ | +---+ +---+ | +--+ |H4|--|--|RT4|-------|RT3|--|--|H3| +--+ | +---+ ODL +---+ | +--+ + + Figure 5: Example of an oversubscribed internetwork +---+ +---+ +---+ +---+ |RT1|-------|RT2| |RT1| |RT2| +---+ +---+ +---+ +---+ | | | \ | | | \ | | | \ | | | \ | | | \ | | | \ | | | \ +---+ +---+ +---+ +---+ |RT4|-------|RT3| |RT4|-------|RT3| +---+ +---+ +---+ +---+ Figure 5a: One possible Figure 5b: Another possible pattern of data-link pattern of data-link connections connections active at once, problems can occur which are not addressed in this memo: (1) There is a network design problem. Does a subset of demand circuits exist such that a) their data-link connections can be open simultaneously and b) they can provide connectivity for all possible sources? This requires that (at least) a spanning tree be formed out of established connections. Figure 4 shows an example where this is not possible; Hosts H1 through H4 cannot simultaneously talk, since Router RT1 is limited to two simultaneously open demand circuits. (2) Even if it is possible that a spanning tree can form, will one? Given the model in Section 1, demand circuits are brought up when needed for data traffic, and stay established as long as data traffic is present. One example is shown in Figure 5. Four routers are interconnected via demand circuits, with each router being able to establish a circuit to any other. However, we assume that each router can only have two circuits open at once (e.g., the routers could be using Basic Rate ISDN). In this case, one would hope that the data-link connections in Figure 5a would form. But the connections in Figure 5b are equally likely, which leave Host H2 unable to communicate. One possible approach to this problem would be for a) the OSPF database to indicate which demand circuits have actually been established and b) implement a distributed spanning tree construction (see for example Chapter 5.2.2 of [9]) when necessary. (3) Even when a spanning tree has been built, will it be used? Routers implementing the functionality described in this memo do not necessarily know which data-link connections are established at any one time. In fact, they view all demand circuits as being equally available, whether or not they are established. So for example, even when the established connections form the pattern in Figure 5a, Router RT1 may still believe that the best path to Router RT3 is through the direct demand circuit. However, this circuit cannot be established due to resource shortages. On possible approach to this problem is to increase the OSPF cost of demand circuits that are currently discarding application packets (i.e., can't be established) due to resource shortages. This may help the routing find paths that can actually deliver the packets. On the downside, it would create more routing traffic. Also, unwanted routing oscillations may result when you start varying routing metrics to reflect dynamic network conditions; see [10]. A.TheFormat of the OSPF Options field The OSPF Options field is present in OSPF Hello packets, Database Description packets and all LSAs. The Options field enables OSPF routers to support (or not support) optional capabilities, and to communicate their capability level to other OSPF routers. Through this mechanism routers of differing capabilities can be mixed within an OSPF routing domain. The memo defines one of the Option bits: the DC-bit (for Demand Circuit capability). The DC-bit is set in a router'srouter-LSAself-originated LSAs if and only if it supports the functionality defined in Section32 of this memo. Note that this does not necessarily mean that the router can be the endpoint of a demand circuit, but only that it can properly process LSAs having the DoNotAge bit set. In contrast, the DC-bit is set in Hello Packets and Database Description Packets sent out an interface if and only if the router wants to treat the attached point-to-point network as a demand circuit (see Section3.1).3.2.1). The addition of the DC-bit makes the current assignment of the OSPF Options field as follows: +------------------------------------+ | * | * | DC | EA | N/P | MC | E | T | +------------------------------------+ Figure 5: The OSPF Options field T-bit This bit describes TOS-based routing capability, as specified in [1]. E-bit This bit describes the way AS-external-LSAs are flooded, as described in [1]. MC-bit This bit describes whether IP multicast datagrams are forwarded according to the specifications in [4]. N/P-bit This bit describes the handling of Type-7 LSAs, as specified in [3]. EA-bit This bit describes the router's willingness to receive and forward External Attributes LSAs, as specified in [5]. DC-bit This bit describes the handling of demand circuits, as specified in this memo. Its setting in Hellos and Database Description Packets is described inSection 3.1.Sections 3.2.1 and 3.2.2. Its setting in LSAs is described inSection 2.3.Sections 2.1 and 2.5. B. Configurable Parameters This memo defines a single additional configuration parameter for OSPF interfaces. In addition, the OSPF Interface configuration parameter PollInterval, previously used only on NBMA networks, is now also used on point-to-point networks (seeSection 3.3).Sections 3.1 and 3.2.2). DemandInterface Indicates whether the interface connects to a demand circuit. When set to TRUE, the procedures described in Section 3 of this memo are followed, in order to send a minimum of routing traffic over the demand circuit. On point-to-point networks, this allows the circuit to be closed when not carrying application traffic. Whenthe demand interface is configured to bea broadcast or NBMA network is configured to be a demand interface (see Section 1.2 of [1]), the circuit will be kept open constantly due to OSPF Hello traffic, but the amount of flooding traffic will still be greatly reduced. C. Architectural Constants This memo defines a single additional OSPF architectural constant. DoNotAge Equal to the hexadecimal value 0x8000,orwhich is the high bit of the 16-bit LS Age field in OSPF LSAs. When this bit is set in the LS age field, the LSA is not aged as it is held in the router's link state database. This allows the elimination of the periodic LSA refresh over demand circuits. See Section2.12.2 for more information on processing the DoNotAge bit. References [1] Moy, J., "OSPF Version 2", RFC 1583, Proteon, Inc., March 1994. [2] Meyer, G., "Extensions to RIP to Support Demand Circuits", RFC 1582, Spider Systems, February 1994. [3] Coltun, R. and V. Fuller, "The OSPF NSSA Option", RFC 1587, RainbowBridge Communications, Stanford University, March 1994. [4] Moy, J., "Multicast Extensions to OSPF", RFC 1584, Proteon, Inc., March 1994. [5] Ferguson, D., "The OSPF External Attributes LSA",Internet Draft, draft-ietf-ospf-extattr-00.txt, March 1993.work in progress. [6] Moy, J., editor, "OSPF protocol analysis", RFC 1245, Proteon, Inc., July 1991. [7] Baker F. and R. Coltun, "OSPF Version 2 Management Information Base", RFC 1253, ACC, University of Maryland, August 1991. [8] Baker F., "OSPF Point-to-MultiPoint Interface",Internet Draft, draft-ietf-ospf-pmp-if-00.txt, ACC, March 1994.work in progress. [9] Bertsekas, D. and Gallager R., "Data Networks", Prentice Hall, Inc., 1992. [10] Khanna, A., "Short-Term Modifications to Routing and Congestion Control", BBN Report 6714, BBN, February 1988. Security Considerations Security issues are not discussed in this memo. Author's Address John MoyProteon, Inc. 9 Technology Drive Westborough,Cascade Communications Corp. 5 Carlisle Road Westford, MA0158101886 Phone:508-898-2800508-692-2600 Ext. 394 Fax:508-898-3176508-692-9214 Email:jmoy@proteon.comjmoy@casc.com This document expires inNovember 1994.May 1995.