draft-ietf-ospf-demand-01.txt   rfc1793.txt 
Network Working Group J. Moy Network Working Group J. Moy
Internet Draft Cascade Request for Comments: 1793 Cascade
Expiration Date: May 1995 November 1994 Category: Standards Track April 1995
File name: draft-ietf-ospf-demand-01.txt
Extending OSPF to support demand circuits Extending OSPF to Support Demand Circuits
Status of this Memo Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working This document specifies an Internet standards track protocol for the
documents of the Internet Engineering Task Force (IETF), its areas, Internet community, and requests discussion and suggestions for
and its working groups. Note that other groups may also distribute improvements. Please refer to the current edition of the "Internet
working documents as Internet-Drafts. Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet- Drafts as
reference material or to cite them other than as "work in progress".
To learn the current status of any Internet-Draft, please check the
"1id-abstracts.txt" listing contained in the Internet- Drafts Shadow
Directories on ds.internic.net (US East Coast), nic.nordu.net
(Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
Rim).
Abstract Abstract
This memo defines enhancements to the OSPF protocol that allow This memo defines enhancements to the OSPF protocol that allow
efficient operation over "demand circuits". Demand circuits are efficient operation over "demand circuits". Demand circuits are
network segments whose costs vary with usage; charges can be based network segments whose costs vary with usage; charges can be based
both on connect time and on bytes/packets transmitted. Examples of both on connect time and on bytes/packets transmitted. Examples of
demand circuits include ISDN circuits, X.25 SVCs, and dial-up lines. demand circuits include ISDN circuits, X.25 SVCs, and dial-up lines.
The periodic nature of OSPF routing traffic has until now required a The periodic nature of OSPF routing traffic has until now required a
demand circuit's underlying data-link connection to be constantly demand circuit's underlying data-link connection to be constantly
open, resulting in unwanted usage charges. With the modifications open, resulting in unwanted usage charges. With the modifications
described herein, OSPF Hellos and the refresh of OSPF routing described herein, OSPF Hellos and the refresh of OSPF routing
information are suppressed on demand circuits, allowing the information are suppressed on demand circuits, allowing the
underlying data-link connections to be closed when not carrying underlying data-link connections to be closed when not carrying
application traffic. application traffic.
Demand circuits and regular network segments (e.g., leased lines) Demand circuits and regular network segments (e.g., leased lines) are
are allowed to be combined in any manner. In other words, there are allowed to be combined in any manner. In other words, there are no
no topological restrictions on the demand circuit support. However, topological restrictions on the demand circuit support. However,
while any OSPF network segment can be defined as a demand circuit, while any OSPF network segment can be defined as a demand circuit,
only point-to-point networks receive the full benefit. When only point-to-point networks receive the full benefit. When broadcast
broadcast and NBMA networks are declared demand circuits, routing and NBMA networks are declared demand circuits, routing update
update traffic is reduced but the periodic sending of Hellos is not, traffic is reduced but the periodic sending of Hellos is not, which
which in effect still requires that the data-link connections be in effect still requires that the data-link connections remain
constantly open. constantly open.
While mainly intended for use with cost-conscious network links such 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 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 prove useful over bandwidth-limited network links such as slow-speed
leased lines and packet radio. leased lines and packet radio.
The enhancements defined in this memo are backward-compatible with The enhancements defined in this memo are backward-compatible with
the OSPF specification defined in [1], and with the OSPF extensions the OSPF specification defined in [1], and with the OSPF extensions
defined in [3] (OSPF NSSA areas), [4] (MOSPF) and [8] (OSPF Point- defined in [3] (OSPF NSSA areas), [4] (MOSPF) and [8] (OSPF Point-
to-MultiPoint Interface). to-MultiPoint Interface).
This memo provides functionality comparable to that specified for This memo provides functionality similar to that specified for RIP in
RIP in [2]. However, because OSPF employs link-state routing [2], with the main difference being the way the two proposals handle
technology as opposed to RIP's Distance Vector base, the mechanisms oversubscription (see Sections 4.3 and 7 below). However, because
used to achieve the functionality are quite different. OSPF employs link-state routing technology as opposed to RIP's
Distance Vector base, the mechanisms used to achieve the demand
circuit functionality are quite different.
Please send comments to ospf@gated.cornell.edu. Please send comments to ospf@gated.cornell.edu.
Acknowledgments Acknowledgments
The author would like to acknowledge the helpful comments of Fred The author would like to acknowledge the helpful comments of Fred
Baker, Rob Coltun, Dawn Li, Gerry Meyer, Tom Pusateri and Zhaohui Baker, Rob Coltun, Dawn Li, Gerry Meyer, Tom Pusateri and Zhaohui
Zhang. This memo is a product of the OSPF Working Group. Zhang. This memo is a product of the OSPF Working Group.
Table of Contents Table of Contents
1 Model for demand circuits .............................. 4 1. Model for demand circuits .............................. 3
2 Modifications to all OSPF routers ...................... 5 2. Modifications to all OSPF routers ...................... 4
2.1 The OSPF Options field ................................. 5 2.1 The OSPF Options field ................................. 4
2.2 The LS age field ....................................... 5 2.2 The LS age field ....................................... 5
2.3 Removing stale DoNotAge LSAs ........................... 6 2.3 Removing stale DoNotAge LSAs ........................... 6
2.4 A change to the flooding algorithm ..................... 7 2.4 A change to the flooding algorithm ..................... 6
2.5 Interoperability with unmodified OSPF routers .......... 8 2.5 Interoperability with unmodified OSPF routers .......... 7
2.5.1 Indicating across area boundaries ...................... 9 2.5.1 Indicating across area boundaries ...................... 8
2.5.1.1 Limiting indication-LSA origination ................... 10 2.5.1.1 Limiting indication-LSA origination .................... 9
3 Modifications to demand circuit endpoints ............. 11 3. Modifications to demand circuit endpoints ............. 10
3.1 Interface State machine modifications ................. 11 3.1 Interface State machine modifications ................. 10
3.2 Sending and Receiving OSPF Hellos ..................... 11 3.2 Sending and Receiving OSPF Hellos ..................... 11
3.2.1 Negotiating Hello suppression ......................... 12 3.2.1 Negotiating Hello suppression ......................... 11
3.2.2 Neighbor state machine modifications .................. 12 3.2.2 Neighbor state machine modifications .................. 12
3.3 Flooding over demand circuits ......................... 13 3.3 Flooding over demand circuits ......................... 12
3.4 Virtual link support .................................. 14 3.4 Virtual link support .................................. 13
3.5 Point-to-MultiPoint Interface support ................. 15 3.5 Point-to-MultiPoint Interface support ................. 14
4 Examples .............................................. 16 4. Examples .............................................. 15
4.1 Example 1: Sole connectivity through demand circuits .. 16 4.1 Example 1: Sole connectivity through demand circuits .. 15
4.2 Example 2: Demand and non-demand circuits in parallel . 20 4.2 Example 2: Demand and non-demand circuits in parallel . 19
4.3 Example 3: Operation when oversubscribed .............. 24 4.3 Example 3: Operation when oversubscribed .............. 23
5 Topology recommendations .............................. 25 5. Topology recommendations .............................. 25
6 Lost functionality .................................... 26 6. Lost functionality .................................... 25
7 Future work: Oversubscription ......................... 26 7. Future work: Oversubscription ......................... 26
A Format of the OSPF Options field ...................... 29 8. Unsupported capabilities .............................. 28
B Configurable Parameters ............................... 30 A. Format of the OSPF Options field ...................... 30
C Architectural Constants ............................... 30 B. Configurable Parameters ............................... 31
References ............................................ 31 C. Architectural Constants ............................... 31
Security Considerations ............................... 31 References ............................................ 32
Author's Address ...................................... 31 Security Considerations ............................... 32
Author's Address ...................................... 32
1. Model for demand circuits 1. Model for demand circuits
In this memo, demand circuits refer to those network segments whose In this memo, demand circuits refer to those network segments whose
cost depends on either connect time and/or usage (expressed in terms cost depends on either connect time and/or usage (expressed in terms
of bytes or packets). Examples include ISDN circuits and X.25 SVCs. 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 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 little routing traffic as possible. In fact, when there is no change
in network topology it is desirable for a routing protocol to send in network topology it is desirable for a routing protocol to send no
no routing traffic at all; this allows the underlying data-link routing traffic at all; this allows the underlying data-link
connection to be closed when not needed for application data connection to be closed when not needed for application data traffic.
traffic.
The model used within this memo for the maintenance of demand The model used within this memo for the maintenance of demand
circuits is as follows. If there is no data to send (either routing circuits is as follows. If there is no data to send (either routing
protocol traffic or application data), the data-link connection protocol traffic or application data), the data-link connection
remains closed. As soon as there is data to be sent, an attempt to 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 open the data-link connection is made (e.g., an ISDN or X.25 call is
placed). When/if the data-link connection is established, the data placed). When/if the data-link connection is established, the data is
is sent, and the connection stays open until some period of time sent, and the connection stays open until some period of time elapses
elapses without more data to send. At this point the data-link without more data to send. At this point the data-link connection is
connection is again closed, in order to conserve cost and resources again closed, in order to conserve cost and resources (see Section 1
(see Section 1 of [2]). of [2]).
The "Presumption of Reachability" described in [2] is also used. The "Presumption of Reachability" described in [2] is also used.
Even though a circuit's data-link connection may be closed at any 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) particular time, it is assumed by the routing layer (i.e., OSPF) that
that the circuit is available unless other information, such as a the circuit is available unless other information, such as a
discouraging diagnostic code resulting from an attempted data-link discouraging diagnostic code resulting from an attempted data-link
connection, is present. connection, is present.
It may be possible that a data-link connection cannot be established It may be possible that a data-link connection cannot be established
due to resource shortages. For example, a router with a single basic due to resource shortages. For example, a router with a single basic
rate ISDN interface cannot open more than two simultaneous ISDN rate ISDN interface cannot open more than two simultaneous ISDN
data-link connections (one for each B channel), and limitations in data-link connections (one for each B channel), and limitations in
interface firmware and/or switch capacity may limit the number of interface firmware and/or switch capacity may limit the number of
X.25 SVCs simultaneously supported. When a router cannot X.25 SVCs simultaneously supported. When a router cannot
simultaneously open all of its circuits' underlying data-link simultaneously open all of its circuits' underlying data-link
connections due to resource limitations, we say that the router is connections due to resource limitations, we say that the router is
oversubscribed. In these cases, datagrams to be forwarded out the oversubscribed. In these cases, datagrams to be forwarded out the
(temporarily unopenable) data-link connections are discarded, (temporarily unopenable) data-link connections are discarded, instead
instead of being queued. Note also that this temporary inability to of being queued. Note also that this temporary inability to open
open data-link connections due to oversubscription is NOT reported data-link connections due to oversubscription is NOT reported by the
by the OSPF routing system as unreachability; see Section 4.3 for OSPF routing system as unreachability; see Section 4.3 for more
more information. information.
This memo assumes that either end of a demand circuit can open the Either end of a demand circuit may attempt to open the data-link
underlying data-link connection. Note that this assumption is not connection. When both ends attempt to open the connection
true for certain dial-up modems. Also, for some dial network simultaneously, there is the possibility of call collision. Not all
technologies, call collisions can result when both ends of a circuit data-links specify how call collisions are handled. Also, while OSPF
simultaneously attempt to establish the data-link connection. This requires that all periodic timers be randomized to avoid
memo does not address how such collisions are handled, assuming synchronization (see Section 4.4 of [1]), if call attempts are
instead that they are resolved at the data-link level. strictly data-driven there may still be insufficient spacing of call
attempts to avoid collisions on some data-links. For these reasons,
for those data-links without collision detection/avoidance support,
it is suggested (but not specified herein) that an exponential
backoff scheme for call retries be employed at the data-link layer.
Besides helping with call collisions, such a scheme could minimize
charges (if they exist) for failed call attempts.
As a result of the physical implementation of some demand circuits,
only one end of the circuit may be capable of opening the data-link
connection. For example, some async modems can initiate calls, but
cannot accept incoming calls. In these cases, since connection
initiation in this memo is data-driven, care must be taken to ensure
that the initiating application party is located at the calling end
of the demand circuit.
2. Modifications to all OSPF routers 2. Modifications to all OSPF routers
While most of the modifications to support demand circuits are While most of the modifications to support demand circuits are
isolated to the demand circuit endpoints (see Section 3), there are isolated to the demand circuit endpoints (see Section 3), there are
changes required of all OSPF routers. These changes are described in changes required of all OSPF routers. These changes are described in
the subsections below. the subsections below.
2.1. The OSPF Options field 2.1. The OSPF Options field
A new bit is added to the OSPF Options field to support the A new bit is added to the OSPF Options field to support the demand
demand circuit extensions. This bit is called the "DC-bit". The circuit extensions. This bit is called the "DC-bit". The resulting
resulting format of the Options field is described in Appendix format of the Options field is described in Appendix A.
A.
A router implementing the functionality described in Section 2 A router implementing the functionality described in Section 2 of
of this memo sets the DC-bit in the Options field of all LSAs this memo sets the DC-bit in the Options field of all LSAs that it
that it originates. This is regardless of the LSAs' LS type, and originates. This is regardless of the LSAs' LS type, and also
also regardless of whether the router implements the more regardless of whether the router implements the more substantial
substantial modifications required of demand circuit endpoints modifications required of demand circuit endpoints (see Section
(see Section 3). Setting the DC-bit in self-originated LSAs 3). Setting the DC-bit in self-originated LSAs tells the rest of
tells the rest of the routing domain that the router can the routing domain that the router can correctly process DoNotAge
correctly process DoNotAge LSAs (see Sections 2.2, 2.3 and 2.5). LSAs (see Sections 2.2, 2.3 and 2.5).
There is a single exception to the above rule. A router There is a single exception to the above rule. A router
implementing Section 2 of this memo may sometimes originate an implementing Section 2 of this memo may sometimes originate an
"indication-LSA"; these LSAs always have the DC-bit clear. "indication-LSA"; these LSAs always have the DC-bit clear.
Indication-LSAs are used to convey across area boundaries the Indication-LSAs are used to convey across area boundaries the
existence of routers incapable of DoNotAge processing; see existence of routers incapable of DoNotAge processing; see Section
Section 2.5.1 for details. 2.5.1 for details.
2.2. The LS age field 2.2. The LS age field
The semantics of the LSA's LS age field are changed, allowing The semantics of the LSA's LS age field are changed, allowing the
the high bit to be set. This bit is called "DoNotAge"; see high bit of the LS age field to be set. This bit is called
Appendix C for its formal definition. LSAs whose LS age field "DoNotAge"; see Appendix C for its formal definition. LSAs whose
have the DoNotAge bit set are not aged while they are held in LS age field have the DoNotAge bit set are not aged while they are
the link state database, which means that they do not have to be held in the link state database, which means that they do not have
refreshed every LSRefreshInterval as is done with all other OSPF to be refreshed every LSRefreshInterval as is done with all other
LSAs. OSPF LSAs.
By convention, in the rest of this memo we will express LS age 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 fields having the DoNotAge bit set as "DoNotAge+x", while an LS
expressed as just "x" is assumed to not have the DoNotAge bit age expressed as just "x" is assumed to not have the DoNotAge bit
set. LSAs having DoNotAge set are also sometimes referred to as set. LSAs having DoNotAge set are also sometimes referred to as
"DoNotAge LSAs". "DoNotAge LSAs".
When comparing two LSA instances to see which one is most When comparing two LSA instances to see which one is most recent,
recent, the two LSAs' LS age fields are compared whenever the LS the two LSAs' LS age fields are compared whenever the LS sequence
sequence numbers and LS checksums are found identical (see numbers and LS checksums are found identical (see Section 13.1 of
Section 13.1 of [1]). Before comparing, the LS age fields must [1]). Before comparing, the LS age fields must have their DoNotAge
have their DoNotAge bits masked off. For example, in bits masked off. For example, in determining which LSA is more
determining which LSA is more recent, LS ages of 1 and recent, LS ages of 1 and DoNotAge+1 are considered equivalent; an
DoNotAge+1 are considered equivalent; an LSA flooded with LS age LSA flooded with LS age of 1 may be acknowledged with a Link State
of 1 may be acknowledged with a Link State Acknowledgement Acknowledgement listing an LS age of DoNotAge+1, or vice versa. In
listing an LS age of DoNotAge+1, or vice versa. In particular, particular, DoNotAge+MaxAge is equivalent to MaxAge; however for
DoNotAge+MaxAge is equivalent to MaxAge; however for backward- backward-compatibility the MaxAge form should always be used when
compatibility the MaxAge form should always be used when flushing LSAs from the routing domain (see Section 14.1 of [1]).
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 Thus, the set of allowable values for the LS age field fall into
the two ranges: 0 through MaxAge and DoNotAge through the two ranges: 0 through MaxAge and DoNotAge through
DoNotAge+MaxAge. (Previously the LS age field could not exceed DoNotAge+MaxAge. (Previously the LS age field could not exceed
the value of MaxAge.) Any LS age field not falling into these the value of MaxAge.) Any LS age field not falling into these two
two ranges should be considered to be equal to MaxAge. ranges should be considered to be equal to MaxAge.
When an LSA is flooded out an interface, the constant When an LSA is flooded out an interface, the constant
InfTransDelay is added to the LSA's LS age field. This happens 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 even if the DoNotAge bit is set; in this case the LS age field is
is not allowed to exceed DoNotAge+MaxAge. If the LS age field not allowed to exceed DoNotAge+MaxAge. If the LS age field reaches
reaches DoNotAge+MaxAge during flooding, the LSA is flushed from DoNotAge+MaxAge during flooding, the LSA is flushed from the
the routing domain. This preserves the protection in [1] routing domain. This preserves the protection in [1] afforded
afforded against flooding loops. against flooding loops.
The LS age field is not checksum protected. Errors in a router's The LS age field is not checksum protected. Errors in a router's
memory may mistakenly set an LSA's DoNotAge bit, stopping the memory may mistakenly set an LSA's DoNotAge bit, stopping the
aging of the LSA. However, a router should note that its own aging of the LSA. However, a router should note that its own
self-originated LSAs should never have the DoNotAge bit set in self-originated LSAs should never have the DoNotAge bit set in its
its own database. This means that in any case the router's own database. This means that in any case the router's self-
self-originated LSAs will be refreshed every LSRefreshInterval. originated LSAs will be refreshed every LSRefreshInterval. As
As this refresh is flooded throughout the OSPF routing domain, this refresh is flooded throughout the OSPF routing domain, it
it will replace any LSA copies in other routers' databases whose will replace any LSA copies in other routers' databases whose
DoNotAge bits were mistakenly set. DoNotAge bits were mistakenly set.
2.3. Removing stale DoNotAge LSAs 2.3. Removing stale DoNotAge LSAs
Because LSAs with the DoNotAge bit set are never aged, they can Because LSAs with the DoNotAge bit set are never aged, they can
stay in the link state database even when the originator of the stay in the link state database even when the originator of the
LSA no longer exists. To ensure that these LSAs are eventually LSA no longer exists. To ensure that these LSAs are eventually
flushed from the routing domain, and that the size of the link flushed from the routing domain, and that the size of the link
state database doesn't grow without bound, routers are required state database doesn't grow without bound, routers are required to
to flush a DoNotAge LSA if both of the following conditions are flush a DoNotAge LSA if BOTH of the following conditions are met:
met:
(1) The LSA has been in the router's database for at least (1) The LSA has been in the router's database for at least
MaxAge seconds. MaxAge seconds.
(2) The originator of the LSA has been unreachable (according to (2) The originator of the LSA has been unreachable (according to
the routing calculations specified by Section 16 of [1]) for the routing calculations specified by Section 16 of [1]) for
at least MaxAge seconds. at least MaxAge seconds.
For an example, see Time T8 in the example of Section 4.1. Note For an example, see Time T8 in the example of Section 4.1. Note
that the above functionality is an exception to the general OSPF that the above functionality is an exception to the general OSPF
rule that a router can only flush (i.e., prematurely age; see rule that a router can only flush (i.e., prematurely age; see
Section 14.1 of [1]) its own self-originated LSAs. The above Section 14.1 of [1]) its own self-originated LSAs. The above
functionality pertains only to DoNotAge LSAs. An LSA having functionality pertains only to DoNotAge LSAs. An LSA having
DoNotAge clear still can be prematurely aged only by its DoNotAge clear still can be prematurely aged only by its
originator; otherwise, the LSA must age naturally to MaxAge originator; otherwise, the LSA must age naturally to MaxAge before
before being removed from the routing domain. being removed from the routing domain.
An interval as long as MaxAge has been chosen to avoid any An interval as long as MaxAge has been chosen to avoid any
possibility of thrashing (i.e., flushing an LSA only to have it possibility of thrashing (i.e., flushing an LSA only to have it
reoriginated soon afterwards). Note that by the above rules, a reoriginated soon afterwards). Note that by the above rules, a
DoNotAge LSA will be removed from the routing domain no faster DoNotAge LSA will be removed from the routing domain no faster
than if it were being aged naturally (i.e., if DoNotAge were not than if it were being aged naturally (i.e., if DoNotAge were not
set). set).
2.4. A change to the flooding algorithm 2.4. A change to the flooding algorithm
The following change is made to the OSPF flooding algorithm. The following change is made to the OSPF flooding algorithm. When
When a Link State Update Packet is received that contains an LSA a Link State Update Packet is received that contains an LSA
instance which is actually less recent than the the router's instance which is actually less recent than the the router's
current database copy, the router must now respond by sending current database copy, the router must now process the LSA as
its database copy (encapsulated in a Link State Update Packet) follows (modifying Step 8 of Section 13 in [1] accordingly):
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 o If the database copy has LS age equal to MaxAge and LS
circuits. For example, see Time T4 in the example of Section sequence number equal to MaxSequenceNumber, simply discard
4.2. the received LSA without acknowledging it. (In this case,
the LSA's sequence number is wrapping, and the
MaxSequenceNumber LSA must be completely flushed before any
new LSAs can be introduced). This is identical to the
behavior specified by Step 8 of Section 13 in [1].
However, this change is beneficial when flooding over non-demand o Otherwise, send the database copy back to the sending
interfaces as well. For this reason, the flooding change neighbor, encapsulated within a Link State Update Packet. In
pertains to all interfaces, not just interfaces to demand so doing, do not put the database copy of the LSA on the
circuits. The main example involves MaxAge LSAs. There are times neighbor's link state retransmission list, and do not
when MaxAge LSAs stay in a router's database for extended acknowledge the received (less recent) LSA instance.
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 This change is necessary to support flooding over demand circuits.
OSPF specification [1]. For example, see Time T4 in the example of Section 4.2.
2.5. Interoperability with unmodified OSPF routers 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.
Unmodified OSPF routers will probably treat DoNotAge LSAs as if This change will be included in future revisions of the base OSPF
they had LS age of MaxAge. At the very worst, this will cause specification [1].
continual retransmissions of the DoNotAge 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, DoNotAge LSAs will be allowed 2.5. Interoperability with unmodified OSPF routers
in an OSPF area if and only if, in the area's link state
database, all LSAs have the DC-bit set in their Options field
(see Section 2.1). Note that it is not required that the LSAs'
Advertising Router be 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 all DoNotAge 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. 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.
2.5.1. Indicating across area boundaries Unmodified OSPF routers will probably treat DoNotAge LSAs as if
they had LS age of MaxAge. At the very worst, this will cause
continual retransmissions of the DoNotAge 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.)
AS-external-LSAs are flooded throughout the entire OSPF However, to avoid this confusion, DoNotAge LSAs will be allowed in
routing domain, excepting only OSPF stub areas and NSSAs. an OSPF area if and only if, in the area's link state database,
For that reason, if an OSPF router that is incapable of all LSAs have the DC-bit set in their Options field (see Section
DoNotAge processing exists in any "regular" area (i.e., an 2.1). Note that it is not required that the LSAs' Advertising
area that is not a stub nor an NSSA), no AS-external-LSA can Router be reachable; if any LSA is found not having its DC-bit set
have DoNotAge set. This memo simplifies that requirement by (regardless of reachability), then the router should flush (i.e.,
broadening it to the following rule: LSAs in regular OSPF prematurely age; see Section 14.1 of [1]) from the area all
areas are allowed to have DoNotAge set if and only if every DoNotAge LSAs. These LSAs will then be reoriginated at their
router in the OSPF domain (excepting those in stub areas and sources, this time with DoNotAge clear. Like the change in
NSSAs) is capable of DoNotAge processing. The rest of this Section 2.3, this change is an exception to the general OSPF rule
section describes how the rule is implemented. that a router can only flush its own self-originated 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 described above in Sections 2.1 and 2.5, a router 2.5.1. Indicating across area boundaries
indicates that it is capable of DoNotAge processing by
setting the DC-bit in the LSAs that it originates. However,
there is a problem. It is possible that, in all areas to
which 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 AS-external-LSAs are flooded throughout the entire OSPF routing
existence of DoNotAge-incapable routers across area domain, excepting only OSPF stub areas and NSSAs. For that
boundaries, using "indication-LSAs". Indication-LSAs are reason, if an OSPF router that is incapable of DoNotAge
type-4-summary LSAs (also called ASBR-summary-LSAs), listing processing exists in any "regular" area (i.e., an area that is
the area border router itself as the described ASBR, with not a stub nor an NSSA), no AS-external-LSA can have DoNotAge
the LSA's cost set to LSInfinity and the DC-bit clear. Note set. This memo simplifies that requirement by broadening it to
that indication-LSAs convey no additional information; in the following rule: LSAs in regular OSPF areas are allowed to
particular, they are used even if the area border router is have DoNotAge set if and only if every router in the OSPF
not really an AS boundary router (ASBR). domain (excepting those in stub areas and NSSAs) is capable of
DoNotAge processing. The rest of this section describes how the
rule is implemented.
Taking indication-LSAs into account, the rule as to whether As described above in Sections 2.1 and 2.5, a router indicates
DoNotAge LSAs are allowed in any particular area is EXACTLY that it is capable of DoNotAge processing by setting the DC-bit
the same as given previously in Section 2.5, namely: in the LSAs that it originates. However, there is a problem. It
DoNotAge LSAs will be allowed in an OSPF area if and only is possible that, in all areas to which Router X directly
if, in the area's link state database, all LSAs have the attaches, all the routers are capable of DoNotAge processing,
DC-bit set in their Options field. 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.
Through origination of indication-LSAs, the existence of The solution is as follows. Area border routers transmit the
DoNotAge-incapable routers can be viewed as going from non- existence of DoNotAge-incapable routers across area boundaries,
backbone regular areas, to the backbone area and from there using "indication-LSAs". Indication-LSAs are type-4-summary
to all other regular areas. The following two cases LSAs (also called ASBR-summary-LSAs), listing the area border
summarize the requirements for an area border router to router itself as the described ASBR, with the LSA's cost set to
originate indication-LSAs: LSInfinity and the DC-bit clear. Note that indication-LSAs
convey no additional information; in particular, they are 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 only if, in the area's
link state database, all LSAs have the DC-bit set in their
Options field.
Through origination of indication-LSAs, the existence of
DoNotAge-incapable routers can be viewed as going from non-
backbone regular areas, to the 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 (1) Suppose an area border router (Router X) is connected to
a regular non-backbone OSPF area (Area A). Furthermore, a regular non-backbone OSPF area (Area A). Furthermore,
assume that Area A has LSAs with the DC-bit clear, other assume that Area A has LSAs with the DC-bit clear, other
than indication-LSAs. Then Router X should originate than indication-LSAs. Then Router X should originate
indication-LSAs into all other directly-connected indication-LSAs into all other directly-connected
"regular" areas, including the backbone area, keeping "regular" areas, including the backbone area, keeping
the guidelines of Section 2.5.1.1 in mind. the guidelines of Section 2.5.1.1 in mind.
(2) Suppose an area border router (Router X) is connected to (2) Suppose an area border router (Router X) is connected to
the backbone OSPF area (Area 0.0.0.0). Furthermore, the backbone OSPF area (Area 0.0.0.0). Furthermore,
assume that the backbone has LSAs with the DC-bit clear assume that the backbone has LSAs with the DC-bit clear
that are either a) not indication-LSAs or b) that are either a) not indication-LSAs or b)
indication-LSAs that have been originated by routers indication-LSAs that have been originated by routers
other than Router X itself. Then Router X should other than Router X itself. Then Router X should
originate indication-LSAs into all other directly- originate indication-LSAs into all other directly-
connected "regular" non-backbone areas, keeping the connected "regular" non-backbone areas, keeping the
guidelines of Section 2.5.1.1 in mind. guidelines of Section 2.5.1.1 in mind.
2.5.1.1. Limiting indication-LSA origination 2.5.1.1. Limiting indication-LSA origination
To limit the number of indication-LSAs originated, the To limit the number of indication-LSAs originated, the
following guidelines should be observed by an area following guidelines should be observed by an area border
border router (Router X) when originating indication- router (Router X) when originating indication-LSAs. First,
LSAs. First, indication-LSAs are not originated into an indication-LSAs are not originated into an Area A when A
Area A when A already has LSAs with DC-bit clear other already has LSAs with DC-bit clear other than indication-
than indication-LSAs. Second, if another area border LSAs. Second, if another area border router has originated a
router has originated a indication-LSA into Area A, and indication-LSA into Area A, and that area border router has
that area border router has a higher OSPF Router ID than a higher OSPF Router ID than Router X (same tie-breaker as
Router X (same tie-breaker as for forwarding address for forwarding address origination; see Section 12.4.5 of
origination; see Section 12.4.5 of [1]), then Router X [1]), then Router X should not originate an indication-LSA
should not originate an indication-LSA into Area A. into Area A.
As an example, suppose that three regular OSPF areas As an example, suppose that three regular OSPF areas (Areas
(Areas A, B and C) are connected by routers X, Y and Z A, B and C) are connected by routers X, Y and Z
(respectively) to the backbone area. Furthermore, (respectively) to the backbone area. Furthermore, suppose
suppose that all routers are capable of DoNotAge that all routers are capable of DoNotAge processing, except
processing, except for routers in Areas A and B. for routers in Areas A and B. Finally, suppose that Router
Finally, suppose that Router Z has a higher Router ID Z has a higher Router ID than Y, which in turn has a higher
than Y, which in turn has a higher Router ID than X. In Router ID than X. In this case, two indication-LSAs will be
this case, two indication-LSAs will be generated (if the generated (if the rules of Section 2.5.1 and the guidelines
rules of Section 2.5.1 and the guidelines of the of the preceding paragraph are followed): Router Y will
preceding paragraph are followed): Router Y will originate an indication-LSA into the backbone, and Router Z
originate an indication-LSA into the backbone, and will originate an indication-LSA into Area C.
Router Z will originate an indication-LSA into Area C.
3. Modifications to demand circuit endpoints 3. Modifications to demand circuit endpoints
The following subsections detail the modifications required of the The following subsections detail the modifications required of the
routers at the endpoints of demand circuits. These consist of routers at the endpoints of demand circuits. These consist of
modifications to two main pieces of OSPF: 1) sending and receiving modifications to two main pieces of OSPF: 1) sending and receiving
Hello Packets over demand circuits and 2) flooding LSAs over demand Hello Packets over demand circuits and 2) flooding LSAs over demand
circuits. circuits.
An additional OSPF interface configuration parameter, An additional OSPF interface configuration parameter, ospfIfDemand,
DemandInterface, is defined to indicate whether an OSPF interface is defined to indicate whether an OSPF interface connects to a demand
connects to a demand circuit (see Appendix B). Two routers circuit (see Appendix B). Two routers connecting to a common network
connecting to a common network segment need not agree on that segment need not agree on that segment's demand circuit status.
segment's demand circuit status. However, to get full benefit of the However, to get full benefit of the demand circuit extensions, the
demand circuit extensions, the two ends of a point-to-point link two ends of a point-to-point link must both agree to treat the link
must both agree to treat the link as a demand circuit (see Section as a demand circuit (see Section 3.2).
3.2).
3.1. Interface State machine modifications 3.1. Interface State machine modifications
An OSPF point-to-point interface connecting to a demand circuit An OSPF point-to-point interface connecting to a demand circuit is
is considered to be in state "Point-to-point" if and only if its considered to be in state "Point-to-point" if and only if its
associated neighbor is in state "1-Way" or greater; otherwise associated neighbor is in state "1-Way" or greater; otherwise the
the interface is considered to be in state "Down". Hellos are interface is considered to be in state "Down". Hellos are sent out
sent out such an interface when it is in "Down" state, at the such an interface when it is in "Down" state, at the reduced
reduced interval of PollInterval. If the negotiation in Section interval of PollInterval. If the negotiation in Section 3.2.1
3.2.1 succeeds, Hellos will cease to be sent out the interface succeeds, Hellos will cease to be sent out the interface whenever
whenever the associated neighbor reaches state "Full". the associated neighbor reaches state "Full".
Note that as a result, an "LLDown" event for the point-to-point Note that as a result, an "LLDown" event for the point-to-point
demand circuit's neighbor forces both the neighbor and the demand circuit's neighbor forces both the neighbor and the
interface into state "Down" (see Section 3.2.2). interface into state "Down" (see Section 3.2.2).
For OSPF broadcast and NBMA networks that have been configured For OSPF broadcast and NBMA networks that have been configured as
as demand circuits, there are no changes to the Interface State demand circuits, there are no changes to the Interface State
Machine. Machine.
3.2. Sending and Receiving OSPF Hellos 3.2. Sending and Receiving OSPF Hellos
The following sections describe the required modifications to The following sections describe the required modifications to OSPF
OSPF Hello Packet processing on point-to-point demand circuits. Hello Packet processing on point-to-point demand circuits.
For OSPF broadcast and NBMA networks that have been configured For OSPF broadcast and NBMA networks that have been configured as
as demand circuits, there is no change to the sending and demand circuits, there is no change to the sending and receiving
receiving of Hellos, nor are there any changes to the Neighbor of Hellos, nor are there any changes to the Neighbor State
State Machine. This is because the proper operation of the Machine. This is because the proper operation of the Designated
Designated Router election algorithm requires periodic exchange Router election algorithm requires periodic exchange of Hello
of Hello Packets. Packets.
3.2.1. Negotiating Hello suppression 3.2.1. Negotiating Hello suppression
On point-to-point demand circuits, both endpoints must agree On point-to-point demand circuits, both endpoints must agree to
to suppress the sending of Hello Packets. To ensure this suppress the sending of Hello Packets. To ensure this
agreement, a router sets the DC-bit in OSPF Hellos and agreement, a router sets the DC-bit in OSPF Hellos and Database
Database Description Packets sent out the demand interface. Description Packets sent out the demand interface. Receiving
Receiving an Hello or a Database Description Packet with the an Hello or a Database Description Packet with the DC-bit set
DC-bit set indicates agreement. Receiving an Hello with the indicates agreement. Receiving an Hello with the DC-bit clear
DC-bit clear and also listing the router's Router ID in the and also listing the router's Router ID in the body of the
body of the Hello message, or a Database Description Packet Hello message, or a Database Description Packet with the DC-bit
with the DC-bit clear (either one indicating bidirectional clear (either one indicating bidirectional connectivity)
connectivity) indicates that the other end refuses to indicates that the other end refuses to suppress Hellos. In
suppress Hellos. In these latter cases, the router reverts these latter cases, the router reverts to the normal periodic
to the normal periodic sending of Hello Packets out the sending of Hello Packets out the interface (see Section 9.5 of
interface (see Section 9.5 of [1]). [1]).
A demand point-to-point circuit need be configured in only A demand point-to-point circuit need be configured in only one
one of the two endpoints (see Section 4.1). If a router of the two endpoints (see Section 4.1). If a router
implementing Sections 2 and 3 of this memo receives an Hello implementing Sections 2 and 3 of this memo receives an Hello
Packet with the DC-bit set, it should treat the point-to- Packet with the DC-bit set, it should treat the point-to-point
point link as a demand circuit, making the appropriate link as a demand circuit, making the appropriate changes to its
changes to its Hello Processing (see Section 3.2.2) and Hello Processing (see Section 3.2.2) and flooding (see Section
flooding (see Section 3.3). 3.3).
Even if the above negotiation fails, the router should Even if the above negotiation fails, the router should continue
continue setting the DC-bit in its Hellos and Database setting the DC-bit in its Hellos and Database Descriptions (the
Descriptions (the neighbor will just ignore the bit). The neighbor will just ignore the bit). The router will then
router will then automatically attempt to renegotiate Hello automatically attempt to renegotiate Hello suppression whenever
suppression whenever the link goes down and comes back up. the link goes down and comes back up. For example, if the
For example, if the neighboring router is rebooted with neighboring router is rebooted with software that is capable of
software that is capable of operating over demand circuits operating over demand circuits (i.e., implements Sections 2 and
(i.e., implements Sections 2 and 3 of this memo), a future 3 of this memo), a future negotiation will succeed.
negotiation will succeed.
Also, even if the negotiation to suppress Hellos fails, the Also, even if the negotiation to suppress Hellos fails, the
flooding modifications described in Section 3.3 are still flooding modifications described in Section 3.3 are still
performed over the link. performed over the link.
3.2.2. Neighbor state machine modifications 3.2.2. Neighbor state machine modifications
When the above negotiation succeeds, Hello Packets are sent When the above negotiation succeeds, Hello Packets are sent
over point-to-point demand circuits only until initial over point-to-point demand circuits only until initial link-
link-state database synchronization is achieved with the state database synchronization is achieved with the neighbor
neighbor (i.e., the state of the neighbor connection reaches (i.e., the state of the neighbor connection reaches "Full", as
"Full", as defined in Section 10.1 of [1]). After this, defined in Section 10.1 of [1]). After this, Hellos are
Hellos are suppressed and the data-link connection to the suppressed and the data-link connection to the neighbor is
neighbor is assumed available until evidence is received to assumed available until evidence is received to the contrary.
the contrary. When the router finds that the neighbor is no When the router finds that the neighbor is no longer available,
longer available, presumably from something like a presumably from something like a discouraging diagnostic code
diagnostic code contained in a response to a failed call contained in a response to a failed call request, the neighbor
request, the neighbor connection transitions back to "Down" connection transitions back to "Down" and Hellos are sent
and Hellos are sent periodically (at Intervals of periodically (at Intervals of PollInterval) in an attempt to
PollInterval) in an attempt to restart synchronization with restart synchronization with the neighbor.
the neighbor.
This requires changes to the OSPF Neighbor State Machine This requires changes to the OSPF Neighbor State Machine (see
(see Section 10.3 of [1]). The receipt of Hellos from demand Section 10.3 of [1]). The receipt of Hellos from demand circuit
circuit neighbors in state "Loading" or "Full" can no longer neighbors in state "Loading" or "Full" can no longer be
be required. In other words, the InactivityTimer event required. In other words, the InactivityTimer event defined in
defined in Section 10.2 of [1] has no effect on demand Section 10.2 of [1] has no effect on demand circuit neighbors
circuit neighbors in state "Loading" or "Full". An in state "Loading" or "Full". An additional clarification is
additional clarification is needed in the Neighbor State needed in the Neighbor State Machine's LLDown event. For demand
Machine's LLDown event. For demand circuits, this event circuits, this event should be mapped into the "discouraging
should be mapped into the "discouraging diagnostic code" diagnostic code" discussed previously in Section 1, and should
discussed previously in Section 1, and should not be not be generated when the data-link connection has been closed
generated when the data-link connection has been closed simply to save resources. Nor should LLDown be generated if a
simply to save resources. Nor should LLDown be generated if data-link connection fails due to temporary lack of resources.
a data-link connection fails due to temporary lack of
resources.
3.3. Flooding over demand circuits 3.3. Flooding over demand circuits
Flooding over demand circuits (point-to-point or otherwise) is Flooding over demand circuits (point-to-point or otherwise) is
modified if and only if all routers have indicated that they can modified if and only if all routers have indicated that they can
process LSAs having DoNotAge set. This is determined by process LSAs having DoNotAge set. This is determined by examining
examining the link state database of the OSPF area containing the link state database of the OSPF area containing the demand
the demand circuit. All LSAs in the database must have the DC- circuit. All LSAs in the database must have the DC-bit set. If
bit set. If one or more LSAs have the DC-bit clear, flooding one or more LSAs have the DC-bit clear, flooding over demand
over demand circuits is unchanged from [1]. Otherwise, flooding circuits is unchanged from [1]. Otherwise, flooding is changed as
is changed as follows. follows.
(1) Only truly changed LSAs are flooded over demand circuits. (1) Only truly changed LSAs are flooded over demand circuits.
When a router receives a new LSA instance, it checks first When a router receives a new LSA instance, it checks first
to see whether the contents have changed. If not, the new to see whether the contents have changed. If not, the new
LSA is simply a periodic refresh and it is not flooded out LSA is simply a periodic refresh and it is not flooded out
attached demand circuits (it is still flooded out other attached demand circuits (it is still flooded out other
interfaces however). This check should be performed in Step interfaces however). This check should be performed in Step
5b of Section 13 in [1]. When comparing an LSA to its 5b of Section 13 in [1]. When comparing an LSA to its
previous instance, the following are all considered to be previous instance, the following are all considered to be
changes in contents: changes in contents:
skipping to change at page 14, line 31 skipping to change at page 13, line 41
flooded copy's LS age field must also be incremented by flooded copy's LS age field must also be incremented by
InfTransDelay (see Step 5 of Section 13.3 in [1], and InfTransDelay (see Step 5 of Section 13.3 in [1], and
Section 2.2 of this memo), as protection against flooding Section 2.2 of this memo), as protection against flooding
loops. loops.
The previous paragraph also pertains to LSAs flooded over The previous paragraph also pertains to LSAs flooded over
demand circuits in response to Link State Requests. It also demand circuits in response to Link State Requests. It also
pertains to LSAs that are retransmitted over demand pertains to LSAs that are retransmitted over demand
circuits. circuits.
3.4. Virtual link support 3.4. Virtual link support
OSPF virtual links are essentially unnumbered point-to-point OSPF virtual links are essentially unnumbered point-to-point links
links (see Section 15 of [1]). Accordingly, demand circuit (see Section 15 of [1]). Accordingly, demand circuit support for
support for virtual links resembles that described for point- virtual links resembles that described for point-to-point links in
to-point links in the previous sections. The main difference is the previous sections. The main difference is that a router
that a router implementing Sections 2 and 3 of this memo, and implementing Sections 2 and 3 of this memo, and supporting virtual
supporting virtual links, always treats virtual links as if they links, always treats virtual links as if they were demand
were demand circuits. Otherwise, when a virtual link's circuits. Otherwise, when a virtual link's underlying physical
underlying physical path contains one or more demand circuits, path contains one or more demand circuits, periodic OSPF protocol
periodic OSPF protocol exchanges over the virtual link would exchanges over the virtual link would unnecessarily keep the
unnecessarily keep the underlying demand circuits open. underlying demand circuits open.
Demand circuit support on virtual links can be summarized as Demand circuit support on virtual links can be summarized as
follows: follows:
o Instead of modifying the Interface state machine for virtual o Instead of modifying the Interface state machine for virtual
links as was done for point-to-point links in Section 3.1, links as was done for point-to-point links in Section 3.1,
the Interface state machine for virtual links remains the Interface state machine for virtual links remains
unchanged. A virtual link is considered to be in state unchanged. A virtual link is considered to be in state
"Point-to-point" if an intra-area path (through the virtual "Point-to-point" if an intra-area path (through the virtual
link's transit area) exists to the other endpoint. Otherwise link's transit area) exists to the other endpoint. Otherwise
it is considered to be in state "Down". See Section 15 of it is considered to be in state "Down". See Section 15 of
[1] for more details. [1] for more details.
skipping to change at page 15, line 23 skipping to change at page 14, line 34
no "discouraging diagnostic code" as described in Section 1. no "discouraging diagnostic code" as described in Section 1.
Instead, the connection is considered to exist if and only Instead, the connection is considered to exist if and only
if an intra-area path (through the virtual link's transit if an intra-area path (through the virtual link's transit
area) exists to the other endpoint. See Section 15 of [1] area) exists to the other endpoint. See Section 15 of [1]
for more details. for more details.
o Since virtual links are always treated as demand circuits, o Since virtual links are always treated as demand circuits,
flooding over virtual links always proceeds as in Section flooding over virtual links always proceeds as in Section
3.3. 3.3.
3.5. Point-to-MultiPoint Interface support 3.5. Point-to-MultiPoint Interface support
The OSPF Point-to-MultiPoint interface has recently been The OSPF Point-to-MultiPoint interface has recently been developed
developed for use with non-mesh-connected network segments. A for use with non-mesh-connected network segments. A common example
common example is a Frame Relay subnet where PVCs are is a Frame Relay subnet where PVCs are provisioned between some
provisioned between some pairs of routers, but not all pairs. In pairs of routers, but not all pairs. In this case the Point-to-
this case the Point-to-Multipoint interface represents the Multipoint interface represents the single physical interface to
single physical interface to the Frame relay network, over which the Frame relay network, over which multiple point-to-point OSPF
multiple point-to-point OSPF conversations (one on each PVC) are conversations (one on each PVC) are taking place. For more
taking place. For more information on the Point-to-MultiPoint information on the Point-to-MultiPoint interface, see [8].
interface, see [8].
Since an OSPF Point-to-MultiPoint interface essentially consists Since an OSPF Point-to-MultiPoint interface essentially consists
of multiple point-to-point connections, demand circuit support of multiple point-to-point links, demand circuit support on the
on the Point-to-Multipoint interface strongly resembles demand Point-to-Multipoint interface strongly resembles demand circuit
circuit support for point-to-point links. However, since the support for point-to-point links. However, since the Point-to-
Point-to-MultiPoint interface requires commonality of its MultiPoint interface requires commonality of its component point-
component point-to-point links' configurations, there are some to-point links' configurations, there are some differences.
differences.
Demand circuit support on Point-to-Multipoint interfaces can be Demand circuit support on Point-to-Multipoint interfaces can be
summarized as follows: summarized as follows:
o Instead of modifying the Interface state machine for Point- o Instead of modifying the Interface state machine for Point-
to-Multipoint interfaces as was done for point-to-point to-Multipoint interfaces as was done for point-to-point
links in Section 3.1, the Interface state machine for links in Section 3.1, the Interface state machine for
Point-to-Multipoint interfaces remains unchanged. Point-to-Multipoint interfaces remains unchanged.
o When a Point-to-MultiPoint interface is configured as a o When ospfIfDemand is set on a Point-to-MultiPoint interface,
DemandInterface, it tries to negotiate Hello suppression the router tries to negotiate Hello suppression separately
separately on each of its component point-to-point links. on each of interface's component point-to-point links. This
This negotiation proceeds as in Section 3.2.1. Negotiation negotiation proceeds as in Section 3.2.1. Negotiation may
may fail on some component point-to-point links, and succeed fail on some component point-to-point links, and succeed on
on others. This is acceptable. On those component links others. This is acceptable. On those component links where
where the negotiation fails, Hellos will always be sent; the negotiation fails, Hellos will always be sent;
otherwise, Hellos will cease to be sent when the Database otherwise, Hellos will cease to be sent when the Database
Description process completes on the component link (see Description process completes on the component link (see
Section 3.2.2). Section 3.2.2).
o Section 3.3 defines the demand circuit flooding behavior for o Section 3.3 defines the demand circuit flooding behavior for
all OSPF interface types. This includes Point-to-Multipoint all OSPF interface types. This includes Point-to-Multipoint
interfaces. interfaces.
4. Examples 4. Examples
This section gives three examples of the operation over demand This section gives three examples of the operation over demand
circuits. The first example is probably the most common and circuits. The first example is probably the most common and certainly
certainly the most basic. It shows a single point-to-point demand the most basic. It shows a single point-to-point demand circuit
circuit connecting two routers. The second illustrates what happens connecting two routers. The second illustrates what happens when
when demand circuits and leased lines are used in parallel. The demand circuits and leased lines are used in parallel. The third
third explains what happens when a router has multiple demand explains what happens when a router has multiple demand circuits and
circuits and cannot keep them all open (for resource reasons) at the cannot keep them all open (for resource reasons) at the same time.
same time.
4.1. Example 1: Sole connectivity through demand circuits 4.1. Example 1: Sole connectivity through demand circuits
Figure 1 shows a sample internetwork with a single demand Figure 1 shows a sample internetwork with a single demand circuit
circuit providing connectivity to the LAN containing Host H2. providing connectivity to the LAN containing Host H2. Assume that
Assume that all three routers (RTA, RTB and RTC) have all three routers (RTA, RTB and RTC) have implemented the
implemented the functionality in Section 2 of this memo, and functionality in Section 2 of this memo, and thus will be setting
thus will be setting the DC-bit in their LSAs. Furthermore the DC-bit in their LSAs. Furthermore assume that Router RTB has
assume that Router RTB has been configured to treat the link to been configured to treat the link to Router RTC as a demand
Router RTC as a demand circuit, but Router RTC has not been so circuit, but Router RTC has not been so configured. Finally assume
configured. Finally assume that the LAN interface connecting that the LAN interface connecting Router RTA to Host H1 is
Router RTA to Host H1 is initially down. initially down.
The following sequence of events may then transpire, starting The following sequence of events may then transpire, starting with
with Router RTB booting and bringing up its link to Router RTC: Router RTB booting and bringing up its link to Router RTC:
Time T0: RTB negotiates Hello suppression Time T0: RTB negotiates Hello suppression
Router RTB will start sending Hellos over the demand circuit Router RTB will start sending Hellos over the demand circuit
with the DC-bit set in the Hello's Options field. Because with the DC-bit set in the Hello's Options field. Because
RTC is not configured to treat the link as a demand circuit, RTC is not configured to treat the link as a demand circuit,
the first Hello received from RTC will not have the DC-bit the first Hello that RTB receives from RTC may not have the
set. However, subsequent Hellos and Database Description DC-bit set. However, subsequent Hellos and Database
Description 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 to suppress Hellos on the link, the
initial Database Description sent from Router RTC to RTB
would have the DC-bit clear, forcing Router RTB to revert to
the periodic sending of 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.
LSAs included in Link State Updates Packets sent over the
+ + + + + +
| +---+ | | | +---+ | |
+--+ |---|RTA|---| | +--+ +--+ |---|RTA|---| | +--+
|H1|---| +---+ | |---|H2| |H1|---| +---+ | |---|H2|
+--+ | | +---+ ODL +---+ | +--+ +--+ | | +---+ ODL +---+ | +--+
|LAN Y |---|RTB|-------------|RTC|---| |LAN Y |---|RTB|-------------|RTC|---|
+ | +---+ +---+ | + | +---+ +---+ |
+ + + +
Figure 1: In the example of Section 4.1, Figure 1: In the example of Section 4.1,
a single demand circuit (labeled a single demand circuit (labeled
ODL) bisects an internetwork. 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 to suppress Hellos on the link, the initial
Database Description sent from Router RTC to RTB would have
the DC-bit clear, forcing Router RTB to revert to the
periodic sending of 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| |RTB| |RTC|
+---+ +---+ +---+ +---+
Hello (DC-bit set) Hello (DC-bit set)
-------------------------------------> ------------------------------------->
Hello (DC-bit clear) Hello (DC-bit clear)
<------------------------------------- <-------------------------------------
Hello (DC-bit set, RTC seen) Hello (DC-bit set, RTC seen)
-------------------------------------> ------------------------------------->
Database Description (DC-bit set) Database Description (DC-bit set)
<------------------------------------- <-------------------------------------
Figure 2: Successful negotiation of Hello Figure 2: Successful negotiation of Hello
suppression. suppression.
LSAs included in Link State Updates Packets sent over the
demand circuit (in response to Link State Request Packets), demand circuit (in response to Link State Request Packets),
will have the DoNotAge bit set in their LS age field. So, will have the DoNotAge bit set in their LS age field. So,
after the Database Exchange Process is finished, all routers after the Database Exchange Process is finished, all routers
will have 3 LSAs in their link state databases (router-LSAs will have 3 LSAs in their link state databases (router-LSAs
for Routers RTA, RTB and RTC), but the LS age fields for Routers RTA, RTB and RTC), but the LS age fields
belonging to the LSAs will vary depending on which side of belonging to the LSAs will vary depending on which side of
the demand circuit they were originated from (see Table 1). the demand circuit they were originated from (see Table 1).
For example, all routers other than Router RTC have the For example, all routers other than Router RTC have the
DoNotAge bit set in Router RTC's router-LSA; this removes DoNotAge bit set in Router RTC's router-LSA; this removes
the need for Router RTC to refresh its router-LSA over the the need for Router RTC to refresh its router-LSA over the
demand circuit. demand circuit.
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 T2: Hello traffic ceases Time T2: Hello traffic ceases
After the Database Exchange Process has completed, no Hellos After the Database Exchange Process has completed, no Hellos
are sent over the demand circuit. If there is no application are sent over the demand circuit. If there is no application
data to be sent over the demand circuit, the circuit will be data to be sent over the demand circuit, the circuit will be
idle. idle.
Time T3: Underlying data-link connection torn down Time T3: Underlying data-link connection torn down
After some period of inactivity, the underlying data-link After some period of inactivity, the underlying data-link
connection will be torn down (e.g., an ISDN call would be connection will be torn down (e.g., an ISDN call would be
cleared) in order to save connect charges. This will be cleared) in order to save connect charges. This will be
transparent to the OSPF routing; no LSAs or routing table transparent to the OSPF routing; no LSAs or routing table
entries will change as a result. 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 Time T4: Router RTA's LSA is refreshed
At some point Router RTA will refresh its own router-LSA At some point Router RTA will refresh its own router-LSA
(i.e., when the LSA's LS age hits LSRefreshInterval). This (i.e., when the LSA's LS age hits LSRefreshInterval). This
refresh will be flooded to Router RTB, who will look at it refresh will be flooded to Router RTB, who will look at it
and decide NOT to flood it over the demand circuit to Router and decide NOT to flood it over the demand circuit to Router
RTC, because the LSA's contents have not really changed RTC, because the LSA's contents have not really changed
(only the LS Sequence Number). At this point, the LS (only the LS Sequence Number). At this point, the LS
sequence numbers that the routers have for RTA's router-LSA sequence numbers that the routers have for RTA's router-LSA
differ depending on which side of the demand circuit the differ depending on which side of the demand circuit the
skipping to change at page 20, line 8 skipping to change at page 19, line 20
point interfaces down, and originate new router-LSAs. Both point interfaces down, and originate new router-LSAs. Both
routers will attempt to bring the connection back up by routers will attempt to bring the connection back up by
sending Hellos at the reduced rate of PollInterval. Note sending Hellos at the reduced rate of PollInterval. Note
that while the connection is inoperative, Routers RTA and that while the connection is inoperative, Routers RTA and
RTB will continue to have an old router-LSA for RTC in their RTB will continue to have an old router-LSA for RTC in their
link state database, and this LSA will not age out because link state database, and this LSA will not age out because
it has the DoNotAge bit set. However, according to Section it has the DoNotAge bit set. However, according to Section
2.3 they will flush Router RTC's router-LSA if the demand 2.3 they will flush Router RTC's router-LSA if the demand
circuit remains inoperative for longer than MaxAge. circuit remains inoperative for longer than MaxAge.
4.2. Example 2: Demand and non-demand circuits in parallel 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 This example demonstrates the demand circuit functionality when
other routers and their attached links are both operational and both demand circuits and non-demand circuits (e.g., leased lines)
implement the demand circuit modifications to OSPF. Throughout are used to interconnect regions of an internetwork. Such an
the example, a TCP connection between Hosts H1 and H2 is internetwork is shown in Figure 3. Host H1 can communicate with
transmitting data. Furthermore, assume that the cost of the Host H2 either over the demand link between Routers RTB and RTC,
demand circuit from RTB to RTC has been set considerably higher or over the leased line between Routers RTB and RTD.
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: 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.
Time T0: Router RTB comes up. Assume that Routers RTB and RTY are initially 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.
Assume RTB supports the demand circuit OSPF modifications. The following events may then transpire:
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 in their database copies
of RTA's and 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|--| + |RTC|--| +
+---+ | +---+ | +---+ | +---+ |
+ / |--|RTE|--| +--+ + / |--|RTE|--| +--+
+--+ | /ODL | +---+ |--|H2| +--+ | /ODL | +---+ |--|H2|
|H1|----| +---+ +---+/ | + +--+ |H1|----| +---+ +---+/ | + +--+
+--+ |--|RTA|-------|RTB| | +--+ |--|RTA|-------|RTB| |
| +---+ +---+\ | + | +---+ +---+\ | +
skipping to change at page 22, line 5 skipping to change at page 20, line 33
Figure 3: Example 2's internetwork. Figure 3: Example 2's internetwork.
Vertical lines are LAN segments. Six routers Vertical lines are LAN segments. Six routers
are pictured, Routers RTA-RTE and RTY. are pictured, Routers RTA-RTE and RTY.
RTB has three serial line interfaces, two of RTB has three serial line interfaces, two of
which are leased lines and the third (connecting to which are leased lines and the third (connecting to
RTC) a demand circuit. Two hosts, H1 and RTC) a demand circuit. Two hosts, H1 and
H2, are pictured to illustrate the effect of H2, are pictured to illustrate the effect of
application traffic. application traffic.
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 in their database copies
of RTA's and 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.
LS age LS age
LSA in RTC in RTD in RTE LSA in RTC in RTD in RTE
________________________________________________ ________________________________________________
RTA's Router-LSA DoNotAge+20 21 21 RTA's Router-LSA DoNotAge+20 21 21
RTB's Router-LSA DoNotAge+5 6 6 RTB's Router-LSA DoNotAge+5 6 6
Table 2: After Time T0 in Example 2, LS age Table 2: After Time T0 in Example 2, LS age
fields on the right side of Router RTB. fields on the right side of Router RTB.
LS age LS age
skipping to change at page 24, line 26 skipping to change at page 23, line 26
router-LSA then will not have the DC-bit set in its Options router-LSA then will not have the DC-bit set in its Options
field, and as the router-LSA is flooded throughout the field, and as the router-LSA is flooded throughout the
internetwork it flushes all LSAs having the DoNotAge bit set internetwork it flushes all LSAs having the DoNotAge bit set
and causes the flooding behavior over the demand circuit to and causes the flooding behavior over the demand circuit to
revert back to the normal flooding behavior defined in [1]. revert back to the normal flooding behavior defined in [1].
However, although all LSAs will now be flooded over the However, although all LSAs will now be flooded over the
demand circuit, regardless of whether their contents have demand circuit, regardless of whether their contents have
really changed, Hellos will still continue to be suppressed really changed, Hellos will still continue to be suppressed
on the demand circuit (see Section 3.2.2). on the demand circuit (see Section 3.2.2).
4.3. Example 3: Operation when oversubscribed 4.3. Example 3: Operation when oversubscribed
Figure 4 shows a single Router (RT1) connected via demand The following example shows the behavior of the demand circuit
circuits to three other routers (RT2-RT4). Assume that RT1 can extensions in the presence of oversubscribed interfaces. Note that
only have two out of three underlying data-link connections open the example's topology excludes the possibility of alternative
at once. This may be due to one of the following reasons: paths. The combination of oversubscription and redundant topology
Router RT1 may be using a single Basic Rate ISDN interface (2 B (i.e., alternative paths) poses special problems for the demand
channels) to support all three demand circuits, or, RT1 may be circuit extensions. These problems are discussed later in Section
connected a data-link switch (e.g., X.25 or Frame relay) that is 7.
only capable of so many simultaneous data-link connections.
The following events may transpire, starting with Router RT1 Figure 4 shows a single Router (RT1) connected via demand circuits
coming up. 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 following reasons: Router RT1 may be
using a single Basic Rate ISDN interface (2 B channels) to support
all three demand circuits, or, RT1 may be connected to a data-link
switch (e.g., an X.25 or Frame relay switch) 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. Time T0: Router RT1 comes up.
Router RT1 attempts to establish neighbor connections and Router RT1 attempts to establish neighbor connections and
synchronize OSPF databases with routers RT2-RT4. But, 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| +---+ |--|H2|
+---------|RT2|--| +--+ +---------|RT2|--| +--+
/ +---+ | / +---+ |
/ ODL + / ODL +
+--+ + / +--+ + /
|H1|--| / + |H1|--| / +
+--+ | +---+ ODL +---+ | +--+ +--+ | +---+ ODL +---+ | +--+
|--|RT1|------------|RT3|--|--|H4| |--|RT1|------------|RT3|--|--|H3|
| +---+ +---+ | +--+ | +---+ +---+ | +--+
| \ + | \ +
+ \ODL + \ODL
\ + +--+ \ + +--+
\ +---+ |--|H2| \ +---+ |--|H4|
+--------|RT4|--| +--+ +--------|RT4|--| +--+
+---+ | +---+ |
+ +
Figure 4: Example 3's internetwork. Figure 4: Example 3's internetwork.
that RT1 attempts to send to RT4 will cause that data-link because it cannot have data-link connections open to all
connection to open and synchronization with RT4 will ensue. three at once, it will synchronize with RT2 and RT3, while
Note that, until this time, H2 will be considered Hellos sent to RT4 will be discarded (see Section 1).
unreachable by OSPF routing. However, data traffic would not
have been deliverable to H2 until now in any case. Time T1: Data-link connection to RT2 closed due to inactivity.
Assuming that no application traffic is being sent to/from
Host H2, the underlying data-link connection to RT2 will
eventually close due to inactivity. This will allow RT1 to
finally synchronize with RT4; the next Hello 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, H4 will have been considered unreachable by
OSPF routing. However, data traffic would not have been
deliverable to H4 until now in any case.
Time T2: RT2's LAN interface becomes inoperational Time T2: RT2's LAN interface becomes inoperational
This causes RT2 to reissue its router-LSA. However, it may This causes RT2 to reissue its router-LSA. However, it may
be unable to flood it to RT1 if RT1 already has data-link be unable to flood it to RT1 if RT1 already has data-link
connections open to RT3 and RT4. While the data-link connections open to RT3 and RT4. While the data-link
connection from RT2 to RT1 cannot be opened due to resource connection from RT2 to RT1 cannot be opened due to resource
shortages, the new router-LSA will be continually shortages, the new router-LSA will be continually
retransmitted (and dropped by RT2's ISDN interface; see retransmitted (and dropped by RT2's ISDN interface; see
Section 1). This means that the routers RT1, RT3 and RT4 Section 1). This means that the routers RT1, RT3 and RT4
will not detect the unreachability of Host H3 until a data- will not detect the unreachability of Host H2 until a data-
link connection on RT1 becomes available. link connection on RT1 becomes available.
5. Topology recommendations 5. Topology recommendations
Because LSAs indicating topology changes are still flooded over Because LSAs indicating topology changes are still flooded over
demand circuits, it is still advantageous to design networks so that demand circuits, it is still advantageous to design networks so that
the demand circuits are isolated from as many topology changes as the demand circuits are isolated from as many topology changes as
possible. In OSPF, this is done by encasing the demand circuits possible. In OSPF, this is done by encasing the demand circuits
within OSPF stub areas or within NSSAs (see [3]). In both cases, within OSPF stub areas or within NSSAs (see [3]). In both cases, this
this isolates the demand circuits from AS external routing changes, isolates the demand circuits from AS external routing changes, which
which in many networks are the most frequent (see [6]). Stub areas in many networks are the most frequent (see [6]). Stub areas can even
can even isolate the demand circuits from changes in other OSPF isolate the demand circuits from changes in other OSPF areas.
areas.
Also, considering the interoperation of OSPF routers supporting Also, considering the interoperation of OSPF routers supporting
demand circuits and those that do not (see Section 2.5), isolated demand circuits and those that do not (see Section 2.5), isolated
stub areas or NSSAs can be converted independently to support demand stub areas or NSSAs can be converted independently to support demand
circuits. In contrast, regular OSPF areas must all be converted circuits. In contrast, regular OSPF areas must all be converted
before the functionality can take effect in any particular regular before the functionality can take effect in any particular regular
OSPF area. OSPF area.
6. Lost functionality 6. Lost functionality
The enhancements defined in this memo to support demand circuits The enhancements defined in this memo to support demand circuits come
come at some cost. Although we gain an efficient use of demand at some cost. Although we gain an efficient use of demand circuits,
circuits, holding them open only when there is actual application holding them open only when there is actual application data to send,
data to send, we lose the following: we lose the following:
Robustness Robustness
In regular OSPF [1], all LSAs are refreshed every In regular OSPF [1], all LSAs are refreshed every
LSRefreshInterval. This provides protection against routers LSRefreshInterval. This provides protection against routers
losing LSAs from (or LSAs getting corrupted in) their link state losing LSAs from (or LSAs getting corrupted in) their link state
databases due to software errors, etc. Over demand circuits databases due to software errors, etc. Over demand circuits
this periodic refresh is removed, and we depend on routers this periodic refresh is removed, and we depend on routers
correctly holding LSAs marked with DoNotAge in their databases correctly holding LSAs marked with DoNotAge in their databases
indefinitely. indefinitely.
skipping to change at page 26, line 48 skipping to change at page 26, line 19
synchronization among routers. However, these variables are sums synchronization among routers. However, these variables are sums
of the individual LSAs' LS checksum fields, which are no longer of the individual LSAs' LS checksum fields, which are no longer
guaranteed to be identical across demand circuits (because the guaranteed to be identical across demand circuits (because the
LS checksum covers the LS Sequence Number, which will in general LS checksum covers the LS Sequence Number, which will in general
differ across demand circuits). This means that these variables differ across demand circuits). This means that these variables
can no longer be used to verify database synchronization in OSPF can no longer be used to verify database synchronization in OSPF
networks containing demand circuits. networks containing demand circuits.
7. Future work: Oversubscription 7. Future work: Oversubscription
An internetwork is oversubscribed when not all of its demand An internetwork is oversubscribed when not all of its demand
circuits' underlying connections can be open at once, due to circuits' underlying connections can be open at once, due to resource
resource limitations. These internetworks were addressed in Section limitations. These internetworks were addressed in Section 4.3.
4.3. However, when all possible sources in the internetwork are However, when all possible sources in the internetwork are 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 currently
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.
+--+ + + +--+ +--+ + + +--+
|H1|--| +---+ ODL +---+ |--|H2| |H1|--| +---+ ODL +---+ |--|H2|
+--+ |--|RT1|-------|RT2|--| +--+ +--+ |--|RT1|-------|RT2|--| +--+
| +---+ +---+ | | +---+ +---+ |
+ | \ / | + + | \ / | +
| \ / | | \ / |
| \ / | | \ / |
|ODL / |ODL |ODL / |ODL
| / \ODL | | / \ODL |
| / \ | | / \ |
skipping to change at page 28, line 5 skipping to change at page 28, line 23
| | | \ | | | \
| | | \ | | | \
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
|RT4|-------|RT3| |RT4|-------|RT3| |RT4|-------|RT3| |RT4|-------|RT3|
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
Figure 5a: One possible Figure 5b: Another possible Figure 5a: One possible Figure 5b: Another possible
pattern of data-link pattern of data-link pattern of data-link pattern of data-link
connections connections connections connections
active at once, problems can occur which are not addressed in this On possible approach to this problem is to increase the OSPF cost of
memo: demand circuits that are currently discarding application packets
(i.e., can't be established) due to resource shortages. This may help
(1) There is a network design problem. Does a subset of demand the routing find paths that can actually deliver the packets. On the
circuits exist such that a) their data-link connections can be downside, it would create more routing traffic. Also, unwanted
open simultaneously and b) they can provide connectivity for all routing oscillations may result when you start varying routing
possible sources? This requires that (at least) a spanning tree metrics to reflect dynamic network conditions; see [10].
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? 8. Unsupported capabilities
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 The following possible capabilities associated with demand circuit
database to indicate which demand circuits have actually been routing have explicitly not been supported by this memo:
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? o When the topology of an OSPF area changes, the changes are
Routers implementing the functionality described in this memo do flooded over the area's demand circuits, even if this requires
not necessarily know which data-link connections are established (re)establishing the demand circuits' data-link connections. One
at any one time. In fact, they view all demand circuits as being might imagine a routing system where the flooding of topology
equally available, whether or not they are established. So for changes over demand circuits were delayed until the demand
example, even when the established connections form the pattern circuits were (re)opened for application traffic. However, this
in Figure 5a, Router RT1 may still believe that the best path to capability is unsupported because delaying the flooding in this
Router RT3 is through the direct demand circuit. However, this manner would sometimes impair the ability to discover new
circuit cannot be established due to resource shortages. network destinations.
On possible approach to this problem is to increase the OSPF o Refining the previous capability, one might imagine that the
cost of demand circuits that are currently discarding network administrator would be able to configure for each demand
application packets (i.e., can't be established) due to resource interface whether flooding should be immediate, or whether it
shortages. This may help the routing find paths that can should be delayed until the data-link connection is established
actually deliver the packets. On the downside, it would create for application traffic. This would allow certain "application-
more routing traffic. Also, unwanted routing oscillations may specific" routing behaviors. For example, a demand circuit may
result when you start varying routing metrics to reflect dynamic connect a collection of client-based subnets to a collection of
network conditions; see [10]. server-based subnets. If the client end was configured to delay
flooding, while the server end was configured to flood changes
immediately, then new servers would be discovered promptly while
clients might not be discovered until they initiate
conversations. However, this capability is unsupported because
of the increased complexity of (and possibility for error in)
the network configuration.
A. Format of the OSPF Options field A. Format of the OSPF Options field
The OSPF Options field is present in OSPF Hello packets, Database The OSPF Options field is present in OSPF Hello packets, Database
Description packets and all LSAs. The Options field enables OSPF Description packets and all LSAs. The Options field enables OSPF
routers to support (or not support) optional capabilities, and to routers to support (or not support) optional capabilities, and to
communicate their capability level to other OSPF routers. Through communicate their capability level to other OSPF routers. Through
this mechanism routers of differing capabilities can be mixed within this mechanism routers of differing capabilities can be mixed within
an OSPF routing domain. an OSPF routing domain.
The memo defines one of the Option bits: the DC-bit (for Demand The memo defines one of the Option bits: the DC-bit (for Demand
Circuit capability). The DC-bit is set in a router's self-originated Circuit capability). The DC-bit is set in a router's self-originated
LSAs if and only if it supports the functionality defined in Section LSAs if and only if it supports the functionality defined in Section
2 of this memo. Note that this does not necessarily mean that the 2 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 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 properly process LSAs having the DoNotAge bit set. In contrast, the
DC-bit is set in Hello Packets and Database Description Packets sent 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 out an interface if and only if the router wants to treat the
attached point-to-point network as a demand circuit (see Section attached point-to-point network as a demand circuit (see Section
3.2.1). 3.2.1).
The addition of the DC-bit makes the current assignment of the OSPF The addition of the DC-bit makes the current assignment of the OSPF
Options field as follows: Options field as follows:
+------------------------------------+ +------------------------------------+
| * | * | DC | EA | N/P | MC | E | T | | * | * | DC | EA | N/P | MC | E | T |
+------------------------------------+ +------------------------------------+
Figure 5: The OSPF Options field Figure 5: The OSPF Options field
T-bit T-bit
This bit describes TOS-based routing capability, as specified in This bit describes TOS-based routing capability, as specified in
[1]. [1].
skipping to change at page 30, line 4 skipping to change at page 31, line 7
MC-bit MC-bit
This bit describes whether IP multicast datagrams are forwarded This bit describes whether IP multicast datagrams are forwarded
according to the specifications in [4]. according to the specifications in [4].
N/P-bit N/P-bit
This bit describes the handling of Type-7 LSAs, as specified in This bit describes the handling of Type-7 LSAs, as specified in
[3]. [3].
EA-bit EA-bit
This bit describes the router's willingness to receive and This bit describes the router's willingness to receive and
forward External Attributes LSAs, as specified in [5]. forward External-Attributes-LSAs, as specified in [5].
DC-bit DC-bit
This bit describes the handling of demand circuits, as specified This bit describes the handling of demand circuits, as specified
in this memo. Its setting in Hellos and Database Description in this memo. Its setting in Hellos and Database Description
Packets is described in Sections 3.2.1 and 3.2.2. Its setting in Packets is described in Sections 3.2.1 and 3.2.2. Its setting in
LSAs is described in Sections 2.1 and 2.5. LSAs is described in Sections 2.1 and 2.5.
B. Configurable Parameters B. Configurable Parameters
This memo defines a single additional configuration parameter for This memo defines a single additional configuration parameter for
OSPF interfaces. In addition, the OSPF Interface configuration OSPF interfaces. In addition, the OSPF Interface configuration
parameter PollInterval, previously used only on NBMA networks, is parameter PollInterval, previously used only on NBMA networks, is now
now also used on point-to-point networks (see Sections 3.1 and also used on point-to-point networks (see Sections 3.1 and 3.2.2).
3.2.2).
DemandInterface ospfIfDemand
Indicates whether the interface connects to a demand circuit. Indicates whether the interface connects to a demand circuit.
When set to TRUE, the procedures described in Section 3 of this When set to TRUE, the procedures described in Section 3 of this
memo are followed, in order to send a minimum of routing traffic memo are followed, in order to send a minimum of routing traffic
over the demand circuit. On point-to-point networks, this allows over the demand circuit. On point-to-point networks, this allows
the circuit to be closed when not carrying application traffic. the circuit to be closed when not carrying application traffic.
When a broadcast or NBMA network is configured to be a demand When a broadcast or NBMA interface is configured to connect to a
interface (see Section 1.2 of [1]), the circuit will be kept demand circuit (see Section 1.2 of [1]), the data-link
open constantly due to OSPF Hello traffic, but the amount of connections will be kept open constantly due to OSPF Hello
flooding traffic will still be greatly reduced. traffic, but the amount of flooding traffic will still be
greatly reduced.
C. Architectural Constants C. Architectural Constants
This memo defines a single additional OSPF architectural constant. This memo defines a single additional OSPF architectural constant.
DoNotAge DoNotAge
Equal to the hexadecimal value 0x8000, which is the high bit of Equal to the hexadecimal value 0x8000, which is the high bit of
the 16-bit LS Age field in OSPF LSAs. When this bit is set in 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 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 router's link state database. This allows the elimination of the
periodic LSA refresh over demand circuits. See Section 2.2 for periodic LSA refresh over demand circuits. See Section 2.2 for
more information on processing the DoNotAge bit. more information on processing the DoNotAge bit.
References References
[1] Moy, J., "OSPF Version 2", RFC 1583, Proteon, Inc., March 1994. [1] Moy, J., "OSPF Version 2", RFC 1583, Proteon, Inc., March 1994.
[2] Meyer, G., "Extensions to RIP to Support Demand Circuits", RFC [2] Meyer, G., "Extensions to RIP to Support Demand Circuits", RFC
1582, Spider Systems, February 1994. 1582, Spider Systems, February 1994.
[3] Coltun, R. and V. Fuller, "The OSPF NSSA Option", RFC 1587, [3] Coltun, R. and V. Fuller, "The OSPF NSSA Option", RFC 1587,
RainbowBridge Communications, Stanford University, March 1994. RainbowBridge Communications, Stanford University, March 1994.
[4] Moy, J., "Multicast Extensions to OSPF", RFC 1584, Proteon, [4] Moy, J., "Multicast Extensions to OSPF", RFC 1584, Proteon, Inc.,
Inc., March 1994. March 1994.
[5] Ferguson, D., "The OSPF External Attributes LSA", work in [5] Ferguson, D., "The OSPF External Attributes LSA", Work in
progress. Progress.
[6] Moy, J., editor, "OSPF protocol analysis", RFC 1245, Proteon, [6] Moy, J., Editor, "OSPF Protocol Analysis", RFC 1245, Proteon,
Inc., July 1991. Inc., July 1991.
[7] Baker F. and R. Coltun, "OSPF Version 2 Management Information [7] Baker F. and R. Coltun, "OSPF Version 2 Management Information
Base", RFC 1253, ACC, University of Maryland, August 1991. Base", RFC 1253, ACC, University of Maryland, August 1991.
[8] Baker F., "OSPF Point-to-MultiPoint Interface", work in [8] Baker F., "OSPF Point-to-MultiPoint Interface", Work in Progress.
progress.
[9] Bertsekas, D. and Gallager R., "Data Networks", Prentice Hall, [9] Bertsekas, D., and R. Gallager, "Data Networks", Prentice Hall,
Inc., 1992. Inc., 1992.
[10] Khanna, A., "Short-Term Modifications to Routing and Congestion [10] Khanna, A., "Short-Term Modifications to Routing and Congestion
Control", BBN Report 6714, BBN, February 1988. Control", BBN Report 6714, BBN, February 1988.
Security Considerations Security Considerations
Security issues are not discussed in this memo. Security issues are not discussed in this memo.
Author's Address Author's Address
John Moy John Moy
Cascade Communications Corp. Cascade Communications Corp.
5 Carlisle Road 5 Carlisle Road
Westford, MA 01886 Westford, MA 01886
Phone: 508-692-2600 Ext. 394
Fax: 508-692-9214
Email: jmoy@casc.com
This document expires in May 1995. Phone: 508-692-2600 Ext. 394
Fax: 508-692-9214
EMail: jmoy@casc.com
 End of changes. 136 change blocks. 
733 lines changed or deleted 768 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/