draft-ietf-ospf-demand-00.txt   draft-ietf-ospf-demand-01.txt 
Network Working Group J. Moy Network Working Group J. Moy
Internet Draft Proteon, Inc. Internet Draft Cascade
Expiration Date: November 1994 May 1994 Expiration Date: May 1995 November 1994
File name: draft-ietf-ospf-demand-00.txt 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 is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months. Internet-Drafts may be updated, replaced, or obsoleted by months and may be updated, replaced, or obsoleted by other documents
other documents at any time. It is not appropriate to use at any time. It is inappropriate to use Internet- Drafts as
Internet-Drafts as reference material or to cite them other than as reference material or to cite them other than as "work in progress".
a "working draft" or "work in progress".
To learn the current status of any Internet-Draft, please check the To learn the current status of any Internet-Draft, please check the
1id-abstracts.txt listing contained in the Internet-Drafts Shadow "1id-abstracts.txt" listing contained in the Internet- Drafts Shadow
Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or Directories on ds.internic.net (US East Coast), nic.nordu.net
munnari.oz.au. (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
those whose costs vary with usage; charges can be based both on network segments whose costs vary with usage; charges can be based
connect time and on bytes/packets transmitted. Examples of such both on connect time and on bytes/packets transmitted. Examples of
circuits include ISDN circuits, X.25 SVCs, and dial-up lines. The demand circuits include ISDN circuits, X.25 SVCs, and dial-up lines.
periodic nature of OSPF routing traffic (as defined in [1]) requires The periodic nature of OSPF routing traffic has until now required a
such circuits to be open constantly, resulting in unwanted usage demand circuit's underlying data-link connection to be constantly
charges. With the modifications described herein, OSPF Hellos and open, resulting in unwanted usage charges. With the modifications
the refresh of OSPF routing information are suppressed, allowing described herein, OSPF Hellos and the refresh of OSPF routing
demand circuits to be closed when not carrying application traffic. information are suppressed on demand circuits, allowing the
underlying data-link connections to be closed when not carrying
application traffic.
Demand circuits and regular network segments (e.g., leased lines) Demand circuits and regular network segments (e.g., leased lines)
are allowed to be combined in any manner. In other words, there are are allowed to be combined in any manner. In other words, there are
no topological restrictions on the demand circuit support. However, no 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 and NBMA networks are declared demand circuits, routing broadcast and NBMA networks are declared demand circuits, routing
update traffic is reduced but the periodic sending of Hellos is not, update traffic is reduced but the periodic sending of Hellos is not,
which in effect still requires that the data-link circuits be which in effect still requires that the data-link connections be
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 comparable to that specified for
RIP in [2]. However, because OSPF is a link-state routing protocol RIP in [2]. However, because OSPF employs link-state routing
rather than a Distance Vector protocol, the mechanisms used to technology as opposed to RIP's Distance Vector base, the mechanisms
achieve that functionality are quite different. used to achieve the 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, Gerry Meyer, and Tom Pusateri. This memo is a Baker, Rob Coltun, Dawn Li, Gerry Meyer, Tom Pusateri and Zhaohui
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 .............................. 4
2 Modifications to all OSPF routers ...................... 4 2 Modifications to all OSPF routers ...................... 5
2.1 The LS age field ....................................... 5 2.1 The OSPF Options field ................................. 5
2.2 Removing old, non-aging LSAs ........................... 6 2.2 The LS age field ....................................... 5
2.3 Interoperability with unmodified OSPF routers .......... 6 2.3 Removing stale DoNotAge LSAs ........................... 6
3 Modifications to demand circuit endpoints .............. 7 2.4 A change to the flooding algorithm ..................... 7
3.1 Configuring demand circuits ............................ 7 2.5 Interoperability with unmodified OSPF routers .......... 8
3.2 Sending and Receiving OSPF Hellos ...................... 8 2.5.1 Indicating across area boundaries ...................... 9
3.3 Interface State machine modifications .................. 8 2.5.1.1 Limiting indication-LSA origination ................... 10
3.4 Flooding over demand circuits .......................... 9 3 Modifications to demand circuit endpoints ............. 11
4 Examples .............................................. 10 3.1 Interface State machine modifications ................. 11
4.1 Example 1: Sole connectivity through demand circuits .. 10 3.2 Sending and Receiving OSPF Hellos ..................... 11
4.2 Example 2: Demand and non-demand circuits in parallel . 14 3.2.1 Negotiating Hello suppression ......................... 12
4.3 Example 3: Operation when suffering SVC shortage ...... 18 3.2.2 Neighbor state machine modifications .................. 12
5 Topology recommendations .............................. 20 3.3 Flooding over demand circuits ......................... 13
6 Lost functionality .................................... 20 3.4 Virtual link support .................................. 14
A The Options field ..................................... 22 3.5 Point-to-MultiPoint Interface support ................. 15
B Configurable Parameters ............................... 23 4 Examples .............................................. 16
C Architectural Constants ............................... 23 4.1 Example 1: Sole connectivity through demand circuits .. 16
References ............................................ 24 4.2 Example 2: Demand and non-demand circuits in parallel . 20
Security Considerations ............................... 24 4.3 Example 3: Operation when oversubscribed .............. 24
Author's Address ...................................... 24 5 Topology recommendations .............................. 25
6 Lost functionality .................................... 26
7 Future work: Oversubscription ......................... 26
A Format of the OSPF Options field ...................... 29
B Configurable Parameters ............................... 30
C Architectural Constants ............................... 30
References ............................................ 31
Security Considerations ............................... 31
Author's Address ...................................... 31
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 or on 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 routing traffic at all; this allows the underlying data-link no 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). If the connection is successful, the data is sent, and the placed). When/if the data-link connection is established, the data
circuit stays open until some period of time elapses without more is sent, and the connection stays open until some period of time
data to send. At this point the data-link connection is again elapses without more data to send. At this point the data-link
closed, in order to conserve cost and resources (see Section 1 of connection is again closed, in order to conserve cost and resources
[2]). (see Section 1 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 data-link connection may be closed at any particular Even though a circuit's data-link connection may be closed at any
time, it is assumed by the routing layer that it is available unless particular time, it is assumed by the routing layer (i.e., OSPF)
other information, such as a discouraging diagnostic code resulting that the circuit is available unless other information, such as a
from an attempted data-link connection, is present. discouraging diagnostic code resulting from an attempted data-link
connection, is present.
It may be possible that a data-link connection cannot be opened due It may be possible that a data-link connection cannot be established
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. In these cases, datagrams to be X.25 SVCs simultaneously supported. When a router cannot
forwarded out these (temporarily unopenable) data-link connections simultaneously open all of its circuits' underlying data-link
are discarded, instead of queued. Note also that this temporary connections due to resource limitations, we say that the router is
inability to open data-link connections is NOT reported by the OSPF oversubscribed. In these cases, datagrams to be forwarded out the
routing system as unreachability; see Section 4.3 for more (temporarily unopenable) data-link connections are discarded,
information. instead of being queued. Note also that this temporary inability to
open data-link connections due to oversubscription is NOT reported
by the OSPF routing system as unreachability; see Section 4.3 for
more information.
This memo assumes that either end of a demand circuit can open the
underlying data-link connection. Note that this assumption is not
true for certain dial-up modems. Also, for some dial network
technologies, call collisions can result when both ends of a circuit
simultaneously attempt to establish the data-link connection. This
memo does not address how such collisions are handled, assuming
instead that they are resolved at the data-link level.
2. Modifications to all OSPF routers 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, there are changes required isolated to the demand circuit endpoints (see Section 3), there are
of all OSPF routers. These changes are described in the subsections changes required of all OSPF routers. These changes are described in
below. Routers implementing these changes set the DC-bit in the the subsections below.
options field of their router-LSA (see Section 2.3 and Appendix A),
even if they do not implement the more substantial modifications
required of demand circuit endpoints that are described in Section
3.
2.1. The LS age field 2.1. The OSPF Options field
A new bit is added to the OSPF Options field to support the
demand circuit extensions. This bit is called the "DC-bit". The
resulting format of the Options field is described in Appendix
A.
A router implementing the functionality described in Section 2
of this memo sets the DC-bit in the Options field of all LSAs
that it originates. This is regardless of the LSAs' LS type, and
also regardless of whether the router implements the more
substantial modifications required of demand circuit endpoints
(see Section 3). Setting the DC-bit in self-originated LSAs
tells the rest of the routing domain that the router can
correctly process DoNotAge LSAs (see Sections 2.2, 2.3 and 2.5).
There is a single exception to the above rule. A router
implementing Section 2 of this memo may sometimes originate an
"indication-LSA"; these LSAs always have the DC-bit clear.
Indication-LSAs are used to convey across area boundaries the
existence of routers incapable of DoNotAge processing; see
Section 2.5.1 for details.
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 high bit (DoNotAge; see Appendix C) to be set. Previously the high bit to be set. This bit is called "DoNotAge"; see
the LS age field could not exceed the value of MaxAge. LSAs Appendix C for its formal definition. LSAs whose LS age field
whose LS age field have the DoNotAge bit set are not aged while have the DoNotAge bit set are not aged while they are held in
they are held in the link state database, which means that they the link state database, which means that they do not have to be
do not have to be refreshed every LSRefreshInterval as is done refreshed every LSRefreshInterval as is done with all other OSPF
with all other OSPF LSAs. 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 set as "DoNotAge+x", while an LS age
expressed as just "x" is assumed not to have the DoNotAge bit expressed as just "x" is assumed to not have the DoNotAge bit
set. set. LSAs having DoNotAge set are also sometimes referred to as
"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, the two LSAs' LS age fields are compared whenever the LS recent, the two LSAs' LS age fields are compared whenever the LS
sequence numbers and LS checksums are found identical (see sequence numbers and LS checksums are found identical (see
Section 13.1 of [1]). Before comparing, the LS age fields should Section 13.1 of [1]). Before comparing, the LS age fields must
have their DoNotAge bits masked off. For example, in have their DoNotAge bits masked off. For example, in
determining which LSA is more recent, LS ages of 1 and determining which LSA is more recent, LS ages of 1 and
DoNotAge+1 should be considered equivalent; an LSA flooded with DoNotAge+1 are considered equivalent; an LSA flooded with LS age
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. listing an LS age of DoNotAge+1, or vice versa. In particular,
As a special case, DoNotAge+MaxAge is equivalent to MaxAge, and DoNotAge+MaxAge is equivalent to MaxAge; however for backward-
either form can be used to flush LSAs from the routing domain compatibility the MaxAge form should always be used when
(see Section 14.1 of [1]). flushing LSAs from the routing domain (see Section 14.1 of [1]).
When an LSA is flooded out a non-demand interface, the constant
InfTransDelay is added to the LSA's LS age field. This happens
even if the DoNotAge bit is set; in this case the LS age field
is not allowed to exceed DoNotAge+MaxAge, at which time the LSA
is flushed from the routing domain. This preserves the
protection in [1] afforded against flooding loops. Flooding out
demand interfaces is covered in Section 3.4.
Thus, the set of allowable values for the LS age field fall into 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. Any LS age field not falling into these two DoNotAge+MaxAge. (Previously the LS age field could not exceed
ranges should be considered to be equal to MaxAge. the value of MaxAge.) Any LS age field not falling into these
two ranges should be considered to be equal to MaxAge.
When an LSA is flooded out an interface, the constant
InfTransDelay is added to the LSA's LS age field. This happens
even if the DoNotAge bit is set; in this case the LS age field
is not allowed to exceed DoNotAge+MaxAge. If the LS age field
reaches DoNotAge+MaxAge during flooding, the LSA is flushed from
the routing domain. This preserves the protection in [1]
afforded against flooding loops.
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 own database. This means that in any case the router's its own database. This means that in any case the router's
self-originated LSAs will be refreshed every LSRefreshInterval. self-originated LSAs will be refreshed every LSRefreshInterval.
As this refresh is flooded throughout the OSPF routing domain, As this refresh is flooded throughout the OSPF routing domain,
it will replace any LSA copies whose DoNotAge bits were it will replace any LSA copies in other routers' databases whose
mistakenly set. DoNotAge bits were mistakenly set.
2.2. Removing old, non-aging 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 flush an LSA if the originator of the LSA has been to flush a DoNotAge LSA if both of the following conditions are
unreachable (according to the routing calculations specified by met:
Section 16 of [1]) for the time MaxAge. For an example, see Time
T8 in Section 4.1. This is an exception to the general OSPF rule (1) The LSA has been in the router's database for at least
that a router can only flush its own self-originated LSAs. MaxAge seconds.
(2) The originator of the LSA has been unreachable (according to
the routing calculations specified by Section 16 of [1]) for
at least MaxAge seconds.
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
rule that a router can only flush (i.e., prematurely age; see
Section 14.1 of [1]) its own self-originated LSAs. The above
functionality pertains only to DoNotAge LSAs. An LSA having
DoNotAge clear still can be prematurely aged only by its
originator; otherwise, the LSA must age naturally to MaxAge
before being removed from the routing domain.
An interval as long as MaxAge has been chosen to avoid any An interval as long as MaxAge has been chosen to avoid any
possibility of thrashing (i.e., flushing an advertisement only possibility of thrashing (i.e., flushing an LSA only to have it
to have it reoriginated soon afterwards). reoriginated soon afterwards). Note that by the above rules, a
DoNotAge LSA will be removed from the routing domain no faster
than if it were being aged naturally (i.e., if DoNotAge were not
set).
2.3. Interoperability with unmodified OSPF routers 2.4. A change to the flooding algorithm
Unmodified OSPF routers will probably treat LSAs with the The following change is made to the OSPF flooding algorithm.
DoNotAge bit set as if they had LS age of MaxAge. At the very When a Link State Update Packet is received that contains an LSA
worst, this will cause continual retransmissions of LSAs with instance which is actually less recent than the the router's
the DoNotAge bit set. current database copy, the router must now respond by sending
its database copy (encapsulated in a Link State Update Packet)
back to the sending neighbor. When doing so, the LSA is NOT
added to the neighbor's link state retransmission list. The
previous behavior was to ignore the flood of the less recent LSA
instance; see Step 8 of Section 13 in [1].
However, to avoid this confusion, advertisements with DoNotAge This change is necessary to support flooding over demand
set will be allowed in an OSPF area only if, in the area's link circuits. For example, see Time T4 in the example of Section
state database, all router-LSAs and type-4-summary-LSAs 4.2.
(location of ASBRs) have their DC-bit set (indicating their
ability to process DoNotAge). Note that it is not required that
the LSAs' Advertising Router is reachable; if any LSA is found
not having its DC-bit set (regardless of reachability), then the
router should flush from the area all advertisements having
DoNotAge set; this is an exception to the general OSPF rule that
a router can only flush its own self-originated LSAs. When
flushing, the LSAs' LS age field should be set to MaxAge and not
DoNotAge+MaxAge.
(As an implementation suggestion, a new variable "DCBitLessLSAs" However, this change is beneficial when flooding over non-demand
could be added to the OSPF area data structure in Section 6 of interfaces as well. For this reason, the flooding change
[1]. This variable would count the number of the area's router- pertains to all interfaces, not just interfaces to demand
LSAs and type-4-summary-LSAs that do not have the DC-bit set. circuits. The main example involves MaxAge LSAs. There are times
when MaxAge LSAs stay in a router's database for extended
intervals: 1) when they are stuck in a retransmission queue on a
slow link or 2) when a router is not properly flushing them from
its database, due to software bugs. The prolonged existence of
these MaxAge LSAs can inhibit the flooding of new instances of
the LSA. New instances typically start with the initial LS
sequence number, and are treated as less recent (and hence
discarded) by routers still holding MaxAge instances. However,
with the above change to flooding, a router with a MaxAge
instance will respond back with the MaxAge instance. This will
get back to the LSA's originator, which will then pick the next
highest LS sequence number and reflood, overwriting the MaxAge
instance.
This variable would potentially increment/decrement any time a This change will be included in future revisions of the base
new LSA was received or an old LSA was replaced or flushed.) OSPF specification [1].
In particular, AS-external-LSAs with the DoNotAge bit set cannot 2.5. Interoperability with unmodified OSPF routers
exist in the routing domain unless all routers in all "regular
OSPF areas" (all areas that are neither stub areas nor NSSAs) Unmodified OSPF routers will probably treat DoNotAge LSAs as if
are capable of processing DoNotAge. In order to convey this they had LS age of MaxAge. At the very worst, this will cause
information across area boundaries, area border routers must set continual retransmissions of the DoNotAge LSAs. (An example
the DC-bit in a type-4-summary-LSA that they originate if and scenario follows. Suppose Routers A and B are connected by a
only if the described ASBR has the DC-bit set in its original point-to-point link. Router A implements the demand circuit
router-LSA. Additionally, sometimes in may be necessary to extensions, Router B does not. Neither one treats their
convey across areas the the existence of a non-ASBR that cannot connecting link as a demand circuit. At some point in time,
process DoNotAge. In this case, a type-4-summary-LSA should be Router A receives from another neighbor via flooding a DoNotAge
originated with cost of LSInfinity and DC-bit clear. 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
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
AS-external-LSAs are flooded throughout the entire OSPF
routing domain, excepting only OSPF stub areas and NSSAs.
For that reason, if an OSPF router that is incapable of
DoNotAge processing exists in any "regular" area (i.e., an
area that is not a stub nor an NSSA), no AS-external-LSA can
have DoNotAge set. This memo simplifies that requirement by
broadening it to the following rule: LSAs in regular OSPF
areas are allowed to have DoNotAge set if and only if every
router in the OSPF domain (excepting those in stub areas and
NSSAs) is capable of DoNotAge processing. The rest of this
section describes how the rule is implemented.
As described above in Sections 2.1 and 2.5, a router
indicates that it is capable of DoNotAge 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
existence of DoNotAge-incapable routers across area
boundaries, using "indication-LSAs". Indication-LSAs are
type-4-summary LSAs (also called ASBR-summary-LSAs), listing
the area border router itself as the described ASBR, with
the LSA's cost set to 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
a regular non-backbone OSPF area (Area A). Furthermore,
assume that Area A has LSAs with the DC-bit clear, other
than indication-LSAs. Then Router X should originate
indication-LSAs into all other directly-connected
"regular" areas, including the backbone area, keeping
the guidelines of Section 2.5.1.1 in mind.
(2) Suppose an area border router (Router X) is connected to
the backbone OSPF area (Area 0.0.0.0). Furthermore,
assume that the backbone has LSAs with the DC-bit clear
that are either a) not indication-LSAs or b)
indication-LSAs that have been originated by routers
other than Router X itself. Then Router X should
originate indication-LSAs into all other directly-
connected "regular" non-backbone areas, keeping the
guidelines of Section 2.5.1.1 in mind.
2.5.1.1. Limiting indication-LSA origination
To limit the number of indication-LSAs originated, the
following guidelines should be observed by an area
border router (Router X) when originating indication-
LSAs. First, indication-LSAs are not originated into an
Area A when A already has LSAs with DC-bit clear other
than indication-LSAs. Second, if another area border
router has originated a indication-LSA into Area A, and
that area border router has a higher OSPF Router ID than
Router X (same tie-breaker as for forwarding address
origination; see Section 12.4.5 of [1]), then Router X
should not originate an indication-LSA into Area A.
As an example, suppose that three regular OSPF areas
(Areas A, B and C) are connected by routers X, Y and Z
(respectively) to the backbone area. Furthermore,
suppose that all routers are capable of DoNotAge
processing, except for routers in Areas A and B.
Finally, suppose that Router Z has a higher Router ID
than Y, which in turn has a higher Router ID than X. In
this case, two indication-LSAs will be generated (if the
rules of Section 2.5.1 and the guidelines of the
preceding paragraph are followed): Router Y will
originate an indication-LSA into the backbone, and
Router Z will originate an indication-LSA into Area C.
3. Modifications to demand circuit endpoints 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. This consists 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
hellos over demand circuits and 2) flooding LSAs over demand Hello Packets over demand circuits and 2) flooding LSAs over demand
circuits. circuits.
3.1. Configuring demand circuits
An additional OSPF interface configuration parameter, An additional OSPF interface configuration parameter,
DemandInterface, is defined to indicate whether an OSPF DemandInterface, is defined to indicate whether an OSPF interface
interface connects to a demand circuit (see Appendix B). On connects to a demand circuit (see Appendix B). Two routers
point-to-point demand circuits, the neighboring router must connecting to a common network segment need not agree on that
agree that the point-to-point link is a demand circuit. To segment's demand circuit status. However, to get full benefit of the
ensure this agreement, the router sets the DC-bit in OSPF Hellos demand circuit extensions, the two ends of a point-to-point link
(and Database Description Packets) sent out the demand must both agree to treat the link as a demand circuit (see Section
interface. Receiving an Hello or a Database Description Packet 3.2).
with the DC-bit set indicates agreement. Receiving an Hello with
the DC-bit clear and also listing the router's Router ID in the
body of the Hello message, or a Database Description Packet with
the DC-bit clear (either one indicating bidirectional
connectivity) indicates that the other end refuses to treat the
link as a demand circuit. In these cases, the router reverts to
treating the link as a leased line.
The above procedure indicates that a demand point-to-point 3.1. Interface State machine modifications
circuit need be configured in only one of the two endpoints (see
Section 4.1).
If the negotiation fails, and the router is forced to treat the An OSPF point-to-point interface connecting to a demand circuit
line as a leased line, the router can always renegotiate the is considered to be in state "Point-to-point" if and only if its
link's demand status whenever the link goes down. For example, associated neighbor is in state "1-Way" or greater; otherwise
if the neighboring router is rebooted with software that is the interface is considered to be in state "Down". Hellos are
capable of operating over demand circuits, a future negotiation sent out such an interface when it is in "Down" state, at the
will succeed. reduced interval of PollInterval. If the negotiation in Section
3.2.1 succeeds, Hellos will cease to be sent out the interface
whenever the associated neighbor reaches state "Full".
For more information on sending OSPF Hellos over demand Note that as a result, an "LLDown" event for the point-to-point
circuits, see Section 3.2. demand circuit's neighbor forces both the neighbor and the
interface into state "Down" (see Section 3.2.2).
3.2. Sending and Receiving OSPF Hellos For OSPF broadcast and NBMA networks that have been configured
as demand circuits, there are no changes to the Interface State
Machine.
Over point-to-point demand circuits OSPF Hello packets are sent 3.2. Sending and Receiving OSPF Hellos
only until initial link-state database synchronization is
achieved with the neighbor (i.e., the state of the neighbor
connection reaches "Full", as defined in Section 10.1 of [1]).
After this, Hellos are suppressed and the data-link connection
to the neighbor is assumed available until evidence is received
to the contrary. When the router finds that the neighbor is no
longer available, presumably from something like a diagnostic
code contained in a response to a failed call request, the
neighbor connection transitions back to "Down" and Hellos are
sent periodically (at Intervals of PollInterval) in an attempt
to restart synchronization with the neighbor.
This requires changes to the OSPF Neighbor State Machine (see The following sections describe the required modifications to
Section 10.3 of [1]). The receipt of Hellos from neighbors in OSPF Hello Packet processing on point-to-point demand circuits.
state "Loading" or higher cannot be required. In other words,
the InactivityTimer event defined in Section 10.2 of [1] has no
effect on neighbors in state "Loading" or higher. An additional
clarification is needed in the Neighbor State Machine's LLDown
event. This event should be mapped into the "discouraging
diagnostic code" discussed above in Section 1, and should not be
generated when the data-link connection has been closed simply
to save resources.
For OSPF broadcast and NBMA networks that have been configured For OSPF broadcast and NBMA networks that have been configured
as demand circuits, there is no change to the sending and as demand circuits, there is no change to the sending and
receiving of Hellos, nor are there any changes to the Neighbor receiving of Hellos, nor are there any changes to the Neighbor
State Machine. This is because the proper operation of the State Machine. This is because the proper operation of the
Designated Router election algorithm requires periodic exchange Designated Router election algorithm requires periodic exchange
of Hello Packets. of Hello Packets.
3.3. Interface State machine modifications 3.2.1. Negotiating Hello suppression
OSPF interfaces to point-to-point demand circuits are considered On point-to-point demand circuits, both endpoints must agree
to be in "Point-to-point" state if and only if they have a to suppress the sending of Hello Packets. To ensure this
neighbor in state "1-Way" or greater, otherwise they are agreement, a router sets the DC-bit in OSPF Hellos and
considered to be in state "Down". However, as discussed above in Database Description Packets sent out the demand interface.
Section 3.2, Hellos are sent out interfaces in "Down" state, at Receiving an Hello or a Database Description Packet with the
the reduced interval of PollInterval. Hellos cease to be sent DC-bit set indicates agreement. Receiving an Hello with the
out the interface whenever the associated neighbor reaches state DC-bit clear and also listing the router's Router ID in the
"Full". body of the Hello message, or a Database Description Packet
with the DC-bit clear (either one indicating bidirectional
connectivity) indicates that the other end refuses to
suppress Hellos. In these latter cases, the router reverts
to the normal periodic sending of Hello Packets out the
interface (see Section 9.5 of [1]).
Note that as a result, an "LLDown" event for the point-to-point A demand point-to-point circuit need be configured in only
demand circuit's neighbor forces both the neighbor and the one of the two endpoints (see Section 4.1). If a router
interface into state "Down". implementing Sections 2 and 3 of this memo receives an Hello
Packet with the DC-bit set, it should treat the point-to-
point link as a demand circuit, making the appropriate
changes to its Hello Processing (see Section 3.2.2) and
flooding (see Section 3.3).
For OSPF broadcast and NBMA networks that have been configured Even if the above negotiation fails, the router should
as demand circuits, there are no changes to the Interface State continue setting the DC-bit in its Hellos and Database
Machine. Descriptions (the neighbor will just ignore the bit). The
router will then automatically attempt to renegotiate Hello
suppression whenever the link goes down and comes back up.
For example, if the neighboring router is rebooted with
software that is capable of operating over demand circuits
(i.e., implements Sections 2 and 3 of this memo), a future
negotiation will succeed.
3.4. Flooding over demand circuits Also, even if the negotiation to suppress Hellos fails, the
flooding modifications described in Section 3.3 are still
performed over the link.
3.2.2. Neighbor state machine modifications
When the above negotiation succeeds, Hello Packets are sent
over point-to-point demand circuits only until initial
link-state database synchronization is achieved with the
neighbor (i.e., the state of the neighbor connection reaches
"Full", as defined in Section 10.1 of [1]). After this,
Hellos are suppressed and the data-link connection to the
neighbor is assumed available until evidence is received to
the contrary. When the router finds that the neighbor is no
longer available, presumably from something like a
diagnostic code contained in a response to a failed call
request, the neighbor connection transitions back to "Down"
and Hellos are sent periodically (at Intervals of
PollInterval) in an attempt to restart synchronization with
the neighbor.
This requires changes to the OSPF Neighbor State Machine
(see Section 10.3 of [1]). The receipt of Hellos from demand
circuit neighbors in state "Loading" or "Full" can no longer
be required. In other words, the InactivityTimer event
defined in Section 10.2 of [1] has no effect on demand
circuit neighbors in state "Loading" or "Full". An
additional clarification is needed in the Neighbor State
Machine's LLDown event. For demand circuits, this event
should be mapped into the "discouraging diagnostic code"
discussed previously in Section 1, and should not be
generated when the data-link connection has been closed
simply to save resources. Nor should LLDown be generated if
a data-link connection fails due to temporary lack of
resources.
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 the link state database of the OSPF area containing examining the link state database of the OSPF area containing
the demand circuit. All the router-LSAs and type-4-summary-LSAs the demand circuit. All LSAs in the database must have the DC-
must have the DC-bit set. If one or more LSAs have the DC-bit bit set. If one or more LSAs have the DC-bit clear, flooding
clear, flooding over demand circuits is unchanged from [1]. (In over demand circuits is unchanged from [1]. Otherwise, flooding
particular, router-LSAs or type-4-summary-LSAs that do not have is changed as follows.
the DC-bit set are flooded unchanged from [1], because their
reception inhibits the flooding behavior defined below).
Otherwise, flooding is changed as follows.
First, only 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 to When a router receives a new LSA instance, it checks first
see whether the contents have changed. If not, the new LSA is to see whether the contents have changed. If not, the new
simply a periodic refresh and it is not flooded out attached LSA is simply a periodic refresh and it is not flooded out
demand circuits (it is still flooded out other interfaces attached demand circuits (it is still flooded out other
however). This check should be performed in Step 5b of Section interfaces however). This check should be performed in Step
13 in [1]. When comparing an LSA to its previous instance, the 5b of Section 13 in [1]. When comparing an LSA to its
following are all considered to be changes in contents: previous instance, the following are all considered to be
changes in contents:
o The LSA's Options field has changed. o The LSA's Options field has changed.
o One of the LSA instances has LS age set to MaxAge (or o One or both of the LSA instances has LS age set to
DoNotAge+MaxAge). MaxAge (or DoNotAge+MaxAge).
o The length field in the LSA header has changed. o The length field in the LSA header has changed.
o The contents of the LSA, excluding the 20-byte link state o The contents of the LSA, excluding the 20-byte link
header, have changed. Note that this excludes changes in LS state header, have changed. Note that this excludes
Sequence Number and LS Checksum. changes in LS Sequence Number and LS Checksum.
Second, when it has been decided to flood an LSA over a demand (2) When it has been decided to flood an LSA over a demand
circuit, DoNotAge should be set in the LSA's LS age field before circuit, DoNotAge should be set in the copy of the LSA that
flooding. This will cause the routers on the other side of the is flooded out the demand interface. (There is one
demand circuit to hold the LSA in their database indefinitely, exception: DoNotAge should not be set if the LSA's LS age is
removing the need for periodic refresh. Note that it is equal to MaxAge.) Setting DoNotAge will cause the routers on
perfectly possible that DoNotAge will already be set. This the other side of the demand circuit to hold the LSA in
simply indicates that the LSA has already been flooded over their databases indefinitely, removing the need for periodic
demand circuits. In any case, the LS age field must also be refresh. Note that it is perfectly possible that DoNotAge
incremented by InfTransDelay before flooding (see Step 5 of will already be set. This simply indicates that the LSA has
Section 13.3 in [1]), as protection against flooding loops. already been flooded over demand circuits. In any case, the
flooded copy's LS age field must also be incremented by
InfTransDelay (see Step 5 of Section 13.3 in [1], and
Section 2.2 of this memo), as protection against flooding
loops.
The above paragraph also pertains to LSAs flooded over demand The previous paragraph also pertains to LSAs flooded over
circuits in response to Link State Requests. demand circuits in response to Link State Requests. It also
pertains to LSAs that are retransmitted over demand
circuits.
Third, when receiving a Link State Update from a demand circuit 3.4. Virtual link support
neighbor that contains an LSA instance that is actually older
than the the router's current copy, the router must respond by OSPF virtual links are essentially unnumbered point-to-point
flooding its current LSA copy directly to the neighbor (without links (see Section 15 of [1]). Accordingly, demand circuit
putting the LSA on the neighbor's Link State retransmission support for virtual links resembles that described for point-
list). This is instead of the behavior specified in Step 8 of to-point links in the previous sections. The main difference is
Section 13 in [1], which would effectively ignore the flood of that a router implementing Sections 2 and 3 of this memo, and
the older advertisement. To see the necessity of responding to supporting virtual links, always treats virtual links as if they
old LSAs, see Time T4 in Section 4.2. were demand circuits. Otherwise, when a virtual link's
underlying physical path contains one or more demand circuits,
periodic OSPF protocol exchanges over the virtual link would
unnecessarily keep the underlying demand circuits open.
Demand circuit support on virtual links can be summarized as
follows:
o Instead of modifying the Interface state machine for virtual
links as was done for point-to-point links in Section 3.1,
the Interface state machine for virtual links remains
unchanged. A virtual link is considered to be in state
"Point-to-point" if an intra-area path (through the virtual
link's transit area) exists to the other endpoint. Otherwise
it is considered to be in state "Down". See Section 15 of
[1] for more details.
o Virtual links are always treated as demand circuits. In
particular, over virtual links a router always negotiates to
suppress the sending of Hellos. See Sections 3.2.1 and 3.2.2
for details.
o In the demand circuit support over virtual links, there is
no "discouraging diagnostic code" as described in Section 1.
Instead, the connection is considered to exist if and only
if an intra-area path (through the virtual link's transit
area) exists to the other endpoint. See Section 15 of [1]
for more details.
o Since virtual links are always treated as demand circuits,
flooding over virtual links always proceeds as in Section
3.3.
3.5. Point-to-MultiPoint Interface support
The OSPF Point-to-MultiPoint interface has recently been
developed for use with non-mesh-connected network segments. A
common example is a Frame Relay subnet where PVCs are
provisioned between some pairs of routers, but not all pairs. In
this case the Point-to-Multipoint interface represents the
single physical interface to the Frame relay network, over which
multiple point-to-point OSPF conversations (one on each PVC) are
taking place. For more information on the Point-to-MultiPoint
interface, see [8].
Since an OSPF Point-to-MultiPoint interface essentially consists
of multiple point-to-point connections, demand circuit support
on the Point-to-Multipoint interface strongly resembles demand
circuit support for point-to-point links. However, since the
Point-to-MultiPoint interface requires commonality of its
component point-to-point links' configurations, there are some
differences.
Demand circuit support on Point-to-Multipoint interfaces can be
summarized as follows:
o Instead of modifying the Interface state machine for Point-
to-Multipoint interfaces as was done for point-to-point
links in Section 3.1, the Interface state machine for
Point-to-Multipoint interfaces remains unchanged.
o When a Point-to-MultiPoint interface is configured as a
DemandInterface, it tries to negotiate Hello suppression
separately on each of its component point-to-point links.
This negotiation proceeds as in Section 3.2.1. Negotiation
may fail on some component point-to-point links, and succeed
on others. This is acceptable. On those component links
where the negotiation fails, Hellos will always be sent;
otherwise, Hellos will cease to be sent when the Database
Description process completes on the component link (see
Section 3.2.2).
o Section 3.3 defines the demand circuit flooding behavior for
all OSPF interface types. This includes Point-to-Multipoint
interfaces.
4. Examples 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 the most basic. It shows a single point-to-point demand certainly the most basic. It shows a single point-to-point demand
circuit connecting two routers. The second illustrates what happens circuit connecting two routers. The second illustrates what happens
when demand circuits and leased lines are used in parallel. The when demand circuits and leased lines are used in parallel. The
third explains what happens when a router has multiple demand third explains what happens when a router has multiple demand
circuits and cannot keep them all open (for resource reasons) at the circuits and 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 providing connectivity to the LAN containing Host H2. circuit providing connectivity to the LAN containing Host H2.
Assume that all three routers (RTA, RTB and RTC) have Assume that all three routers (RTA, RTB and RTC) have
implemented the functionality in Section 2 of this memo, and implemented the functionality in Section 2 of this memo, and
thus will be setting the DC-bit in their router-LSAs. thus will be setting the DC-bit in their LSAs. Furthermore
Furthermore assume that Router RTB has been configured to treat assume that Router RTB has been configured to treat the link to
the link to Router RTC as a demand circuit, but Router RTC has Router RTC as a demand circuit, but Router RTC has not been so
not been so configured. Finally assume that the LAN interface configured. Finally assume that the LAN interface connecting
connecting Router RTA to Host H1 is initially down. Router RTA to Host H1 is initially down.
The following sequence of events may then transpire, starting The following sequence of events may then transpire, starting
with Router RTB booting and bringing up its link to Router RTC: with Router RTB booting and bringing up its link to Router RTC:
Time T0: RTB negotiates Hello suppression
Router RTB will start sending Hellos over the demand circuit
with the DC-bit set in the Hello's Options field. Because
RTC is not configured to treat the link as a demand circuit,
the first Hello received from RTC will not have the DC-bit
set. However, subsequent Hellos and Database Description
+ + + + + +
| +---+ | | | +---+ | |
+--+ |---|RTA|---| | +--+ +--+ |---|RTA|---| | +--+
|H1|---| +---+ | |---|H2| |H1|---| +---+ | |---|H2|
+--+ | | +---+ ODL +---+ | +--+ +--+ | | +---+ ODL +---+ | +--+
|LAN Y |---|RTB|-------------|RTC|---| |LAN Y |---|RTB|-------------|RTC|---|
+ | +---+ +---+ | + | +---+ +---+ |
+ + + +
Figure 1: A single demand circuit (labeled Figure 1: In the example of Section 4.1,
ODL) bisecting an internetwork. a single demand circuit (labeled
ODL) bisects an internetwork.
Time T0: RTB negotiates demand circuit status
Router RTB will start sending Hellos over the demand circuit
with the DC-bit set in the Hello's Options field. Because
RTC is not configured to treat the link as a demand circuit,
the first Hello received from RTC may not have the DC-bit
set. However, subsequent Hellos and Database Description
Packets received from RTC will have the DC-bit set, Packets received from RTC will have the DC-bit set,
indicating that the two routers have agreed that the link indicating that the two routers have agreed that the link
will be treated as a demand circuit. The entire negotiation will be treated as a demand circuit. The entire negotiation
is pictured in Figure 2. Note that if RTC were unable or is pictured in Figure 2. Note that if RTC were unable or
unwilling to treat the link as a demand circuit, the initial unwilling to suppress Hellos on the link, the initial
Database Description sent from Router RTC to RTB would have Database Description sent from Router RTC to RTB would have
the DC-bit clear, forcing treatment of the link as a leased the DC-bit clear, forcing Router RTB to revert to the
line. 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 a link's Figure 2: Successful negotiation of Hello
demand circuit status. suppression.
Time T1: Database exchange over demand circuit
The initial synchronization of link state databases (the LSAs included in Link State Updates Packets sent over the
Database Exchange Process) over the demand circuit then demand circuit (in response to Link State Request Packets),
occurs as over any point-to-point link, with one exception. will have the DoNotAge bit set in their LS age field. So,
LSAs included in Link state updates sent over the demand after the Database Exchange Process is finished, all routers
circuit (in response to Link State Request Packets), will will have 3 LSAs in their link state databases (router-LSAs
have the DoNotAge bit set in their LS age field. So, after for Routers RTA, RTB and RTC), but the LS age fields
the Database Exchange Process is finished, all routers will belonging to the LSAs will vary depending on which side of
have 3 LSAs in their link state databases (router-LSAs for the demand circuit they were originated from (see Table 1).
Routers RTA, RTB and RTC), but the LS age fields belonging For example, all routers other than Router RTC have the
to the LSAs will vary depending on which side of the demand DoNotAge bit set in Router RTC's router-LSA; this removes
circuit they were originated from (see Table 1). For the need for Router RTC to refresh its router-LSA over the
example, all routers other than Router RTC have the DoNotAge demand circuit.
bit set in Router RTC's router-LSA; this removes the need
for Router RTC to refresh its router-LSA over the demand
circuit.
Time T2: Hello traffic ceases 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 will 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 LS age
LSA in RTB in RTC LSA in RTB in RTC
______________________________________________ ______________________________________________
RTA's Router-LSA 1000 DoNotAge+1001 RTA's Router-LSA 1000 DoNotAge+1001
RTB's Router-LSA 10 DoNotAge+11 RTB's Router-LSA 10 DoNotAge+11
RTC's Router-LSA DoNotAge+11 10 RTC's Router-LSA DoNotAge+11 10
Table 1: LS age fields on either Table 1: After Time T1 in Section 4.1,
possible LS age fields on either
side of the demand circuit 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
skipping to change at page 14, line 5 skipping to change at page 20, line 5
If an indication is received from the data-link or physical If an indication is received from the data-link or physical
layers indicating that the demand circuit can no longer be layers indicating that the demand circuit can no longer be
established, Routers RTB and RTC declare their point-to- established, Routers RTB and RTC declare their point-to-
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.2 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 This example demonstrates the demand circuit functionality when
both demand circuits and non-demand circuits (e.g., leased both demand circuits and non-demand circuits (e.g., leased
lines) are used to interconnect regions of an internetwork. Such lines) are used to interconnect regions of an internetwork. Such
an internetwork is shown in Figure 3. Host H1 can communicate an internetwork is shown in Figure 3. Host H1 can communicate
with Host H2 either over the demand link between Routers RTB and with Host H2 either over the demand link between Routers RTB and
RTC, or over the leased line between Routers RTB and RTD. RTC, or over the leased line between Routers RTB and RTD.
skipping to change at page 14, line 44 skipping to change at page 20, line 44
Time T0: Router RTB comes up. Time T0: Router RTB comes up.
Assume RTB supports the demand circuit OSPF modifications. Assume RTB supports the demand circuit OSPF modifications.
When Router RTB comes up and establishes links to Routers When Router RTB comes up and establishes links to Routers
RTC and RTD, it will flood the same information over both. RTC and RTD, it will flood the same information over both.
However, LSAs sent over the demand circuit (to Router RTC) However, LSAs sent over the demand circuit (to Router RTC)
will have the DoNotAge bit set, while those sent over the will have the DoNotAge bit set, while those sent over the
leased line to Router RTD will not. Because the DoNotAge bit leased line to Router RTD will not. Because the DoNotAge bit
is not taken into account when comparing LSA instances, the is not taken into account when comparing LSA instances, the
routers on the right side of RTB (RTC, RTE and RTD) may or routers on the right side of RTB (RTC, RTE and RTD) may or
may not have the DoNotAge bit set in the copies of the RTA may not have the DoNotAge bit set in their database copies
and RTB router-LSAs contained in their database. This of RTA's and RTB's router-LSAs. This depends on whether the
depends on whether the LSAs sent over the demand link reach LSAs sent over the demand link reach the routers before
the routers before those sent over the leased line. One those sent over the leased line. One possibility is pictured
possibility is pictured in Table 2. in Table 2.
+ +
+---+ | +---+ |
|RTC|--| + |RTC|--| +
+---+ | +---+ | +---+ | +---+ |
+ / |--|RTE|--| +--+ + / |--|RTE|--| +--+
+--+ | /ODL | +---+ |--|H2| +--+ | /ODL | +---+ |--|H2|
|H1|----| +---+ +---+/ | + +--+ |H1|----| +---+ +---+/ | + +--+
+--+ |--|RTA|-------|RTB| | +--+ |--|RTA|-------|RTB| |
| +---+ +---+\ | + | +---+ +---+\ | +
+ \ | +---+ | + \ | +---+ |
\ |--|RTY|--| \ |--|RTY|--|
+---+ | +---+ | +---+ | +---+ |
|RTD|--| + |RTD|--| +
+---+ | +---+ |
+ +
Figure 3: A sample 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.
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, LS age fields Table 2: After Time T0 in Example 2, LS age
on the right side of Router RTB. fields on the right side of Router RTB.
LS age LS age
LSA in RTC in RTD in RTE LSA in RTC in RTD in RTE
_______________________________________________ _______________________________________________
RTA's Router-LSA 5 6 6 RTA's Router-LSA 5 6 6
RTB's Router-LSA DoNotAge+5 1785 1785 RTB's Router-LSA DoNotAge+5 1785 1785
Table 3: After Time T2, LS age fields Table 3: After Time T2 in Example 2, LS age
on the right side of Router RTB. fields on the right side of Router RTB.
LS age LS age
LSA in RTC in RTD in RTE LSA in RTC in RTD in RTE
_______________________________________________________ _______________________________________________________
RTA's Router-LSA 325 326 326 RTA's Router-LSA 325 326 326
RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6 RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6
Table 4: After Time T3, LS age fields Table 4: After Time T3 in Example 2, LS age
on the right side of Router RTB. fields on the right side of Router RTB.
LS age LS age
LSA in RTC in RTD in RTE LSA in RTC in RTD in RTE
_______________________________________________________ _______________________________________________________
RTA's Router-LSA DoNotAge+7 DoNotAge+8 DoNotAge+8 RTA's Router-LSA DoNotAge+7 DoNotAge+8 DoNotAge+8
RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6 RTB's Router-LSA DoNotAge+5 DoNotAge+6 DoNotAge+6
Table 5: After Time T4, LS age fields Table 5: After Time T4 in Example 2, LS age
on the right side of Router RTB. fields on the right side of Router RTB.
Time T1: Underlying data-link connection is torn down. Time T1: Underlying data-link connection is torn down.
All application traffic is flowing over the leased line All application traffic is flowing over the leased line
connecting Routers RTB and RTD instead of the demand connecting Routers RTB and RTD instead of the demand
circuit, due to the leased line's lesser OSPF cost. After circuit, due to the leased line's lesser OSPF cost. After
some period of inactivity, the data-link connection some period of inactivity, the data-link connection
underlying the demand circuit will be torn down. This does underlying the demand circuit will be torn down. This does
not affect the OSPF database or the routers' routing tables. not affect the OSPF database or the routers' routing tables.
skipping to change at page 17, line 25 skipping to change at page 23, line 27
every LSRefreshInterval), Router RTB floods the refreshed every LSRefreshInterval), Router RTB floods the refreshed
LSA over the leased line but not over the demand circuit, LSA over the leased line but not over the demand circuit,
because the contents of the LSA have not changed. This new because the contents of the LSA have not changed. This new
LSA will not have the DoNotAge bit set, and will replace the LSA will not have the DoNotAge bit set, and will replace the
old instances (whether or not they have the DoNotAge bit old instances (whether or not they have the DoNotAge bit
set) by virtue of its higher LS Sequence number. This is set) by virtue of its higher LS Sequence number. This is
pictured in Table 3. pictured in Table 3.
Time T3: Leased line becomes inoperational. Time T3: Leased line becomes inoperational.
When the leased line becomes operational, the data-link When the leased line becomes inoperational, the data-link
connection underlying the demand circuit will be reopened, connection underlying the demand circuit will be reopened,
in order to flood a new (and changed) router-LSA for RTB and in order to flood a new (and changed) router-LSA for RTB and
also to carry the application traffic between Hosts H1 and also to carry the application traffic between Hosts H1 and
H2. At this point, all routers on the right side of the H2. After flooding the new LSA, all routers on the right
demand circuit will have DoNotAge set in their copy of RTB's side of the demand circuit will have DoNotAge set in their
router-LSA and DoNotAge clear in their copy of RTA's copy of RTB's router-LSA and DoNotAge clear in their copy of
router-LSA (see Table 4). RTA's router-LSA (see Table 4).
Time T4: In Router RTE, Router RTA's router-LSA times out. Time T4: In Router RTE, Router RTA's router-LSA times out.
Refreshes of Router RTA's router-LSA are not being flooded Refreshes of Router RTA's router-LSA are not being flooded
over the demand circuit. However, RTA's router-LSA is aging over the demand circuit. However, RTA's router-LSA is aging
in all of the routers to the right of the demand circuit. in all of the routers to the right of the demand circuit.
For this reason, the router-LSA will eventually be flushed For this reason, the router-LSA will eventually be aged out
(by router RTE in our example). Because this flushed LSA and reflooded (by router RTE in our example). Because this
constitutes a real change (see Section 3.4), it is flooded aged out LSA constitutes a real change (see Section 3.3), it
over the demand circuit from Router RTC to RTB. There are is flooded over the demand circuit from Router RTC to RTB.
then two possible scenarios. First, the LS Sequence numbers There are then two possible scenarios. First, the LS
for RTA's router-LSA may have diverged on either side of the Sequence number for RTA's router-LSA may be larger on RTB's
demand link. In this case, when router RTB receives the side of the demand link. In this case, when router RTB
flushed LSA it will respond by flooding back the more recent receives the flushed LSA it will respond by flooding back
instance (see Section 3.4). If instead the LS sequence the more recent instance (see Section 2.4). If instead the
numbers are the same, the flushed LSA will be flooded all LS sequence numbers are the same, the flushed LSA will be
the way back to Router RTA, which will then be forced to flooded all the way back to Router RTA, which will then be
reoriginate the advertisement. forced to reoriginate the LSA.
In any case, after a small period all the routers on the In any case, after a small period all the routers on the
right side of the demand link will have the DoNotAge bit set right side of the demand link will have the DoNotAge bit set
in their copy of RTA's router-LSA (see Table 5). In the in their copy of RTA's router-LSA (see Table 5). In the
small interval between the flushing and waiting for a new small interval between the flushing and waiting for a new
instance of the LSA, there will be a temporary loss of instance of the LSA, there will be a temporary loss of
connectivity between Hosts H1 and H2. connectivity between Hosts H1 and H2.
Time T5: A non-supporting router joins. Time T5: A non-supporting router joins.
Suppose Router RTY now becomes operational, and does not Suppose Router RTY now becomes operational, and does not
support the demand circuit OSPF extensions. Router RTY's support the demand circuit OSPF extensions. Router RTY's
router-LSA then does 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). on the demand circuit (see Section 3.2.2).
4.3. Example 3: Operation when suffering SVC shortage 4.3. Example 3: Operation when oversubscribed
Figure 4 shows a single Router (RT1) connected via demand Figure 4 shows a single Router (RT1) connected via demand
circuits to three other routers (RT2-RT4). Assume that RT1 can circuits to three other routers (RT2-RT4). Assume that RT1 can
only have two out of three underlying data-link connections open only have two out of three underlying data-link connections open
at once. This may be due to one of the following reasons. at once. This may be due to one of the following reasons:
Router RT1 may be using a single Primary rate ISDN interface (2 Router RT1 may be using a single Basic Rate ISDN interface (2 B
B channels) to support all three demand circuits. Or, RT1 may be channels) to support all three demand circuits, or, RT1 may be
connected a data-link switch (e.g., X.25 or Frame relay) that is connected a data-link switch (e.g., X.25 or Frame relay) that is
only capable of so many simultaneous data-link connections. only capable of so many simultaneous data-link connections.
The following events may transpire, starting with Router RT1 The following events may transpire, starting with Router RT1
coming up. 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,
skipping to change at page 19, line 11 skipping to change at page 25, line 11
Assuming that no application traffic is being sent to/from Assuming that no application traffic is being sent to/from
Host H3, the underlying data-link connection to RT2 will Host H3, the underlying data-link connection to RT2 will
eventually close due to inactivity. Then, the next Hello eventually close due to inactivity. Then, the next Hello
+ +--+ + +--+
+---+ |--|H3| +---+ |--|H3|
+---------|RT2|--| +--+ +---------|RT2|--| +--+
/ +---+ | / +---+ |
/ ODL + / ODL +
+--+ + / +--+ + /
|H1|--| / + |H1|--| / +
+--+ | +---+ ODL +---+ | +--+ | +---+ ODL +---+ | +--+
|--|RT1|------------|RT3|--| |--|RT1|------------|RT3|--|--|H4|
| +---+ +---+ | | +---+ +---+ | +--+
| \ + | \ +
+ \ODL + \ODL
\ + +--+ \ + +--+
\ +---+ |--|H2| \ +---+ |--|H2|
+--------|RT4|--| +--+ +--------|RT4|--| +--+
+---+ | +---+ |
+ +
Figure 4: Behavior when not all Figure 4: Example 3's internetwork.
of the demand circuits' data-
link connections can be opened
at once.
that RT1 attempts to send to RT4 will cause that data-link that RT1 attempts to send to RT4 will cause that data-link
connection to open and synchronization with RT4 will ensue. connection to open and synchronization with RT4 will ensue.
Note that, until this time, H2 will be considered Note that, until this time, H2 will be considered
unreachable by OSPF routing. However, data traffic would not unreachable by OSPF routing. However, data traffic would not
have been deliverable to H2 until now in any case. have been deliverable to H2 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 opened 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 the retransmitted (and dropped by RT2's ISDN interface; see
last paragraph of Section 1). This means that the routing Section 1). This means that the routers RT1, RT3 and RT4
will not detect the unreachability of H4 until a data-link will not detect the unreachability of Host H3 until a data-
connection on RT1 becomes available. link connection on RT1 becomes available.
Increasing the OSPF cost of demand circuits that are currently
discarding application packets, due to underlying data-link
shortage, may help the routing find paths that can actually
deliver the packets. This however would create more routing
traffic, and is an issue for future study.
5. Topology recommendations 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 isolates the demand circuits from AS external routing changes, this isolates the demand circuits from AS external routing changes,
which in many networks are the most frequent (see [6]). Stub areas which in many networks are the most frequent (see [6]). Stub areas
can even isolate the demand circuits from changes in other OSPF can even 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.3), 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 at some cost. Although we gain an efficient use of demand come at some cost. Although we gain an efficient use of demand
circuits, holding them open only when there is actual application circuits, holding them open only when there is actual application
skipping to change at page 20, line 43 skipping to change at page 26, line 35
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.
Database Checksum Database Checksum
OSPF supplies network management variables, OSPF supplies network management variables, namely
ospfExternLSACksumSum and ospfAreaLSACksumSum in [7], allowing a ospfExternLSACksumSum and ospfAreaLSACksumSum in [7], allowing a
network management station to verify OSPF database network management station to verify OSPF database
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.
A. The Options field 7. Future work: Oversubscription
An internetwork is oversubscribed when not all of its demand
circuits' underlying connections can be open at once, due to
resource limitations. These internetworks were addressed in Section
4.3. However, when all possible sources in the internetwork are
+--+ + + +--+
|H1|--| +---+ ODL +---+ |--|H2|
+--+ |--|RT1|-------|RT2|--| +--+
| +---+ +---+ |
+ | \ / | +
| \ / |
| \ / |
|ODL / |ODL
| / \ODL |
| / \ |
+ | /ODL \ | +
+--+ | +---+ +---+ | +--+
|H4|--|--|RT4|-------|RT3|--|--|H3|
+--+ | +---+ ODL +---+ | +--+
+ +
Figure 5: Example of an oversubscribed
internetwork
+---+ +---+ +---+ +---+
|RT1|-------|RT2| |RT1| |RT2|
+---+ +---+ +---+ +---+
| | | \
| | | \
| | | \
| | | \
| | | \
| | | \
| | | \
+---+ +---+ +---+ +---+
|RT4|-------|RT3| |RT4|-------|RT3|
+---+ +---+ +---+ +---+
Figure 5a: One possible Figure 5b: Another possible
pattern of data-link pattern of data-link
connections connections
active at once, problems can occur which are not addressed in this
memo:
(1) There is a network design problem. Does a subset of demand
circuits exist such that a) their data-link connections can be
open simultaneously and b) they can provide connectivity for all
possible sources? This requires that (at least) a spanning tree
be formed out of established connections. Figure 4 shows an
example where this is not possible; Hosts H1 through H4 cannot
simultaneously talk, since Router RT1 is limited to two
simultaneously open demand circuits.
(2) Even if it is possible that a spanning tree can form, will one?
Given the model in Section 1, demand circuits are brought up
when needed for data traffic, and stay established as long as
data traffic is present. One example is shown in Figure 5. Four
routers are interconnected via demand circuits, with each router
being able to establish a circuit to any other. However, we
assume that each router can only have two circuits open at once
(e.g., the routers could be using Basic Rate ISDN). In this
case, one would hope that the data-link connections in Figure 5a
would form. But the connections in Figure 5b are equally
likely, which leave Host H2 unable to communicate.
One possible approach to this problem would be for a) the OSPF
database to indicate which demand circuits have actually been
established and b) implement a distributed spanning tree
construction (see for example Chapter 5.2.2 of [9]) when
necessary.
(3) Even when a spanning tree has been built, will it be used?
Routers implementing the functionality described in this memo do
not necessarily know which data-link connections are established
at any one time. In fact, they view all demand circuits as being
equally available, whether or not they are established. So for
example, even when the established connections form the pattern
in Figure 5a, Router RT1 may still believe that the best path to
Router RT3 is through the direct demand circuit. However, this
circuit cannot be established due to resource shortages.
On possible approach to this problem is to increase the OSPF
cost of demand circuits that are currently discarding
application packets (i.e., can't be established) due to resource
shortages. This may help the routing find paths that can
actually deliver the packets. On the downside, it would create
more routing traffic. Also, unwanted routing oscillations may
result when you start varying routing metrics to reflect dynamic
network conditions; see [10].
A. 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 router-LSA if Circuit capability). The DC-bit is set in a router's self-originated
and only if it supports the functionality defined in Section 3 of LSAs if and only if it supports the functionality defined in Section
this memo. Note that this does not necessarily mean that the router 2 of this memo. Note that this does not necessarily mean that the
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 network as a demand circuit (see Section 3.1). attached point-to-point network as a demand circuit (see Section
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
skipping to change at page 23, line 8 skipping to change at page 30, line 9
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 Section 3.1. Its setting in LSAs is Packets is described in Sections 3.2.1 and 3.2.2. Its setting in
described in Section 2.3. 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 also used on point-to-point networks (see Section 3.3). now also used on point-to-point networks (see Sections 3.1 and
3.2.2).
DemandInterface DemandInterface
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 the demand interface is configured to be a broadcast or When a broadcast or NBMA network is configured to be a demand
NBMA network (see Section 1.2 of [1]), the circuit will be kept interface (see Section 1.2 of [1]), the circuit will be kept
open constantly due to OSPF Hello traffic, but the amount of open constantly due to OSPF Hello traffic, but the amount of
flooding traffic will still be greatly reduced. 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, or the high bit of the Equal to the hexadecimal value 0x8000, which is the high bit of
16-bit LS Age field in OSPF LSAs. When this bit is set in the LS the 16-bit LS Age field in OSPF LSAs. When this bit is set in
age field, the LSA is not aged as it is held in the router's the LS age field, the LSA is not aged as it is held in the
link state database. This allows the elimination of the periodic router's link state database. This allows the elimination of the
LSA refresh over demand circuits. See Section 2.1 for more periodic LSA refresh over demand circuits. See Section 2.2 for
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., March 1994. Inc., March 1994.
[5] Ferguson, D., "The OSPF External Attributes LSA", Internet [5] Ferguson, D., "The OSPF External Attributes LSA", work in
Draft, draft-ietf-ospf-extattr-00.txt, March 1993. 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", Internet Draft, [8] Baker F., "OSPF Point-to-MultiPoint Interface", work in
draft-ietf-ospf-pmp-if-00.txt, ACC, March 1994. progress.
[9] Bertsekas, D. and Gallager R., "Data Networks", Prentice Hall,
Inc., 1992.
[10] Khanna, A., "Short-Term Modifications to Routing and Congestion
Control", BBN Report 6714, BBN, February 1988.
Security Considerations Security 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
Proteon, Inc. Cascade Communications Corp.
9 Technology Drive 5 Carlisle Road
Westborough, MA 01581 Westford, MA 01886
Phone: 508-898-2800 Phone: 508-692-2600 Ext. 394
Fax: 508-898-3176 Fax: 508-692-9214
Email: jmoy@proteon.com Email: jmoy@casc.com
This document expires in November 1994. This document expires in May 1995.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/